# 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

- **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

| Endpoint | Credits | Purpose |
|---|---|---|
| `/v1/vedic/dashas/vimshottari/maha` | 30 | Vimshottari maha-dashas across 120 years |
| `/v1/vedic/dashas/vimshottari/antar` | 50 | Antar-dashas within current maha |
| `/v1/vedic/dashas/vimshottari/pratyantar` | 80 | Pratyantar (3rd nesting level) |
| `/v1/vedic/dashas/vimshottari/sookshma` | 100 | Sookshma (4th level) |
| `/v1/vedic/dashas/vimshottari/prana` | 150 | Prana (finest, sub-daily intervals) |
| `/v1/vedic/dashas/yogini/maha` | 30 | Yogini 36-year cycle |
| `/v1/vedic/dashas/ashtottari/maha` | 30 | Ashtottari 108-year cycle |
| `/v1/vedic/dashas/kalachakra/maha` | 50 | Cyclic Kalachakra |
| `/v1/vedic/dashas/chara/maha` | 40 | Chara rasi-dasha (Jaimini) |
| `/v1/vedic/dashas/shodashottari/maha` | 30 | Shodashottari 116-year cycle |

Full list of all 50 endpoints — in the [OpenAPI](/v1/openapi.json) (tags `Vedic / Dashas`).

## Example

<Tabs>
  <TabItem label="cURL">
    ```bash frame="terminal"
    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"
      }'
    ```
  </TabItem>
  <TabItem label="Node.js">
    ```ts
    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();
    console.log(`Current maha: ${data.current.lord} until ${data.current.endDate}`);
    ```
  </TabItem>
  <TabItem label="Python">
    ```python

    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']
    print(f"Current: {data['current']['lord']} until {data['current']['endDate']}")
    ```
  </TabItem>
</Tabs>

### Sample response

```json
{
  "system": "vimshottari",
  "level": "maha",
  "ayanamsa": "lahiri",
  "moonNakshatra": "Rohini",
  "birthBalance": { "lord": "Moon", "yearsRemaining": 7.32 },
  "current": {
    "lord": "Rahu",
    "startDate": "2018-03-12",
    "endDate": "2036-03-12",
    "durationYears": 18
  },
  "periods": [
    { "lord": "Moon", "startDate": "1990-07-14", "endDate": "1997-11-04", "durationYears": 7.32 },
    { "lord": "Mars", "startDate": "1997-11-04", "endDate": "2004-11-04", "durationYears": 7 },
    { "lord": "Rahu", "startDate": "2018-03-12", "endDate": "2036-03-12", "durationYears": 18 }
  ]
}
```

## Accuracy & sources

- **Canonical text:** *Brihat Parashara Hora Shastra* (BPHS), chapters 46–52 — each dasha system is described separately.
- **Reference implementation:** [PyJHora](https://github.com/naturalstupid/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: true` we apply the ayanamsa offset internally.
- **Audit:** separate entry in [/en/accuracy/](/en/accuracy/) for each dasha system, with last-fix date and drift vs reference.

<Aside type="caution">
**Jaimini dashas vs Parashara dashas.** Chara/Sthira/Shoola belong to the Jaimini school — the algorithms differ fundamentally from Parashara (signs rule, not planets). If you're building a classical jyotish app, use Vimshottari as your primary; treat others as supplementary overlays.
</Aside>

## Related

- [Panchang](/en/vedic/panchang/) — daily Vedic almanac parameters (tithi, karana, yoga, nakshatra)
- [Shadbala](/en/vedic/shadbala/) — six-fold planetary strength at the moment a dasha runs
- [Vargas](/en/vedic/vargas/) — divisional charts D1–D60 (Navamsha is critical for assessing the strength of a dasha lord)
- [Accuracy](/en/accuracy/) — lineage, snapshot tests, cross-check against swetest + PyJHora
- [Credits](/en/credits/) — full pricing table across all 50 dasha endpoints
- [Authentication](/en/authentication/) — how to obtain an `aw_live_*` key
