API Reference / Vedic Astrology / Chart (Kundli)
/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).
Request
All requests require an Authorization header with your dv_live_* API key.
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.
| Name | Required | Example | Description |
|---|---|---|---|
date | yes | 1990-01-15 | Birth date (YYYY-MM-DD). |
tz | yes | Asia/Kolkata | Birth place timezone: IANA name (Asia/Kolkata) or UTC offset (+05:30). |
lat | yes | 19.076 | Birth place latitude in decimal degrees. |
lon | yes | 72.8777 | Birth place longitude in decimal degrees. |
time | no | 10:30 | Birth time (HH:MM, 24-hour, local). Defaults to 12:00. |
ayanamsa | no | — | Ayanamsa (sidereal offset) to use. Defaults to lahiri. |
all | no | — | 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. |
gender | no | — | 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.
{
"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.
| Field | Type | Meaning |
|---|---|---|
| date, time, tz, location | string / 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_value | string, number | Ayanamsa used (default lahiri) and its value in degrees at the birth moment. example: "lahiri", 23.71795 |
| house_system | string | Always whole_sign: every `house` here is counted by whole signs from the lagna. example: "whole_sign" |
| count | integer | Number of items returned. example: 27 |
| items[].id | string | 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[].category | string | kind is yoga or dosha; category groups ids (pancha_mahapurusha, lunar, raja, dhana, dosha …). example: "yoga", "pancha_mahapurusha" |
| items[].present | boolean | True when the pattern is formed and not cancelled. example: true |
| items[].planets, items[].houses | string[], integer[] | Planet ids that form it and the whole-sign houses they occupy. example: ["mars"], [10] |
| items[].cancelled, items[].cancel_reasons | boolean, string[] | A pattern that formed but is cancelled comes back with present:false, cancelled:true and the reason ids. example: false, [] |
| items[].strength | string (optional) | full or partial, when the detector grades it. example: "full" |
| items[].variant, items[].axes | string, 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_ids | string[] (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[].source | string (optional) | Classical reference for the rule. example: "BPHS Ch.75 v.1-2; Phaladeepika 6.1-5" |
| items[].details | object (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=trueBy 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 narrativesEach 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.