New Numerology API

Birth charts

Kundli (Birth Chart) API

The kundli API from API for Astrology (apiforastrology.com) turns a birth date, time and place into a Vedic birth chart as JSON.

Updated

© API for Astrology (apiforastrology.com). "Birth chart explained". All rights reserved. Not to be copied or reused.The sky at birthJohn Doe's birth chartEarthAscSuMoMaMeJuVeSaRaKeNew York, Aug 15, 1990, 10:30 AMAscSuMoMaMeJuVeSaRaKeVirgo rising, in house 1 at the top

How the kundli API works

  1. 1At the moment a person is born, the Sun, the Moon and the planets each sit somewhere in the sky.
  2. 2A birth chart freezes that moment and places each planet in one of 12 houses, starting from the sign rising in the east.
  3. 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"
    }
  ]
}
Where the rising sign (ascendant), the Sun and the Moon were when John Doe was born: zodiac sign, degree within the sign, house, and nakshatra (one of 27 star groups along the Moon's path). Real output for John Doe, born Aug 15, 1990, 10:30 AM, New York.

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"}'
Response (lists shortened)200 OK
{
  "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

What it uses from your plan

Each call to these endpoints uses 1 call from your monthly allowance. Failed requests are free.

See the plans

Try 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 kundli
  • Nakshatra 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.

ChartEach sign split intoRead for
Rasi (D1)1 part: the birth chartThe body and life as a whole
Hora (D2)2 partsWealth
Drekkana (D3)3 partsBrothers, sisters and courage
Chaturthamsa (D4)4 partsProperty and fortune
Saptamsa (D7)7 partsChildren
Navamsa (D9)9 partsThe spouse, and how strong each planet really is
Dasamsa (D10)10 partsCareer and status
Dwadasamsa (D12)12 partsParents
Shodasamsa (D16)16 partsVehicles and comforts
Vimsamsa (D20)20 partsSpiritual practice
Chaturvimsamsa (D24)24 partsEducation and learning
Bhamsa (D27)27 partsStrengths and weaknesses
Trimsamsa (D30)5 unequal partsMisfortune and hardship
Khavedamsa (D40)40 partsGood and bad effects
Akshavedamsa (D45)45 partsGeneral conduct
Shashtiamsa (D60)60 partsThe 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 accuracy

From the blog

Kundli API questions

All questions
Which 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 is
What 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 call
Can 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 endpoints
Can 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 API
Can 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 nodes
Do 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-05
How 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 means

Astrology 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

POST /v1/planets200 OK
  • RisingVirgoHast
  • SunCancerAshlesha
  • MoonTaurusMrigashira
  • MarsAriesKrittika

Real API output. A free test key gets the same answer.

  1. 01

    Test key: 1,000 test calls a month to build with

  2. 02

    Free plan: 2,000 live calls a month, no card needed

  3. 03

    Open rules: every rule is published, so you can check any answer