Skip to content

Kundali

One call returns a complete kundali: the lagna and nine grahas with their signs, houses, nakshatras and padas, the D1 and D9 charts, the Moon’s nakshatra and naming syllable, the Vimshottari dasha timeline and meta. Everything else is opt-in through include, and it all costs one credit.

POST/v1/kundali1 creditReference
Terminal window
curl https://api.navapatra.com/v1/kundali \
-H "Authorization: Bearer $NAVAPATRA_API_KEY" \
-H "Navapatra-Version: 2026-11-01" \
-H "Content-Type: application/json" \
-d '{
"birth": {
"calendar": "BS",
"date": "2050-05-12",
"time": "14:35:00",
"place": { "lat": 28.2096, "lng": 83.9856 }
},
"options": { "ayanamsha": "lahiri", "nodeType": "mean", "sensitivityMinutes": 10 },
"include": ["panchang", "svg"]
}'
Field Required Notes
calendar No AD (default) or BS; the calendar of date
date Yes YYYY-MM-DD. AD 1900-01-01 to 2100-12-31
time Yes HH:mm or HH:mm:ss, local civil time at the birthplace
place Yes { "lat", "lng" }, or { "query" } with an optional two-letter country
tzid No IANA zone, replaces the coordinate lookup
utcOffset No ±HH:mm, replaces the tz database; see Timezones

Places by name. place.query is matched against a bundled gazetteer (GeoNames cities of 15,000 people or more worldwide, about 3,800 of them in India, plus every Nepal district, local level and town). Places in Nepal rank a little higher (more so with lang: "ne"), though an exact name elsewhere still wins over a partial match in Nepal. If the name fits more than one place, the API refuses to guess and returns 422 ambiguous_place with up to 10 candidates; show them to the user and send the chosen one’s lat and lng. Adding a country ("Pokhara, Nepal" or "country": "NP") usually settles it. No match returns 422 place_not_found. To build a place picker, use GET /v1/places/search, which costs nothing. Its ambiguous flag is true when the same rule would refuse the name, so you know to ask the user before sending the birth.

Value Adds
vargas All 16 divisional charts: D1, D2, D3, D4, D7, D9, D10, D12, D16, D20, D24, D27, D30, D40, D45, D60
dashas.yogini dashas.yogini timeline
dashas.tribhagi dashas.tribhagi timeline
panchang Birth panchang: vara, tithi with paksha, nakshatra, yoga, karana, lunar month
svg svg.north, the North Indian D1 chart
svg.south svg.north and svg.south

Without include you get the default sections only. None of them changes the price.

Option Default Notes
ayanamsha lahiri lahiri, lahiri_icrc, true_chitra, raman, kp
nodeType mean mean or true
sensitivityMinutes none Integer 1 to 60; adds sensitivity
dasha levels 2 { levels, yearDays, asOf }; see Dashas
tradition nepal Lunar month scheme of the birth panchang
sunriseConvention upper_limb_refracted Used by the birth panchang
disambiguation none earlier or later for clock-change times
nepalHistoricOffset tzdb historic_0540 for the +05:40 convention before 1986

Plus lang (en, ne, hi) and numerals (latin, devanagari) at the top level. See Conventions for what each one means.

{
"subject": {
"instantUtc": "1993-08-28T08:50:00Z",
"place": { "lat": 28.2096, "lng": 83.9856 },
"tzid": "Asia/Kathmandu",
"utcOffset": "+05:45",
"offsetSource": "tzdb",
"birth": { "ad": "1993-08-28", "bs": "2050-05-12" }
},
"lagna": {
"sign": { "index": 9, "name": "Dhanu" },
"longitude": 245.8854,
"nakshatra": { "index": 19, "name": "Mula" },
"pada": 2
},
"grahas": [
{
"id": "moon",
"name": "Moon",
"sign": { "index": 9, "name": "Dhanu" },
"longitude": 269.0004,
"speed": 12.5652,
"house": 1,
"retrograde": false,
"nakshatra": { "index": 21, "name": "Uttara Ashadha" },
"pada": 1
}
],
"vargas": {
"D1": { "lagna": { "index": 9, "name": "Dhanu" }, "moon": { "index": 9, "name": "Dhanu" }, "...": "..." },
"D9": { "lagna": { "index": 2, "name": "Vrishabha" }, "moon": { "index": 9, "name": "Dhanu" }, "...": "..." }
},
"moon": {
"rashi": { "index": 9, "name": "Dhanu" },
"nakshatra": { "index": 21, "name": "Uttara Ashadha" },
"pada": 1,
"syllable": { "index": 81, "en": "Bhe", "ne": "भे", "hi": "भे" }
},
"dashas": { "vimshottari": { "...": "see Dashas" } },
"panchang": {
"vara": { "index": 6, "name": "Saturday" },
"tithi": {
"index": 12,
"name": "Dwadashi",
"start": "1993-08-27T21:04:12Z",
"end": "1993-08-28T21:54:23Z",
"paksha": { "id": "shukla", "index": 1, "name": "Shukla" }
},
"nakshatra": { "index": 21, "name": "Uttara Ashadha", "start": "1993-08-28T04:22:55Z", "end": "1993-08-29T05:58:22Z" },
"yoga": { "index": 4, "name": "Saubhagya", "start": "1993-08-28T08:18:52Z", "end": "1993-08-29T08:06:32Z" },
"karana": { "index": 1, "name": "Bava", "start": "1993-08-27T21:04:12Z", "end": "1993-08-28T09:26:14Z" },
"lunarMonth": {
"index": 5,
"name": "Adhik Bhadrapada",
"start": "1993-08-17T19:28:15Z",
"end": "1993-09-16T03:10:15Z",
"adhik": true,
"scheme": "purnimanta"
}
},
"sensitivity": [
{
"field": "lagnaD9",
"from": { "index": 2, "name": "Vrishabha" },
"to": { "index": 3, "name": "Mithuna" },
"changesAt": "1993-08-28T08:53:24Z"
}
],
"svg": { "north": "<svg xmlns=\"http://www.w3.org/2000/svg\" ...>" },
"meta": {
"engineVersion": "0.1.0",
"apiVersion": "2026-11-01",
"ayanamsha": { "id": "lahiri", "degrees": 23.773159 },
"nodeType": "mean",
"tradition": "nepal",
"sunriseConvention": "upper_limb_refracted",
"tzdbVersion": "unknown",
"deltaTModelVersion": "iers-c01-2026.5+quad2100-v1",
"bsTableVersion": "2026.10.1",
"overridesVersion": null
}
}
  • grahas always lists nine entries in the order sun, moon, mars, mercury, jupiter, venus, saturn, rahu, ketu. Longitudes are sidereal degrees in [0, 360), speed is degrees per day and negative values mean retrograde: true.
  • house is whole-sign: house 1 is the lagna’s sign.
  • vargas maps each chart to the sign of the lagna and every graha. You get D1 and D9 by default, all 16 with include: ["vargas"].
  • moon.syllable is the naming syllable (namakshar) for the Moon’s nakshatra and pada, in all three scripts at once.
  • panchang describes the moment of birth: the tithi, nakshatra, yoga and karana running then, with their start and end instants.

Recorded birth times are often rounded. options.sensitivityMinutes: N checks whether anything important changes within N minutes either side of the given time and lists each change:

field What changes
lagnaD1 Sign of the lagna
lagnaD9 Sign of the lagna in the D9 chart
moonNakshatra The Moon’s nakshatra
moonPada The Moon’s pada

In the example above, a birth 3 minutes and 24 seconds later than recorded would have a Mithuna D9 lagna instead of Vrishabha. When nothing changes within the window, sensitivity is []. Without the option, the field is absent.

Surface this to users: “Your D9 lagna changes if you were born after 14:38.”

POST/v1/kundali/planets1 creditReference

The same birth and chart options (ayanamsha, nodeType, disambiguation, nepalHistoricOffset), returning only subject, lagna, grahas and meta. Use it when you need positions and nothing else.

A default kundali is about 13 KB of JSON. Every response is capped at 512 KB; a request that would exceed it (for example all vargas, every dasha system and levels: 3) returns 413 response_too_large with a hint such as dropping vargas or lowering options.dasha.levels. Responses are compressed with gzip or brotli when your client asks.

The same request with the same meta versions returns byte-identical JSON, and nothing in it depends on when you call. That makes kundali responses safe to cache on your side, keyed by the request body and meta.