---
title: "Ashtottari Dasha"
method: POST
path: "/v1/astro/ashtottari"
tags: ["Advanced"]
---

# Ashtottari Dasha

`POST /v1/astro/ashtottari`

## Request

- Base URL: `https://api.asterwise.com`
- URL: `https://api.asterwise.com/v1/astro/ashtottari`
- Auth: HTTP bearer

Computes Ashtottari Dasha periods for a given birth chart.

**What is Ashtottari Dasha?**
Ashtottari Dasha is a 108-year dasha cycle using 8 planets (excluding Ketu).
It is considered applicable only for specific charts where Rahu occupies a
Kendra (1, 4, 7, 10) or Trikona (1, 5, 9) counted from the sign of the Lagna
lord, but not the Lagna itself (BPHS Ch.46 v.17). For a Scorpio or Aquarius
Lagna the stronger co-lord is used, as in JHora.

**Applicability check:**
This endpoint first checks whether Ashtottari applies to the given chart.
If the condition above is not met, the response will contain
`applicable: false` and a reason string instead of dasha periods. The
paksha/day-night condition is not evaluated.

**Starting planet and balance:**
Counting from Ardra, the nakshatras belong to the lords in groups of 4, 3, 4,
3, 4, 3, 4, 3 (Sun, Moon, Mars, Mercury, Saturn — with Abhijit — Jupiter,
Rahu, Venus). The balance at birth is the lord's years times the share of its
whole nakshatra group still ahead of the Moon (JHora's method). The first
period starts at birth; its sub-periods are the tail of the full period, and
it carries `dasha_start_date` and `balance_years`.

**Timeline length:** mahadashas follow in order and continue into the next
108-year cycle until the timeline reaches at least age 120 (usually 10 or 11
mahadashas). Before 2026-10-08 only the first 8 were returned.

**The 8 planets and their durations:**
- Sun — 6 years
- Moon — 15 years
- Mars — 8 years
- Mercury — 17 years
- Saturn — 10 years
- Jupiter — 19 years
- Rahu — 12 years
- Venus — 21 years

**Levels:**
- `levels: 1` — returns Maha Dasha periods only
- `levels: 2` — returns Maha Dasha with Antar Dasha sub-periods (default)
- `levels: 3`–`5` — adds Pratyantar, Sookshma and Prana (same rule at every level)

**Date format:** All dates are returned in DD/MM/YYYY format.

**Ayanamsa:** Default is Lahiri; the request's `ayanamsa` is applied.

## Request body

- AshtottariRequest
  - `location` string, nullable: City name to resolve to lat/lon/tz automatically. Example: 'Mumbai' or 'New Delhi, India'. If provided, latitude, longitude and timezone are not required.
  - `name` string: Person name associated with the birth record
  - `date` string, required: Birth date in YYYY-MM-DD format
  - `time` string, nullable: Birth time in HH:MM 24-hour format. If omitted, sunrise chart is used as fallback.
  - `latitude` number, nullable: Latitude. Required if location not provided.
  - `longitude` number, nullable: Longitude. Required if location not provided.
  - `timezone` string, nullable: IANA timezone. Required if location not provided (unless utc_offset is given). For dates before the zone adopted a standard time, the birthplace's local mean time (longitude / 15 hours) is used.
  - `utc_offset` string, nullable: Optional explicit UTC offset of the birth time, as ±HH:MM or ±HH:MM:SS (e.g. '+04:51:31' for Bombay mean time). Overrides the offset `timezone` would give. Use it when the birth record states the offset, or for historical local times the IANA database cannot represent.
  - `ayanamsa` 'lahiri' | 'raman' | 'kp' | 'tropical': Sidereal ayanamsa mode used in calculations
  - `levels` integer: Depth of sub-periods to return, as in Vimshottari: 1 Maha only, 2 adds Antar, 3 Pratyantar, 4 Sookshma, 5 Prana. Default 2.

## Response `200`

Successful Response

- ApiResponseAshtottariEndpointResponse
  - `success` boolean: True if the request succeeded
  - `message` string: Human-readable status message
  - `data` AshtottariEndpointResponse, required
    - `periods` AshtottariResponse, required
      - `root` AshtottariPeriod[], required
        - `planet` string, required: Planetary lord of this Dasha period
        - `start_jd` number, required: Start of period as Julian Day number
        - `end_jd` number, required: End of period as Julian Day number
        - `start_date` string, required: Start date in DD/MM/YYYY format
        - `end_date` string, required: End date in DD/MM/YYYY format
        - `sub` unknown[], nullable: Sub-periods (same shape, nested per levels). Present when levels ≥ 2. Under the first Mahadasha they are the remaining tail of the full Mahadasha, which began before birth.
          - unknown
        - `dasha_start_date` string, nullable: Only on the first Mahadasha row: the date (DD/MM/YYYY, UTC) the full Mahadasha began, before birth. The row itself starts at birth and lasts the balance.
        - `balance_years` number, nullable: Only on the first Mahadasha row: the balance of that Mahadasha remaining at birth, in years of 365.25636 days.
    - `birth_time_provided` boolean: Whether a precise birth time was provided. False when birth time was not supplied or treated as unknown — calculations using this field will have lagna-dependent accuracy limits.

## Other responses

- `401`: Authentication failed
- `403`: Authorization failed
- `404`: Resource not found
- `413`: Payload too large
- `422`: Validation error
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream provider error
- `503`: Service unavailable

---

[API](https://skmtc.dev/asterwise/apis/asterwise-api.md) · [All operations](https://skmtc.dev/asterwise/apis/asterwise-api/llms.txt) · [OpenAPI document](https://skmtc.dev/asterwise/apis/asterwise-api/revisions/3c4bbb1194e2?raw)
