LifeAstroAPILifeAstroAPI

API Reference / Vedic Astrology / Chart (Kundli)

GET
20 credits

/v1/chart/doshas

Doshas in a birth chart as data (no text): Kaal Sarp, Mangal (from lagna, Moon and Venus, with cancellation), Pitra, combust, debilitation, gandanta, grahan and more.

What this tells you

The doshas of a birth chart as data, from the same detectors as /v1/vedic/narrative/doshas: kaalsarp (variant = type), mangal (lagna, Moon and Venus frames with cancellation), pitra, combust_dosha, debilitation_dosha (with neecha bhanga in details), retrograde_dosha, gandanta_dosha, grahan_dosha, papakartari_dosha, mrityu_bhaga_dosha, guru_chandal_dosha, visha_kanya_dosha and ganda_moola_dosha (variant = nakshatra). Items have the same fields as /v1/chart/yogas. 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`. all=true also lists absent ids with present:false.

Request

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

example request
curl "https://api.lifeastroapi.com/v1/chart/doshas?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": 4,
  "items": [
    {
      "id": "mangal",
      "kind": "dosha",
      "category": "dosha",
      "present": false,
      "planets": [
        "mars"
      ],
      "houses": [
        10
      ],
      "cancelled": true,
      "cancel_reasons": [
        "mars_own_or_exalted_sign"
      ],
      "sub_ids": [
        "mangal.cancelled_by_own_exaltation"
      ],
      "source": "BPHS Ch.80 v.47; Phaladeepika 6.5",
      "details": {
        "bphs_strict": false,
        "from_lagna": {
          "hit": false,
          "house": 10
        },
        "from_moon": {
          "hit": false,
          "house": 4
        },
        "from_venus": {
          "hit": false,
          "house": 11,
          "informational": true
        },
        "modern_north": false
      }
    },
    {
      "id": "combust_dosha",
      "kind": "dosha",
      "category": "dosha",
      "present": true,
      "planets": [
        "venus",
        "saturn"
      ],
      "houses": [
        11,
        12
      ],
      "cancelled": false,
      "cancel_reasons": []
    }
  ]
}

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: 4
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: "mangal"
items[].kind, items[].categorystring
kind is yoga or dosha; category groups ids (pancha_mahapurusha, lunar, raja, dhana, dosha …).
example: "dosha", "dosha"
items[].presentboolean
True when the pattern is formed and not cancelled.
example: false
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: true, ["mars_own_or_exalted_sign"]
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: "anant"
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: ["mangal.cancelled_by_own_exaltation"]
items[].sourcestring (optional)
Classical reference for the rule.
example: "BPHS Ch.80 v.47; Phaladeepika 6.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 } }
items[] (mangal).detailsobject
Mars counted from the lagna, the Moon and Venus, with the house and whether that frame hits. from_venus is informational and never sets present.
example: { "bphs_strict": false, "from_lagna": { "hit": false, "house": 10 }, "from_moon": { "hit": false, "house": 4 }, "from_venus": { "hit": false, "house": 11, "informational": true }, "modern_north": false }
Jyotish: Mangal dosha: Mars in the 1st, 2nd, 4th, 7th, 8th or 12th; cancelled here for Mars in its own or exaltation sign or joined by a benefic (cancel_reasons).

Usage tips

How to use it

  • Cancelled is not absent
    A dosha whose pattern formed but is cancelled comes back with present:false, cancelled:true and cancel_reasons. Show it as "cancelled" rather than hiding it; users often ask about it.
  • Matchmaking
    For a couple, /v1/milan/summary already includes the mangal item of both partners plus a pair status.

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.