Date of birth numerology gives an app most of its numbers before the user types a name. The date alone gives three Indian results: the mulank (birth day number), the Lo Shu grid and the bhagyank (destiny number). The mulank then brings four more: a lucky day, its colors, a list of friendly numbers and a set of good dates. On the Western side, the date gives the life path, the birthday number, four challenges and four pinnacles. It also sets the three personal cycle numbers: year, month and day.
Meet John Doe, born Aug 15, 1990, the sample person in our numerology docs and tests. His date alone gives mulank 6, bhagyank 6 and life path 6. His lucky day is Friday. On Nov 6, 2026, the cycles put him in personal year 6, personal month 8 and personal day 5.
The name adds 8 more numbers. One is Indian: the name number. Seven are Western: expression, soul urge, personality, maturity, karmic lessons, hidden passion and balance.
Our API has one catch. Of its three main routes, only POST /v1/cycles answers a request that holds a birth date and no name. Both POST /v1/western and POST /v1/profile refuse that body with error 422, and the field they point to is name.
Date of birth numerology for John Doe: the full map
We sent John's birth date and name to all three routes on Oct 19, 2026, reading the cycles for Nov 6, 2026. Then we repeated the date under two other names, Johnny Doe and Guest. A block that came back the same for all three names comes from the date. Here is each one, with its working and a page that explains it in full.
Number | Worked out from | John Doe | Field (route) | Explained in |
|---|---|---|---|---|
Mulank | the day: 15 → 1 + 5 | 6, Venus |
| |
Bhagyank | all eight digits: 33 → 3 + 3 | 6, Venus |
| |
Lo Shu grid | the digits of the date, plus the bhagyank and the mulank, counted in a square of nine cells | 2, 3, 4 and 7 empty |
| |
Lucky block: day, colors, numbers, dates | the planet that rules the mulank | Friday; white and pastel pink; 4, 5, 6, 8 |
| the lucky section below |
Life path | each part of the date cut to one digit, then summed: 8 + 6 + 1 = 15 → 6 | 6 |
| |
Birthday number | the day of birth, with 11 and 22 kept | 6 |
| |
Challenges | gaps between the one-digit month, day and year | 2, 5, 3, 7 |
| |
Pinnacles | one sum per life stage, built from the month, day and year | 5, 7, 3, 9 |
| |
Personal year | the calendar year, added to the birth month and day | 6 |
| |
Personal month and day | the year plus the month, then plus the day | 8 and 5 |
|
In the route column, profile is POST /v1/profile, western is POST /v1/western and cycles is POST /v1/cycles.
Two of these read a second date. The cycles need the day you want read, sent as as_of. The pinnacles use that date too, to flag the stage marked current. On Nov 6, 2026, John is 36. So the API flags his second pinnacle, a 7 that covers ages 31 to 39.
Master numbers come from the date as well. The Western date numbers do not reduce 11, 22 or 33. Jane Doe, born Mar 22, 1992, has a birthday number of 22. Her mulank, taken from the same day, is 4. Our master numbers guide shows where else they turn up.
Karmic debt can come from either input. Western numerology flags 13, 14, 16 and 19 when one of them turns up while a total is cut down. That is karmic debt. On the date side, it can sit on the life path or the birthday number. John has none there. His one debt number, 14, sits on his personality and maturity numbers, so it waits for his name.
The remedies need no name either. The profile's remedies block holds the gemstone, the mantra and the rest. Its source is the mulank's planet, the same one behind the lucky block.
The numbers that need a name
Eight numbers read the letters of a name. Each has its own page, so here is only the value for John and where it lives.
Name numbers | John Doe | Route | Explained in |
|---|---|---|---|
Name number (Chaldean) | 7, from a total of 34 |
| |
Expression, soul urge, personality | 8, 8 and 9 |
| |
Maturity | 5, from 6 + 8 = 14 |
| |
Karmic lessons | 2, 3, 7 and 9 |
| |
Hidden passion, balance | 5 and 6; 5 |
|
Maturity is the one mixed number. It sums the date's life path and the name's expression. So John's 6 + 8 makes 14, then 5, and it cannot be shown until the name is in.
We tested the split by changing the name. Our script compared every top-level block across the three answers. In the profile, name_number was the only number block that moved. In the Western answer, the seven name blocks moved. The life path, birthday number, challenges, pinnacles and personal numbers stayed exactly the same.
So a date-only screen needs no redraw later. Once the name arrives, every number on it is still the same.

Which API routes answer with a date alone
Next, each of the three routes got John's birth date and no name.
Route | Body sent | Answer |
|---|---|---|
| the birth date only | 422, code |
| the birth date only | 422, the same code, message and field |
| the birth date only | 200, with year 6, month 8 and day 5 |
The two name routes require the name. In the profile, every number block but one comes from the date. In the Western answer, 5 of the 12 number blocks do. Still, the request model of each route marks name as a field it must have. An empty name fails as well. For "", the profile answered 422 and asked for a name written in English letters.
Cycles reads the birth date and nothing else. Its request model holds that one field. When we sent John's name along with the date, the answer did not change.
Most other routes take no person's name. The API has 15 public routes that return readings. Five need the person's name: the profile, the Western numbers, the name checker, the spelling suggestions and the report. The business check needs a business name. The other nine take no name at all. Besides cycles, these five can fill part of a date-only screen.
Route | What you send | What you get | Reading credits |
|---|---|---|---|
| a number from 1 to 9, no date | the readings, lucky block and remedies for that number as a mulank | 3 |
| a calendar date, or nothing | that date's number, shared by every user: 9 on Nov 6, 2026 | 1 |
| a birth date | every date of one month, read for the person | 1 |
| a birth date, plus a phone number, a vehicle plate or a house number | how that number fits its owner | 1 |
| two birth dates | how two people's numbers get along | 1 |
The last three also send back the mulank and bhagyank as bare numbers, 6 and 6 for John, with no reading beside them. Our posts on numerology compatibility and mobile number numerology walk through two of them.
Lucky number by date of birth: what the API calls lucky
We read pages on the lucky number by date of birth, and they gave three different answers. One news page we read makes the mulank itself the lucky number. By that rule, a birthday on day 1, 10, 19 or 28 of any month gives the lucky number 1. One calculator adds up the whole date and calls the result a lucky number and a life path number at once. Another news page lists several lucky numbers for each mulank. For mulank 6, it gives 4, 5, 6, 7 and 8.
Our API has no field named lucky number. It has a lucky block, and the block names its source in "from": "mulank". Everything inside follows the planet that rules the mulank. For John, that planet is Venus.
Field | John Doe | Where it comes from |
|---|---|---|
| Friday | the weekday of Venus |
| white, pastel pink | the colors of Venus |
| friendly 4, 5, 6, 8; neutral 3, 7, 9; unfriendly 1, 2 | how Venus treats each number's planet, from the classical planet friendship table |
| 13 dates, from the 4th to the 31st | days of the month that add down to a friendly number |
So that news page and our API split on one number. The page counts 7 as lucky for mulank 6, while the API files 7 under neutral.
Show the block as tradition, not as a promise. A label such as "Linked to your mulank" says where it comes from. The API's own line beside the dates keeps the claim soft. It reads: "Dates of the month that add up to a number friendly to your mulank. They tend to suit starting things." Keep that tone in any words you add.
The block depends on the day of the month alone. A birthday on day 6, 15 or 24 of any month gives John's lucky block. GET /v1/guide/6 lists those three days in its born_on field. It returns the same lucky block as John's profile, with no birth date sent.
A date-only first screen, step by step
Call POST /v1/cycles first. It needs nothing the sign-up has not already asked for. Put the date on the user's own calendar into as_of, so the numbers match their day. Our personal year guide explains why that date matters near midnight.
John Doe, born Aug 15, 1990. The date to read: Nov 6, 2026.
curl -X POST "https://apiforastrology.com/api/numerology/v1/cycles?as_of=2026-11-06" \
-H "Authorization: Bearer $ASTROLOGY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"birth_date":"1990-08-15"}'The answer, cut down to its numbers. Each block also holds a one-line about and a short reading.
{
"birth_date": "1990-08-15",
"as_of": "2026-11-06",
"year": { "number": 6 },
"month": { "number": 8 },
"day": { "number": 5 }
}The personal year feature page lists the other date routes beside this one.
Add the mulank's page if the screen needs more. To get the mulank, take the birth day, such as the 15th, and keep adding its digits until one is left. Your app can do that in a few lines. Then GET /v1/guide/{mulank} returns that number's readings and its lucky block. For John, GET /v1/guide/6 matched his profile on four counts: the mulank reading, the bhagyank reading, the lucky block and the remedies.
// The mulank: the day of birth, with its digits added until one digit is left.
// birthDate is the date the user typed, as "YYYY-MM-DD", with no time zone change.
function mulankFromBirthDate(birthDate) {
let number = Number(birthDate.slice(8, 10)); // "1990-08-15" -> 15
while (number > 9) {
number = Math.floor(number / 10) + (number % 10); // 15 -> 1 + 5 = 6
}
return number;
}We ran this function on all 31 days of a month. Each result matched the born_on lists of GET /v1/guide/1 to GET /v1/guide/9.
Try the Indian numbers for any date. Our free numerology calculator shows all three Indian core numbers side by side. It asks for a name as well, because it runs on POST /v1/profile.

Mind one gap in the guide. Its bhagyank reading is for the number in the path, not for the person. John's two date numbers match, 6 and 6, so one guide call covers both. When the two numbers differ, the bhagyank reading needs a second call with the bhagyank in the path.
Do not fill the name with a stand-in. If you want the profile on the first screen, sending "Guest" as the name may look harmless. The API reads it like any other name. "Guest" came back with a Chaldean total of 21 and a name number of 3, and a Western expression of 9. Those numbers would sit on screen as if they belonged to the user.
Send the date exactly as typed. A birth date turned into UTC can land on the next day. Our mulank and bhagyank explainer shows that shift turning John's mulank and bhagyank into 7s.
Asking for the name later
Say what the name adds. A short line works: "Add your name to see the numbers read from its letters." For an Indian screen, that is one number, the name number. For a Western screen, it is seven.
Ask for the name each route expects. The profile wants the everyday name, in the user's own spelling. The Western route wants the full birth name. A nickname, or a new last name after marriage, changes the letters it reads. When the two names differ and you show both sets, ask for both. In our runs, swapping John Doe for Johnny Doe moved the expression from 8 to 11. Our guide to the destiny number and the bhagyank covers which name each route wants.
Ask for English letters. Both routes read names in A to Z only. Names in Hindi letters, or any other script, come back as an error. The API does not convert them, since each spelling gives its own number.
Then make the two name calls. POST /v1/profile adds the name number to the Indian set, grid included. POST /v1/western adds the seven Western name numbers. Both take a name and a birth date, in the same two fields.
Plan the full Indian screen. The core numbers API page lists every block the profile returns, with a sample answer for John Doe.

Label every number by its input. A small line such as "From your birth date" or "From your name" helps. It tells the user which numbers stay put if they fix a typo in their name. The last field of every answer with a reading is a not_claimed line. Show it on each screen that has a reading. It tells users the numbers point to tendencies and fix nothing.
Credits per screen
Each numerology answer uses reading credits. Credits are how the API meters written answers. Here is what each screen in a two-step sign-up uses, from our route list.
Screen | Calls | Reading credits |
|---|---|---|
Date-only: the three personal numbers |
| 2 |
Date-only, plus the mulank's readings and lucky block |
| 5 |
After the name: the Indian set, grid included |
| 3 |
After the name: the Western set |
| 3 |
One number of the day, shared by all users |
| 1 |
A user who gives the date first, then the name, with both sets shown, uses 2 + 3 + 3 = 8 credits. With the guide call on the first screen, the total is 11. The profile sends the same mulank reading and lucky block as the guide. So the guide call buys an earlier look at them, one screen before the name.
The short version
A birth date gives the mulank, bhagyank, Lo Shu grid and lucky block. It also gives the life path, birthday number, challenges, pinnacles and the three personal cycle numbers. A name adds the name number and seven Western numbers. In our API, only POST /v1/cycles answers a date with no name, so it is the call for a date-only first screen. The profile and Western routes wait for the name.



