LifeAstroAPILifeAstroAPI

API Reference / Vedic Astrology / Remedies

GET
10 credits

/v1/vedic/remedies/for-graha

Remedies for one graha filtered by reason (debilitated, combust, dusthana, weak_shadbala, dasha or dosha:<id>), each with kind, weekday and why it matched. Same catalogue and languages as /v1/vedic/remedies.

What this tells you

A filter over the existing remedy catalogue (same rows, text and languages as /v1/vedic/remedies; no new prose) that answers "what can this person do for Saturn?". Pass a graha and a reason; each remedy comes back with its kind, the weekday it belongs to and why it matched. Reasons: debilitated, combust, dusthana, weak_shadbala (or none) return the graha's own rows (today these four give the same set, and the reason is echoed for your own tables); dasha adds <graha>_dasha_shanti; dosha:<id> returns the dosha's shanti rows (sade_sati, sade_sati_rising/peak/setting, mangal, kaalsarp, pitra and their aliases; sub-ids like kaalsarp.anant use the parent) plus the graha's rows when graha is given.

`graha` is required unless `reason` is dosha:<id>. Gemstones are not in the catalogue, so include=gemstone only adds a skipped entry.

Request

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

example request
curl "https://api.lifeastroapi.com/v1/vedic/remedies/for-graha?graha=saturn&reason=debilitated" \
  -H "Authorization: Bearer YOUR_API_KEY"

Query parameters

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

NameRequiredExampleDescription
grahayessaturnGraha id. Required unless reason is dosha:<id>.
reasonnodebilitateddebilitated | combust | dusthana | weak_shadbala | dasha | dosha:<id>
includeno—Comma-separated extra kinds: pooja, pilgrimage, yantra, rudraksha, gemstone.
categoryno—Limit to one catalogue category.
localeno—Text locale (en, hi, mr, ta, te, kn, ...). English text is kept where no translation exists.

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
{
  "graha": "saturn",
  "reason": "debilitated",
  "reason_basis": [
    "graha"
  ],
  "locale": "en",
  "kinds": [
    "mantra",
    "daan"
  ],
  "remedies": [
    {
      "id": "vedic.L1.remedy.mantra.saturn",
      "category": "mantra",
      "graha": "Saturn",
      "applies_when_rule_ids": [],
      "weight": 1,
      "locale": "en",
      "label": "Saturn mantra: a quiet daily practice",
      "summary": "Chant on Saturday morning, after a bath",
      "full_text": "Saturn stands for discipline, patience, hard work and the way you carry burdens. When Saturn is under strain, you may notice delays, heavy responsibility, tiredness and a sense of being alone with a load. A mantra is one of the gentlest ways to work with that. It costs nothing…",
      "kind": "mantra",
      "weekday": 6,
      "matched_by": "graha"
    },
    {
      "id": "vedic.L1.festival_remedy.offering.saturn",
      "category": "daan",
      "graha": "Saturn",
      "applies_when_rule_ids": [],
      "weight": 1,
      "locale": "en",
      "label": "Saturn offerings: a simple gift on Saturdays",
      "summary": "Give on Saturday",
      "full_text": "This week, Saturday gives you a simple chance to give for Saturn, which stands for discipline, patience, hard work and the way you carry burdens. Offer black sesame, urad dal, iron items, dark cloth or mustard oil to a labourer, an elderly person, or someone who works with the…",
      "kind": "daan",
      "weekday": 6,
      "matched_by": "graha"
    }
  ]
}

Field reference

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

FieldTypeMeaning
graha, reasonstring
Echo of `graha` and `reason`.
example: "saturn", "debilitated"
reason_basisstring[]
Which rows the reason resolved to: graha, dasha and/or dosha.
example: ["graha"]
localestring
Text language (`locale`; English is kept where no translation exists).
example: "en"
kindsstring[]
Kinds included: the free kinds by default, plus anything added with `include`.
example: ["mantra", "daan", …]
remedies[]array
Catalogue rows with the same fields and text as /v1/vedic/remedies (id, category, label, summary, full_text, weight …). Order: dosha rows, dasha rows, graha rows; then kind; then weight.
example: [{ "id": "vedic.L1.remedy.mantra.saturn", … }]
remedies[].kindstring
mantra, daan, vrat, pooja, pilgrimage, yantra or rudraksha, derived from the remedy id (charity/offering → daan, fast/annual_vrat → vrat, graha_shanti → pooja).
example: "mantra"
remedies[].weekdayinteger (0–6) or null
Day the remedy is tied to (0 = Sunday … 6 = Saturday); null when the catalogue ties it to no day.
example: 6
remedies[].matched_bystring
Why the row is here: graha, dasha or dosha.
example: "graha"
skippedobject (optional)
Requested things the catalogue has no rows for, e.g. include=gemstone or a dosha without shanti rows.
example: { "gemstone": "…" }

Usage tips

How to use it

  • Free remedies first
    By default the graha rows are limited to free kinds (mantra, daan, vrat, seva, deep). Add include=pooja,pilgrimage,yantra,rudraksha to show paid options, or category=<one category> to show only that one.
  • Weekly planner
    weekday lets you place each remedy on a calendar (Saturday for Saturn, and so on).
  • From chart data
    Pick the graha and reason from /v1/chart/kundli-facts (is_debilitated, is_combust, house 6/8/12, shadbala.is_strong) or from /v1/chart/doshas, then call this once per graha.

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.