Name correction numerology looks for a new spelling of a name. The sound stays, but the letters add up to a number that fits the person better. Indian numerology counts letters with the Chaldean table, where every letter is worth between 1 and 8. Change a letter, and the total usually moves. The sum is then reduced to one digit. That digit is checked against two numbers from the birth date: the mulank and the bhagyank.
Our API does this in POST /v1/name/suggest. It works on a single word, which is the first name unless you choose another. It tries only a short, named list of spelling habits, such as i or ee and a or aa. No more than two changes go into one spelling. A spelling comes back only when its digit is a good fit for the person. The list comes in a fixed order, fewest changes first, and it is never ranked.
Take John Doe, whose birthday is Aug 15, 1990. His first name allows one change, a doubled n. Johnn Doe adds up to 39, then 3, which is only neutral for him. So the route found nothing and told him his spelling can stay.
That answer shapes a good name check screen. Show the user's own spelling first, with its fit. Give the reason for each suggestion. Add the API's note that a number hints at a tendency and settles nothing. And never push anyone to change a legal name.

How name correction numerology picks a spelling
On October 19, 2026, we read the suggest code in our core service. Then we ran the route for John Doe, Jane Doe and six other names. This is how a suggestion is made.
One word at a time. You choose the word with part, counting from 0. The default, 0, is the first name, so a family name is left alone.
Only named habits. The route tries the changes below and nothing else. The code calls each one a spelling habit that keeps the sound of the name.
Change | Code | Example or rule |
|---|---|---|
a becomes aa, or aa becomes a |
| Rekha to Rekhaa, Aarti to Arti |
i becomes ee, or ee becomes i |
| Sunil to Suneel, Deepak to Dipak |
u becomes oo, or oo becomes u |
| Sunil to Soonil |
v becomes w, or w becomes v |
| never as the first letter |
ph becomes f, or f becomes ph |
| either way |
The last consonant is doubled, or a double is written once |
| John to Johnn, Deepak to Deepakk |
A silent h follows a final a |
| Rekha to Rekhah |
Two changes at most. Two can be combined, as long as they are not both at the end. The second may not touch the letters the first one just wrote.
Some changes are never tried. The route will not turn e into ee or o into oo. It will not shorten ee or oo, and it will not tack an a onto the end. The code says each of these makes a different name. Its own example is Mohan, which would become Moohan.
Only good numbers count. A new spelling is kept only if its digit is in targets. By default, that list is every number that is a good fit for the person. So every default suggestion has the label "Good fit".
A fixed order, not a ranking. The fewest changes come first, then A to Z, and ranked is false. Up to 20 come back by default. You can set limit from 1 to 50, and found still counts every match.
The pages we read take other paths. One free tool will not suggest any spelling, because spellings picked by number alone can look odd. Another name correction API returns a match percentage and one target number. Ours gives no score and uses only the habits above. The glossary keeps the short definition of name correction.
John Doe, step by step
John's birthday is Aug 15, 1990. The 15 in his birthday gives 1 + 5 = 6, his mulank. Together, the digits of the full date make 33, and 3 + 3 = 6, his bhagyank. Both sums appear step by step where we explain the three core numbers.
Indian numerology gives 6 to Venus. Venus counts Mercury (5) and Saturn (8) as friends. Rahu (4) is read as Saturn, and 6 is John's own number. So his good numbers, and his targets, are 4, 5, 6 and 8. The entry on friendly numbers explains the planet friendships.
First, we sent John Doe and five other spellings to POST /v1/name, the name checker. It reads each one against John's numbers, in the order sent.
Spelling | Digit and planet | Total | Fit for John | Could the suggest route make it? |
|---|---|---|---|---|
John Doe | 7, Ketu | 34 | Neutral | It is his name |
Johnn Doe | 3, Jupiter | 39 | Neutral | Yes, a doubled last letter |
Johnny Doe | 4, Rahu | 40 | Good fit | No, a nickname adds letters |
Jhon Doe | 7, Ketu | 34 | Neutral | No, two letters swap places |
Jon Doe | 2, Moon | 29 | Not a good fit | No, a letter is dropped |
John Dow | 8, Saturn | 35 | Good fit | No, it changes the last name |
Johnny Doe and John Dow are both good fits, and the suggest route would offer neither. A nickname is a different name, and Dow is a different family name. The route is narrow by design.
Jhon Doe holds the same letters as John Doe, so it has the same total. A slip that only swaps letters cannot change the number. So print the name as read, and let the user spot it.
Now the one spelling the suggest route did try. This is the working for Johnn Doe.
Step | What happens | Johnn Doe |
|---|---|---|
1. Give each letter its value | Chaldean table | J 1, O 7, H 5, N 5, N 5 and D 4, O 7, E 5 |
2. Add each word | Johnn, then Doe | 23 and 16 |
3. Add the words | 23 + 16 | 39 |
4. Cut to one digit | 3 + 9 = 12, then 1 + 2 | 3 |
5. Name the planet | 3 belongs to Jupiter | Jupiter |
6. Read against John | Venus counts Jupiter as neutral, for both numbers | Neutral |
7. Check the targets | 3 is not 4, 5, 6 or 8 | Not suggested |
The extra N is worth 5, so the total climbs from 34 to 39. The digit moves from 7 to 3, which is still off his list. With nothing else to try, found is 0.
The last name gave even less. With part set to 1, the route picks Doe. Doe has no a, i, u, v, w, ph or f, and it ends in an e. No habit fits, so tried came back as 0. The name number entry builds John's 34 letter by letter.
Jane Doe, the docs' other sample person, got the same answer. Her good numbers are 3 and 5. Her first name allows one change, Jaane, and it lands on 2.
What POST /v1/name/suggest returns
This is the request. Its body is the docs' own sample for this route.
John Doe, born Aug 15, 1990. The route needs only the name and the birth date.
curl -X POST "https://apiforastrology.com/api/numerology/v1/name/suggest" \
-H "Authorization: Bearer $ASTROLOGY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"John Doe","birth_date":"1990-08-15"}'The answer for John Doe, trimmed to the main fields
{
"name": "John Doe",
"part": 0,
"word": "John",
"current": {
"total": 34,
"compound": 34,
"number": 7,
"planet": "Ketu",
"fit": { "outcome": "neutral", "outcome_name": "Neutral" }
},
"targets": [4, 5, 6, 8],
"tried": 1,
"found": 0,
"suggestions": [],
"person": { "birth_date": "1990-08-15", "mulank": 6, "bhagyank": 6 },
"system": "chaldean",
"none": "No small spelling change gives a number that suits you. Your current spelling can stay as it is.",
"ranked": false
}The `current` block is the name as sent, with its number and fit. It is the first thing your screen should show.
Two counts sit side by side. The tried field is how many spellings the habits made. The found field is how many landed on a target. Sunil Kumar, with limit set to 2, got 2 spellings back and a found of 4.
Each suggestion carries the new name, the changed word, its changes, the total, the digit, the planet and the fit. Each change has a code, the letters before and after, and a plain name, such as "Wrote i as ee".
The `none` field is null when spellings come back. When none do, it holds the sentence above, so your screen always has words to show.
Two claim lines come with every answer. The not_claimed_spelling line says a spelling moves the name's number and leaves the person as they are. The not_claimed line says a number shows a tendency, never a set outcome.
Two changes that never move the number
Each habit adds or takes away the same amount every time, since a letter's value never changes. The table works it out from the Chaldean values. Both letter tables are compared in Chaldean vs Pythagorean numerology.
Change | Letter values | The total moves by | Can it move the digit alone? |
|---|---|---|---|
a to aa, or back | A is 1 | 1 | Yes |
u to oo, or back | U is 6, O is 7 | 8 | Yes |
ph to f, or back | P is 8, H is 5, F is 8 | 5 | Yes |
A silent h at the end | H is 5 | 5 | Yes |
A doubled last consonant | the letter's own value | 1 to 8 | Yes |
i to ee, or back | I is 1, E is 5 | 9 | No |
v to w, or back | both are 6 | 0 | No |
Adding or taking away 9 leaves the single digit where it was. Sunil Kumar adds up to 33, and Suneel Kumar to 42. Both cut down to 6. A swap of v and w changes no value at all.
So a lone i or ee change can only show up when the digit is already a target. The same holds for a lone v or w swap. Its number matches the name the user has now, and our API returns it without a flag. Compare each suggestion's number with current.number, and tell the user when they match.
When suggestions come back: Hindi names in English letters
John's name has little room for these habits. Hindi names written in English letters have far more. The suggest code was built for them. Its notes name pairs such as Sunil and Suneel, and Aarti and Arti, as two ways to write one name.
We sent three such names with John's birth date, Aug 15, 1990. So the good numbers stay 4, 5, 6 and 8.
Name sent | Number now and fit | Tried | Found | What came back, in order |
|---|---|---|---|---|
Sunil Kumar | 33, 6, Good fit | 5 | 4 | Soonil Kumar (5), Suneel Kumar (6), Sooneel Kumar (5), Soonill Kumar (8) |
Aarti Sharma | 25, 7, Neutral | 3 | 2 | Arti Sharma (6), Artee Sharma (6) |
Arun Kumar | 29, 2, Not a good fit | 5 | 1 | Aarunn Kumar (8) |
The order is not a ranking. Soonil and Suneel each have one change, so they come first. Soonil leads only because "so" comes before "su" in the alphabet.
A good fit still gets suggestions. Sunil Kumar already lands on 6, the same number as the mulank and bhagyank of that birth date. Four spellings came back anyway. The route never asks whether the current spelling is fine.
A poor fit may get little. Arun Kumar is not a good fit. Only one spelling reaches a good number, and it takes two changes, a doubled a and a doubled n. Aarunn Kumar adds up to 35, then 8.
Capitals stay as typed. When we sent SUNIL KUMAR, the spellings came back as SOONIL KUMAR, SUNEEL KUMAR and so on.
See every field in one place. The name checker feature page covers the name check and the suggest route, with every field each one returns.

Requests the API refuses
The API turns bad input away with a 422, and the error's code is invalid_input. Four of these five errors name the field, so you can put the message beside it.
What we sent | What came back |
|---|---|
The name in Hindi script: सुनील कुमार | 422 on |
| 422, with no field named |
A target of 10 | 422 on |
A | 422 on |
11 extra spellings to | 422 on |
The part error's message says the part must be from 0 to 1, because the name has 2 words. Count the words in your form first, so the call never fails on part.
Build decisions for a name check screen
Lead with the spelling the user has. Show current first, with its number, planet and fit label. If the fit is good, say that before anything else. For Sunil Kumar, the honest first line is that his spelling already suits his numbers. Put suggestions behind a tap.
Never push a legal name change. Skip red badges and "fix your name" buttons. A new spelling is a choice for daily use, such as a signature or a profile name. Changing official papers is a legal step outside your app. Leave part at 0 unless the user picks another word.
Give the reason for each suggestion. Print each change's name, such as "Wrote u as oo", and mark the letters that moved. Each change has an at value: where it starts, counted from 0. It counts in the word as it stood before that change. So apply the changes in the order listed, and the letters line up. Beside it, show the new number, its planet and the two links behind its fit.
Flag a change that leaves the number alone. If a suggestion's number matches current.number, it is a new spelling of the same number. Suneel Kumar is one. Say so, or leave it out.
Keep the claim lines. Put both near the suggestions. One says to take a spelling only if the user would write it every day. The other says a number shows a tendency and does not decide events. Never write that a spelling will bring money, health or a marriage.
Keep the API's order. The answer has no score and sets ranked to false. A "best spelling" star would come from your app. Nothing in the answer backs it.
Show the `none` sentence as it is. It tells the user the spelling can stay. Do not fill the gap with a bigger change.
Leave `targets` out unless the user asks for a number. The default aims only at good numbers. We set targets to 3 for John, and Johnn Doe came back with a fit of only neutral. If users pick a number, show the fit label beside each spelling.
Take Hindi names as the user writes them. Let the user type the name the way they write it every day, in English letters. If they type Hindi script, the API refuses it. Ask again, and never convert it yourself, because two English spellings can give two numbers. Send lang=hi for Hindi labels. Good fit comes back as अच्छा मेल, and "Wrote i as ee" as "i को ee लिखा". The codes, such as good and i_ee, do not change with the language, so logic built on them still works.
Check the spellings a user already has. A user may write a name one way on official papers and another way online. Send both to POST /v1/name as extra spellings, up to 10 of them, in variants. A name check and a suggest call each use 1 reading credit.
Know where this route stops. Company names have their own route, covered in business name numerology. Naming a new baby is a separate job, with its own baby names route.
Try a spelling on a free page. Our name numerology calculator checks a name and other spellings against a birth date, in both letter tables.

The short version
Name correction moves a name's number by changing its spelling, not its sound. Our suggest route tries a short list of habits on one word, two at most. It keeps only spellings whose digit is a good fit, in a fixed order. John Doe got none, and the answer said his spelling can stay. Sunil Kumar got four, though his own spelling already fit. So the screen opens on the spelling the user already has.



