Yogini Dasha
Computes Yogini Dasha periods for a given birth chart. What is Yogini Dasha? Yogini Dasha is a Nakshatra-based dasha system using 8 Yoginis, each ruled by a planet. The total cycle is 36 years. It is considered highly accurate for timing events in the near term and is widely used alongside Vimshottari. The 8 Yoginis and their durations: - Mangala (Moon) — 1 year - Pingala (Sun) — 2 years - Dhanya (Jupiter) — 3 years - Bhramari (Mars) — 4 years - Bhadrika (Mercury) — 5 years - Ulka (Saturn) — 6 years - Siddha (Venus) — 7 years - Sankata (Rahu) — 8 years Starting Yogini is determined by the Moon's Nakshatra at birth. Levels: - levels: 1 — returns Maha Dasha periods only - levels: 2 — returns Maha Dasha with Antar Dasha sub-periods (default) Date format: All dates are returned in DD/MM/YYYY format. Ayanamsa: Default is Lahiri.
Endpoint
POST /v1/astro/yogini
Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
| location | string | null | No | 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 | No | Person name associated with the birth record |
| date | string | Yes | Birth date in YYYY-MM-DD format |
| time | string | null | No | Birth time in HH:MM 24-hour format. If omitted, sunrise chart is used as fallback. |
| latitude | number | null | No | Latitude. Required if location not provided. |
| longitude | number | null | No | Longitude. Required if location not provided. |
| timezone | string | null | No | IANA timezone. Required if location not provided. |
| ayanamsa | string | No | Sidereal ayanamsa mode used in calculations |
| levels | integer | No | Depth of sub-periods to return. 1 returns Maha Dashas only. 2 returns Maha and Antar Dashas. Maximum is 2. |
Example request
- curl
- Python
- TypeScript
curl -X POST "https://api.asterwise.com/v1/astro/yogini" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"1985-11-12","time":"06:45","latitude":19.076,"longitude":72.8777,"timezone":"Asia/Kolkata"}'
import asterwise
from asterwise.api.advanced_api import AdvancedApi
from asterwise.models.yogini_request import YoginiRequest
configuration = asterwise.Configuration(
host="https://api.asterwise.com",
access_token="YOUR_API_KEY",
)
request = YoginiRequest(
date="1985-11-12",
time="06:45",
latitude=19.076,
longitude=72.8777,
timezone="Asia/Kolkata",
)
with asterwise.ApiClient(configuration) as client:
api = AdvancedApi(client)
result = api.yogini_dasha(yogini_request=request)
print(result)
import { createClient, createConfig, yoginiDasha } from 'asterwise';
const client = createClient(createConfig({
baseUrl: 'https://api.asterwise.com',
headers: { Authorization: 'Bearer YOUR_API_KEY' },
}));
const result = await yoginiDasha({
client,
body: {
"date": "1985-11-12",
"time": "06:45",
"latitude": 19.076,
"longitude": 72.8777,
"timezone": "Asia/Kolkata"
},
});
console.log(result.data);
Example response
Response fields
| Field | Type | Description |
|---|---|---|
| success | boolean | True if the request succeeded |
| message | string | Human-readable status message |
| data | object | |
| data.periods | object | |
| data.periods.root | array[object] | |
| data.periods.root[].yogini | string | Name of the Yogini ruling this period, e.g. Mangala, Pingala, Dhanya |
| data.periods.root[].planet | string | Planetary lord of this Yogini |
| data.periods.root[].start_jd | number | Start of period as Julian Day number |
| data.periods.root[].end_jd | number | End of period as Julian Day number |
| data.periods.root[].start_date | string | Start date in DD/MM/YYYY format |
| data.periods.root[].end_date | string | End date in DD/MM/YYYY format |
| data.periods.root[].sub | array[object] | null | Sub-periods (Antar Dasha). Present only when levels=2. |
| data.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. |
Errors
| Code | Description | Reference |
|---|---|---|
| authentication_failed | Missing or invalid API key. | authentication_failed |
| ephemeris_unavailable | Upstream ephemeris service error. | ephemeris_unavailable |
| insufficient_tier | API key tier does not include this endpoint. | insufficient_tier |
| internal_error | Unexpected server error. | internal_error |
| ip_rate_limit_exceeded | Too many requests in a short window. | ip_rate_limit_exceeded |
| payload_too_large | Request body exceeds the size limit. | payload_too_large |
| resource_not_found | Referenced resource was not found. | resource_not_found |
| validation_error | Request body failed schema validation. | validation_error |