Skip to content

Conventions

Vedic results depend on choices that vendors rarely state: which ayanamsha, which lunar node, when the day starts. Navapatra names every one of them. You can change them per request, and the response tells you which ones were used.

Option Values Default Where
ayanamsha lahiri, lahiri_icrc, true_chitra, raman, kp lahiri All chart, dasha, matching and panchang endpoints
nodeType mean, true mean Chart, dasha and matching endpoints
sunriseConvention upper_limb_refracted, center_geometric upper_limb_refracted Kundali (birth panchang) and panchang
tradition nepal, amanta nepal Kundali (birth panchang), panchang and month grids
dasha.yearDays (or yearDays on /v1/dasha) Any number up to 400 365.25 Kundali and dasha
nepalHistoricOffset tzdb, historic_0540 tzdb Anything that takes birth input; see Timezones
lang en, ne, hi en Every endpoint with labels
numerals latin, devanagari latin for en, devanagari for ne and hi Every endpoint with labels

POST endpoints take these inside options (except lang and numerals, which sit at the top level of the body). GET endpoints take them as query parameters.

The sidereal zodiac is the tropical one shifted by the ayanamsha, so every sign, nakshatra and varga depends on it.

  • lahiri (default): Lahiri (Chitrapaksha) with the 1985 Indian Astronomical Ephemeris value, 23°15′00.658″ on 21 March 1956.
  • lahiri_icrc: Lahiri with the original Calendar Reform Committee value of 23°15′00″ on the same date, about 0.66″ less.
  • true_chitra: keeps the star Chitra (Spica) at exactly 180° sidereal.
  • raman: B. V. Raman’s ayanamsha, about 1.45° less than Lahiri.
  • kp: the Krishnamurti Paddhati (KP) ayanamsha, about 6′ less than Lahiri.

meta.ayanamsha returns the id and the value in degrees at the instant computed, for example { "id": "lahiri", "degrees": 23.773159 } for a 1993 birth.

Rahu and Ketu use the mean node by default. Set nodeType: "true" for the true (osculating) node. Ketu is always exactly opposite Rahu. Mean nodes move steadily backwards, so Rahu and Ketu show retrograde: true.

Houses are whole sign: house 1 is the sign holding the lagna, house 2 the next sign, and so on. Each graha’s house field follows this rule. The lagna itself is computed from sidereal time at the birthplace, its latitude and the true obliquity of the ecliptic.

Daily elements (the vara, and tithi, nakshatra, yoga and karana “at sunrise”) depend on when sunrise happens.

  • upper_limb_refracted (default): the moment the upper edge of the Sun’s disc appears, allowing for atmospheric refraction. This is what printed Nepali and Indian panchangs use, and what most sunrise tables publish.
  • center_geometric: the moment the centre of the disc crosses the geometric horizon, about 4 minutes later at sunrise (earlier at sunset).

The choice matters on the one or two days a year when a tithi or nakshatra ends within those minutes: for example on 2021-11-04 in Kathmandu the default gives Chaturdashi at sunrise, the geometric centre Amavasya. The convention also sets the sunset and the choghadiya boundaries. The panchang meta echoes the convention used.

Moonrise and moonset do not depend on this option: they are always the moment the centre of the Moon’s disc crosses the horizon as seen from the place, which is how common panchangs give them.

  • nepal (default): purnimanta months, which end at the full moon, as used in Nepali almanacs and in most of northern India.
  • amanta: months end at the new moon, as used in much of southern and western India.

lunarMonth.scheme in every panchang says which one applies, and lunarMonth.adhik flags an intercalary month (its name is then prefixed, for example Adhik Bhadrapada). Lunar month indexes run 1 = Vaishakha to 12 = Chaitra.

Dasha periods are measured in years of 365.25 days by default. Set yearDays (for example 360 for the savana year) if your tradition uses another length. The value is echoed as yearDays on every timeline. Dasha output never uses the server clock; see Dashas.

Every catalog value comes back as { index, name }, and some also carry a string id (grahas, dasha lords, paksha, kootas, choghadiya):

{ "id": "krishna", "index": 2, "name": "कृष्ण" }
  • index and id never change between languages or versions. Store and compare these.
  • name is in the requested lang and numerals, ready to display.
  • Indexes are 1-based (sign 1 = Mesha, nakshatra 1 = Ashvini, tithi 1 to 15 shukla and 16 to 30 krishna) except the weekday, where 0 is Sunday.

Choosing Nepali or Hindi never costs extra credits.

meta lists everything needed to reproduce a response. Identical input with identical meta values gives byte-identical JSON.

Field Meaning Returned by
engineVersion Version of the computation engine Kundali, planets, dasha, matching, panchang
apiVersion The dated API version that served the request All of the above, plus calendar convert and month
ayanamsha { id, degrees } actually applied Kundali, planets, dasha, panchang; matching when a subject was computed from birth input
nodeType mean or true Kundali, planets, dasha; matching as for ayanamsha
tradition nepal or amanta Kundali, panchang day and range
sunriseConvention Convention used for sunrise Kundali, panchang day and range
tzdbVersion IANA tz database release behind every offset Kundali, planets, dasha, matching, panchang
deltaTModelVersion Model of ΔT, the difference between Earth-rotation time and uniform time, used to place every instant Kundali, planets, dasha, matching, panchang
bsTableVersion Version of the Bikram Sambat month-length table All of the above, plus calendar convert and month
overridesVersion Version of the Panchang Samiti tithi override table Kundali, planets, dasha, matching, panchang
tzid Zone used for sunrise-based values Calendar month

A real meta from a kundali request:

"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
}

Data updates (tz database releases, BS table updates and Samiti overrides) are corrections and apply to every API version; see Versioning.