Skip to main content

Ashtottari Dasha

asterwise_get_ashtottari_dasha

Computes the Ashtottari Dasha tree (108-year cycle) with configurable depth, levels 1–5. The timeline continues into the next cycle until it reaches at least age 120 (usually 9–11 mahadashas); periods are under data.periods.root with DD/MM/YYYY dates.

Parameters​

ParameterTypeRequiredDescription
birthobjectyesBirth data for a single person. Required fields: date, lat, lon. Optional fields: time, person_name, timezone, ayanamsa.
response_formatenum: markdown, jsonnoOutput format: 'markdown' (default) for a readable report, or 'json' for the raw structured payload.
levelsintegernoDepth of the Ashtottari tree, 1-5: 1 = Mahadasha only, 2 adds Antardasha (default), 3 Pratyantar, 4 Sookshma, 5 Prana.

What it covers​

Provides the Ashtottari planetary sequence (eight grahas, Ketu excluded) with the same levels semantics as Vimshottari: deeper levels nest sub-periods in sub[]. Applies only when Rahu is in a Kendra/Trikona from the Lagna lord's sign and not in the Lagna (BPHS); otherwise the response is {applicable: false, reason} with no periods. Starting lord and balance use the BPHS nakshatra groups from Ardra with the balance spread over the whole group (JHora). It is not Vimshottari, Yogini, or Char Dasha.

Workflow​

BEFORE: RECOMMENDED — asterwise_get_natal_chart — chart context before choosing between Ashtottari and Vimshottari.
AFTER: asterwise_get_dasha — optional Vimshottari comparison.

Input​

levels: same as asterwise_get_dasha (1–5, default 2), enforced locally before the API call. Periods use data.periods.root[], not data.periods[]. Dates in periods are DD/MM/YYYY.

Output contract​

data.periods.root[] — Mahadasha objects:
planet (string)
start_jd (float)
end_jd (float)
start_date (string — DD/MM/YYYY)
end_date (string — DD/MM/YYYY)
dasha_start_date (string — DD/MM/YYYY, first row only: when that Mahadasha began, before birth)
balance_years (float — first row only: years of that Mahadasha left at birth)
sub[] — Antardasha objects, same shape, nested per levels
data.birth_time_provided (bool)
When Ashtottari does not apply, data is instead { applicable (bool — false), reason (string), birth_time_provided (bool) } with no periods.

Response format​

response_format=json serialises the complete response as indented JSON — use this for programmatic parsing, typed clients, and downstream tool chaining. response_format=markdown renders the same data as a human-readable report. Both modes return identical underlying data — no fields are added, removed, or filtered by either mode.

Compute class​

MEDIUM_COMPUTE (timing scales with levels similarly to asterwise_get_dasha)

Errors​

INVALID_PARAMS (local — caught before upstream call):
— levels < 1 or levels > 5 → MCP INVALID_PARAMS

INVALID_PARAMS (upstream):
None — remaining validation is upstream.

INTERNAL_ERROR:
— Any upstream API failure or timeout → MCP INTERNAL_ERROR

Edge cases:
— Non-applicable charts return applicable=false and a reason instead of periods.

Do not confuse with​

asterwise_get_dasha — standard 120-year Vimshottari with data.periods[], not Ashtottari or data.periods.root[].
asterwise_get_yogini_dasha — 36-year Yogini cycle with yogini names on each row.

Connect​

Remote MCP endpoint: https://mcp.asterwise.com/mcp. Authenticate with Authorization: Bearer <API key> or OAuth. See the MCP setup guide.