Skip to content
API96Astro API

API reference / Dasha systems

Dasha systems

Planetary and sign-based period systems with their sub-periods, computed from the birth moment.

9 endpoints. Every endpoint is POST with a JSON body and your key in the Authorization header. Request schemas and examples come from the OpenAPI document; each example response was captured from the live engine and its data fields are a guide to the shape, not a contract.

Vimshottari Dasha

POSTAvailable

https://api.96astro.com/v1/dashas/vimshottari-dasha

Mahadasha and antardasha periods with dates, the dasha balance at birth, and the tara (nakshatra-count) of each dasha lord.

Credits
3 credits
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

depthstringOptional

How many levels of the period tree to return.

Default: antardasha

Allowed values: mahadashaantardashapratyantardasha

Example: antardasha

as_ofstring | nullOptional

Date for `current` (YYYY-MM-DD). Today in UTC when omitted.

Default: null

Limits: format date

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • ayanamsha · object
  • moon_nakshatra · object
  • balance_at_birth · object
  • current · object
  • tara_of_lords · object
  • mahadashas · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "ayanamsha": {
      "id": "lahiri",
      "name": "N.C. Lahiri",
      "degrees": 23.7285
    },
    "moon_nakshatra": {
      "name": "Chitra",
      "pada": 2,
      "lord": "Mars"
    },
    "balance_at_birth": {
      "lord": "Mars",
      "years": 4,
      "months": 7,
      "days": 11
    },
    "current": {
      "as_of": "2026-10-14",
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Yogini Dasha

POSTAvailable

https://api.96astro.com/v1/dashas/yogini-dasha

The eight-yogini 36-year cycle from the Moon's nakshatra with dated periods.

Credits
3 credits
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

depthstringOptional

Levels of the period tree to return.

Default: antardasha

Allowed values: mahadashaantardasha

as_ofstring | nullOptional

Date for `current` (YYYY-MM-DD). Today in UTC when omitted.

Default: null

Limits: format date

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • system · string
  • ayanamsha · object
  • balance_at_birth · object
  • current · object
  • mahadashas · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "system": "yogini",
    "ayanamsha": {
      "id": "lahiri",
      "name": "N.C. Lahiri",
      "degrees": 23.7285
    },
    "balance_at_birth": {
      "yogini": "Mangala",
      "years": 0,
      "months": 7,
      "days": 28
    },
    "current": {
      "as_of": "2026-10-14",
      "mahadasha": {
        "yogini": "Mangala",
        "lord": "Moon",
        "start": "2026-06-15",
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Chara Dasha (Jaimini)

POSTAvailable

https://api.96astro.com/v1/dashas/chara-dasha

Sign-based Jaimini Chara dasha: mahadashas by sign with years and dates, their antardashas, the direction used and the current period; Standard or K.N. Rao method.

Credits
3 credits
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

depthstringOptional

Levels of the period tree to return.

Default: antardasha

Allowed values: mahadashaantardasha

as_ofstring | nullOptional

Date for `current` (YYYY-MM-DD). Today in UTC when omitted.

Default: null

Limits: format date

methodstringOptional

Chara dasha calculation method.

Default: standard

Allowed values: standardkn_rao

Example: kn_rao

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Options (2)
ValueMeaning
standardStandard
kn_raoK.N. Rao

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • system · string
  • ayanamsha · object
  • method · string
  • direction · string
  • current · object
  • mahadashas · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "system": "chara",
    "ayanamsha": {
      "id": "lahiri",
      "name": "N.C. Lahiri",
      "degrees": 23.7285
    },
    "method": "kn_rao",
    "direction": "reverse",
    "current": {
      "as_of": "2026-10-14",
      "mahadasha": {
        "sign": "Virgo",
        "sign_number": 6,
        "start": "2016-10-17",
        "end": "2028-10-17",
        "years": 12
      },
      "antardasha": {
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Niryana Shoola Dasha

POSTAvailable

https://api.96astro.com/v1/dashas/niryana-shoola-dasha

Niryana Shoola dasha by sign with years, dates and antardashas, the current period, and the method used (four methods available, with the recommended one named).

Credits
3 credits
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

depthstringOptional

Levels of the period tree to return.

Default: antardasha

Allowed values: mahadashaantardasha

as_ofstring | nullOptional

Date for `current` (YYYY-MM-DD). Today in UTC when omitted.

Default: null

Limits: format date

methodstring | nullOptional

Calculation method. The engine's recommended method when omitted.

Default: null

Allowed values: pvr_2_8_789jhora_researchplight_compatlagna7_uniform9

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Options (4)
ValueMeaning
pvr_2_8_789PVR 2/8 with 7-8-9 rule
jhora_researchJHora research
plight_compatParashara's Light compatible
lagna7_uniform9Lagna/7th, uniform 9 years

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • system · string
  • ayanamsha · object
  • method · object
  • methods_available · array of string
  • recommended_method · string
  • current · object
  • mahadashas · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "system": "niryana_shoola",
    "ayanamsha": {
      "id": "lahiri",
      "name": "N.C. Lahiri",
      "degrees": 23.7285
    },
    "method": {
      "id": "pvr_2_8_789",
      "name": "PVR – 2nd/8th seed, 7/8/9 years",
      "description": "The stronger of the 2nd and 8th Rashis from Lagna starts the dasha. An odd seed runs zodiacally, an even seed anti-zodiacally. Movable, fixed and dual mahadashas run 7, 8 and 9 years.",
      "status": "confirmed",
      "recommended": true
    },
    "methods_available": [
      "pvr_2_8_789",
      "jhora_research",
      "plight_compat"
    ],
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Trikona Dasha

POSTAvailable

https://api.96astro.com/v1/dashas/thrikona-dasha

Trikona dasha from its start sign: mahadashas with years, dates and antardashas, the direction used and the current period.

Credits
3 credits
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

depthstringOptional

Levels of the period tree to return.

Default: antardasha

Allowed values: mahadashaantardasha

as_ofstring | nullOptional

Date for `current` (YYYY-MM-DD). Today in UTC when omitted.

Default: null

Limits: format date

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • system · string
  • ayanamsha · object
  • start_sign · string
  • direction · string
  • current · object
  • mahadashas · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "system": "thrikona",
    "ayanamsha": {
      "id": "lahiri",
      "name": "N.C. Lahiri",
      "degrees": 23.7285
    },
    "start_sign": "Capricorn",
    "direction": "anti-clockwise",
    "current": {
      "as_of": "2026-10-14",
      "mahadasha": {
        "sign": "Sagittarius",
        "sign_number": 9,
        "start": "2023-10-18",
        "end": "2034-10-18",
        "years": 11
      },
      "antardasha": {
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Ashtottari Dasha

POSTAvailable

https://api.96astro.com/v1/dashas/ashtottari-dasha

Ashtottari (108-year) dasha with whether it applies to the chart and why, the balance at birth, mahadashas with antardashas and the current period.

Credits
3 credits
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

depthstringOptional

Levels of the period tree to return.

Default: antardasha

Allowed values: mahadashaantardasha

as_ofstring | nullOptional

Date for `current` (YYYY-MM-DD). Today in UTC when omitted.

Default: null

Limits: format date

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • system · string
  • ayanamsha · object
  • applicable · boolean
  • applicability_reason · string
  • balance_at_birth · object
  • current · object
  • mahadashas · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "system": "ashtottari",
    "ayanamsha": {
      "id": "lahiri",
      "name": "N.C. Lahiri",
      "degrees": 23.7285
    },
    "applicable": true,
    "applicability_reason": "Rahu is in Kendra (1/4/7/10) from Lagna or Moon — Ashtottari applicable.",
    "balance_at_birth": {
      "lord": "Mars",
      "years": 5.318503339113332
    },
    "current": {
      "as_of": "2026-10-14",
      "mahadasha": {
        "lord": "Jupiter",
        "start": "2023-02-11",
        "end": "2042-02-11",
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Sthira Dasha

POSTAvailable

https://api.96astro.com/v1/dashas/sthira-dasha

Sthira (fixed) sign dasha with start sign, direction, mahadashas with antardashas and the current period.

Credits
3 credits
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

depthstringOptional

Levels of the period tree to return.

Default: antardasha

Allowed values: mahadashaantardasha

as_ofstring | nullOptional

Date for `current` (YYYY-MM-DD). Today in UTC when omitted.

Default: null

Limits: format date

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • system · string
  • ayanamsha · object
  • start_sign · string
  • direction · string
  • current · object
  • mahadashas · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "system": "sthira",
    "ayanamsha": {
      "id": "lahiri",
      "name": "N.C. Lahiri",
      "degrees": 23.7285
    },
    "start_sign": "Libra",
    "direction": "backward",
    "current": {
      "as_of": "2026-10-14",
      "mahadasha": {
        "sign": "Gemini",
        "sign_number": 3,
        "start": "2021-10-18",
        "end": "2030-10-18",
        "years": 9
      },
      "antardasha": {
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Mudda Dasha

POSTAvailable

https://api.96astro.com/v1/dashas/mudda-dasha

Mudda dasha for a target year: when the Tajika year starts, each period's lord, dates and house in the annual chart, and the period running now.

Credits
3 credits
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

target_yearintegerRequired

Calendar year of the return.

Example: 2026

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

as_ofstring | nullOptional

Date for `current` (YYYY-MM-DD). Today in UTC when omitted.

Default: null

Limits: format date

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • ayanamsha · string
  • target_year · integer
  • year_starts · object
  • basis · string
  • current · object
  • periods · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "ayanamsha": "lahiri",
    "target_year": 2026,
    "year_starts": {
      "local": "2026-10-18T19:47:14",
      "utc_offset_hours": 5.5,
      "utc": "2026-10-18T14:17:14Z"
    },
    "basis": "Vimshottari proportions over the Tajika year; start lord by Tajika Neelakanthi (natal Moon's nakshatra number + completed years - 2, mod 9).",
    "current": {
      "as_of": "2026-10-14",
      "period": null
    },
    "periods": [
      {
        "lord": "Mars",
        "start": "2026-10-18",
        "end": "2026-11-09",
        "house_in_year_chart": 3
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Vimshottari to Sukshma / Prana Level

POSTAvailable

https://api.96astro.com/v1/dashas/vimshottari-deep

Vimshottari hierarchy Maha, Antar, Pratyantar and Sukshma, optionally down to Prana, from the Moon longitude and birth date.

Credits
1 credit
Input
Specific input
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

depthstringOptional

Deepest level returned. With prana, prana periods are given for the antardasha running at `as_of`.

Default: sukshma

Allowed values: sukshmaprana

Example: sukshma

as_ofstring | nullOptional

Local date and time, at the birth's UTC offset, for `current` (and the antardasha subdivided to prana). A date alone means 00:00. Now when omitted.

Default: null

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Options (2)
ValueMeaning
sukshmaDown to Sukshma (default)
pranaDown to Prana

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • ayanamsha · object
  • depth · string
  • note · string
  • moon · object
  • balance_at_birth · object
  • current · object
  • mahadashas · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "ayanamsha": {
      "id": "lahiri",
      "name": "N.C. Lahiri",
      "degrees": 23.7285
    },
    "depth": "sukshma",
    "note": "Boundaries are exact to the second, in local time at the birth's UTC offset, on 365.25-day years; the periods running at birth start at the birth. vimshottari-dasha gives the same periods as whole dates chained day by day, which can differ from these by up to 3 days.",
    "moon": {
      "longitude": 177.8766,
      "nakshatra": "Chitra",
      "pada": 2,
      "nakshatra_lord": "Mars"
    },
    "balance_at_birth": {
      "lord": "Mars",
      "years": 4,
      "months": 7,
      "days": 11
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.