Use case
AI astrology API for assistants and chatbots
Updated
How it works
- 1A user asks a chat assistant a question about their own chart.
- 2Instead of guessing, the assistant asks the API, using the user's birth details.
- 3The API returns the exact answer, and the assistant quotes it and shows where it came from.
POST /v1/dosha/manglik200 OK{
"dosha": "manglik",
"rule": "Mars occupying house 1, 2, 4, 7, 8 or 12, counted separately from the ascendant, from the Moon and from Venus",
"present": true,
"cancellations": [
"Mars is in its own sign"
],
"answer": {
"status": "present",
"headline": "Manglik dosha is present, counted from your ascendant and your Moon. The main checks count from your ascendant (the sign rising at your birth) and from your Moon. It is common: about three in four…"
}
}How to give an AI assistant real astrology
Each step is one call, linked to its page in the API reference. Where a card shows values, they are real API output. Planet positions come from NASA JPL planet data (DE440). We check them against NASA JPL Horizons. On 25,571 positions from 1850 to 2149, the Sun and planets agree within 0.001 arc seconds. The Moon agrees within 0.011. An arc second is 1/3,600 of a degree. See how we test accuracy. A practicing astrologer reviews the rules behind these answers. Each rule has an ID in the public rulebook.
- 01
Summarize a chart
POST /v1/summaryA plain-language summary with no planet names or Sanskrit, ready for the model to quote. Each part says what it is based on.
- life.work.verdict
- "mixed"
- life.work.leans
- "supports"
- now.period.lord
- "Jupiter"
- now.period.ends
- "2030-12-20T19:27:09.380502"
Real output from the example in the API reference.
- 02
Answer dosha questions
POST /v1/dosha/{name}Doshas are chart features tradition treats as problems. Call it with all for manglik dosha, kaal sarp dosh and pitra dosh at once. Each result has an answer block: a status, a headline, what it means and what to do next.
- dosha
- "manglik"
- present
- true
- answer.status
- "present"
Real output from the example in the API reference.
- 03
Check compatibility
POST /v1/matchingA one-word verdict, a headline, and the concerns and strengths behind it. The model can put the result in its own words without changing it.
- conclusion.verdict
- "workable"
- conclusion.headline
- "This match can work. The main checks pass, with 22.5 out of 36 points. But a few things need a closer look before you decide. They are listed below."
Real output from the example in the API reference.
- 04
Answer a life question
POST /v1/reading/section/{section_id}Career, love, wealth, personality or education, each opening with a direct answer. Use ids such as topic:professional-life.
- section.id
- "topic:personality"
- blocks.0.answer.headline
- "You tend to have a clear sense of who you are, and people often notice it. Energy and confidence usually come easily to you, and you bounce back well when life gets hard."
Real output for John Doe, born Aug 15, 1990, 10:30 AM, New York.
- 05
Talk about today
POST /v1/reading/dailyThe day for one person: the Moon's position counted from their birth Moon, the slower planets and their running periods.
- moon.title
- "The Moon in the 1st from your own"
- moon.result
- "favorable"
- transits.0.title
- "Sun in the 5th from your Moon"
Real output from the example in the API reference.
What you send, what you get, what it costs
| You send | Birth details from the conversation, and both people's details for a match. |
|---|---|
| You get | A plain chart summary, dosha answers, a match verdict, answers to life questions and a daily reading, each with its rule, for the model to quote. |
| It costs | Step 1: 2 reading credits.Steps 2, 3 and 5: 1 call each.Step 4: 1 reading credit a chapter (3 for the year ahead). |
Costs are for a live key, and failed requests are free. The Free plan includes 2,000 calls and 150 reading credits a month.
Step 1 in code: summarize a chart
Send the details as JSON, with your API key in the Authorization header. The other steps work the same way, and each one links to its page in the API reference.
POST /v1/summary
# John Doe, born Aug 15, 1990, 10:30 AM, New York
curl -X POST "https://apiforastrology.com/api/astrology/v1/summary?as_of=2026-10-01" \
-H "Authorization: Bearer $ASTROLOGY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"year":1990,"month":8,"day":15,"hour":10,"minute":30,"second":0,"latitude":40.7128,"longitude":-74.006,"timezone":"America/New_York"}'{
"who": {
"approach": "earth",
"feeling": "earth"
},
"strengths": {
"houses": [
1,
9,
5
]
},
"effort": {
"houses": [
6,
8
]
},
"contested": {
"houses": [
12,
4,
11
]
},
"life": {
"work": {
"house": 10,
"lord": "Mercury",
"verdict": "mixed",
"leans": "supports",
"outcome": "helped"
},
"money": {
"house": 2,
"lord": "Venus",
"verdict": "mixed",
"leans": "strains",
"outcome": "strained"
},
"love": {
"house": 7,
"lord": "Jupiter",
"verdict": "mixed",
"leans": "strains",
"outcome": "strained"
},
"health": {
"house": 1,
"lord": "Mercury",
"verdict": "mixed",
"leans": "supports",
"outcome": "helped"
}
},
"features": {
"buckets": [
"detachment"
],
"doshas": [],
"yogas_by_bucket": {
"detachment": [
"Pravrajya"
]
}
},
"now": {
"period": {
"lord": "Jupiter",
"verdict": "mixed",
"leans": "strains",
"outcome": "strained",
"rules_lucky_house": false,
"starts": "2014-12-20T19:27:09.380502",
"ends": "2030-12-20T19:27:09.380502",
"level": "mahadasha"
},
"sub_period": {
"lord": "Moon",
"verdict": "mixed",
"leans": "supports",
"outcome": "helped",
"rules_lucky_house": false,
"starts": "2026-04-21T07:27:09.380502",
"ends": "2027-08-21T07:27:09.380502",
"level": "antardasha"
},
"sade_phase": "none"
},
"year": {
"balance": "mixed",
"counts_in_days": {
"favorable": 244,
"unfavorable": 484
},
"spans": [
{
"graha": "Jupiter",
"house_from_moon": 3,
"verdict": "unfavorable",
"days": 30,
"starts": "2026-10-01T00:00:00",
"ends": "2026-10-31T02:32:49"
},
{
"graha": "Saturn",
"house_from_moon": 11,
"verdict": "favorable",
"days": 244,
"starts": "2026-10-01T00:00:00",
"ends": "2027-06-02T19:58:05"
},
{
"graha": "Jupiter",
"house_from_moon": 4,
"verdict": "unfavorable",
"days": 85,
"starts": "2026-10-31T02:32:49",
"ends": "2027-01-24T15:01:25"
}
],
"read_from": "Jupiter and Saturn, counted from the natal Moon, weighed by how long each stands where it stands",
"not_claimed": "no score. A year is called steady, mixed or demanding, and the transits it was read from are listed beside it"
},
"do": {
"stone": "Emerald",
"stone_caution": null,
"days": [
"Wednesday",
"Friday"
],
"colors": [
"green",
"olive",
"white"
]
},
"because": {
"ascendant_sign": 6,
"moon_sign": 2,
"lagna_lord": "Mercury",
"strength_houses": [
1,
9,
5
],
"effort_houses": [
6,
8
],
"contested_houses": [
12,
4,
11
],
"withheld_houses": [],
"life": {
"work": {
"house": 10,
"lord": "Mercury",
"verdict": "mixed",
"leans": "supports",
"outcome": "helped"
},
"money": {
"house": 2,
"lord": "Venus",
"verdict": "mixed",
"leans": "strains",
"outcome": "strained"
},
"love": {
"house": 7,
"lord": "Jupiter",
"verdict": "mixed",
"leans": "strains",
"outcome": "strained"
},
"health": {
"house": 1,
"lord": "Mercury",
"verdict": "mixed",
"leans": "supports",
"outcome": "helped"
}
},
"features": {
"buckets": [
"detachment"
],
"doshas": [],
"yogas_by_bucket": {
"detachment": [
"Pravrajya"
]
}
},
"period": {
"lord": "Jupiter",
"verdict": "mixed",
"leans": "strains",
"outcome": "strained",
"rules_lucky_house": false,
"starts": "2014-12-20T19:27:09.380502",
"ends": "2030-12-20T19:27:09.380502",
"level": "mahadasha"
},
"sub_period": {
"lord": "Moon",
"verdict": "mixed",
"leans": "supports",
"outcome": "helped",
"rules_lucky_house": false,
"starts": "2026-04-21T07:27:09.380502",
"ends": "2027-08-21T07:27:09.380502",
"level": "antardasha"
},
"sade_phase": "none",
"year": {
"balance": "mixed",
"counts_in_days": {
"favorable": 244,
"unfavorable": 484
}
}
},
"read_from": "the rising sign and the Moon for temperament, the rules this chart fires for the areas, the dasha running now for the period, and Jupiter and Saturn from the Moon for the year",
"not_claimed": [
"no overall score, rating or percentage. No classical scheme produces one for a whole chart, and a number would look authoritative while being ours rather than the tradition’s",
"nothing here is computed differently from the full reading. It is the same chart said in ordinary words, and every section names in `because` what it was read from",
"a house whose own rules disagree is named on neither side. That disagreement is what the tensions section is for, and averaging it into a strength would be the blending `reconcile` refuses"
],
"summary": [
{
"id": "who-you-are",
"title": "In short",
"text": [
"You are practical first. You want to know how a thing really works, and you would rather do one job well than three halfway. People rely on you because you keep your word, so promise only what you can keep.",
"You settle slowly. A new home, job or friend has to feel steady before you relax, and once you do, you stay. You are slow to get hurt and slow to forget it, so give trust time to build."
],
"language": "en",
"detail": "standard",
"because": {
"rising_element": "earth",
"moon_element": "earth"
}
},
{
"id": "strengths",
"title": "What comes easily",
"text": [
"Some parts of your life come more easily than the rest: you yourself, your health and how people see you; luck, belief, teachers and long journeys; children, learning and whatever you make. Your chart backs them, so the work you put in…"
],
"language": "en",
"detail": "standard",
"because": {
"houses": [
1,
9,
5
]
}
},
{
"id": "effort",
"title": "What takes effort",
"text": [
"Other parts of your life ask more of you than they give back easily: daily work, health, competition and debt; upheaval, inheritance, and what is shared or kept hidden. Expect to work for what you get here, because your chart pulls against…"
],
"language": "en",
"detail": "standard",
"because": {
"houses": [
6,
8
]
}
}
],
"gaps": [],
"language": "en",
"detail": "standard",
"meta": {
"ayanamsa": "lahiri",
"ayanamsa_value": 23.7260727,
"julian_day": 2448119.10483,
"ephemeris": "JPL DE440s",
"node": "true",
"timezone": {
"source": "zone",
"offset_hours": -4,
"zone": "America/New_York",
"abbreviation": "EDT",
"dst": true,
"dst_hours": 1,
"ambiguous_resolved_by_fold": null,
"note": "read from the IANA tz database at this instant, so daylight saving and historical offset changes are included"
}
},
"as_of": "2026-10-01"
}Tips for going live
- Keep the API key on your server, inside the tool handler. Never put it in a prompt, a web page or a mobile app.
- Give the model five or six tools rather than the whole API. Tell it to quote the answer fields instead of adding planet positions of its own. The AI assistants guide in the docs lists the fields.
- Have the assistant ask for a missing birth time or place instead of guessing one.
- The same birth details always give the same answer, so your tests stay stable.
- Your AI provider still sees what users type, including birth details. Say so in your privacy notice.

What it costs
An AI assistant that gives 1,000 users a month a chart summary and two life-question answers each uses 4,000 reading credits. Dosha, match and daily questions use calls. Growth.
Every plan can call every endpoint: calls for calculations, reading credits for written readings. Test keys are free on every plan, with 1,000 calls a month. Paid plans start at $29 a month, and failed requests are free.
See pricingTry it free
See an answer first
Manglik dosha check
Whether Mars makes a chart manglik, counted three ways, with any exceptions.
Check for manglik dosha
Features used here
Read next
From the blog

· 9 min read
Astrology GPT: Give Your AI Chatbot Real Chart Data
Wire an astrology GPT to a chart API.
Read
· 7 min read
Hiring an Astrology App Development Company: Build or Buy
Hiring an astrology app development company?
Read
· 6 min read
AI Astrologer: Build One That Gets the Chart Right
Why an AI astrologer or ChatGPT astrology chat often invents a birth chart, and the fix.
Read
Common questions
All questionsHow do we stop the model from making up astrology?
Let the model call the API as a tool, and tell it to quote the plain-answer fields. Those are answer in dosha results and topic readings, and conclusion in a match. When no text exists for a combination, the API lists it in gaps. Tell the model to say so, not to fill the gap itself.
Read the AI assistants guideHow do we turn the endpoints into tools for our model?
Responses are JSON, and the API reference has an OpenAPI document you can build tool definitions from, or you can write them by hand. Start with a short list, such as the chart summary, doshas, matching, the daily panchang (Hindu calendar) and one reading section. Add more only when users ask for them.
Open the API referenceCan the assistant explain where an answer came from?
Yes. Yogas (planet combinations) and doshas carry a rule field that names the rule applied. Each part of the chart summary says what it is based on in a because field. Every rule is in the public rulebook, so the assistant can point users to it.
Browse the rulebookWill the same question get the same answer every time?
Yes. The text comes from fixed rules and a written library, not a language model. So the same birth details always give the same result, and your tests stay stable. Sections that depend on the date, such as remedies and transits, take as_of, so set it in your tests.
What should the assistant do when a user leaves out a birth detail?
Have it ask, never guess. A chart needs the birth date, the local time and the place with its time zone. Some questions need less. Matching works from two nakshatras (birth stars) and their padas (quarters), and the daily panchang needs only a date and a place.
Read the AI assistants guideAstrology API
Start with a free test key
Create an account and a test key, then try each step above. Need more than the largest plan? Write to us.
Your first answer
John Doe, New York
- RisingVirgoHast
- SunCancerAshlesha
- MoonTaurusMrigashira
- MarsAriesKrittika
Real API output. A free test key gets the same answer.
01
Test key: 1,000 test calls a month to build with
02
Free plan: 2,000 live calls a month, no card needed
03
Open rules: every rule is published, so you can check any answer