LifeAstroAPILifeAstroAPI

API Reference / Vedic Astrology / Chart (Kundli)

GET
20 credits

/v1/chart/yogas

Yogas present in a birth chart as data (no text): id, category, planets, houses, strength, cancellation, sub-ids and classical source. all=true also lists absent catalogue ids.

What this tells you

The yogas of a birth chart as data, from the same detectors as /v1/vedic/narrative/yogas but with no text. Each item says which grahas and houses form the yoga, how strong it is, whether it is cancelled and which classical source it comes from. It also returns neecha_bhanga.<planet> (debilitation cancelled by the sign lord or exaltation lord in a kendra) and raja_yoga.kendra_trikona (a kendra lord and a trikona lord joined by conjunction, exchange or mutual aspect, with details.pairs). Dosha-type ids are on /v1/chart/doshas. Ids only, no localized text: planet ids sun, moon, mars, mercury, jupiter, venus, saturn, rahu, ketu; sign_index is 0-based (0 = Aries … 11 = Pisces); house is the 1-based whole-sign house from the lagna; nakshatra index is 0-based (0 = Ashwini … 26 = Revati).

Birth details are unprefixed: `date`, `time`, `tz`, `lat`, `lon`. `gender` (male/female) narrows Mahabhagya (male day birth, female night birth).

Request

All requests require an Authorization header with your dv_live_* API key.

example request
curl "https://api.lifeastroapi.com/v1/chart/yogas?date=1990-01-15&tz=Asia%2FKolkata&lat=19.076&lon=72.8777&time=10%3A30" \
  -H "Authorization: Bearer YOUR_API_KEY"

Query parameters

Checked against the API: a parameter is marked required when the request fails without it.

NameRequiredExampleDescription
dateyes1990-01-15Birth date (YYYY-MM-DD).
tzyesAsia/KolkataBirth place timezone: IANA name (Asia/Kolkata) or UTC offset (+05:30).
latyes19.076Birth place latitude in decimal degrees.
lonyes72.8777Birth place longitude in decimal degrees.
timeno10:30Birth time (HH:MM, 24-hour, local). Defaults to 12:00.
ayanamsano—Ayanamsa (sidereal offset) to use. Defaults to lahiri.
allno—false (default): present items, plus items whose pattern formed but was cancelled (present:false, cancelled:true). true: also every catalogue id that is absent, with present:false.
genderno—Optional. Narrows Mahabhagya (male day birth / female night birth) exactly like /v1/vedic/narrative/yogas.

Response (200 OK)

The real response to the example request above, generated from the API itself. Long arrays are trimmed to their first two items. Field names are stable across versions.

200 response
{
  "date": "1990-01-15",
  "time": "10:30",
  "location": {
    "lat": 19.076,
    "lon": 72.8777,
    "alt": 0
  },
  "tz": "Asia/Kolkata",
  "ayanamsa": "lahiri",
  "ayanamsa_value": 23.71795,
  "house_system": "whole_sign",
  "count": 27,
  "items": [
    {
      "id": "ruchaka",
      "kind": "yoga",
      "category": "pancha_mahapurusha",
      "present": true,
      "planets": [
        "mars"
      ],
      "houses": [
        10
      ],
      "cancelled": false,
      "cancel_reasons": [],
      "axes": [
        "lagna",
        "moon"
      ],
      "sub_ids": [
        "ruchaka.from_lagna",
        "ruchaka.from_moon"
      ],
      "source": "BPHS Ch.75 v.1-2; Phaladeepika 6.1-5"
    },
    {
      "id": "kemadruma_aspectual",
      "kind": "yoga",
      "category": "lunar",
      "present": true,
      "planets": [
        "moon"
      ],
      "houses": [
        7
      ],
      "cancelled": false,
      "cancel_reasons": [],
      "source": "Saravali Ch.13"
    }
  ]
}

Field reference

Every field in the response, with its type, a real example, and what it means.

FieldTypeMeaning
date, time, tz, locationstring / object
Birth details you sent (unprefixed `date`, `time`, `tz`, `lat`, `lon`), echoed back. `time` is "12:00" when you leave it out.
example: "1990-01-15", "10:30", "Asia/Kolkata"
ayanamsa, ayanamsa_valuestring, number
Ayanamsa used (default lahiri) and its value in degrees at the birth moment.
example: "lahiri", 23.71795
house_systemstring
Always whole_sign: every `house` here is counted by whole signs from the lagna.
example: "whole_sign"
countinteger
Number of items returned.
example: 27
items[].idstring
Id from the same family as /v1/meta/vedic/yogas and /v1/meta/vedic/doshas. Use it as a key; map it to a name in your app.
example: "ruchaka"
items[].kind, items[].categorystring
kind is yoga or dosha; category groups ids (pancha_mahapurusha, lunar, raja, dhana, dosha …).
example: "yoga", "pancha_mahapurusha"
items[].presentboolean
True when the pattern is formed and not cancelled.
example: true
items[].planets, items[].housesstring[], integer[]
Planet ids that form it and the whole-sign houses they occupy.
example: ["mars"], [10]
items[].cancelled, items[].cancel_reasonsboolean, string[]
A pattern that formed but is cancelled comes back with present:false, cancelled:true and the reason ids.
example: false, []
items[].strengthstring (optional)
full or partial, when the detector grades it.
example: "full"
items[].variant, items[].axesstring, string[] (optional)
variant is the sub-type (e.g. the Kaal Sarp type); axes says whether it forms from the lagna, the Moon or both.
example: ["lagna", "moon"]
items[].sub_idsstring[] (optional)
The finer ids the narrative endpoints key their text on; use them to fetch the matching reading from /v1/vedic/narrative/yoga/{id} or dosha/{id}.
example: ["ruchaka.from_lagna", "ruchaka.from_moon"]
items[].sourcestring (optional)
Classical reference for the rule.
example: "BPHS Ch.75 v.1-2; Phaladeepika 6.1-5"
items[].detailsobject (optional)
Id-specific data, e.g. the Mangal frames or raja_yoga.kendra_trikona pairs.
example: { "from_lagna": { "hit": false, "house": 10 } }

Usage tips

How to use it

  • Default vs all=true
    By default you get the present yogas plus those that formed but were cancelled (present:false, cancelled:true). all=true adds every catalogue id that is absent, with present:false, so you can show a full checklist.
  • Pair with the narratives
    Each item's sub_ids are the keys the narrative layer uses. Show the data from here and fetch text only for the yogas the user opens, via /v1/vedic/narrative/yoga/{id}.

Errors

Every error follows the same envelope. Use the error.code field (not the message) for conditional logic in your integration.

401 Unauthorized

{
  "error": {
    "code": "unauthorized",
    "message": "missing or invalid API key",
    "request_id": "req_01hqy7k8c3e7m1n"
  }
}

402 Payment Required

{
  "error": {
    "code": "trial_exhausted",
    "message": "your free trial credits are exhausted — pick a plan to continue",
    "top_up_url": "https://lifeastroapi.com/pricing",
    "request_id": "req_01hqy7k8c3e7m1n"
  }
}

429 Too Many Requests

{
  "error": {
    "code": "rate_limited",
    "message": "rate limit exceeded; retry after 12 seconds",
    "request_id": "req_01hqy7k8c3e7m1n"
  }
}

Try it

Get a dv_live_* key from your dashboard and paste into the cURL snippet above. New accounts get 7,500 welcome credits plus 1,500 free credits a month. Sign up.