Dashas (planetary periods)
Dashas are planetary ruling periods in Vedic astrology. Each planet “governs” a stretch of the native’s life, and the sequence of these periods is what explains the timing of events. AstroWay computes 10 dasha systems × 5 nesting levels = 50 endpoints through a single API.
What we calculate
Section titled “What we calculate”- Vimshottari: the primary system (120-year cycle, anchored to the Moon’s nakshatra at birth). Used by ~95% of modern jyotish practitioners.
- Yogini: 36-year cycle, eight governing goddesses (Mangala, Pingala, Dhanya, Bhramari, Bhadrika, Ulka, Siddha, Sankata).
- Ashtottari: 108-year cycle, Sun-anchored.
- Kalachakra: cyclic dasha based on nakshatra, non-linear progression.
- Chara: rasi-dasha (signs rule, not planets), Jaimini school.
- Tribhagi: variant of Vimshottari with tripled pace.
- Shatabdika: 100-year cycle (rare, for longevity charts).
- Shodashottari: 116-year cycle, anchored to tithi.
- Sthira: fixed rasi-dasha (Jaimini).
- Shoola: rasi-dasha with unequal periods (Jaimini).
Inside each system there are 5 levels of granularity: Maha (main period) → Antar (sub) → Pratyantar (sub-sub) → Sookshma (micro) → Prana (smallest, sub-daily).
Key endpoints
Section titled “Key endpoints”| Endpoint | Credits | Purpose |
|---|---|---|
/v1/vedic/dashas/vimshottari/maha | 20 | Vimshottari maha-dashas across 120 years |
/v1/vedic/dashas/vimshottari/antar | 20 | Antar-dashas within current maha |
/v1/vedic/dashas/vimshottari/pratyantar | 20 | Pratyantar (3rd nesting level) |
/v1/vedic/dashas/vimshottari/sookshma | 20 | Sookshma (4th level) |
/v1/vedic/dashas/vimshottari/prana | 20 | Prana (finest, sub-daily intervals) |
/v1/vedic/dashas/yogini/maha | 20 | Yogini 36-year cycle |
/v1/vedic/dashas/ashtottari/maha | 20 | Ashtottari 108-year cycle |
/v1/vedic/dashas/kalachakra/maha | 20 | Cyclic Kalachakra |
/v1/vedic/dashas/chara/maha | 20 | Chara rasi-dasha (Jaimini) |
/v1/vedic/dashas/shodashottari/maha | 20 | Shodashottari 116-year cycle |
Full list of all 50 endpoints - in the OpenAPI (tags Vedic / Dashas).
Example
Section titled “Example”curl -X POST https://api.astroway.info/v1/vedic/dashas/vimshottari/maha \ -H "X-Api-Key: aw_live_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "date": "1990-07-14", "time": "14:30:00", "timezoneOffset": 3, "latitude": 50.45, "longitude": 30.52, "ayanamsa": "lahiri" }'const r = await fetch('https://api.astroway.info/v1/vedic/dashas/vimshottari/maha', { method: 'POST', headers: { 'X-Api-Key': process.env.ASTROWAY_API_KEY!, 'Content-Type': 'application/json', }, body: JSON.stringify({ date: '1990-07-14', time: '14:30:00', timezoneOffset: 3, latitude: 50.45, longitude: 30.52, ayanamsa: 'lahiri', }),});const { data } = await r.json();// startDate/endDate are 'YYYY-MM-DD HH:MM' in the birth timezone, so they compare as textconst now = new Date().toISOString().slice(0, 16).replace('T', ' ');const current = data.periods.find((p) => p.startDate <= now && now < p.endDate);console.log(`Current maha: ${current.planetName} until ${current.endDate}`);import os, requestsfrom datetime import datetime
r = requests.post( 'https://api.astroway.info/v1/vedic/dashas/vimshottari/maha', headers={'X-Api-Key': os.environ['ASTROWAY_API_KEY']}, json={ 'date': '1990-07-14', 'time': '14:30:00', 'timezoneOffset': 3, 'latitude': 50.45, 'longitude': 30.52, 'ayanamsa': 'lahiri', },)data = r.json()['data']now = datetime.now().strftime('%Y-%m-%d %H:%M')current = next(p for p in data['periods'] if p['startDate'] <= now < p['endDate'])print(f"Current: {current['planetName']} until {current['endDate']}")Sample response
Section titled “Sample response”{ "system": "Vimshottari", "level": "maha", "ayanamsa": 23.724844, "moonSiderealLongitude": 345.332629, "nakshatra": { "number": 26, "name": "Uttara Bhadrapada", "ruler": "Saturn", "startDeg": 333.3333, "endDeg": 346.6667, "pada": 4 }, "initial": { "initialPlanet": 6, "initialPlanetName": "Saturn", "nakshatra": 26, "nakshatraName": "Uttara Bhadrapada", "pada": 4, "balanceYears": 1, "balanceMonths": 10, "balanceDays": 25, "elapsedYears": 17.098996 }, "periods": [ { "planet": 6, "planetName": "Saturn", "startDate": "1990-07-14 14:29", "endDate": "1992-06-07 22:42", "durationYears": 1.901004 }, { "planet": 2, "planetName": "Mercury", "startDate": "1992-06-07 22:42", "endDate": "2009-06-08 04:42", "durationYears": 17 }, { "planet": 100, "planetName": "Ketu", "startDate": "2009-06-08 04:42", "endDate": "2016-06-07 22:42", "durationYears": 7 } ]}Accuracy & sources
Section titled “Accuracy & sources”- Canonical text: Brihat Parashara Hora Shastra (BPHS), chapters 46–52 - each dasha system is described separately.
- Reference implementation: PyJHora (Apache 2.0) - our cross-check for all 10 systems. Vimshottari/Yogini/Ashtottari/Kalachakra match PyJHora exactly; Sthira/Shoola have minor drift at transition timestamps due to differences in Jaimini sign-strength helpers.
- Ayanamsa: supported are
lahiri(default, MoSh/IISc),raman,krishnamurti,fagan-bradley,yukteshwar,sassanian,j2000,aldebaran,galactic-center. Lahiri is the official Indian Ephemeris standard. - Tropical fallback: all dashas use sidereal coordinates: if your key sends
tropical: truewe apply the ayanamsa offset internally. - Audit: separate entry in /en/accuracy/ for each dasha system, with last-fix date and drift vs reference.
Related
Section titled “Related”- Panchang: daily Vedic almanac parameters (tithi, karana, yoga, nakshatra)
- Shadbala: six-fold planetary strength at the moment a dasha runs
- Vargas: divisional charts D1–D60 (Navamsha is critical for assessing the strength of a dasha lord)
- Accuracy: lineage, snapshot tests, cross-check against swetest + PyJHora
- Credits: full pricing table across all 50 dasha endpoints
- Authentication: how to obtain an
aw_live_*key
Was this helpful?
Thanks for the feedback.