# Yogas — planetary combinations

Yogas are specific planetary combinations in a natal chart that amplify or weaken life themes (power, wealth, spirituality, isolation). AstroWay covers **12 yoga endpoints** across two schools — Parashara (classical) and Jaimini (chara-karaka).

## What we compute

- **Raja yogas** — combinations granting power, status, success. Relationships between lords of kendra houses (1, 4, 7, 10) and trikona houses (1, 5, 9).
- **Dhana yogas** — wealth. Links between lords of houses 2, 5, 9, 11.
- **Dharma-Karmadhipati yogas** — synergy between lords of 9th (dharma) and 10th (karma).
- **Pancha-Mahapurusha** — the five "great-man" yogas: Ruchaka (Mars), Bhadra (Mercury), Hamsa (Jupiter), Malavya (Venus), Shasha (Saturn).
- **Gajakesari** — Jupiter in a kendra from the Moon.
- **Adhi yoga** — Mercury, Jupiter, Venus in the 6th/7th/8th from the Moon.
- **Atmakaraka (Jaimini)** — the planet with the highest longitude within its sign; "soul indicator".
- **Badhaka (Jaimini)** — planetary obstruction based on movable/fixed/dual sign classification.

## Endpoints

| Endpoint | School | Credits | Description |
|---|---|---|---|
| `/v1/vedic/yogas/parashara/raja` | Parashara | 50 | Raja yogas |
| `/v1/vedic/yogas/parashara/dhana` | Parashara | 50 | Dhana yogas (wealth) |
| `/v1/vedic/yogas/parashara/dharma-karmadhipati` | Parashara | 50 | Dharma + Karma |
| `/v1/vedic/yogas/parashara/pancha-mahapurusha` | Parashara | 50 | 5 mahapurusha yogas |
| `/v1/vedic/yogas/parashara/gajakesari` | Parashara | 20 | Gajakesari |
| `/v1/vedic/yogas/parashara/adhi` | Parashara | 20 | Adhi yoga |
| `/v1/vedic/yogas/parashara/full` | Parashara | 100 | All Parashara yogas in one call |
| `/v1/vedic/yogas/jaimini/raja` | Jaimini | 50 | Jaimini raja yogas |
| `/v1/vedic/yogas/jaimini/atmakaraka` | Jaimini | 20 | Atmakaraka + other karakas |
| `/v1/vedic/yogas/jaimini/badhaka` | Jaimini | 20 | Badhaka planet |
| `/v1/vedic/yogas/jaimini/full` | Jaimini | 100 | All Jaimini yogas in one call |

## Example

<Tabs>
  <TabItem label="cURL">
    ```bash frame="terminal"
    curl -X POST https://api.astroway.info/v1/vedic/yogas/parashara/pancha-mahapurusha \
      -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.4501,
        "longitude": 30.5234,
        "ayanamsa": "lahiri"
      }'
    ```
  </TabItem>
  <TabItem label="Node.js">
    ```ts
    const r = await fetch('https://api.astroway.info/v1/vedic/yogas/parashara/full', {
      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.4501,
        longitude: 30.5234,
        ayanamsa: 'lahiri',
      }),
    });
    const { data } = await r.json();
    console.log(`Active yogas: ${data.yogas.length}`);
    for (const y of data.yogas) {
      console.log(` - ${y.name} (${y.category}): ${y.strength}`);
    }
    ```
  </TabItem>
  <TabItem label="Python">
    ```python

    r = requests.post(
        'https://api.astroway.info/v1/vedic/yogas/parashara/full',
        headers={'X-Api-Key': os.environ['ASTROWAY_API_KEY']},
        json={
            'date': '1990-07-14',
            'time': '14:30:00',
            'timezoneOffset': 3,
            'latitude': 50.4501,
            'longitude': 30.5234,
            'ayanamsa': 'lahiri',
        },
    )
    data = r.json()['data']
    for y in data['yogas']:
        print(f"{y['name']} ({y['category']}): {y['strength']}")
    ```
  </TabItem>
</Tabs>

Sample response (abbreviated):

```json
{
  "data": {
    "yogas": [
      {
        "name": "Hamsa Yoga",
        "category": "pancha-mahapurusha",
        "planet": "Jupiter",
        "house": 1,
        "sign": "Cancer",
        "strength": "strong",
        "description": "Jupiter in own/exalted sign in a kendra from ascendant"
      },
      {
        "name": "Gajakesari Yoga",
        "category": "moon-jupiter",
        "houses_from_moon": 4,
        "strength": "moderate"
      }
    ],
    "count": 2,
    "ayanamsa": "lahiri"
  }
}
```

## Accuracy and sources

- **Parashara yogas** — algorithm follows *Brihat Parashara Hora Shastra* (BPHS), chapters 36-39 (Raja-yoga, Dhana-yoga, Pancha-mahapurusha). R. Santhanam's translation (Ranjan Publications) is the primary reference, cross-checked against *Phaladeepika* (Mantreswara).
- **Jaimini yogas** — *Jaimini Sutras* (P.S. Sastri translation), chapter 2. Atmakaraka is computed by longitude-within-sign (Parashari variant); the Krishna Mishra alternative is available via `karaka_scheme=advanced`.
- **Endpoint status** — Phase 2, mostly GREEN. Some yogas (e.g. Vipareeta Raja) are still YELLOW because BPHS commentators disagree on activation rules; full status and last verification date is in `docs/AUDIT-TRAIL.md` (private repo, integrators get access on request).
- **Sidereal zodiac** — Lahiri by default. Raman, Krishnamurti, Fagan-Bradley, Yukteshwar are also supported via the `ayanamsa` parameter.

No yoga implementation can claim to be "canonical" — classical texts vary on which combinations qualify and how to weight cancellations. We document the school and commentator we picked in `docs/AUDIT-TRAIL.md`.

## Related

<CardGrid>
  <LinkCard title="Doshas" href="/en/vedic/doshas/" description="Manglik, Kaal Sarp, Pitru — 19 affliction endpoints" />
  <LinkCard title="Compatibility" href="/en/vedic/compatibility/" description="Ashtakoot, Dashakoota, Manglik check" />
  <LinkCard title="Muhurat" href="/en/vedic/muhurat/" description="Electional astrology: timing important events" />
  <LinkCard title="Credits" href="/en/credits/" description="Per-endpoint credit cost" />
  <LinkCard title="Accuracy" href="/en/accuracy/" description="How we verify calculations" />
  <LinkCard title="Authentication" href="/en/authentication/" description="X-Api-Key, sandbox keys, rotation" />
</CardGrid>
