A numerology app needs 6 screens: core numbers, a name checker, number checks, compatibility, a personal year with a daily number, and a report. The math behind them is simple addition. The hard parts sit around the math.
Books disagree on the rules. Indian and Western numerology give letters different values. They treat master numbers (11, 22 and 33) differently, and they fill the Lo Shu grid in different ways. So two apps can show one person two different numbers. Names are tricky too, since one letter can change the number. And every number needs a reading, written and checked in each language you offer.
So buy the numbers and the readings as an API. Build what your users touch: sign-in, screens, payments, alerts and your own words around the readings. Build the engine yourself only when your own method is the product.
Here is the size of the job, measured on the engine behind our Numerology API on Oct 19, 2026. It holds 371 short readings and 169 long ones in English, and the same set in Hindi. That comes to 25,734 words of English and 28,628 words of Hindi. The engine also has more than 180 automated tests that check the rules and the text.
The 6 screens a numerology app needs
Each screen maps to one API call. The table shows the reading credits each call uses. Credits are the unit the API counts for written answers.
Screen | What the user sees | API call | Reading credits |
|---|---|---|---|
Core numbers | Mulank (birth day number), bhagyank (destiny number), name number and the Lo Shu grid |
| 3 |
Name checker | A name and up to 10 spellings, each with its fit |
| 1 |
Number checks | A mobile, house or vehicle number, or a business name |
| 1 |
Compatibility | Two people's numbers, read both ways |
| 1 |
Personal year and daily screen | The year, month and day number for one person |
| 2 |
Report | The whole reading in 12 chapters, as HTML or JSON |
| 25 |
Start with the core numbers, because the other screens read against them. Send the user's name and birth date to POST /v1/profile. This is a trimmed copy of the answer from our API on Oct 17, 2026, with the readings left out.
John Doe, born Aug 15, 1990: the answer, trimmed
{
"mulank": { "number": 6, "planet": "Venus" },
"bhagyank": { "number": 6, "total": 33, "master": true, "planet": "Venus" },
"name_number": {
"default_system": "chaldean",
"chaldean": { "total": 34, "compound": 34, "number": 7, "planet": "Ketu" },
"pythagorean": { "total": 35, "compound": 35, "number": 8, "read": false }
}
}Here is the working. The mulank comes from the day of birth: 15 gives 1 + 5 = 6. The bhagyank adds every digit of the date: 1 + 5 + 0 + 8 + 1 + 9 + 9 + 0 = 33, and 3 + 3 = 6. The name number adds the letter values in the next table: 34, and 3 + 4 = 7.
Hard part 1: two letter tables, kept apart
Indian and Western numerology use different letter tables. Indian numerology uses the Chaldean table. It gives letters the values 1 to 8, and no letter gets 9. Western numerology uses the Pythagorean table. It runs from A = 1 to I = 9, then starts again at J.
Table | J | O | H | N | D | O | E | Total | Number |
|---|---|---|---|---|---|---|---|---|---|
Chaldean | 1 | 7 | 5 | 5 | 4 | 7 | 5 | 34 | 7 |
Pythagorean | 1 | 6 | 8 | 5 | 4 | 6 | 5 | 35 | 8 |
So John Doe's name number is 7 or 8, by table. Each is right inside its own system. The bug is mixing them without a label. Our API keeps them apart. The Indian numbers read the Chaldean total, and the Pythagorean total comes back beside it, marked "read": false. The Western numbers use the Pythagorean table only.
Hard part 2: master numbers and the Lo Shu grid
Master numbers are 11, 22 and 33. Western practice keeps them whole. Indian practice reduces them to one digit. John's bhagyank passes through 33 on its way to 6, so the API returns 6 with "master": true.
His Western life path never meets 33. It reduces the month, the day and the year one by one: 8 + 6 + 1 = 15, then 6. Jane Doe, born Mar 22, 1992, shows the other side. Her Western birthday number stays 22, but her mulank is 4. So each Western number carries number, which keeps the master number, and digit, which reduces it.
The grid has the same problem. The Lo Shu grid is a 3 by 3 square of the numbers 1 to 9. It is filled from the digits of a birth date. Books disagree on what else goes in. Our API adds the bhagyank, plus the mulank when the day has two digits. We filled John's grid three ways.
What goes into the grid | Times 6 appears | Missing numbers | Full lines |
|---|---|---|---|
Date, bhagyank and mulank (the API's rule) | 2 | 2, 3, 4, 7 | practical, willpower |
Date and bhagyank | 1 | 2, 3, 4, 7 | practical, willpower |
Date digits only | 0 | 2, 3, 4, 6, 7 | willpower |
One person, three grids. An app that follows the first rule shows John's 6 twice. An app that uses the date alone lists it as missing. Our API names its rule in a basis field, so your screen can say which method it uses. Our conventions page lists every choice like this.
Hard part 3: names in English letters, spelled the user's way
A name's number depends on its exact spelling. Drop the H, and "Jon Doe" adds up to 29 in the Chaldean table. That reduces to 11, then 2. John Doe, with the H, is 7.
That is why our API reads names in English letters only. We sent John's name in Devanagari, the script Hindi is written in. The API refused it with a 422 error, asking for English letters because the spelling changes the number. A guessed spelling could answer for a name the person never uses.
For your app, this means one form field and one check. Ask for the name as the user spells it in English letters. Show it back with each word's total, so the user can catch a typo. The name checker compares up to 10 spellings in one call.
Hard part 4: hundreds of readings, in 2 languages
The arithmetic is the small part. In our engine, the two letter tables and the Indian sums fit in one file of 156 lines, comments included. The readings run to 54,362 words.
The 371 standard readings cover the core numbers, the grid, the checks, the cycles and the Western numbers. 169 of them also have a long form, about 5.5 times as long, for screens that show the full text. Hindi has the same 540 texts, key for key.
Each text also has to pass checks. Our tests make sure Hindi has every English key and no Latin letters. No sentence may run over 25 words. Illness names and past-life claims are banned. Another test makes sure no fit outcome covers 80% of cases or more, so a check never tells everyone the same thing.
Hindi comes from the same call. Add lang=hi, and the readings come back in simple Hindi. The codes stay in English, so your app's logic does not change. For John, planet stays "Venus", and planet_name becomes "शुक्र".
Every answer with a reading also carries a not_claimed line: "Numbers describe tendencies, not fixed events. Use them as a guide, not a rule." Show it near the readings.
See the screens side by side. Our numerology apps use case maps each screen to its call, with the credits a daily screen uses.

What the API covers, and what stays yours
Part | Who does it |
|---|---|
Core numbers, cycles, checks and compatibility, with each rule named | The API |
Readings in English, Hindi and more languages as they launch, in 2 lengths | The API |
The report, as HTML or JSON | The API |
Sign-in, profiles, payments and subscriptions | You |
Screens, design and daily alerts | You |
Your own words around the readings | You |
Indian, Western or both, with a label on each number | You |

Your own words sit around the reading. The API writes the reading. Your team writes the screen title, the line above the reading, the alert that brings users back and the share card.
Make every call from your server. A key shipped inside a phone app is not secret, because people can read it from the app's files. Your server holds the key and makes the calls.
Birth charts follow the same split. If your app also shows kundlis, read our guide to astrology app development. Both APIs take the same key.
A short build plan
Step | Screen | Call | Check with John Doe |
|---|---|---|---|
1 | Sign-up and core numbers |
| Mulank 6, bhagyank 6, name number 7 |
2 | Personal year and daily screen |
| Oct 1, 2026: year 6, month 7, day 8 |
3 | Paid report |
| 12 chapters |
4 | Hindi | add | The same numbers, with Hindi text |
5 | Name, number and match checks |
| "Jon Doe" gives 2 |
Step 2 needs one detail. Send the user's own local date as as_of. Without it, the API uses its own date, and that date may not match the user's.
John Doe, born Aug 15, 1990, on Oct 1, 2026
curl -X POST "https://apiforastrology.com/api/numerology/v1/cycles?as_of=2026-10-01" \
-H "Authorization: Bearer $ASTROLOGY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"birth_date":"1990-08-15"}'The answer, trimmed to the numbers
{
"birth_date": "1990-08-15",
"as_of": "2026-10-01",
"year": { "number": 6 },
"month": { "number": 7 },
"day": { "number": 8 }
}The personal year adds 8 for August, 6 for the 15th and 1 for 2026. That is 15, and 1 + 5 = 6. October adds 10, so the month is 6 + 10 = 16, then 7. The 1st adds 1, so the day is 8. The year number changes on January 1.
Step 3 is one call too. Send format=json to lay out the 12 chapters in your own design, or use the HTML page as it comes. It uses 25 reading credits, against 1 to 3 for each other screen. The report page describes each chapter.
John Doe's report as JSON, trimmed to 3 of its 12 chapters
{
"cover": { "title": "John Doe", "glance": "Mulank 6 · Bhagyank 6 · Name number 7" },
"chapters": [
{ "number": 1, "key": "glance", "title": "Your numbers at a glance" },
{ "number": 5, "key": "loshu", "title": "Your Lo Shu grid" },
{ "number": 12, "key": "year", "title": "Your year, month and day" }
]
}Make your first call. The numerology quickstart walks through John Doe's profile call, step by step. The free numerology calculator runs on the same call, for any name and date.

When two numerology apps show one person two numbers, check the rules first. Look at the letter table, the master numbers and the grid inputs. Buy an engine that names each rule in its answer. Then spend your own build on the screens and the words around the readings, where your app is different.



