Birth charts
Kundli (Birth Chart) API
Updated
How the kundli API works
- 1At the moment a person is born, the Sun, the Moon and the planets each sit somewhere in the sky.
- 2A birth chart freezes that moment and places each planet in one of 12 houses, starting from the sign rising in the east.
- 3The API returns every planet's sign, degree and house, and the rising sign, from a birth date, time and place.
POST /v1/planets200 OK{
"ascendant": {
"sign": "Virgo",
"degree_in_sign": 19.934155,
"nakshatra": "Hast"
},
"positions": [
{
"name": "Sun",
"sign": "Cancer",
"degree_in_sign": 28.7753409,
"house": 11,
"nakshatra": "Ashlesha"
},
{
"name": "Moon",
"sign": "Taurus",
"degree_in_sign": 24.5750352,
"house": 9,
"nakshatra": "Mrigashira"
}
]
}Call the kundli API from your code
Send the details as JSON with your API key in the Authorization header. Copy the code, set ASTROLOGY_API_KEY to your key, and run it.
POST /v1/planets
# John Doe, born Aug 15, 1990, 10:30 AM, New York
curl -X POST "https://apiforastrology.com/api/astrology/v1/planets" \
-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"}'{
"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"
}
},
"ascendant": {
"name": "Ascendant",
"longitude": 169.934155,
"sign": "Virgo",
"sign_number": 6,
"degree_in_sign": 19.934155,
"degree_dms": "19 : 56 : 03",
"house": 1,
"nakshatra": "Hast",
"nakshatra_lord": "Moon",
"pada": 3,
"speed": 0,
"retrograde": false,
"combust": false,
"dignity": "n/a",
"vargottama": false,
"pushkara": {
"navamsa": false,
"navamsa_number": 6,
"bhaga": false,
"bhaga_degree": 9,
"bhaga_by_element": false,
"bhaga_degree_by_element": 14,
"sources_agree": true,
"orb_degrees": 1
}
},
"positions": [
{
"name": "Sun",
"longitude": 118.7753409,
"sign": "Cancer",
"sign_number": 4,
"degree_in_sign": 28.7753409,
"degree_dms": "28 : 46 : 31",
"house": 11,
"nakshatra": "Ashlesha",
"nakshatra_lord": "Mercury",
"pada": 4,
"speed": 0.9610665,
"retrograde": false,
"combust": false,
"dignity": "friend",
"vargottama": false,
"pushkara": {
"navamsa": false,
"navamsa_number": 9,
"bhaga": false,
"bhaga_degree": 8,
"bhaga_by_element": false,
"bhaga_degree_by_element": 7,
"sources_agree": true,
"orb_degrees": 1
}
},
{
"name": "Moon",
"longitude": 54.5750352,
"sign": "Taurus",
"sign_number": 2,
"degree_in_sign": 24.5750352,
"degree_dms": "24 : 34 : 30",
"house": 9,
"nakshatra": "Mrigashira",
"nakshatra_lord": "Mars",
"pada": 1,
"speed": 14.258194,
"retrograde": false,
"combust": false,
"dignity": "mulatrikona",
"vargottama": false,
"pushkara": {
"navamsa": false,
"navamsa_number": 8,
"bhaga": false,
"bhaga_degree": 14,
"bhaga_by_element": false,
"bhaga_degree_by_element": 14,
"sources_agree": true,
"orb_degrees": 1
}
},
{
"name": "Mars",
"longitude": 27.7149328,
"sign": "Aries",
"sign_number": 1,
"degree_in_sign": 27.7149328,
"degree_dms": "27 : 42 : 54",
"house": 8,
"nakshatra": "Krittika",
"nakshatra_lord": "Sun",
"pada": 1,
"speed": 0.5753266,
"retrograde": false,
"combust": false,
"dignity": "own sign",
"vargottama": false,
"pushkara": {
"navamsa": true,
"navamsa_number": 9,
"bhaga": false,
"bhaga_degree": 21,
"bhaga_by_element": false,
"bhaga_degree_by_element": 21,
"sources_agree": true,
"orb_degrees": 1
}
}
],
"planetary_war": []
}What the kundli API returns
- The rising sign (ascendant) and all nine planets: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu and Ketu. Rahu and Ketu are two points on the Moon's path that Vedic astrology counts as planets.
- For each one: its sign, its degree in the sign and its house. Also its nakshatra (one of 27 star groups) and the pada (the quarter of the nakshatra).
- Whether each planet is retrograde (seeming to move backward) or combust (too close to the Sun). Also its dignity (how well it is placed in its sign), such as exalted or own sign.
- Whether a planet is vargottama: in the same sign in the birth chart and the navamsa (D9). Also any planetary war, when two of Mars, Mercury, Jupiter, Venus and Saturn are within 1 degree of each other.
- Any of the 16 divisional charts, from D1 to D60, with each planet's sign and house in that chart. The navamsa (D9) is the one most apps show next to the birth chart.
- The chart as a picture (POST /v1/chart/svg): the birth chart or any divisional chart in North Indian (diamond), South Indian (square) or East Indian style. It comes as an SVG image, or as a PNG with format=png. It loads no outside files, so it looks the same on a web page, in an app or in a PDF.
- The sudarshana chakra (POST /v1/chart/sudarshana): the chart read three times, with the houses counted from the rising sign, the Moon and the Sun.
- The aspects: which houses and planets each planet looks at, and which planets look at it.
- The bhava chalit chart (POST /v1/chart/chalit): houses measured from the exact rising degree, with the planets that move to another house.
- The KP chart (POST /v1/kp): Placidus house cusps, and the star, sub and sub-sub lord of every planet and cusp. Each house lists its significators, the planets that give its results.
- Special lagnas (POST /v1/special-lagnas), extra rising points such as the hora, ghati and indu lagna, plus the yogi point.
- Upagrahas (POST /v1/upagrahas): Gulika, Mandi and the other sensitive points that are not planets.
- Only need the rising sign? POST /v1/ascendant returns just that.
Planets come back by name, such as "Mars", never by number. Every divisional chart has the same shape, so the navamsa fits next to the birth chart in the same code. The chart picture is drawn from the same positions, so the image and the data always agree.
Kundli API endpoints
POST /v1/planetsPlanet positions and the ascendantPOST /v1/ascendantThe ascendant onlyPOST /v1/chart/{division}Any of the 16 divisional charts (D1 to D60)POST /v1/aspectsPlanet aspects (graha drishti)POST /v1/chart/chalitBhava chalit: houses by the Sripati methodPOST /v1/kpKrishnamurti Paddhati: cusps, sub lords, significatorsPOST /v1/special-lagnasSpecial lagnas, the yogi point, Jaimini lords and dagdha signsPOST /v1/upagrahasUpagrahas: Gulika, Mandi, the kaala velas and the Dhoomadi pointsPOST /v1/chart/svgThe birth chart or any divisional chart as an SVG or PNG imagePOST /v1/chart/sudarshanaSudarshana chakra: the chart from the ascendant, Moon and Sun
What it uses from your plan
Each call to these endpoints uses 1 call from your monthly allowance. Failed requests are free.
See the plansTry it free
No code needed
Free kundli
Your Vedic birth chart: the rising sign and all nine planets, with sign, house and nakshatra.
Make my kundliNakshatra finder
Your birth star: the Moon's nakshatra, its quarter (pada), its ruler and your Moon sign.
Find my nakshatra
The 16 divisional charts in the kundli API
Send D1 to D60 to POST /v1/chart/{division}. Each chart splits every sign into smaller parts and is read for one area of life. The response says which area in its signifies field.
| Chart | Each sign split into | Read for |
|---|---|---|
| Rasi (D1) | 1 part: the birth chart | The body and life as a whole |
| Hora (D2) | 2 parts | Wealth |
| Drekkana (D3) | 3 parts | Brothers, sisters and courage |
| Chaturthamsa (D4) | 4 parts | Property and fortune |
| Saptamsa (D7) | 7 parts | Children |
| Navamsa (D9) | 9 parts | The spouse, and how strong each planet really is |
| Dasamsa (D10) | 10 parts | Career and status |
| Dwadasamsa (D12) | 12 parts | Parents |
| Shodasamsa (D16) | 16 parts | Vehicles and comforts |
| Vimsamsa (D20) | 20 parts | Spiritual practice |
| Chaturvimsamsa (D24) | 24 parts | Education and learning |
| Bhamsa (D27) | 27 parts | Strengths and weaknesses |
| Trimsamsa (D30) | 5 unequal parts | Misfortune and hardship |
| Khavedamsa (D40) | 40 parts | Good and bad effects |
| Akshavedamsa (D45) | 45 parts | General conduct |
| Shashtiamsa (D60) | 60 parts | The finest detail; the texts read it for past-life matters |
The Read for column is the API's own signifies field, in plain words. It is the same for every birth chart. Most charts use equal parts. The hora (D2) maps its two halves to Leo and Cancer only, and the trimsamsa (D30) uses parts of 5, 5, 8, 7 and 5 degrees.
The rules behind the kundli API
The chart is sidereal, measured against the fixed stars. It uses the Lahiri ayanamsa (the zodiac offset) by default, with KP and Raman on request. Houses are whole signs: the rising sign is house 1, the next sign is house 2, and so on (CH-06). The sudarshana chakra keeps the signs and counts the houses again from the Moon and the Sun (CH-20). Each sign has one ruling planet, as in the Parashari school, the main classical one (CH-01). Most divisional charts split each sign into equal parts and count them from a fixed starting sign (VG-01, VG-02). The hora and the trimsamsa have rules of their own (VG-05, VG-06). Aspects are counted in whole houses, not degrees (AS-01). Schools disagree on whether Rahu and Ketu cast aspects, so you can leave them out with nodes=false (AS-05). The chalit chart uses the Sripati method and comes beside the whole-sign house, never in its place (CH-15, CH-16). KP uses Placidus cusps, in its own endpoint only (KP-04). The API does not return Western (tropical) positions.
How we check the numbers
Every answer here starts from planet positions worked out from NASA JPL planet data (DE440). We test them against NASA JPL Horizons, NASA's planet position service. On 25,571 positions from 1850 to 2149, the Sun and planets agree within 0.001 arc seconds. The Moon agrees within 0.011. On 2,000 random birth charts, the rising sign agrees with Swiss Ephemeris within 0.004. An arc second is 1/3,600 of a degree. Our tests fail if a result drifts past these figures.
A practicing astrologer reviews the rules behind these answers. Each rule has an ID you can look up in the public rulebook.
See how we test accuracyTerms used here
Who uses it
- Astrology appsCharts, dashas, daily readings and a printable report from one API. A small team can ship a full astrology app with it.

- Publishers and mediaDaily panchang, Moon-sign horoscopes, festival dates and sky events for any city, ready to publish every day.

- Astrologer consultation platformsCharts, dashas and yogas for every client, with the rule behind each answer. Send a printable report after the session.

- Baby name appsThe birth star, its quarter and the traditional first syllable for a baby's name. It works from the birth date, time and place.

- Gemstone and jewelry storesA gemstone picked from each customer's chart, with the reason. Also the metal, the finger and the day to first wear it.

From the blog

· 8 min read
Time Zone Errors in Birth Charts: The Daylight Saving Bug
One wrong hour moved John Doe's rising sign 11.9 degrees in our API tests.
Read
· 10 min read
Unknown Birth Time: How Astrology Apps Should Handle It
Unknown birth time?
Read
· 8 min read
Moon Sign, Sun Sign and Rising Sign: How Each Is Found
The birth details an app needs for the Moon sign, Sun sign and rising sign.
Read
Kundli API questions
All questionsWhich divisional charts can I get?
All 16: D1, D2, D3, D4, D7, D9, D10, D12, D16, D20, D24, D27, D30, D40, D45 and D60. Call POST /v1/chart/D9 for the navamsa, and so on; 9 and d9 work too. Every chart has the same shape, with a signifies field that says what it is used for.
What a divisional chart isWhat if my user does not know their birth time?
The hour and minute default to 0, so a missing time is read as midnight. Slow planets rarely change sign in a day. But the rising sign changes about every two hours, and the Moon moves about 13 degrees a day. So the houses, the ascendant and the Moon's nakshatra can be wrong without a time.
What birth details does a kundli API call need?
The date, the local clock time and the place: latitude, longitude and the time zone. Send the zone as a name, such as America/New_York. The API then applies the clock rules in force at that exact moment, daylight saving time included. Longitude is negative west of Greenwich, so New York is 40.7128 and -74.006.
Make your first callCan the kundli API draw a North or South Indian chart?
Yes, and an East Indian one too. POST /v1/chart/svg draws the birth chart or any of the 16 divisional charts in the style you pick. It returns an SVG image, a PNG with format=png, or the image with its placements as JSON. The image loads no outside files. Use the PNG for the email and chat apps that cannot show SVG.
See the chart endpointsCan planet and sign names come back in another language?
Yes. Add lang=hi for Hindi. Planets, signs, nakshatras and months then come in that language, each with its English name beside it in a matching _en field. Codes and keys stay in English, so your code can rely on them.
Can the KP chart answer a horary question?
Not POST /v1/kp, which reads a birth chart. For one question, POST /v1/prashna/kp takes a number from 1 to 249 that the person picks, and one of eight topics. It uses the same KP setup and needs no birth details. POST /v1/prashna reads the question the classical way instead.
About the prashna APICan I choose true or mean Rahu and Ketu?
Yes. Send node set to true for their actual position, which is the default, or mean for the averaged one. The same choice works on every endpoint that takes birth details, and the meta block in the response shows which one was used.
True and mean nodesDo Rahu and Ketu cast aspects?
Schools disagree, so you choose. POST /v1/aspects includes them by default, and nodes=false leaves them out. Aspects are counted in whole houses: every planet aspects the 7th house from itself, and Mars, Jupiter and Saturn also have their special aspects.
Read rule AS-05How is dignity decided when two states apply?
Dignity has seven values: exalted, mulatrikona, own sign, friend, neutral, enemy and debilitated. When more than one applies, only the strongest is reported. The degree matters too: Mars in Aries is mulatrikona up to 12 degrees and own sign after that.
What dignity meansAstrology API
Call it with a free test key
Create an account and a test key, then call any endpoint on this page. Or try a request in the API reference first.
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