{
  "info": {
    "name": "Occult API",
    "description": "Vedic astrology as a REST API - 266 endpoints on prepaid credits.\n\nSet `apiKey` in the collection variables, then send any request. One successful call is one credit; failed requests cost nothing.\n\nGenerated from the live endpoint catalogue - do not edit by hand.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "X-API-Key",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{apiKey}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.occultapi.com",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Astrology",
      "item": [
        {
          "name": "Abhijit muhurat",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/abhijit-muhurat/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "abhijit-muhurat"
              ]
            },
            "description": "Abhijit muhurta as a single {start, end} window.\n\nThe eighth of the fifteen day muhurtas, straddling the midpoint of the daylight, and held auspicious for beginning almost anything. Because it is a proportional division of the actual daylight it moves with the place and the season, and is not simply local noon.\n\nFor the other favourable windows in the same call, use /api/astro/auspicious-timings/ - the same credit.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Weekday activities",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/activities_day_of_week/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "activities_day_of_week"
              ]
            },
            "description": "Each day of the week is ruled by a planet, and Vedic tradition assigns every weekday a set of undertakings it favours — particular metals, materials, trades and kinds of work. This endpoint returns that guidance as written English prose, one paragraph per weekday.\n\nIt is a static lookup, not a calculation: no date, place or chart is involved, so the answer for Sunday is the same whichever Sunday you mean. Use it to caption a day in a calendar or panchanga view without having to write the copy yourself.\n\nStart with `get_all_weeks` to see the seven accepted names, then pass one of them as `week` alongside `get_week_activities`. Your input is lower-cased before the lookup, so casing does not matter. An unrecognised weekday comes back as an explanatory string with HTTP 200 rather than as an error.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 2 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_week_activities\"\n  ],\n  \"week\": \"sunday\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Amrit kaal",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/amrit-kaal/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "amrit-kaal"
              ]
            },
            "description": "Amrit kaal: the day's most favourable windows.\n\nReturned as a LIST under `windows`, not a single window, because a day can hold two. An empty list is a valid answer - some days have none.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Argala and virodhargala",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/argala/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "argala"
              ]
            },
            "description": "Argala: the Jaimini doctrine of intervention between houses.\n\nPlanets in the 2nd, 4th, 5th and 11th from a house intervene in it. Planets in the 12th, 10th, 3rd and 9th obstruct that intervention — the virodhargala. Both tables are returned, one row per house counted from the ascendant, every column labelled with the house it represents and every cell resolved to planet names.\n\nThe two tables are given separately rather than zipped together, and `blocked_by` states which virodhargala house blocks which argala house. That matters: the engine stores the two house lists in mismatched order, so pairing them by column position would say the 5th is blocked by the 9th when classically it is blocked by the 3rd.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"node\": \"true\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Ashtakoota matching",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/ashtakoota/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "ashtakoota"
              ]
            },
            "description": "Ashtakoota is the eight-part North Indian scheme for matching a bride and groom from their birth stars alone. Eight qualities are each scored — Varna out of 1, Vasya out of 2, Tara out of 3, Yoni out of 4, Graha Maitri out of 5, Gana out of 6, Bhakoot out of 7 and Nadi out of 8 — for a maximum of 36 points. South Indian practice ('porutham') asks much the same questions but answers most of them yes or no, and adds four further tests: Mahendra, Vedha, Rajju and Sthree Dheerga.\n\nYou supply only four numbers: the bride's and groom's nakshatra (1–27, Ashwini to Revati) and the pada each falls in (1–4). No birth time or place is needed — if you have those instead, use /api/astro/horoscope-match/, which derives the star itself and returns a fuller report. `compatibility_score` is the key to start with: it runs every test and returns them with the total.\n\nTwo things to know. The `method` field is accepted but never reaches the calculation, so the North Indian scoring is always used; to get the South Indian yes/no form of a test, request its explicit `_south` key. And the North-form scored kootas each return a two-element list of [score, maximum], not a bare number.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 25 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"raasi_from_nakshatra_pada\"\n  ],\n  \"boy_nakshatra_number\": 5,\n  \"boy_paadham_number\": 3,\n  \"girl_nakshatra_number\": 12,\n  \"girl_paadham_number\": 2,\n  \"method\": \"North\",\n  \"nakshatra_number\": 0,\n  \"paadha_number\": 0,\n  \"use_astroyogi_method\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Ashtakavarga",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/ashtakvarga/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "ashtakvarga"
              ]
            },
            "description": "Ashtakavarga scores every sign of a chart out of eight. Seven planets and an eighth contributor each vote on all twelve signs; a sign that collects many points supports the matters it governs, and one that collects few does not. It is the standard Vedic way to rank which houses and which transits are worth acting on, without interpreting the chart yourself.\n\nEvery key here returns numbers, not prose. A typical use is `samudhaya_ashtaka_varga` for a quick strength ranking of the twelve signs, then `binna_ashtaka_varga` for the planet you care about — for example, Jupiter's score in the sign it is currently transiting.\n\nNote on the eighth row: the sign-indexed tables label it `Rahu`, while the house-indexed ones (`trikona_sodhana_house`, `ekadhipatya_sodhana_house`) label the same row `Ascendant`. Classically this contributor is the ascendant. Key off position rather than name if you read both.\n\nTables are built from the divisional chart named in `chart_name`, normally RashiChart. Two request fields change the arithmetic: `apply_ekadhipatya_reductions` and `use_eight_ashtakavargas_in_sav`. Classical sources disagree on both, so they are yours to set.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 8 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"samudhaya_ashtaka_varga\"\n  ],\n  \"latitude\": 26.1046,\n  \"longitude\": 74.319,\n  \"timezone_as_float\": 5.5,\n  \"chart_name\": \"RashiChart\",\n  \"date_time\": \"2026-09-01T06:00:00+05:30\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Assamese calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/assamese_calendar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "assamese_calendar"
              ]
            },
            "description": "The Assamese year for a given Gregorian year: the Bihus, the Sankrantis, the eclipses and the pan-Indian festivals as Assam observes them, each resolved to the civil date on which it is actually kept at the place you give.\n\nThe Assamese calendar is solar, counted in the Bhaskarabda era and beginning with Bohag at the Sun's entry into Aries. The solar events (the Sankrantis, Bohag, Magh and Kati Bihu, Uruka) and the year's eclipses are computed fresh for your coordinates; the lunar festivals largely share their tithis with the Bengali set and are resolved to the right day using the time of day each observance requires — which is why Kali Puja and Dipabali, one and the same Amavasya, need not land together.\n\nSend `year` with `latitude`, `longitude` and `timezone_as_float`; the place matters because sunrise decides which civil day a tithi is kept on. The response is `{year, events}` where events is a list of `{name, date}` in date order, `date` being a plain YYYY-MM-DD local civil date.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Chart attributes",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/attributes/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "attributes"
              ]
            },
            "description": "A grab-bag of twelve small chart quantities returned in one call — the sort of thing you would otherwise make a dozen requests for. It always computes all twelve, whatever you send.\n\nThe set covers the nakshatra and pada of a given ecliptic longitude, a nakshatra's number and ruling planet by name, the Hadda (Egyptian term) lord of a longitude within a sign, the Kakshya lord and Kakshya number, the zodiac sign of a longitude, which planets are combust at the given moment, the Moon's phase angle, the next occurrence of a chosen lunar phase, the four seasonal ingress moments of a year, and a divisional-chart position derived from a longitude.\n\nOnly `date_time` is required; everything else falls back to a default (longitude 0, name 'Ashwini', zodiac 'Aries', lord 'saturn', target_phase 0 for new moon, limitdays 30, the current year, chart_factor 1 for the Rashi chart), so a minimal call with just `date_time` and `longitude` already gives you combust planets, moon phase, nakshatra and sign. Two quirks: `lord` is matched case-sensitively against data that stores Mercury capitalised, so 'mercury' silently returns null where 'Mercury' returns a number; and the `when` and `nakshatras` request fields are accepted but never read.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2024-11-21T07:45:44.368Z\",\n  \"longitude\": 76.125,\n  \"name\": \"Ashwini\",\n  \"zodiac\": \"Aries\",\n  \"lord\": \"saturn\",\n  \"target_phase\": 0,\n  \"limitdays\": 30,\n  \"year\": 1,\n  \"chart_factor\": 1\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Auspicious timings",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/auspicious-timings/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "auspicious-timings"
              ]
            },
            "description": "The favourable windows of the day: abhijit, brahma, godhuli, nishita, vijaya and amrit kalam.\n\nEvery one is {start, end}. Abhijit and vijaya both straddle the midpoint of the daylight and will usually be identical or near-identical; brahma falls before sunrise and nishita around the middle of the night, so both can land on the adjacent calendar date. Amrit kalam is a LIST because it can occur more than once in a day; the others are single windows.\n\nAll of them are proportional divisions of the day or night, so they depend on the place as much as the date.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Ayanamsa value",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/ayanamsa_value/?",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "ayanamsa_value"
              ],
              "query": [
                {
                  "key": "ayanamsa",
                  "value": "FAGAN_BRADLEY",
                  "disabled": true,
                  "description": "Ayanamsa name (e.g. LAHIRI). Defaults to LAHIRI."
                },
                {
                  "key": "date",
                  "value": "",
                  "disabled": true,
                  "description": "ISO date string (e.g. 1990-05-14). Defaults to today."
                }
              ]
            },
            "description": "The ayanamsa is the gap between the tropical zodiac, which is tied to the equinox, and the sidereal zodiac used in Vedic astrology, which is tied to the stars. It grows by roughly fifty arc-seconds a year, so every sidereal calculation depends on which ayanamsa you adopt and for which date.\n\nThis endpoint returns that single number. It is a GET with query parameters: `ayanamsa`, a name such as LAHIRI, RAMAN, KRISHNAMURTI or TRUE_CITRA (47 standard ayanamsa definitions are accepted, case-insensitively), and `date`, an ISO date defaulting to today. Use it to label a chart with the ayanamsa it was cast on, or to see how far two definitions diverge for a given birth date.\n\nThe response gives the value both ways: `value_degrees` as a decimal to six places, and `degrees`, `minutes` and `seconds` plus a ready-made `formatted` string. The name and the resolved date are echoed back. An unknown name, and the pseudo-ayanamsa 'USER', return 400.\n\nCosts 1 credit on success. Failed requests are not charged."
          },
          "response": []
        },
        {
          "name": "Bengali calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/bengali_calendar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "bengali_calendar"
              ]
            },
            "description": "The Bengali year for a given Gregorian year: Pohela Boishakh and the solar new year, the twelve Sankrantis, Durga Puja and the rest of the autumn sequence, Kali Puja, Bhai Phonta, Jagaddhatri Puja and the pan-Indian festivals as Bengal observes them.\n\nEverything is computed live for the coordinates you pass rather than read from a fixed table. The lunar festivals are found by tithi and then resolved to the civil day on which they are actually kept, using the time of day each observance requires — sunrise for some, midday for others, midnight for Maha Shivaratri — so the dates match what a Bengali panchang would print for that town.\n\nSend `year` with `latitude`, `longitude` and `timezone_as_float`. The response is `{year, events}`, where events is a list of `{name, date}` in date order and `date` is a plain YYYY-MM-DD local civil date. Compare with /api/astro/assamese_calendar/, which shares much of this festival set but adds the Bihus and the solar Assamese observances.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Bhava cusps",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/bhava-cusps/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "bhava-cusps"
              ]
            },
            "description": "The twelve house cusps under two systems, side by side.\n\n`equal_house` is the standard equal-house division in the sidereal zodiac; `sripati` is the Sripati method. Both come back as twelve entries in degree, sign, minute and second form with nakshatra and pada.\n\nWorth checking both before you commit to one: they agree on some charts and diverge on others, and a house placement that changes between them is exactly the kind of thing a reader will query.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Bhinnashtakavarga",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/bhinnashtakavarga/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "bhinnashtakavarga"
              ]
            },
            "description": "Bhinnashtakavarga: one row per contributor, twelve numbers each, scored 0 to 8.\n\nRows are Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn and an eighth labelled `Rahu`; the twelve values run Aries to Pisces. Row `Sun` value 3 means the Sun's varga gives Aries three points. This is the table most readings start from.\n\n`pindas` comes with it: the three final weightings, seven numbers each, one per planet. Sodhya pinda is the single figure classical texts judge a planet's overall strength by.\n\nFor the twelve totals alone, /api/astro/sarvashtakavarga/ is the smaller call.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Birth panchanga readings (your elements)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/birth-panchanga-effects/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "birth-panchanga-effects"
              ]
            },
            "description": "What each of your birth panchanga elements is held to signify.\n\nGive the tithi, karana, yoga, vaara, hora and paksha you were born under and get the traditional reading for each in one call, instead of six calls with six key names nobody would guess.\n\nThese are looked up by NAME, not computed from a chart: use /api/astro/panchang/ to find which tithi and karana a birth falls in, then pass the names here. /api/astro/panchanga-elements/ lists every spelling the lookup accepts.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"tithi\": \"pratipada\",\n  \"karana\": \"bava\",\n  \"yoga\": \"vishkumbha\",\n  \"vaara\": \"sunday\",\n  \"hora\": \"surya\",\n  \"paksha\": \"shukla\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Brahma muhurat",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/brahma-muhurat/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "brahma-muhurat"
              ]
            },
            "description": "Brahma muhurta as a single {start, end} window.\n\nThe last two muhurtas of the night before sunrise - roughly ninety-six minutes ending at dawn - traditionally the time for study and practice. It is computed from the night's length, so it moves with latitude and season and falls on the CALENDAR DAY BEFORE the sunrise it precedes.\n\nFor the other favourable windows in the same call, use /api/astro/auspicious-timings/.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Cazimi, combustion and under the beams",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/cazimi/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "cazimi"
              ]
            },
            "description": "The three solar conditions for every planet, at one moment.\n\nA planet close to the Sun is in one of three states, and they are not the same thing despite constantly being run together. CAZIMI is within about 17 arcminutes of the Sun's centre — \"in the heart\" — and is held to be the STRONGEST a planet can be. COMBUST is within roughly 8.5 degrees and is close to the worst: the significations burnt up. UNDER THE BEAMS is within roughly 15 degrees, weakened but not destroyed.\n\nThe distinction matters because cazimi and combust are half a degree apart and opposite in meaning, so cazimi is tested first — a planet inside both orbs is cazimi. An endpoint that only checked combustion would report the best placement in traditional astrology as the worst.\n\nAlso returned per planet: the exact elongation in degrees and arcminutes, which side of the Sun it sits on, and whether it is applying to the Sun or separating from it — derived from the two longitude speeds, and the difference between a planet going into combustion and one coming out.\n\nAll three orbs are request fields, because the sources disagree on them. Distinct from /api/astro/combustion/, which scans a whole year for the periods one planet is combust; this answers what the state is right now, for every planet, and covers cazimi and under-the-beams as well.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-09T12:00:00+00:00\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 0.0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Celestial positions",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/celestial/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "celestial"
              ]
            },
            "description": "Raw ephemeris for one or more bodies: where a planet is, how fast it is moving, when it rises and sets, whether it is retrograde. This is the astronomy layer beneath the rest of the API, exposed directly, and it reaches well past the nine Vedic grahas — the outer planets, Chiron and the asteroids, the Uranian fictitious points and several planetary moons are all addressable.\n\nThe keys divide into two kinds. The `set_*` keys are switches: they change how positions or rise and set times are computed — geocentric, topocentric or heliocentric, apparent or true, with or without nutation, sidereal or tropical, Hindu rising or disc-centre rising — and each returns null. The `get_*` keys, along with `rise_time`, `set_time`, `is_retrograde` and `is_stationary`, return values. Because keys are executed in the order you list them, a switch only affects the value keys that come after it in the array.\n\n`planet_names` takes a list of upper-case names and the response is keyed by them, so a call for MARS comes back as `{\"data\": {\"MARS\": {\"get_longitude\": 123.45}}}`. An unrecognised name does not fail the request: that entry comes back as `{\"error\": \"Unknown planet '<name>'\"}`. Note the nodes are called MEAN_NODE and TRUE_NODE here, not the 'northtruenode' spelling /api/astro/chart/ uses.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 31 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2024-11-20T08:40:08.658Z\",\n  \"keys\": [\n    \"set_default_positions\",\n    \"set_hindu_rising\"\n  ],\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"time_zone\": 5.5,\n  \"altitude\": 0,\n  \"planet_names\": [\n    \"SUN\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Prashnavali",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/chakra/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "chakra"
              ]
            },
            "description": "Four traditional question-and-answer prashnavali, returned as data so you can build the drawing mechanism yourself. There is no astronomy here — nothing is calculated from a date or a place. These are fixed devotional texts.\n\n`ram_shalaka` is the Ram Shalaka Prashnavali: 225 entries drawn from the Ramcharitmanas, each with the Devanagari `letter` that indexes it in the traditional grid, the `chaupai` itself, a `source` note saying where in the epic it appears, and an English `answer`. `hanuman_prashnavali` is 49 numbered entries of `{answer, description}`. `mavji_maharaj` is 64 entries keyed by a three-digit number from 111 to 444 (each digit 1 to 4, as though three four-sided draws), each carrying the number and its reading in both Hindi and English. `sai_prashnavali` is 720 numbered answers.\n\nPass the ones you want in `keys`. Three of them return the entire dataset in one go, which is the usual way to use them — fetch once, cache, then index locally. `sai_prashnavali` is the exception: it requires `number` and returns only that single entry, and a number outside 1–720 returns 400.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"ram_shalaka\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Chandrabala",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/chandrabala/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "chandrabala"
              ]
            },
            "description": "Chandra bala: which signs are well placed relative to the Moon's current sign.\n\nA list of zodiac names. The counterpart to tarabala - that one works from the birth nakshatra, this from the birth or rising sign.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Chara karakas (Jaimini)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/chara-karakas/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "chara-karakas"
              ]
            },
            "description": "The eight Jaimini chara karakas, as planet names rather than raw indices.\n\nThe karakas rank the planets by how far through their sign they stand, highest first, with Rahu counted backwards because it moves backwards. Whichever planet comes top is the Atmakaraka, the significator of the self, and the whole of Jaimini's method rests on it.\n\nThe underlying endpoint returns a bare array like [4, 5, 2, 0, 1, 6, 3, 7]. This returns which planet holds which karaka and what each karaka signifies.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"node\": \"true\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Birth chart",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/chart/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "chart"
              ]
            },
            "description": "The core chart endpoint: planetary positions, house divisions and the ascendant for a moment and a place. Ask for the Rashi chart (D-1) for an ordinary birth chart, or any of thirty-odd divisional charts — Navamsa, Dasamsa, Dwadasamsa, Shashtyamsa and the rest — by name, and pass an array of names to get several back in one call, keyed by chart name.\n\nEach chart returns three blocks. `celestial` is keyed by body name (sun, moon, … northtruenode) and gives longitude, latitude, nakshatra and pada, kakshya, sign name and house number for each. `houses` is keyed 1 to 12 with the `start`, `cusp` and `end` of every house. `ascendant` gives the rising degree and its sign. `notation` controls units throughout: 'degree' for decimal degrees, 'astrological' for sign plus degrees, minutes and seconds.\n\nThe optional fields are where the precision lives. `ayanamsa` picks the sidereal definition, and `apply_correction` with `correction_deg`, `correction_min`, `correction_sec` and `correction_direction` shifts it by hand. `rahu` chooses true nodes, mean nodes or both. `extended_bodies` adds asteroids, Uranian fictitious bodies or planetary moons, silently dropping any whose ephemeris files are absent. `ascendant_pos` decides whether the ascendant is read at the house cusp, start or end — note that any value other than 'start' or 'end', including a typo, falls back to the cusp without complaint. The date field is spelt `datetime` on this endpoint, not `date_time`.\n\nOPT-IN SVG RENDERING. Set render to 'svg' and the response gains two more fields, alongside the four above rather than in place of them: `layout` is the geometry — every house or sign cell's polygon points, label position, and which bodies occupy it — for drawing your own diagram in React, Canvas, Flutter or SwiftUI. `svg` is ready-to-drop markup built from that same geometry. chart_style picks North Indian (diamond, fixed houses, rotating signs) or South Indian (fixed sign grid, rotating houses); svg_size, theme, label_style, show_degrees and the four *_color fields control the rendering. Every field defaults to off, so a request that does not mention render is completely unaffected — the response is exactly what it has always been.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"chart_name\": \"NavamsaChart\",\n  \"datetime\": \"2026-04-09T15:35:00+05:30\",\n  \"longitude\": 75.76861133842026,\n  \"latitude\": 26.849874414615,\n  \"notation\": \"degree\",\n  \"ayanamsa\": \"lahiri\",\n  \"ascendant_pos\": \"cusp\",\n  \"rahu\": \"true\",\n  \"true_mean\": \"Mean\",\n  \"refraction\": false,\n  \"apply_correction\": false,\n  \"correction_direction\": \"add\",\n  \"correction_deg\": 0,\n  \"correction_min\": 0,\n  \"correction_sec\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Chart analysis",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/chart_analysis/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "chart_analysis"
              ]
            },
            "description": "Fourteen structural readings of a birth chart in a single call, plus one comparison between a natal chart and a transit chart. This is the interpretive layer above /api/astro/chart/: it does not give you positions, it gives you what those positions amount to.\n\nThe response always carries the same fields. `house_from_reference_chart` counts the house that `target_celestial` in the transit chart falls in when measured from `ref_celestial` in the natal chart. `kendras` groups the natal bodies by angular house. `argala` and `virodhargala` give the intervening and obstructing planets for each body, keyed by the 2nd, 4th, 5th and 11th and by the 12th, 10th, 9th and 3rd respectively. `bhava_arudhas` and `ghara_arudhas` are the projected images of the houses and the planets. `temporary_relationships` and `compound_relationships` are the chart-specific friendships. `karakas` are the chara karakas, `nakshatra_count` the star distance from the reference body, and `exaltation`, `debilitation`, `mooltrikona`, `own_rashi` and `pachakadi_relations` the dignity checks.\n\nBoth charts are always Rashi charts: `chart_name_natal` and `chart_name_transit` are free-form labels and do not select a divisional chart despite their names. `mode` chooses eight chara karakas or seven, and `rahu` picks true or mean nodes for the karaka block only. Setting `ref_celestial` to 'ascendant' is allowed and returns null for the two relationship fields, which are planet-to-planet by definition.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time_natal\": \"2025-11-21T05:45:23.715Z\",\n  \"date_time_transit\": \"2024-11-21T05:45:23.715Z\",\n  \"longitude_natal\": 77.5946,\n  \"latitude_natal\": 12.9716,\n  \"longitude_transit\": 26.1046,\n  \"latitude_transit\": 26.9124,\n  \"chart_name_natal\": \"RashiChart\",\n  \"chart_name_transit\": \"RashiChart\",\n  \"ref_celestial\": \"mercury\",\n  \"target_celestial\": \"mars\",\n  \"rahu\": \"true\",\n  \"mode\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Astrology chat",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/chat/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "chat"
              ]
            },
            "description": "Ask a question about a birth chart and get an answer in plain language, grounded in the classical texts.\n\nEvery answer comes back with the passages it drew on — each with its source and a relevance score — so the reasoning can be checked rather than taken on trust. Pass a second person in `compare_with` for compatibility questions.\n\nThis endpoint is STATELESS. Nothing is stored between calls, and no account is involved: the birth details come from your request, so you can ask on behalf of any of your own users. To continue a conversation, keep the transcript in your application and pass it back in `history` — up to twenty earlier turns.\n\nIt costs 25 credits per call rather than the usual 1, because each answer runs a language model over the computed chart. A failed or empty answer costs nothing, as with every other endpoint here.\n\nCosts 25 credits on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"question\": \"Which planet rules my ascendant, and what does it say about my career?\",\n  \"birth\": {\n    \"date_time\": \"1990-08-15T10:30:00+05:30\",\n    \"latitude\": 26.9124,\n    \"longitude\": 75.7873,\n    \"place\": \"Jaipur, India\",\n    \"name\": \"Asha\",\n    \"gender\": \"female\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Choghadiya",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/choghadiya/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "choghadiya"
              ]
            },
            "description": "The choghadiya: the daylight and the night each divided into eight parts, each named for its quality, plus which one is running at the moment you asked.\n\nBoth reckonings are returned. `day` and `night` are the North Indian form with ISO timestamps. `gowri_day` and `gowri_night` are the Gowri Panchangam used in Tamil practice, which carries a Good/Bad status per period and twelve-hour clock strings. The two do not agree with each other, so pick the one your audience expects rather than treating either as the answer.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Combination yogas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/combination_yoga/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "combination_yoga"
              ]
            },
            "description": "The exact windows during a year when one of twenty-three auspicious or inauspicious day-combinations is in force. These yogas are formed by coincidence rather than by planetary position: a particular weekday falling together with a particular tithi, and for some of them a particular nakshatra as well. Tripushkara and Dwipushkara treble and double the result of whatever is begun in them; Sarvartha Siddhi and Amrit Siddhi are broadly auspicious; Vish, Hutashan, Mrityu and Dagdha are the opposite.\n\nEight of them — tripushkara, dwipushkara, sarvartha_siddhi, amrit_siddhi, siddha, naasha, sudha and halaahal — combine tithi, weekday and the Moon's nakshatra. The remaining fifteen, whose names begin 'vt_' or which are named for the weekday-and-tithi pairs (kulika, samvarta, karkacha, dagdha, vish, hutashan, sheela and so on), use weekday and tithi only.\n\nSend `year`, `yoga` and the place. The response is `{year, yoga, rows}` where rows is a list of `{start, end}` ISO timestamps. The windows are continuous intervals cut at every weekday boundary, the way a panchang prints them, rather than whole days — which is the difference between this endpoint and the sunrise-only day-level view in /api/astro/panchanga_yogas/, where short occurrences can be missed.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026,\n  \"yoga\": \"tripushkara\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Combustion periods",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/combustion/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "combustion"
              ]
            },
            "description": "When a planet is too close to the Sun to be seen it is said to be combust — asta, 'set' — and classical texts treat it as burnt up and unable to deliver its results. This endpoint returns every combustion period touching a given calendar year for one planet.\n\nThe test is a plain angular one. The planet is combust while its geocentric elongation from the Sun is under a per-planet orb: 17° for Mars, 14° for Mercury direct and 12° retrograde, 10° for Venus direct and 8° retrograde, 11° for Jupiter and 15° for Saturn. The year is scanned with a margin at each end, because a period can straddle the New Year, and each crossing is then refined by bisection.\n\nSend `planet` (mars, mercury, venus, jupiter or saturn) and `year`. The response is `{planet, year, periods, total_asta_days_in_year}`, where each period gives `start`, `end`, `duration_days` for the whole period and `days_in_year` for the part of it falling inside the year you asked about. Elongation does not depend on where you stand, so the timings are location-independent; `timezone_as_float` only decides how they are rendered.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"planet\": \"mars\",\n  \"year\": 2026,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Partner star search",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/compatibility_match/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "compatibility_match"
              ]
            },
            "description": "A reverse lookup over a precomputed table of all 11,664 bride-and-groom star-and-pada combinations. Rather than scoring one couple, it answers the other question: given one person's birth star and pada, which stars and padas make a good match? Fix the groom's star to get the brides who suit him, or the bride's to get the grooms.\n\nEach row that comes back is `[star, pada, [the koota scores], score, [the supplementary tests]]`. Set `method` to anything containing 'south' to search the South Indian table instead of the North Indian one.\n\nTwo behaviours will surprise you, so plan around them. `minimum_score` is compared against the Nadi column rather than the 36-point total, and Nadi is only ever 0 or 8; on top of that a `minimum_score` of 0 is treated as 'not supplied' and falls back to the default of 18 for North or 16 for South. The practical consequence is that the defaults return an empty list, and you need a value that is 8 or less and not 0 to get any rows at all. Likewise each of the four `advanced_checks` flags is read one column to the left of the test it names, so 'mahendra' filters on the total score and matches nothing, while 'vedha', 'rajju' and 'shree' filter on Mahendra, Vedha and Rajju respectively. To score a single couple instead, use /api/astro/ashtakoota/.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"boy_nakshatra\": 1,\n  \"boy_paadham\": 1,\n  \"girl_nakshatra\": 5,\n  \"girl_paadham\": 2,\n  \"method\": \"South\",\n  \"minimum_score\": 0,\n  \"advanced_checks\": {\n    \"mahendra\": true,\n    \"vedha\": true,\n    \"rajju\": true,\n    \"shree\": true\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Dasamsa (D10)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasamsa/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasamsa"
              ]
            },
            "description": "The dasamsa, the tenth divisional chart: each sign divided into ten parts of 3° each.\n\nRead for career, profession, status and public standing. The usual companion to the navamsa when judging working life rather than personal life.\n\nReturns the same flat shape as /api/astro/planet-positions/: the planets as a list in traditional order with `name`, longitude, sign, nakshatra, pada and house on each, plus the ascendant and the ayanamsa applied. Send a date and a place; `ayanamsa` defaults to LAHIRI and all 48 are accepted.\n\nThe chart is fixed by the route, so a `chart_name` in the body is ignored - this endpoint cannot return anything but the chart it is named for. /api/astro/chart/ is where to go for the other 24 divisions.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"datetime\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"ayanamsa\": \"LAHIRI\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Dasha applicability",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha_applicability/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha_applicability"
              ]
            },
            "description": "Vedic astrology has many planetary period systems, and most of the nakshatra-based ones beyond Vimshottari are conditional: the classical texts say to use Ashtottari only when a particular condition holds in the chart, Dwadashottari only when another does, and so on. Choosing wrongly means running the wrong timeline for someone's whole life.\n\nThis endpoint applies those conditions for you. It builds the Rashi, Navamsa and Dwadasamsa charts for the birth data and tests six conditional systems — Ashtottari, Chaturaseeti Sama, Dwadashottari, Dwisaptati, Panchottari and Sataabdika — each against the chart from which it is classically judged.\n\nSend the birth moment and place along with `year_option` (the length of year in days to use), `start_option` and `direction_option`, which are the same period settings the dasha endpoints take. Use the result to decide which dasha endpoint to call next.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"applicability_check\"\n  ],\n  \"date_time\": \"2025-03-27T09:52:50.441Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year_option\": 365.256364,\n  \"start_option\": \"current\",\n  \"direction_option\": \"forward\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Time zone resolver",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/date_time/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "date_time"
              ]
            },
            "description": "Turns a wall-clock birth time and a pair of coordinates into an unambiguous instant. Every other endpoint here wants either a timezone-aware timestamp or a numeric UTC offset, and getting that wrong is the commonest cause of a chart that is quietly an hour or a day out, so this is usually the first call you make.\n\nSend `date`, `time`, `latitude` and `longitude`. The coordinates are resolved to an IANA time zone, the naive date and time are read in that zone, and you get back `input_datetime`, the resolved `timezone` name, `localized_datetime` with its offset attached, and `utc_datetime`. Feed the localised value straight into `date_time` elsewhere.\n\nOne caveat: the request field is spelt `use_LMT` but the view reads a differently-spelt name, so local mean time is never actually applied and the IANA zone is always used — `use_lmt` in the response is always false. For births before standard time was adopted locally, work out the local mean time offset yourself (four minutes per degree of longitude) rather than relying on this flag.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date\": \"1980-09-05\",\n  \"time\": \"04:42:05.037Z\",\n  \"longitude\": 80,\n  \"latitude\": 23,\n  \"use_LMT\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Day and night length",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/day-night-length/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "day-night-length"
              ]
            },
            "description": "How long the day and the night are, and where their midpoints fall.\n\nDay length is sunrise to sunset, night length sunset to the next sunrise, with local midday and midnight as the halfway moments. The two lengths add to twenty-four hours.\n\nDurations come back both as the engine's HH:MM:SS form and as a number of seconds, because dividing \"13:35:43\" by 3600 gives NaN in JavaScript with no error anywhere — the trap these focused endpoints exist to close.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-06-02T06:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Disha shool",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/disha-shool/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "disha-shool"
              ]
            },
            "description": "The direction not to set out towards today, with its Hindi name.\n\nA function of the weekday alone, so it does not depend on the place and is the same everywhere on a given day. Travel advice in the traditional sense; some practitioners observe a remedy rather than avoiding the direction outright.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Doshas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dosha/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dosha"
              ]
            },
            "description": "A dosha is a specific affliction in a birth chart — a named planetary configuration that classical texts treat as a liability, most often for marriage, health or the ancestral line. This endpoint tests for eight of them from the birth moment and place, and can return either the bare results or ready-to-display written explanations.\n\nThere are two ways to use it. The individual keys (`kala_sarpa`, `manglik`, `pitru_dosha` and the rest) return structured results you can act on in code. `get_dosha_details` returns the whole set as formatted HTML paragraphs keyed by the English dosha name, which is what you want if you are rendering a report; it covers Kala Sarpa, Manglik, Pitru, Guru Chandala, Kalathra, Ghata and Shrapit, but not Ganda Moola. `get_dosha_resources` gives you the underlying text corpus if you would rather assemble your own copy.\n\nAll the boolean and structured request fields are required by the serializer even for keys that ignore them. `manglik_reference_planet` is a planet index (0 Sun, 1 Moon, 2 Mars, 3 Mercury, 4 Jupiter, 5 Venus, 6 Saturn, 7 Rahu, 8 Ketu); the engine's own default of measuring from the ascendant cannot be selected through the API, because the field is typed as an integer. This endpoint calls the UTC offset field `timezone`, not `timezone_as_float`.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 10 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_dosha_resources\"\n  ],\n  \"date_time\": \"2025-07-11T04:37:08.718Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone\": 0,\n  \"manglik_reference_planet\": 0,\n  \"include_lagna_house\": true,\n  \"include_2nd_house\": true,\n  \"apply_exceptions\": true,\n  \"moon_star\": \"leo\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Drekkana (D3)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/drekkana/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "drekkana"
              ]
            },
            "description": "The drekkana, the third divisional chart: each sign divided into three parts of 10° each.\n\nRead for siblings, courage and self-driven effort. One of the oldest divisions in use and among the least sensitive to small birth-time errors, since each division spans a full ten degrees.\n\nReturns the same flat shape as /api/astro/planet-positions/: the planets as a list in traditional order with `name`, longitude, sign, nakshatra, pada and house on each, plus the ascendant and the ayanamsa applied. Send a date and a place; `ayanamsa` defaults to LAHIRI and all 48 are accepted.\n\nThe chart is fixed by the route, so a `chart_name` in the body is ignored - this endpoint cannot return anything but the chart it is named for. /api/astro/chart/ is where to go for the other 24 divisions.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"datetime\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"ayanamsa\": \"LAHIRI\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Durmuhurat",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/durmuhurat/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "durmuhurat"
              ]
            },
            "description": "Durmuhurta: the one or two short unfavourable windows of the day.\n\n`starts` is a list of the one or two start instants and `length_seconds` is how long each runs, as a NUMBER. The underlying calculation returns the two starts and one shared length in a single object and gives the length as the string \"2880.0\", which is the trap this endpoint removes.\n\nThe offsets from sunrise come from a fixed weekday table rather than a proportional division of the day.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Dwadasamsa (D12)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dwadasamsa/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dwadasamsa"
              ]
            },
            "description": "The dwadasamsa, the twelfth divisional chart: each sign divided into twelve parts of 2°30' each.\n\nRead for parents and ancestry, and sometimes for inherited circumstance more broadly.\n\nReturns the same flat shape as /api/astro/planet-positions/: the planets as a list in traditional order with `name`, longitude, sign, nakshatra, pada and house on each, plus the ascendant and the ayanamsa applied. Send a date and a place; `ayanamsa` defaults to LAHIRI and all 48 are accepted.\n\nThe chart is fixed by the route, so a `chart_name` in the body is ignored - this endpoint cannot return anything but the chart it is named for. /api/astro/chart/ is where to go for the other 24 divisions.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"datetime\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"ayanamsa\": \"LAHIRI\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "eclipse",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/eclipse/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "eclipse"
              ]
            },
            "description": "Serializer for Eclipse and its related calculations.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 8 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"solar_eclipse_global\"\n  ],\n  \"date_time\": \"2026-01-01T00:00:00+00:00\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"tz\": 5.5,\n  \"elevation\": 0,\n  \"type\": \"total\",\n  \"attr\": \"central\",\n  \"when\": \"after\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "House lord placements (all 144)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/effect_house_lord_different_house/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "effect_house_lord_different_house"
              ]
            },
            "description": "The lord of a house carries that house's affairs into whichever house it sits in, and the 144 possible pairings — twelve lords in twelve houses — are one of the oldest interpretive tables in Vedic astrology. The lord of the 2nd in the 11th says something about money that the lord of the 2nd in the 12th does not.\n\nThis endpoint is that table, looked up directly. It performs no calculation and takes no birth data: you tell it which lord and which house, and it returns the classical reading. Get the placements themselves from /api/astro/chart/ or /api/astro/chart_analysis/ and use this to caption them.\n\n`house` is the lord, named in the '-esha' form: lagnesha for the 1st lord through vyayesha for the 12th. `h2` is the house it occupies, named as a bare bhava: lagna, dhana, sahaja, sukha, mantra, ari, dara, randhra, bhagya, karma, labha, vyaya. Watch the sixth, which is 'shashthesha' as a lord but 'ari' as a house. Casing does not matter, and an unrecognised name returns HTTP 200 with an explanatory string.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_effect_house_lord_different_house\"\n  ],\n  \"house\": \"lagnesha\",\n  \"h2\": \"lagna\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Hindu festivals",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/festival/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "festival"
              ]
            },
            "description": "Every Hindu festival of a calendar year computed from first principles for the place you give, together with the ekadashis and the Jain, Sikh and Christian observances the engine tracks. Unlike the regional calendar endpoints, which return a curated list per tradition, this is the full pan-Indian set with the exact tithi window attached to each entry.\n\nThe year is walked tithi by tithi rather than day by day, so a tithi shorter than twenty-four hours cannot slip through unseen and a long one cannot be counted twice. `moon_option` decides how lunar months are named: 'poornima' uses the purnimanta month directly, while anything else — including 'amavas' itself — takes the amanta month and converts it, which is what most North Indian panchangs print.\n\nSend `year`, `date_time` and the place. Because each entry carries the governing tithi's start and end rather than a single date, you decide which civil day to show it on; if you would rather have that decision made for you, use one of the regional calendar endpoints, which resolve each observance to its correct observed day.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"calculate_festivals\"\n  ],\n  \"moon_option\": \"amavas\",\n  \"year\": 2025,\n  \"date_time\": \"2025-02-12T08:35:00.795Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "General predictions",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/general_prediction/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "general_prediction"
              ]
            },
            "description": "A written character-and-life reading assembled from a birth chart: the temperament of the moon sign, what each of the nine planets means in the house it occupies, and what each of the twelve house lords means in the house it has gone to. It is the narrative counterpart to /api/astro/chart_analysis/, which returns much the same structure as data.\n\nThe text is drawn from published sources — the moon sign section cites B. V. Raman's How to Judge a Horoscope for one reading and a second source for the other — so the same chart always produces the same prose. Send the birth moment, place and UTC offset; there are no other options.\n\nEverything comes back as HTML fragments with bold headings and line breaks, ready to drop into a page. Note that this endpoint calls the UTC offset field `timezone`, not `timezone_as_float`.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_prediction_details\"\n  ],\n  \"date_time\": \"2025-07-09T10:26:45.109Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Place lookup",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/geocode/?address=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "geocode"
              ],
              "query": [
                {
                  "key": "address",
                  "value": "",
                  "disabled": false,
                  "description": "The city/place name to search"
                }
              ]
            },
            "description": "Turns a place name into the coordinates and UTC offset the other endpoints need. Send a GET with an `address` query parameter such as 'Jaipur, India' and you get back `latitude`, `longitude`, the IANA `timezone_name`, the `timezone_offset` in hours as a decimal, the geocoder's own `address` string and the `source` that answered.\n\nThe offset already accounts for daylight saving where the provider reports it, so it is the current offset for that place, not necessarily the offset that applied on a historical birth date. For a birth chart, pass these coordinates into /api/astro/date_time/ with the actual date and let that endpoint resolve the offset for the right moment.\n\n`source` tells you which provider answered: 'google' when a Google Maps key is configured for the deployment, otherwise 'nominatim', the OpenStreetMap service used as a fallback. A place that cannot be found returns 404, and a missing `address` returns 400.\n\nCosts 1 credit on success. Failed requests are not charged."
          },
          "response": []
        },
        {
          "name": "Gujarati calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/gujarati_calendar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "gujarati_calendar"
              ]
            },
            "description": "The Gujarati year for a given Gregorian year, resolved to the civil dates on which each observance is kept at the place you give. The Gujarati calendar is amanta luni-solar on the Vikrama Samvat era, whose new year falls at Bestu Varsh the day after Diwali rather than in spring, so the shape of the year differs from the Bengali and Assamese ones.\n\nThe lunar observances are found by tithi and then resolved to the right day using the time of day each one requires, which matters more here than elsewhere: several Gujarati observances share a tithi but not a kaala, so Govardhan Puja and Bestu Varsh, or Kali Chaudas and Roop Chaudas, fall on the same tithi at different times of day.\n\nSend `year` with `latitude`, `longitude` and `timezone_as_float`. The response is `{year, events}` where events is a list of `{name, date}` in date order, `date` being a plain YYYY-MM-DD local civil date. The list is long: it runs to the monthly Sankashti Chaturthis, Ekadashis, Kalashtamis and Durgashtamis as well as the major festivals.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Gun milan",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/gun-milan/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "gun-milan"
              ]
            },
            "description": "Gun milan: the Ashtakoota compatibility score out of 36.\n\nThis endpoint takes NAKSHATRA AND PADA NUMBERS, not birth dates - `boy_nakshatra_number` and `boy_paadham_number` for one partner, `girl_nakshatra_number` and `girl_paadham_number` for the other. Nakshatras are numbered 1 to 27 from Ashwini and padas 1 to 4. If you have birth details rather than nakshatras, get them from /api/astro/nakshatra/ first.\n\n`method` defaults to the North Indian scoring. For the individual kootas behind the total, and the South Indian variants, use /api/astro/ashtakoota/.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"boy_nakshatra_number\": 5,\n  \"boy_paadham_number\": 2,\n  \"girl_nakshatra_number\": 12,\n  \"girl_paadham_number\": 3,\n  \"nakshatra_number\": 5,\n  \"paadha_number\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Harsha bala (Tajika)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/harsha-bala/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "harsha-bala"
              ]
            },
            "description": "Harsha bala: the Tajika five-fold strength, out of twenty.\n\nA Tajika measure rather than a Parashari one. Each planet is scored on five conditions — the right half of the chart, the right sign sex, its own hemisphere, its joy house, and benefic or malefic placement — five points each, so every score is a multiple of five.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone\": 5.5,\n  \"asc_house\": 1\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Hora chart (D2)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/hora-chart/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "hora-chart"
              ]
            },
            "description": "The hora, the second divisional chart: each sign divided in half.\n\nRead for wealth and resources. Each half falls under the Sun or the Moon, so this division sorts the chart into two groups rather than twelve.\n\nNot to be confused with /api/astro/hora/, which returns the twenty-four planetary hours of the day - a different calculation that shares the name.\n\nReturns the same flat shape as /api/astro/planet-positions/: the planets as a list in traditional order with `name`, longitude, sign, nakshatra, pada and house on each, plus the ascendant and the ayanamsa applied. Send a date and a place; `ayanamsa` defaults to LAHIRI and all 48 are accepted.\n\nThe chart is fixed by the route, so a `chart_name` in the body is ignored - this endpoint cannot return anything but the chart it is named for. /api/astro/chart/ is where to go for the other 24 divisions.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"datetime\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"ayanamsa\": \"LAHIRI\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Planetary hours (hora)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/hora/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "hora"
              ]
            },
            "description": "The twenty-four planetary hours - twelve dividing sunrise to sunset and twelve dividing sunset to the next sunrise - each with its ruling planet.\n\nReturned as `day` and `night`, twelve entries each, plus `current`. These are not clock hours: they are twelfths of the actual daylight and darkness, so their length changes with latitude and season, and only near an equinox are they close to sixty minutes.\n\nThe first hora of the day is ruled by the lord of the weekday, which is why the sequence starts differently each day.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Marriage matching",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/horoscope-match/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "horoscope-match"
              ]
            },
            "description": "Full Ashtakoota marriage matching from two birth records rather than two star numbers. Give the date, time and place of each partner and the endpoint derives the moon sign, nakshatra and pada itself, scores the eight kootas out of 36, checks for the two blocking doshas and returns a verdict.\n\nThe response has four parts. `boy` and `girl` summarise each chart: moon sign, nakshatra name and number, pada, moon longitude and ascendant sign. `gunas` is a list of eight objects, one per koota, each with its `key` and `label`, `max_points` and `obtained_points`, the `boy_value` and `girl_value` being compared (the varna, the yoni animal, the gana and so on), the `area_of_life` it governs and a plain-English `description` — enough to render a results table without writing any copy. Then come `total_score`, `max_score` of 36 and `minimum_recommended_score` of 18.\n\nFinally `doshas`, `verdict` and `verdict_reason`. A Nadi score of zero raises Nadi Dosha and a Bhakoot score of zero raises Bhakoot Dosha, and either makes the verdict 'Union is NOT Recommended' whatever the total; otherwise 28 or more is 'Union is Excellent', 18 or more is 'Union is Good', and below that is not recommended. Each partner object takes `date_time`, `latitude`, `longitude` and `timezone_as_float`, plus optional `name` and `city` labels that are echoed back untouched. Lahiri ayanamsa is always used; the `ayanamsa` field is accepted but has no effect.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"boy\": {\n    \"date_time\": \"2026-09-01T06:00:00+05:30\",\n    \"latitude\": 26.9124,\n    \"longitude\": 75.7873,\n    \"timezone_as_float\": 5.5\n  },\n  \"girl\": {\n    \"date_time\": \"2026-09-01T06:00:00+05:30\",\n    \"latitude\": 26.9124,\n    \"longitude\": 75.7873,\n    \"timezone_as_float\": 5.5\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "House cusps",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/house/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "house"
              ]
            },
            "description": "The twelve house divisions for a moment and a place, in whichever house system you name. Vedic practice usually takes whole signs as houses, but this endpoint exposes the full ephemeris range — Placidus, Koch, Campanus, Regiomontanus, Sripati, Porphyry, equal and whole-sign among two dozen — so you can cast the same chart in the system a given tradition expects. Positions are sidereal.\n\nThe distinction to get right is cusp against range. A cusp is the single degree the system assigns to a house; a range is the span the house actually occupies, computed here as the midpoints between neighbouring cusps, so a house runs from halfway back to the previous cusp to halfway on to the next. `house_cusps` gives the twelve cusps, `house_starts` and `house_ends` the two edges, `house_ranges` both edges together, and `houses` all three at once.\n\n`notation` controls the units throughout: 'degree' for raw decimal degrees along the ecliptic, 'astrological' for sign plus degrees, minutes and seconds. `method_name` is case-sensitive and several values contain spaces or punctuation, so copy them exactly. The system is already applied from `method_name` when the request is built, so `set_house_method` and `change_house_system` are only useful for switching part-way through a multi-key call.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 7 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"set_house_method\"\n  ],\n  \"latitude\": 26.9124,\n  \"longitude\": 26.1046,\n  \"timezone_as_float\": 5.5,\n  \"method_name\": \"equal\",\n  \"notation\": \"astrological\",\n  \"date_time\": \"2024-11-18\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "House relationships",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/house_hora/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "house_hora"
              ]
            },
            "description": "The relational structure of a birth chart: which signs aspect which, which planets aspect which, who is whose friend, and which planets the classical texts single out as significant for a chart's turning points. This is much of the machinery behind Jaimini and Parashari judgement, exposed one piece at a time.\n\nThere are three groups. The house-class keys (`trikonas`, `kendras`, `quadrants`, `dushthanas`, `chathusras`, `upachayas`) are pure geometry: twelve rows, one per sign, listing sign numbers 1 to 12, with no dependence on the chart. The aspect and relationship keys (`raasi_drishti_of_the_planet`, the three `aspected_*_of_the_planet` keys, the two `*_of_the_raasi` keys, `argala`, `associations_of_the_planet`, the three natural-friendship keys and `baadhakas_of_raasi`) describe how the chart's bodies stand to one another. The Jaimini keys (`chara_karakas`, `marakas`, `brahma`, `rudra`, `maheshwara`, `trishoola_rasis`, `order_of_planets_by_strength`) name the planets that matter for longevity and for the timing of major events.\n\nPlanets are returned as indices throughout: 0 Sun, 1 Moon, 2 Mars, 3 Mercury, 4 Jupiter, 5 Venus, 6 Saturn, 7 Rahu, 8 Ketu. Signs are zero-based (0 Aries to 11 Pisces) in the aspect and Jaimini keys but one-based (1 to 12) in the house-class keys, so check which you are reading. The `planet` request field is capitalised and case-sensitive — 'Sun', not 'sun' — and `raasi` is a zero-based integer with no bounds check, so a value outside 0–11 fails the request.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 29 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"trikonas\"\n  ],\n  \"raasi\": 2,\n  \"planet\": \"Mars\",\n  \"node\": \"mean\",\n  \"date_time\": \"2025-02-12T09:35:49.036Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "House significations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/house_information/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "house_information"
              ]
            },
            "description": "Every house of a chart — the twelve bhavas — governs a bundle of life matters: the fourth home and mother, the seventh partnership, the tenth career. This endpoint returns the reference sheet for one of them: what it stands for, its element and quality, the themes it rules grouped under headings, and how to judge it from the house lord, the planets in it and its natural significators.\n\nIt is a lookup, not a calculation. You pass house_number from 1 to 12 and get the same text back every time — no birth date, time or place is involved. Use it to label a chart you have already computed elsewhere, or to fill an explanatory panel beside one.\n\nThe single key is get_house_info. A number outside 1-12 returns the string 'Invalid house number' with HTTP 200 rather than an error status.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_house_info\"\n  ],\n  \"house_number\": 4\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "House lord placement (one pair)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/house_lord_particular_house/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "house_lord_particular_house"
              ]
            },
            "description": "The lord of a house carries that house's matters wherever it goes, so the classics have a specific statement for each of the 144 combinations — twelve lords in twelve places. This endpoint returns the statement for one pair.\n\nName the house whose lord you mean in house, using this endpoint's Sanskrit bhava names — lagna, dhana, sahaja, sukha, putra, satru, yuvati, randhara, dharma, karma, labha, vyaya for the first through the twelfth — and give the house it is placed in as number, 1 to 12. Note that /api/astro/effect_house_lord_different_house/ covers the same ground with a different set of names and different text; the two are not interchangeable.\n\nNothing is computed from a chart, so no date, time or place is sent — work out the lord's placement yourself first. An unknown house name or an out-of-range number returns HTTP 200 carrying the string 'Invalid key: …' rather than an error status. The single key is get_house_lord.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_house_lord\"\n  ],\n  \"house\": \"lagna\",\n  \"number\": 4\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Inauspicious timings",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/inauspicious-timings/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "inauspicious-timings"
              ]
            },
            "description": "Every period of the day traditionally avoided, in one call: rahu kaal, yamaganda, gulika, durmuhurta, and disha shool, the direction not to travel towards.\n\nThe three kaalams come back as {start, end} like everywhere else. Durmuhurta is flattened: the parent returns two start instants and a single shared length under {first, second, interval}, which is not a shape you can render directly, so this returns a list of the one or two start times plus durmuhurta_length_seconds as a number - the parent gives that length as the string \"2880.0\".\n\nIf you only want rahu kaal, /api/astro/rahu-kaal/ is the smaller call.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Ishta phala",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/ishta-kashta-phala/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "ishta-kashta-phala"
              ]
            },
            "description": "Ishta phala: how much good each planet is placed to give, out of sixty virupas.\n\nDerived from a planet's exaltation and motional strength, it is what a strength screen means when it says a planet 'gives good results'. It comes from the same engine as Shadbala without being one of its six components, so /api/astro/shadbala/ does not carry it.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone\": 5.5,\n  \"asc_house\": 1\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "ISKCON calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/iskcon_calendar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "iskcon_calendar"
              ]
            },
            "description": "The Vaishnava calendar kept by ISKCON: a full year of Ekadashis, the appearance and disappearance days of the acharyas, and the major festivals, dated by Gaudiya reckoning rather than the general Hindu one. Months carry the twelve names of Vishnu — Madhava, Govinda, Damodara and the rest — the two fortnights are Krishna and Gaura, and years are counted in the Gaurabda era.\n\nPass a year plus latitude, longitude and UTC offset, since the tithi prevailing at local sunrise decides which civil day an observance falls on. The response is {year, events}, and each event is {name, date, masa, paksa, tithi_number, is_adhika, gaurabda_year} — so you get both the Gregorian date and the Vaishnava coordinates that produced it, with is_adhika marking an event in a leap month.\n\nThe tithi and month arithmetic follows the GCAL specification used by ISKCON's own calendar software, which is deliberately not the sidereal-ephemeris method behind /api/astro/panchanga/; dates can therefore differ by a day from other endpoints here. A year returns several hundred events, so filter or page client-side.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Kaala bala components",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/kaala-bala-components/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "kaala-bala-components"
              ]
            },
            "description": "The nine sub-balas that Kaala Bala — strength from time — is the sum of.\n\n/api/astro/shadbala/ publishes the total. This publishes what it is made of, which is what you need to say WHY a planet is temporally strong: the lunar fortnight, the planetary hour, the weekday, the month, the year, the third of day or night, declination, and any planetary war it is losing.\n\nThe weekday, month and year lords come with them, because a score of 15 for Mercury in abda bala means nothing until you know who holds the year.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone\": 5.5,\n  \"asc_house\": 1\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Kannada calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/kannada_calendar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "kannada_calendar"
              ]
            },
            "description": "A year of festivals and observances as kept in Karnataka. The Kannada calendar is amanta luni-solar on the Shaka era — months run from one new moon to the next — and its festival set covers the Ekadashis, the twelve Sankrantis, eclipses, and the regional days: Yugadi, Gowri Habba, Kamanahabba, the Karaga festival, Sakat and Karwa Chauth.\n\nPass year with latitude, longitude and UTC offset. The place matters because several observances are fixed by the tithi at sunrise or by moonrise. The response is {year, events} with each event {name, date}, in date order, typically well over a hundred entries. Eclipse rows carry a type suffix, for example 'Surya Grahan *Valayakara'.\n\nThe year must be between 2006 and 2046.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Karana",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/karana/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "karana"
              ]
            },
            "description": "The karana in force - half a tithi - and every one touching the day.\n\nEleven karanas cycle through the month: seven moveable ones repeat eight times each, and four fixed ones occur once. Each covers six degrees of the moon-minus-sun elongation, so two karanas fall inside every tithi.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Karana scan",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/karana_scan/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "karana_scan"
              ]
            },
            "description": "A karana is half a tithi — six degrees of the Moon's separation from the Sun, roughly eleven to thirteen hours. There are eleven names: seven movable ones that each repeat eight times through a lunar month, and four fixed ones that occur once each. Vishti, usually called Bhadra, is the one that is avoided.\n\nThis endpoint finds every occurrence of one named karana across a whole calendar year, so you can build a 'when is the next Vishti' list without walking the year day by day. Pass karana_name exactly as spelt in the field's list (it is case-sensitive), year, and timezone_as_float; the offset defines where the local year begins and ends. No latitude or longitude is needed, because a karana is a purely lunar quantity.\n\nThe response is {year, karana_name, rows}, where rows is a chronological list of {start, end} timestamps in UTC. A fixed karana yields about twelve rows a year and a movable one closer to a hundred. For the karanas of a single day, use the karana_segments key on /api/astro/panchanga/ instead.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"karana_name\": \"Kimstughna\",\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "KP chart (cusps, signs and planets)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/kp-chart/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "kp-chart"
              ]
            },
            "description": "A Krishnamurti Paddhati chart as named parts rather than one opaque blob.\n\nKP is its own tradition with a large following, and until now the whole chart came back only if you already knew five key names to ask for. This returns the ascendant, the twelve house cusps with their start, middle and end, the sign on each cusp, every planet's longitude, and which house each planet falls in.\n\nKP uses Placidus cusps on a sidereal zodiac, which is why its house placements differ from /api/astro/chart/ for the same birth. That is the system working as intended, not a disagreement between the two endpoints.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"notation\": \"degree\",\n  \"new_start\": 50\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "KP parts (pick with keys)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/krishnamurti/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "krishnamurti"
              ]
            },
            "description": "Krishnamurti Paddhati is the South Indian school that reads a chart from house cusps rather than whole signs. This endpoint builds a KP framework: Placidus cusps, each house running from its own cusp to the next house's cusp, and every body assigned to whichever of those spans its longitude falls in.\n\nUse ascendant, houses, house_rashis, planet_houses and planet_longs to read the chart. Two of them, ascendant and planet_longs, need the notation field: send 'astrological' for sign-and-degree objects, or 'degree' for raw decimal degrees.\n\nadjust_houses is different in kind. It is a mutator: it moves the whole framework so the first house begins at the longitude you give in new_start, keeps each house's original width, and recomputes the house signs and planet placements. It returns null itself, and because keys are executed in the order you list them, it has to appear first in the keys array for the other keys in the same call to reflect the shift. This is how a KP practitioner rectifies a birth time by nudging the ascendant.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 6 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"adjust_houses\"\n  ],\n  \"latitude\": 26.1046,\n  \"longitude\": 74.319,\n  \"timezone_as_float\": 5.5,\n  \"new_start\": 50,\n  \"notation\": \"degree\",\n  \"date_time\": \"2026-09-01T06:00:00+05:30\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Special lagnas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/lagna/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "lagna"
              ]
            },
            "description": "The special ascendants: the five fast-moving lagnas and Sree Lagna.\n\nBhava, Hora, Ghatika and the rest advance faster than the rising sign and are all measured from sunrise, so they depend on the exact time far more than the ascendant does. Sree Lagna, the prosperity point, is the ascendant advanced by the fraction of its nakshatra the Moon has covered.\n\nEach is returned in degree, sign, minute and second form with its nakshatra and pada.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Longevity factors",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/longevity-factors/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "longevity-factors"
              ]
            },
            "description": "Marakas, maheshwara, rudra, brahma and the trishoola rasis — the classical longevity indicators.\n\nMarakas, maheshwara and rudra are each returned in both of the forms the engine computes, one derived from the chart as a whole and one from the planet positions directly, because the texts disagree about which to use and presenting only one would be taking a side silently.\n\nThese are house and planet indicators. Nothing here predicts when anyone dies.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"node\": \"true\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Lunar month",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/lunar-month/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "lunar-month"
              ]
            },
            "description": "The lunar month under both reckonings, and the season.\n\n`amanta` runs new moon to new moon and is used across western and southern India; `purnimanta` runs full moon to full moon and is used across the north. They are NOT the same name for most of the month - purnimanta is typically one month ahead during the waning fortnight - so returning both is deliberate rather than redundant.\n\n`ritu` is the season. `mode` selects how it is derived, `drik` from the Sun's tropical sign or `vedic` from the lunar month, and defaults to `drik`; the parent requires it and errors without it.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Lunar phase",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/lunar-phase/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "lunar-phase"
              ]
            },
            "description": "Which paksha the Moon is in, and how far through the lunation.\n\n`paksha` is the fortnight — Shukla while the Moon waxes, Krishna while it wanes — and `moon_phase_deg` is the Moon's elongation from the Sun, so 0 is the new moon, 180 the full moon and 360 the next new moon. `lunation_fraction` is the same figure as a 0-1 progress value.\n\nThat angle is the quantity /api/astro/mundane/lunations/ solves for when it finds exact phase moments; this is its value right now.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-06-02T06:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Lunar month scan",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/lunar_month_scan/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "lunar_month_scan"
              ]
            },
            "description": "Finds the exact start and end instants of one named Hindu lunar month within a calendar year — Chaitra, Vaisakha, Jyeshtha and so on. Useful for scheduling anything anchored to a lunar month rather than a Gregorian one.\n\nreckoning decides where the boundaries sit. Under 'amanta' (the default, used in the south and west) a month runs from one new moon to the next and takes its name from the Moon's sign at the opening new moon. Under 'poornima' it runs from one full moon to the next and takes its name from the Sun's sign at the opening full moon; northern calendars use this, and for the dark fortnight the two reckonings put the same day in differently named months.\n\nPass month_name, year and timezone_as_float; no place is needed. The response is {year, month_name, reckoning, rows}, where rows is a list of {start, end} UTC timestamps — usually one entry, and two when an adhika (leap) month of the same name also falls in that year. The scan does not label which of the two is the leap month.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"month_name\": \"Vaisakha\",\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026,\n  \"reckoning\": \"amanta\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Malayalam calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/malayalam_calendar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "malayalam_calendar"
              ]
            },
            "description": "A year of Kerala observances on the Malayalam (Kollam era) calendar, which is solar: months begin with the Sun's entry into each sidereal sign, and the year opens at Chingam Sankramam in August. The list covers the twelve Sankramams, the Kerala temple festivals and vratas — Thiruvathira, Makaravilakku, Attukal Pongal, Painkuni Uthram, Guruvayur Ekadasi, the start of Mandalakala — and the pan-Indian days as observed there.\n\nPass year with latitude, longitude and UTC offset. The response is {year, events}, each event {name, date}, in date order; a typical year returns around fifty entries. The year must be between 2006 and 2046.\n\nOnam appears here as a single dated entry. For the festival week day by day, with nakshatra timings and the Malayalam day numbers, use /api/astro/onam_calendar/.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Marathi calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/marathi_calendar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "marathi_calendar"
              ]
            },
            "description": "A year of Maharashtrian festivals and vratas. The Marathi calendar is amanta luni-solar on the Shaka era, the same month scheme as Kannada and Telugu.\n\nThe list covers every Sankashti Chaturthi under its own monthly name — Lambodara, Dwijapriya, Bhalachandra, Vikata, Ekadanta and the rest — all the Ekadashis, the twelve Sankrantis, the eclipses, and the regional days such as Gudi Padwa, Holika Dahan, Dhulivandan and Vat Purnima.\n\nPass year with latitude, longitude and UTC offset; the place matters because several of these are fixed by moonrise or by the tithi prevailing at sunrise. The response is {year, events}, each event {name, date}, in date order, typically well over a hundred entries. The year must be between 2006 and 2046.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Monthly panchang",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/monthly_panchang/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "monthly_panchang"
              ]
            },
            "description": "One row per calendar day for a whole Gregorian month — the grid a panchang wall calendar prints. Each day carries sunrise, sunset, moonrise and moonset, the weekday in Sanskrit, the lunar month under both reckonings, the Vikram and Shaka years with their sixty-year cycle names, and the tithi, Moon sign and Moon nakshatra prevailing at that day's sunrise.\n\nBecause a tithi or nakshatra usually changes partway through a day, each of those three carries an exit_time: the exact instant it gives way to the next, or null if it lasts past the following sunrise. That is what lets you render the familiar 'Vrishchika 01:08+' style labels.\n\nPass year, month, latitude, longitude and UTC offset. moon_option chooses which reckoning the row's lunar_month field follows, 'purnimanta' (the default) or 'amanta'; both amanta_month and purnimanta_month are returned on every row regardless, so you can switch presentation without a second call. The response is {year, month, days} with one entry per day of that month.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"month\": 9,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026,\n  \"moon_option\": \"purnimanta\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Moon illumination and phase",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/moon-illumination/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "moon-illumination"
              ]
            },
            "description": "How much of the Moon is lit, as a real fraction.\n\nComputed from the elongation between the Sun and the Moon: lit = (1 - cos(elongation)) / 2, which is 0 at new moon, 0.5 at either quarter and 1 at full. Returned as both a fraction and a percentage, with the elongation, the phase angle, whether the Moon is waxing, and the conventional phase name.\n\nThis endpoint exists because the engine key called `get_illumination` does not return illumination. It returns APPARENT MAGNITUDE — about -26.7 for the Sun and between -6 and -12 for the Moon depending on phase. A fraction cannot be negative and cannot be -26, and anything wiring that field to a \"percent lit\" display shows nonsense. That value is still returned here, under the name it deserves: apparent_magnitude, where smaller is brighter.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-09T12:00:00+00:00\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 0.0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Moonrise and moonset",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/moonrise/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "moonrise"
              ]
            },
            "description": "Moonrise and moonset for a date and place, with the time the moon spends above the horizon in seconds. For the sun, use /api/astro/sunrise/.\n\nSend a date, a latitude, a longitude and the UTC offset. As with sunrise, the same instants are reachable through /api/astro/celestial/ only if you know to pass planet_names=[\"MOON\"], to put the rising switch first in the keys array, and to unwrap a nested array.\n\nThe moonset returned is always the one that FOLLOWS the moonrise, so the pair is a usable interval. That matters more for the moon than the sun: it rises about fifty minutes later each day, so on many dates the moonset that falls inside your calendar day belongs to the previous moonrise.\n\nBoth fields can be null. Above about 61 degrees of latitude the moon can stay above or below the horizon for more than a day - at Reykjavik in December it does - and there is then no rise or set to report. Null says that; /api/astro/celestial/ returns \"2000-11-24T12:00:00Z\", which is julian day zero from a search that failed rather than a real instant, and is easy to mistake for an answer.\n\nFor the moon's phase and paksha, see /api/astro/panchang/.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Muddha dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/muddha_dasha/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "muddha_dasha"
              ]
            },
            "description": "Muddha dasha, also called Varsha Vimshottari, is the annual-chart counterpart of the ordinary Vimshottari dasha: the same nine planetary periods in the same sequence, compressed from 120 years into the single solar-return year you are examining. It is one of the standard timing tools of Tajika (Varshaphala) practice, used to say which stretch of a particular year belongs to which planet.\n\nPass the birth details plus years — the number of completed years since birth, which selects the annual chart — and include_antardhasa. With antardashas you get 81 rows; without, nine.\n\nTwo things to watch in the output. The lords are integers rather than names: 0 Sun, 1 Moon, 2 Mars, 3 Mercury, 4 Jupiter, 5 Venus, 6 Saturn, 7 Rahu, 8 Ketu. And each start date is a string of the form \"2025-02-02 {'degrees': 13, 'minutes': 0, 'seconds': 54.16}\", where the braced part is the time of day left in the degrees-minutes-seconds form the Julian-day conversion produced rather than converted to hours. Durations are in days, and the nine top-level periods add up to one tropical year.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"mudda_dhasa_bhukthi\"\n  ],\n  \"years\": 0,\n  \"date_time\": \"2025-02-13T05:10:10.565Z\",\n  \"include_antardhasa\": true,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Ceremony muhurats",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/muhurat/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "muhurat"
              ]
            },
            "description": "Finds the times within a date range at which one of five Hindu rites of passage may be performed. Each rite has its own list of permitted nakshatras plus further conditions on tithi, weekday or the Sun's sign, and every sampling instant in the range is tested against all five.\n\nThe five are mundan (a child's first tonsure), vidyarambha (beginning formal education), upanayana (the sacred thread), graha_pravesha (entering a new house) and deva_pratishtha (installing a deity). Mundan additionally checks the child's age against birth_date and only permits years 1, 3, 5, 7, 10 and 11.\n\nPass start_date, end_date, birth_date, interval_hours and the place. The scan steps through the range at interval_hours and reports each qualifying step as its own two-hour window, so a qualifying day produces several overlapping rows that you will usually want to merge; a smaller interval gives finer boundaries and many more rows. Keep the range to a few weeks — the price is one credit either way, but every step recomputes a full panchanga. The single key is find_muhurats_in_range.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"find_muhurats_in_range\"\n  ],\n  \"date_time\": \"2025-03-27T13:50:05.104Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone\": 5.5,\n  \"start_date\": \"2025-02-27T13:50:05.104Z\",\n  \"end_date\": \"2025-03-27T13:50:05.104Z\",\n  \"birth_date\": \"2025-03-27T13:50:05.104Z\",\n  \"interval_hours\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Muhurta table",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/muhurta-table/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "muhurta-table"
              ]
            },
            "description": "All thirty muhurtas of the day: fifteen dividing sunrise to sunset and fifteen dividing sunset to the next sunrise.\n\nEach carries its name, its number and whether it is held auspicious, so this is the endpoint to build a full day strip from. A muhurta is a fifteenth of the actual daylight or darkness, not a fixed forty-eight minutes, so lengths change with latitude and season.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Mundane ingress charts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/mundane-charts/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "mundane-charts"
              ]
            },
            "description": "The ingress charts a Vedic year is judged from.\n\nThe world ascendant chart cast at the solar ingress, the Ardra pravesh chart read for the monsoon, and the summer and autumn crop charts. Each carries the exact moment it is cast for and a complete set of planetary positions at that instant — these are the charts annual almanac predictions are actually read out of.\n\nA large response: four full charts plus an ingress time.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"year\": 2025,\n  \"date_time\": \"2025-02-13T05:00:37Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Mundane astrology",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/mundane/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "mundane"
              ]
            },
            "description": "Mundane astrology reads the year for a country rather than for a person. Its central device is the samvatsara cabinet: ten 'officers' of the year, each a planet, each fixed by the weekday on which a particular solar event falls — the king from the lunar new year, the minister from the Sun's entry into Aries, the lord of clouds from its entry into Ardra, and so on down to the lords of grain, treasury and fruits. A year with Saturn as king is read very differently from one with Jupiter.\n\nPass the year you want plus a place and UTC offset. das_adhikari returns the whole cabinet in one object and is the key to start with; the individual keys — king_of_year, mantri_of_year, meghesha_of_year and the rest — return the same planets one at a time. vaahan_of_samvat gives the year's symbolic vehicle, derived from the king.\n\nAlongside the cabinet the endpoint returns the year's astronomical frame — equinoxes, solstices, indian_ritus for the six seasons as real date ranges, chaitra_shukla_pratipada and ardra_entry — and four charts cast for particular ingresses: jagat_lagna_chart at the Sun's entry into Aries, ardra_pravesh_chart for the monsoon, and sharatsasya_chart and greeshmasasya_chart for the winter and summer crops.\n\nsapta_nadi_chakra and samvatsara_purusha_chakra are static reference tables that do not vary by year, and nakshatra_lord_effects looks a single nakshatra up in the first of them. That key's nakshatra field uses an older transliteration and covers only twenty-six names — check the field's list rather than assuming modern spellings.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 24 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"nakshatra_lord_effects\"\n  ],\n  \"year\": 2025,\n  \"date_time\": \"2025-02-13T05:00:37.682Z\",\n  \"nakshatra\": \"Krittika\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Naadi marriage yogas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/naadi_marriage_prediction/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "naadi_marriage_prediction"
              ]
            },
            "description": "A short set of marriage indications from the Naadi tradition, following Satyanarayana Naik's presentation of Rao's system. Rather than weighing the seventh house, it looks only at which planets aspect the marriage significator — Venus for one gender, Mars for the other — reading Jupiter or Saturn as promising the marriage, Jupiter alone as early and Saturn alone as late, and Ketu or Rahu as obstruction or delay.\n\nPass the birth date and time, the place, timezone and gender: 0 uses Venus as the significator, 1 uses Mars. The single key check_marriage_yogas returns four numbered results, each a boolean and an explanatory string.\n\nThis is a narrow, four-rule reading and is best used as one input among several. For marriage timing use the dasha and transit endpoints, and for compatibility between two charts use the matching endpoints.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"check_marriage_yogas\"\n  ],\n  \"date_time\": \"2025-07-09T10:28:22.014Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone\": 0,\n  \"gender\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Mundane nakshatra chakras",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/nakshatra-chakras/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "nakshatra-chakras"
              ]
            },
            "description": "The samvatsara purusha and sapta nadi chakras, and the effects of a nakshatra's lord.\n\nThe samvatsara purusha chakra maps the twenty-seven nakshatras onto the body of the year-being; the sapta nadi chakra groups them under the seven planets. Both are used to judge which parts of a year, and which regions, are afflicted.\n\n`nakshatra` selects the star for the lord-effects lookup and is the only input the mundane set takes beyond the year itself.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"year\": 2025,\n  \"date_time\": \"2025-02-13T05:00:37Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"nakshatra\": \"Krittika\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Nakshatra",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/nakshatra/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "nakshatra"
              ]
            },
            "description": "The Moon's nakshatra now, and every nakshatra touching the local day.\n\n`current` is the one actually in force at the instant you asked, already resolved: the underlying calculation returns every segment overlapping the day and leaves you to work out which applies. `segments` keeps that full list for a strip or a timeline.\n\nEach carries its start and end, so you can show when the nakshatra changes rather than only which one it is.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Nakshatra transitions",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/nakshatra_transitions/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "nakshatra_transitions"
              ]
            },
            "description": "Every planet's movement from one nakshatra to the next across a calendar year, with each crossing resolved to about a second. This is the 'planet nakshatra gochar' table: when Saturn leaves Purva Bhadrapada, when Jupiter enters Pushya, when the Moon changes star — the events transit predictions are timed from.\n\ngranularity chooses the resolution. 'nakshatra' uses the 13°20' divisions and returns from and to as plain names; 'pada' uses the 3°20' quarters and returns from and to as {nakshatra, pada} objects instead. Set use_28_nakshatras to true to include Abhijit as a twenty-eighth division.\n\nPass year and timezone_as_float. The offset decides where the local year starts and ends, but the returned timestamps are UTC — convert them yourself for display. The response is {year, granularity, planets}, where planets is keyed by name (sun, moon, mercury, venus, mars, jupiter, saturn, uranus, neptune, pluto, rahu, ketu), each holding a chronological list of {from, to, datetime}. The Moon alone produces over three hundred nakshatra transitions in a year and around fourteen hundred pada transitions, so pada responses are large.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"granularity\": \"nakshatra\",\n  \"year\": 2026,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Navamsa (D9)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/navamsa/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "navamsa"
              ]
            },
            "description": "The navamsa, the ninth divisional chart: each sign divided into nine parts of 3°20' each.\n\nAfter the rashi chart this is the one that matters most. It is read for marriage and partnership, for dharma, and as a check on the rashi chart - a planet strong in D1 but weak here is generally taken as promising more than it delivers. A planet in the same sign in both charts is vargottama and held especially strong.\n\nReturns the same flat shape as /api/astro/planet-positions/: the planets as a list in traditional order with `name`, longitude, sign, nakshatra, pada and house on each, plus the ascendant and the ayanamsa applied. Send a date and a place; `ayanamsa` defaults to LAHIRI and all 48 are accepted.\n\nThe chart is fixed by the route, so a `chart_name` in the body is ignored - this endpoint cannot return anything but the chart it is named for. /api/astro/chart/ is where to go for the other 24 divisions.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"datetime\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"ayanamsa\": \"LAHIRI\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Nepali calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/nepali_calendar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "nepali_calendar"
              ]
            },
            "description": "A year of Nepali festivals and observances on the Bikram Sambat calendar. The Nepali calendar is solar — twelve months each opening with the Sun's entry into a sidereal sign, Baishakh first — and the response reports the Bikram Sambat year or year-pair spanning the Gregorian year you asked for.\n\nThe event list covers every Sankranti under its Nepali name (Maghe, Falgun, Baishakh and so on), all the Ekadashis, both Pradosh Vrats of each month named for their weekday, the eclipses, and national festivals such as Nawa Barsha and Bisket Jatra.\n\nPass year with latitude, longitude and UTC offset — and note that Nepal Standard Time is UTC+05:45, so timezone_as_float should be 5.75 for Kathmandu; 5.5 will shift the day boundaries. The response is {year, bikram_sambat, events} with each event {name, date}. The year must be between 2006 and 2046.\n\nThe month-start rule follows the practice of dating a Sankranti on the transit day when the transit occurs before that day's sunset and on the following day otherwise. Nepal's official month starts are set by committee rather than derived from a single astronomical test, so a small number of transits each decade will not match the published Patro.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Nitya yoga",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/nitya-yoga/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "nitya-yoga"
              ]
            },
            "description": "The Nityayoga in force, and every one touching the day.\n\nThe Sun's and Moon's sidereal longitudes are added and the total divided into twenty-seven parts, giving Vishkumbha through Vaidhriti. This is one of the five limbs of the panchanga and is unrelated to the yogas at /api/astro/yogas/, which are named tithi, nakshatra and weekday combinations - hence the route name.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Numerology",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/numerology/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "numerology"
              ]
            },
            "description": "Numerology reduces a name and a birth date to single digits and reads them. This endpoint implements four systems, chosen with system, and each has its own letter table and its own set of available keys.\n\n'chaldean' (the default) and 'pythagorean' are the Western pair and share sixteen keys — life path, expression, soul urge, personality and the rest. They differ in the letter values used and in one behaviour worth knowing: Pythagorean preserves the master numbers 11 and 22 where Chaldean always reduces to a single digit, so expression_number, soul_urge_number, maturity_number and life_path_number can come back as 11 or 22 under Pythagorean only. Pythagorean adds three keys of its own: pinnacle_cycles, balance_number and rational_thought.\n\n'chinese' and 'vedic' are separate sets with no overlap except personal_year_number, which Chinese also allows. Asking for a key outside the chosen system is rejected with HTTP 400 naming the offending key.\n\nSend date_time and name on every call. year, month and day are the target date for the personal-year, month and day keys and default to today's; house_number and phone_number are required only when those keys are requested. Alongside each key's result the response carries a <key>_metadata object giving that key's input, formula and meaning, and either vedic_planet_associations or, for the Chinese system, chinese_number_meanings.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 34 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"name\": \"Ramesh Kumar\",\n  \"day\": 1,\n  \"month\": 9,\n  \"year\": 2026,\n  \"system\": \"chaldean\",\n  \"keys\": [\n    \"birthday_number\",\n    \"expression_number\",\n    \"life_path_number\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Odia calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/odia_calendar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "odia_calendar"
              ]
            },
            "description": "A year of Odia (Oriya) festivals on the Vilayati era calendar. The list is dominated by three groups: the twelve Sankrantis under their Odia names — Mahabisuba Pana, Brusha, Raja, Dakhinaya Karkata, Singha, Garbhana and the rest — all the Ekadashis under Odia names such as Sattila, Pankoddhar, Jala Krida, Khalilagi and Kaliyadalan, and the major lunar festivals: Rath Yatra, Gamha Purnima, Savitri Amabasya, Mahastami and Dasahara.\n\nPass year with latitude, longitude and UTC offset. The response is {year, events} with each event {name, date}, in date order. The year must be between 2006 and 2046.\n\nIn a year with an adhika (leap) month the Ekadashi pair belonging to it is named Sarvasammata Padmini and Sarvasammata Parama, following Odia usage.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Onam calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/onam_calendar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "onam_calendar"
              ]
            },
            "description": "Onam is not one day but a sequence keyed to consecutive nakshatras, running from Atham (Hasta) through Thiruvonam to Chathayam. This endpoint returns that whole window for a given year, one row per civil day.\n\nEach row gives day_number, the Gregorian date, the weekday in English and in Malayalam script, the governing nakshatra, the Malayalam month and day with the Kollam era year, a captions list naming what is observed that day (Atthachamayam, Athapoo Pookalam, Vallam Kali and so on), an is_repeat_day flag, and segments giving the nakshatra's exact begin and end instants in local time.\n\nThe day count is not fixed. A nakshatra long enough to span two sunrises produces a repeat day — same name, empty captions, null begin and end — and pushes the sequence out; a short one can instead be merged onto the following day, which then carries two names in its captions. Twelve or thirteen rows is normal.\n\nPass year with latitude, longitude and UTC offset; the year must be between 2006 and 2046. For Onam as a single dated entry among a full year of Kerala festivals, use /api/astro/malayalam_calendar/.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Pancha vargeeya bala",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/pancha-vargeeya-bala/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "pancha-vargeeya-bala"
              ]
            },
            "description": "Pancha vargeeya bala: the five-fold strength, with the components that run.\n\nThe total is returned with exaltation, navamsa and drekkana strength. Kshetra bala and hadda bala are deliberately NOT included: both raise a TypeError in the engine because the configuration does not pass the argument they require, and one failing key fails the whole request — so asking for them would take the working components down too. The response names what it omitted and why.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone\": 5.5,\n  \"asc_house\": 1\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Pancha Pakshi (bird activity by hora)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/pancha_pakshi_hora/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "pancha_pakshi_hora"
              ]
            },
            "description": "Pancha Pakshi Shastra is a Tamil system that assigns each person one of five birds — vulture, owl, crow, cock or peacock — from their birth nakshatra and fortnight, and then times the day by what that bird is doing. Every bird cycles through five activities, ruling, eating, walking, sleeping and dying, in descending order of favourability, and each part of the day is good or bad according to how your bird's activity relates to the one currently in force.\n\nUse get_birth_bird_from_nakshathra for the bird itself; get_birth_nakshathra and get_paksha return the two inputs it is derived from, useful if you want to show the working. All three return plain integers rather than names.\n\nget_matching_pancha_pakshi_data_from_db returns the raw activity table for that bird on the weekday and fortnight of the moment you asked about: fifty numeric rows covering five main periods of the day and five of the night, each split into five sub-periods. The columns are indices and fractions, not clock times — you build the times yourself from sunrise, sunset and the duration factors. The nakshatras request field is accepted by the serializer but is not used by this endpoint.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 4 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"keys\": [\n    \"get_birth_bird_from_nakshathra\",\n    \"get_birth_nakshathra\",\n    \"get_matching_pancha_pakshi_data_from_db\"\n  ],\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"nakshatras\": \"special\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Panchak",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/panchak/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "panchak"
              ]
            },
            "description": "The day divided into windows, each labelled with the panchaka it falls under.\n\nA `panchaka` of null means that window carries none - which is the favourable case, and the reason the underlying calculation is named for the absence rather than the presence. Windows are contiguous and cover the whole day.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Panchang (five limbs)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/panchang/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "panchang"
              ]
            },
            "description": "The five limbs of the panchanga - tithi, vaara, nakshatra, yoga and karana - and nothing else. This is what the word means in ordinary use.\n\n/api/astro/panchanga/ returns fifty-seven calculations and about 23 KB. If you are rendering a daily panchang header, this returns the five you show, in under a kilobyte.\n\nThe nakshatra is the one actually in force at the moment you asked, not the list of every nakshatra touching the day, so you do not have to work out which segment applies. Tithi carries its start, end and remaining time; Hindi names are included where the parent provides them.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Birth panchanga effects (reference table)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/panchang_element_birth_effect/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "panchang_element_birth_effect"
              ]
            },
            "description": "The limbs of the panchanga — weekday, tithi, karana, yoga and fortnight, plus the planetary hora — each carry a classical character reading for a person born under them. This endpoint is the lookup table for those readings.\n\nIt is pure reference text: nothing is computed, and no date, time or place is sent. You establish the person's birth tithi, weekday and so on elsewhere (from /api/astro/panchanga/, say) and pass the names in to get the paragraph that goes with each. The six lookup keys are get_vaara_during_birth, get_birth_tithi_effects, get_birth_karana_effects, get_birth_panchang_yoga_effects, get_birth_paksha_effects and get_birth_hora_result, each taking a request field of the matching name.\n\nEvery accepted value is a lowercase transliteration and the exact spelling matters — 'shula' not 'shoola', 'priti' not 'preeti' — and the hora is named by the Sanskrit planet (surya, chandra, mangala…) rather than by the weekday. The six get_all_*_keys helpers return the accepted lists, and get_all_keys_summary returns all six at once; use one of those rather than hard-coding the vocabulary. An unrecognised value does not error: it returns HTTP 200 with a string listing the valid options.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 13 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_vaara_during_birth\"\n  ],\n  \"vaara\": \"sunday\",\n  \"hora\": \"surya\",\n  \"paksha\": \"shukla\",\n  \"tithi\": \"pratipada\",\n  \"karana\": \"bava\",\n  \"yoga\": \"vishkumbha\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Panchanga element names",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/panchanga-elements/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "panchanga-elements"
              ]
            },
            "description": "Every value the birth-effect lookup accepts, for all six elements.\n\nSixteen tithis, eleven karanas, twenty-seven yogas, seven weekdays, seven horas and two pakshas. /api/astro/birth-panchanga-effects/ cannot really be used without this: the effects are keyed by name and the spellings the engine wants — `vishkumbha`, `surya`, `bava` — are not guessable.\n\nTakes no inputs.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nOptional fields: hora, karana, keys, paksha, tithi, vaara, yoga.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Panchanga",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/panchanga/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "panchanga"
              ]
            },
            "description": "The panchanga is the Hindu almanac for one moment at one place: five 'limbs' — tithi, vaara, nakshatra, yoga and karana — plus everything else a printed panchang carries. This is the largest endpoint in the API, with fifty-seven keys, and most callers use a handful.\n\nStart with tithi, vaara, nakshatra_segments, yogam and karana for the five limbs, and day_length, night_length, midday and midnight for the day's frame. The *_segments keys — tithi_segments, karana_segments, yoga_segments, nakshatra_segments — differ from their singular counterparts in a way that is easy to get wrong: the singular key answers 'what is in force at this instant', while the segments key lists every period touching the whole local calendar day with exact start and end times, which is what a calendar page needs.\n\nThe rest falls into groups. Time divisions: choghadiya and gauri_choghadiya into eighths, hora into planetary hours, do_ghati into the thirty muhurtas, trikalam into thirds. Named windows: abhijit_muhurta, brahma_muhurta, vijaya_muhurta, nishita_muhurta, godhuli_muhurta, amrit_kalam and the two sandhyas against rahu_kaalam, yamaganda_kaalam, gulika_kaalam and durmuhurata. Calendar: lunar_month and lunar_month_poornima (the same month under the two reckonings), shaka_samvat, vikram_samvat, kali_samvat, samvatsara_name, ritu, sankranti_dates and tamil_solar_month_date. Positions rather than times: upagraha_longitudes, special_longitudes, lagnas, sree_lagna and the two bhaava_madhya variants. Day-quality verdicts: tarabala, chandrabalam, panchaka_rahita, disha_shool, agni_vasa_segments, shiva_vasa_segments, yogas and shunya_nakshatra.\n\nEvery call needs date_time and timezone_as_float, and anything that depends on sunrise also needs latitude and longitude. Several optional fields change the answer rather than the formatting: samvata_type is required by samvatsara_name, mode selects how ritu is derived, and gulika_rises_at, mandi_rises_at, gulika_portion, mandi_portion, kala_mrityu_rise_at and dhuma_vyatipata_relation select between competing classical conventions for the upagraha positions. One call costs one credit however many keys you ask for, so request a whole page's worth at once.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 57 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-06-02T06:30:52.786Z\",\n  \"keys\": [\n    \"midday\"\n  ],\n  \"latitude\": 26.849,\n  \"longitude\": 75.768,\n  \"timezone_as_float\": 5.5,\n  \"samvata_type\": \"shaka\",\n  \"mode\": 0,\n  \"mean_anomaly\": 0.0,\n  \"eccentricity\": 1.0,\n  \"tolerance\": 1e-06,\n  \"gulika_rises_at\": \"beginning\",\n  \"mandi_rises_at\": \"middle\",\n  \"kala_mrityu_rise_at\": \"middle\",\n  \"dhuma_vyatipata_relation\": \"360_minus_dhuma\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Panchanga yogas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/panchanga_yogas/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "panchanga_yogas"
              ]
            },
            "description": "A Panchanga yoga is a named quality a whole day carries, good or bad, arising from the combination of that day's lunar day (tithi), weekday (vaara) and lunar mansion (nakshatra). Sarvartha Siddhi (\"all purposes succeed\"), Amrit Siddhi, Tripushkara, Dagdha, Mrityu and Yamaghanta are the familiar ones. Muhurta practice uses them as a first filter: pick a day that carries a benefic combination and avoid one that carries a malefic one.\n\nThis is the day-level scan. It walks every calendar day of the requested year, evaluates the yogas once at that day's sunrise, and returns only the days that carry at least one. The response is `data.days`, a list of `{date, yogas}` where `date` is `YYYY-MM-DD` and `yogas` is a list of names; days with nothing to report are omitted entirely. Most names carry their source convention in brackets, for example \"Amrit Yoga (Vaara Tithi Yoga)\" or \"Padma Yoga (Vashishta Samhita Yogas)\", because several classical texts define overlapping sets.\n\nThe yogas are read at sunrise, so latitude, longitude and `timezone_as_float` all change the result. `use_28_nakshatras` defaults to true and inserts Abhijit as a nakshatra in its own right; some yogas, such as Monday's Kaana Yoga, are defined in terms of Abhijit and cannot appear without it. Set it to false to use the plain 27-nakshatra list.\n\nThis endpoint is unrelated to `/api/astro/yogas/`, which finds combinations of planets in a birth chart; nothing here looks at a birth chart. For Ravi Yoga specifically, `/api/astro/ravi_yoga/` gives exact start and end times rather than a day flag.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Panchashalaka chakra",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/panchashalaka_chakra/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "panchashalaka_chakra"
              ]
            },
            "description": "The Panchashalaka chakra is a muhurta diagram: the 28 nakshatras (the usual 27 plus Abhijit) are laid out seven to a side around a square, and lines drawn across it pair each nakshatra with the one it faces. That facing relationship is called vedha, \"piercing\". If a malefic planet sits in the nakshatra opposite the one you meant to use, the moment counts as pierced and is dropped, which is why the chakra is consulted when fixing wedding dates.\n\nThis GET endpoint returns the whole diagram in one call and takes no parameters. `edges` is an object with `east`, `south`, `west` and `north`, each an ordered list of seven nakshatra names as they appear along that side. `vedha_map` is keyed by nakshatra name, 28 entries, each `{edge, vedha_nakshatra}` giving the side that nakshatra sits on and its single partner.\n\nThe table is fixed reference data, so the response never changes; cache it rather than calling repeatedly. Every pairing is symmetric, so if Ashwini maps to Purva Phalguni then Purva Phalguni maps back to Ashwini. Use `/api/astro/panchashalaka_vedha/` when you only want one nakshatra's partner. Note that Panchashalaka gives each nakshatra exactly one partner where the related Saptashalaka chakra gives three, and the two diagrams place the nakshatras on different sides, so the partners are not the same in both.\n\nCosts 1 credit on success. Failed requests are not charged."
          },
          "response": []
        },
        {
          "name": "Panchashalaka vedha lookup",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/panchashalaka_vedha/?nakshatra=Abhijit",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "panchashalaka_vedha"
              ],
              "query": [
                {
                  "key": "nakshatra",
                  "value": "Abhijit",
                  "disabled": false,
                  "description": "Name of the nakshatra to look up its Panchashalaka Chakra vedha partner."
                }
              ]
            },
            "description": "A single-nakshatra lookup into the Panchashalaka chakra. Given a nakshatra it returns the one nakshatra that faces it across the diagram — the pairing muhurta practice treats as an obstruction, so that a malefic occupying the partner afflicts any moment falling in your nakshatra.\n\nPass `nakshatra` as a query parameter, using the spellings from the chakra endpoint's `vedha_map` (Ashwini, Purva Bhadrapada, Uttara Ashadha, and so on; Abhijit is included). The response is `{nakshatra, edge, vedha_nakshatra}` — the name you asked for, which of the four sides it sits on, and its single partner. An unrecognised name is rejected with a 400.\n\nThe relationship is symmetric and never changes, so for more than a handful of lookups fetch the full map once from `/api/astro/panchashalaka_chakra/` instead.\n\nCosts 1 credit on success. Failed requests are not charged."
          },
          "response": []
        },
        {
          "name": "Part of Fortune",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/part-of-fortune/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "part-of-fortune"
              ]
            },
            "description": "The Part of Fortune, computed with the correct formula for the chart's sect.\n\nThe most requested lot in astrology, and the one where sect matters most:\n\n    day birth    Ascendant + Moon - Sun\n    night birth  Ascendant + Sun  - Moon\n\nThose two differ by twice the Sun-Moon distance — usually tens of degrees, often a different sign entirely. Sect is decided from the Sun's actual altitude at the birth moment (above the horizon is a day chart) rather than from a flag you have to work out, though you can override it with `sect`.\n\nBoth values are always returned alongside the chosen one, with the ascendant, Sun and Moon that produced them, so the decision is auditable.\n\nNote that this will disagree with the `punya_saham` key on /api/astro/saham/ for a night birth. That endpoint applies the day formula to every chart; this one is the classical answer.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"sect\": \"auto\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Patyayini dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/patyayini_dasha/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "patyayini_dasha"
              ]
            },
            "description": "Patyayini is one of the timing systems used with the Tajaka annual chart, the chart cast for the moment the Sun returns to its natal longitude each year. Where Vimshottari divides time by nakshatra, Patyayini divides the year by the gaps between the planets: the seven classical planets are sorted by longitude, the arc from each to the next fixes that planet's share, and the shares are scaled to fill exactly one year. The result says which planet governs which stretch of the coming twelve months, and which planet runs each sub-period inside that stretch.\n\nOne key, `get_dasha_periods`. Send the moment you want the year measured from as `date_time`, plus `latitude`, `longitude` and `timezone_as_float`. Rahu and Ketu take no part.\n\nTwo things about the shape. Planets are returned as integer indices into the order Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, so 0 is the Sun and 6 is Saturn. And the sub-period start times are strings holding a date followed by a stringified dictionary, for example `\"2025-02-13 {'degrees': 5, 'minutes': 7, 'seconds': 54.0}\"`, in which degrees, minutes and seconds are the hours, minutes and seconds of the day rather than an angle. Parse accordingly.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_dasha_periods\"\n  ],\n  \"date_time\": \"2025-02-13T05:07:54.585Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "What a planet aspects",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/planet-aspects/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "planet-aspects"
              ]
            },
            "description": "Everything one planet aspects, and everything that aspects it back.\n\nSix separate questions the parent endpoint answers only if you know six key names: the sign aspects it casts, the planets, signs and houses it aspects, the planets it is conjoined with, and the planets aspecting it. Choose the planet with `planet`.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"node\": \"true\",\n  \"planet\": \"Mars\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Planet equatorial coordinates",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/planet-equatorial/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "planet-equatorial"
              ]
            },
            "description": "Right ascension and declination — the coordinates star catalogues use.\n\nEcliptic longitude is what astrology reads; equatorial coordinates are what every telescope, planetarium and astronomy database speaks. Both the sexagesimal form and a decimal form are returned, because you cannot subtract two {hours, minutes, seconds} objects, along with how fast each coordinate is changing.\n\nDistance is passed through in astronomical units exactly as the engine reports it. It is rounded to three decimal places, which is fine for a planet and far too coarse for the Moon — 0.002 AU spans about 85,000 km of the lunar orbit — so it is deliberately not converted to kilometres.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-09T12:00:00+00:00\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 0.0,\n  \"planet_names\": [\n    \"SUN\",\n    \"MARS\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Natural planetary friendships",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/planet-friendships/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "planet-friendships"
              ]
            },
            "description": "Natural friends, neutrals and enemies for every planet, by name, plus the planets ranked by strength for this chart.\n\nThe natural relationships are permanent — they do not depend on the chart — and they decide a large part of whether a planet is read as comfortable where it sits. The strength ranking, unlike them, is specific to the birth given.\n\nFriendship is derived as the complement of neutrality and enmity rather than read from the engine's own key, which raises an error. The derivation reproduces the classical table exactly for all seven traditional planets, and the response says so in `friends_source`.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"node\": \"true\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Planet horizon coordinates",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/planet-horizon/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "planet-horizon"
              ]
            },
            "description": "Where a body is in the sky right now: azimuth, altitude, and whether it is up at all.\n\nHorizon coordinates are what you need to point at something — a camera, a telescope, or a finger. Azimuth is degrees clockwise from due north, altitude is degrees above the horizon and goes negative once the body has set.\n\n`above_horizon` and a sixteen-point compass bearing are derived here rather than left to you, because \"is it up\" is the actual question and a negative altitude renders as a perfectly valid-looking position.\n\nAccepts the UTC offset as either `timezone_as_float` or `time_zone`; the parent endpoint only accepts the second.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-09T12:00:00+00:00\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 0.0,\n  \"planet_names\": [\n    \"SUN\",\n    \"MOON\",\n    \"MARS\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Planet positions",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/planet-positions/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "planet-positions"
              ]
            },
            "description": "Sidereal positions of the nine grahas for a moment and place: longitude, sign, nakshatra, pada and house for each, plus the ascendant and the ayanamsa actually applied.\n\nThe planets come back as a LIST in traditional order with `name` on each entry, rather than nested under a chart name and keyed by planet, so you can iterate or render a table directly.\n\nDerived from /api/astro/chart/, which requires chart_name, notation, ayanamsa and ascendant_pos on every call. Here they default to RashiChart, degree, LAHIRI and cusp - send a date and a place and nothing else.\n\n`ayanamsa` is still worth setting deliberately: it shifts every longitude in the response, and Lahiri and Raman differ by about a degree, which is enough to move a planet into a different nakshatra. All 48 ayanamsas the chart endpoint supports are accepted here.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"datetime\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"ayanamsa\": \"LAHIRI\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Planet placement readings",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/planet_insights/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "planet_insights"
              ]
            },
            "description": "Prewritten interpretations for a single planet in a single position. Give it a planet and where that planet sits — a zodiac sign, a house, or a nakshatra — and it returns the classical reading for that combination. It is a lookup into a text corpus, not a calculation: no date, time or place is involved, and the same request always returns the same text.\n\nUse it to caption a chart you have already computed. Take Jupiter's sign, house and nakshatra from `/api/astro/chart/`, then call this endpoint for the wording. All three keys can be requested in one call, but each has its own extra parameter, so `planet`, `sign`, `house` and `nakshatra` must all be present in the body when you ask for all three.\n\nCoverage is nine planets (the seven plus Rahu and Ketu) across twelve signs and twelve houses. Nakshatra readings exist for the seven classical planets only — Rahu and Ketu have none. An unrecognised planet, sign, house or nakshatra comes back as an explanatory string with HTTP 200 rather than an error, so check what type you were given before rendering it.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 3 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_planet_sign_insight\"\n  ],\n  \"planet\": \"Jupiter\",\n  \"sign\": \"aries\",\n  \"house\": 0,\n  \"nakshatra\": \"rohini\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Transit over natal planet",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/planet_transit_natal_planets/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "planet_transit_natal_planets"
              ]
            },
            "description": "Prewritten readings for one planet passing over another planet's birth position — transiting Saturn over the natal Moon, transiting Jupiter over the natal Sun, and so on. This is the pairwise transit table most transit reports are built from.\n\nIt is a pure lookup with no chart calculation behind it: supply the transiting planet as `planet` and the birth-chart planet as `natal_planet` and you get the text back. Work out which contacts are actually live from a transit calculation such as `/api/astro/transit/` first, then call this for the wording.\n\nBoth arguments accept the nine bodies, although the transiting side omits Venus. Order matters: Saturn over the natal Sun is a different entry from the Sun over natal Saturn.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_planet_transit_natal_planets\"\n  ],\n  \"planet\": \"Sun\",\n  \"natal_planet\": \"sun\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Transit over house",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/planet_transit_over_house/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "planet_transit_over_house"
              ]
            },
            "description": "Prewritten readings for a planet transiting a given house of the birth chart: what the Sun's passage through the third house is said to bring, what Saturn's through the seventh is said to bring, and so on, for nine planets across twelve houses.\n\nA pure lookup — supply `planet` and `house` and get the text back. No date, time or place is involved, so pair it with a calculation that tells you which house each planet currently occupies.\n\nUse it alongside `/api/astro/planet_transit_natal_planets/`, which covers the other half of a transit report: a transiting planet's contact with a natal planet rather than with a house.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_planet_transit_over_house\"\n  ],\n  \"planet\": \"Sun\",\n  \"house\": 3\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Porutham (South Indian matching)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/porutham/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "porutham"
              ]
            },
            "description": "South Indian marriage compatibility: all twelve poruthams from one call.\n\nGive both partners' birth star (1-27) and pada (1-4). Each porutham comes back with its traditional result and its South Indian variant side by side.\n\nThis is a DIFFERENT system from North Indian Ashtakoota gun milan, which /api/astro/gun-milan/ answers. Both read the same two birth stars and disagree about what matters, so pick the one your tradition uses — Tamil, Telugu and Kannada matching use these poruthams.\n\nNo birth times or places are needed, and that is not a shortcut: porutham is assessed from the nakshatra and its quarter, so a date would be an input the calculation never reads.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"boy_nakshatra_number\": 5,\n  \"boy_paadham_number\": 3,\n  \"girl_nakshatra_number\": 12,\n  \"girl_paadham_number\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Prashna sensitive points",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/prashna/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "prashna"
              ]
            },
            "description": "Prashna is horary astrology: a chart cast for the moment a question is asked rather than for a birth. This endpoint computes the sensitive points that Prashna and longevity work rely on — arithmetic combinations of longitudes that are not planets themselves but are read as though they were. Gulika, also called Mandi, the shadowy point associated with Saturn, is the ingredient most of them are built from.\n\nSend `date_time` in ISO 8601, `latitude`, `longitude`, a `name` label for the chart, `node_type` (`true` or `mean` lunar node) and `add_yogi_longitude`. Everything is returned at once; there are no keys to select. Apart from `gulika_longitude`, which is a bare number of degrees, every point comes back as `{longitude, astrological: {degree, sign, minutes, seconds}, constellation, nakshatra, pada}` — a sidereal longitude with its position in a sign, a zero-based nakshatra index, and the nakshatra name and quarter.\n\nWhat each one is: `trisphuta` is ascendant plus Moon plus Gulika; `chatursphuta` adds the Sun to that; `panchasphuta` adds the lunar node. `pranasphuta` (five times the ascendant, plus Gulika), `dehasphuta` (eight times the Moon, plus Gulika) and `mrityusphuta` (seven times Gulika, plus the Sun) are the life, body and death points, and `sookshmatrisphuta` is their sum. `beejasphuta` (Sun plus Jupiter plus Venus) and `kshetrasphuta` (Moon plus Jupiter plus Mars) are the male and female fertility points. `tithisphuta` is Moon minus Sun, and `rahutithisphuta` the same with the node in place of the Moon. `yogisphuta` is Sun plus Moon plus 93°20', `avayogisphuta` is that plus a further 186°40', and `santanatithi` is five twelfths of the Moon-minus-Sun arc.\n\nThree things to watch. `yogasphuta` is the same calculation as `yogisphuta` except that the 93°20' is added only when `add_yogi_longitude` is true, so with that flag set the two fields are identical. `santanatithi` is not reduced into the 0–360 range and can therefore come back negative. And Gulika is derived using a fixed +05:30 offset whatever location you supply, which shifts every Gulika-derived point for places well outside that zone.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2024-11-14T11:59:23.365Z\",\n  \"longitude\": 74.319,\n  \"latitude\": 26.1046,\n  \"name\": \"RashiChart\",\n  \"node_type\": \"true\",\n  \"add_yogi_longitude\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Rahu kaal",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/rahu-kaal/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "rahu-kaal"
              ]
            },
            "description": "Rahu kaal, and the two periods always quoted beside it - yamaganda and gulika. Three windows, each {start, end}.\n\nThe parent endpoint names these inconsistently: rahu_start/rahu_end, yamaganda_start/yamaganda_end, gulika_start/gulika_end. Here all three use the same two field names, so one rendering function handles all of them.\n\nEach is an eighth of the daylight, so all three move with sunrise and sunset and depend on the place, not only the date. Gulika's position within the day can be varied with gulika_rises_at and gulika_portion if your tradition places it differently.\n\nFor every avoided period of the day in one call, including durmuhurta and the travel direction, use /api/astro/inauspicious-timings/.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Raja yogas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/raja_yoga/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "raja_yoga"
              ]
            },
            "description": "A raja yoga is a combination in a birth chart said to confer status and success. The core case is an association between the lord of an angular house (1, 4, 7, 10) and the lord of a trine (1, 5, 9) — the two conjoined, aspecting each other, or exchanging signs. This endpoint checks the three named variants the engine implements: Vipareeta raja yoga (the lords of the difficult sixth, eighth and twelfth houses falling among themselves), Neecha Bhanga raja yoga (a debilitated planet whose debilitation is cancelled) and Dharma-Karmadhipati raja yoga (the ninth and tenth lords in association).\n\nOne key, `get_raja_yoga_details_for_all_charts`, which runs the checks across every divisional chart the engine knows rather than the birth chart alone. Its value is a three-element array: an object mapping each yoga found to its details, the number found, and the number of checks made — three yoga types across twenty-three divisional charts, so 69. Each detail entry is a list of strings: first a line naming the divisional chart and the planet pairs responsible, such as `\"D1-Raja Yoga Pairs: [Viyaazhan-Sani]\"`, then the yoga's name, its definition and its predicted effects.\n\nTwo notes on reading the output. Planet names inside the pairs line are given in Tamil transliteration whatever else you send: Suriyan is the Sun, Chandran the Moon, Sevvay Mars, Budhan Mercury, Viyaazhan Jupiter, VeLLi Venus and Sani Saturn. And because the results from all divisional charts are merged into one object keyed by yoga name, each yoga appears once only, reported against the earliest divisional chart in which it was found — a `D4-` prefix means the birth chart itself did not have it.\n\nOne caveat before you build on this: the underlying calculation currently substitutes a fixed date for the `date_time` you send, so the result responds to the location fields but not to the birth date. Check it against a chart you know before relying on it.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_raja_yoga_details_for_all_charts\"\n  ],\n  \"date_time\": \"2025-07-14T11:00:37.673Z\",\n  \"latitude\": 13,\n  \"longitude\": 77.5946,\n  \"timezone\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "What a sign aspects",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/rashi-aspects/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "rashi-aspects"
              ]
            },
            "description": "What one sign aspects, and which planets are its baadhaka.\n\nRashi drishti — sign-to-sign aspect — is a Jaimini idea rather than a Parashari one: signs aspect signs regardless of what stands in them. The baadhaka, the obstructing lord, is returned alongside because it is read from the same sign.\n\nSigns are numbered 1 for Aries through 12 for Pisces. The engine underneath numbers them from zero, so this endpoint converts — verified against the baadhaka rule for all twelve signs (movable afflicted from the 11th, fixed from the 9th, dual from the 7th).\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"node\": \"true\",\n  \"raasi\": 5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sign in house readings",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/rashi_in_house_insights/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "rashi_in_house_insights"
              ]
            },
            "description": "Prewritten readings for a zodiac sign occupying a particular house of the chart — Aries on the second house, Cancer on the seventh, and so on, for all 144 combinations. Each describes what the house's affairs look like when coloured by that sign.\n\nA pure lookup with no calculation behind it. One key, `get_rashi_in_house`, taking `rashi` as a sign name and `house` by its Sanskrit name rather than a number: `lagna`, `dhana`, `sahaja`, `sukha`, `putra`, `satru`, `yuvati`, `randhra`, `bhagya`, `karma`, `labha`, `vyaya` for the first through twelfth houses.\n\nThe value is a list of short sentences, typically four to six, each a separate statement you can render on its own line. A name outside the accepted set returns an `Invalid key` string with HTTP 200 rather than an error.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 1 named calculation.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"get_rashi_in_house\"\n  ],\n  \"house\": \"dhana\",\n  \"rashi\": \"aries\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Rashifal forecasts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/rashifal/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "rashifal"
              ]
            },
            "description": "Rashifal is the sign-based horoscope column: a forecast written for everyone born under one of the twelve Moon signs, with no birth chart involved. This endpoint produces four of them — daily, weekly, monthly and yearly — each in English and Hindi in the same response.\n\nThe astronomy underneath is real, and differs by timescale. The daily and weekly readings are driven by the Moon's actual transit through the houses counted from your sign, plus any genuine Mercury, Venus or Mars station falling inside the week. The monthly reading uses the Sun's sankranti, Mercury and Venus stations and Mars sign changes across the month; the yearly one uses Jupiter, Saturn and Rahu-Ketu transits plus a simplified sign-only Sade Sati flag taken from Saturn's house relative to your sign. The wording laid over those events, and the lucky colour and number, are selected from prewritten sets.\n\nSend `rashi` as a sign name and `date` as `YYYY-MM-DD`; the date is optional and defaults to today. Which part of the date matters depends on the key — the weekly reading treats it as the first day of the week, the monthly one takes only the month and year, and the yearly one only the year. Every text field has a `_hi` twin holding the Hindi rendering.\n\nBecause this is sign-level, treat it as a content feed rather than a chart reading. For anything personalised, compute the chart and use the transit endpoints.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 4 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date\": \"2026-09-01\",\n  \"rashi\": \"aries\",\n  \"keys\": [\n    \"get_daily_rashifal\",\n    \"get_weekly_rashifal\",\n    \"get_monthly_rashifal\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Ravi yoga windows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/ravi_yoga/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "ravi_yoga"
              ]
            },
            "description": "Ravi Yoga is present when the Moon's nakshatra stands 4, 6, 9, 10, 13 or 20 places from the Sun's. It is treated as an auspicious window that overrides an otherwise unfavourable muhurta, and is commonly used for house-warmings, taking delivery of a vehicle, opening a shop and similar one-off acts.\n\nBecause it depends only on the two nakshatras, and not on the lunar day or the weekday, it can be given as continuous windows with exact times rather than as a day flag. The response is `data.rows`, a list of `{start, end}` ISO 8601 timestamps in UTC covering the requested year. Windows are cut at every sunrise inside them, so one continuous three-day span appears as three consecutive rows meeting at the sunrise instants, the way Drik Panchang lays them out. Concatenate adjoining rows if you want the underlying spans back.\n\nSend `year`, `latitude`, `longitude` and `timezone_as_float`. Location affects only the sunrise split points, not the yoga itself. `/api/astro/panchanga_yogas/` reports the same yoga as a day-level flag alongside the tithi- and weekday-dependent ones; use this endpoint when you need exact start and end times.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Retrograde periods",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/retrograde/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "retrograde"
              ]
            },
            "description": "Every retrograde period for a year, in one small response. Retrograde, or vakri, motion is the apparent backwards drift of a planet against the stars, and astrological practice treats those spans as a distinct phase in the planet's behaviour.\n\nSend `year` and nothing else. The response is `data.planets`, an object keyed by planet name, each holding a list of `{start, end}` timestamps in UTC. Periods running across a year boundary are clipped to 1 January and 31 December, so a window beginning at `01-01 00:00:00` actually started in the previous year. A planet that never turns retrograde in that year gets an empty list.\n\nTen keys are returned: mercury, venus, mars, jupiter, saturn, uranus, neptune, pluto, rahu and ketu. The Sun and Moon are omitted because they are never retrograde as seen from Earth. Rahu and Ketu are derived from the mean lunar node, which drifts steadily backwards all year with no station, so both always show a single window covering the whole year; using the true node instead would produce dozens of spurious few-day entries.\n\nStation times are found by bracketing the day on which longitudinal speed changes sign and then narrowing within it, so they are precise to well under a minute. The same figures appear inside `/api/planetary_details/` bundled with eight other calculations; this endpoint returns the retrograde data alone.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sahams",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/saham/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "saham"
              ]
            },
            "description": "A saham is a sensitive point worked out by arithmetic on three positions in a chart: take the arc from one planet to another and lay it off from a third point, usually the ascendant. The technique reached Indian astrology from Perso-Arabic sources and is the same idea as the Arabic lot or the Hellenistic part — Punya Saham is the Lot of Fortune under another name. Each saham stands for one department of life, such as marriage, children, wealth, illness or litigation, and its position and the strength of its lord are read for what that department will bring, chiefly in the Tajaka annual chart.\n\nThirty-eight individual sahams are available as keys, plus `all_sahams`, which returns them all in one object. Every one returns a single point in the same shape: `{longitude, astrological: {degree, sign, minutes, seconds}, nakshatra, pada}`, where `longitude` is sidereal degrees from 0 to 360 and `sign` is a two-letter abbreviation such as `Cp` or `Sg`.\n\nRequest fields are `date_time`, `latitude`, `longitude`, `timezone_as_float`, and `chart`, naming the chart class the point is built from — `RashiChart` for the ordinary birth or annual chart, with the divisional chart classes also accepted. `night_time_birth` swaps the two planets in the formula for a night birth, and `compensation` adds 30° when the projected point does not fall in the arc the classical rule expects. Both are required fields, so set them deliberately. Fifteen of the sahams have no night-time variant in this implementation and return the day formula whichever way the flag is set; those say so in their own descriptions.\n\nThe `notation` field is accepted but currently makes no difference to the output: both settings return the same four fields.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 39 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"vidya_saham\"\n  ],\n  \"latitude\": 26.1046,\n  \"longitude\": 74.319,\n  \"timezone_as_float\": 5.5,\n  \"chart\": \"RashiChart\",\n  \"night_time_birth\": true,\n  \"compensation\": true,\n  \"notation\": \"degree\",\n  \"date_time\": \"2026-09-01T06:00:00+05:30\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sahams (Arabic Parts)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/sahams/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "sahams"
              ]
            },
            "description": "All thirty-eight sahams — the Vedic Arabic Parts — each with the English name it is usually known by.\n\nA saham is a calculated point rather than a body: a sensitive degree derived by arithmetic on two planets and an angle. They cover fortune, marriage, career, wealth, children, disease, travel and more, and until now every one of them was reachable only by knowing its Sanskrit key name.\n\nIMPORTANT: every saham here uses the day-chart formula. The underlying engine does not apply the day/night reversal, so lots that classically reverse for a night birth are not reversed, and the `night_time_birth` field is accepted but has no effect. For the Part of Fortune specifically, /api/astro/part-of-fortune/ computes it correctly for both sects.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"chart\": \"RashiChart\",\n  \"notation\": \"degree\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Samvat years",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/samvat/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "samvat"
              ]
            },
            "description": "The year in the Indian eras: Vikram, Shaka and Kali, plus its name in the sixty-year Jovian cycle.\n\nVikram runs 57 years ahead of the Gregorian year and Shaka 78 behind, so the two always differ by 135. Kali is Shaka plus 3179.\n\n`samvatsara` is the Jovian cycle name, Prabhava through Kshaya. The cycle is offset differently depending on which era it is reckoned from, so `samvata_type` selects that and is echoed back as `samvatsara_reckoned_from`. It defaults to `vikram`; the parent endpoint requires it and errors without it.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Rulers of the Hindu year",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/samvatsara/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "samvatsara"
              ]
            },
            "description": "The King, the Minister and eight more lords of the Hindu year.\n\nAt the start of the samvatsara the chart is cast and particular planets take particular offices for the twelve months that follow: the King over the year as a whole, the Minister over governance, and lords over rainfall, wealth, grain, juices, water, fruit, crops and defence. This is the frame almanac publishers write their annual predictions inside.\n\nEach office comes back with what it governs, so `neersesha_of_year` reads as 'Lord of Water, governs rivers and water supply'. Returned with the moment the year begins and the samvatsara's vaahana.\n\nNeeds only a year — there is no birth chart in mundane astrology, and the answer does not change with the place you ask from.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"year\": 2025,\n  \"date_time\": \"2025-02-13T05:00:37Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sandhya windows",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/sandhya/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "sandhya"
              ]
            },
            "description": "The two twilight observance windows: pratah in the morning and sayahna in the evening, each {start, end}.\n\nPratah runs two ghatis before sunrise to one after, sayahna one ghati before sunset to two after, where a ghati here is derived from the day length rather than a fixed twenty-four minutes.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sankranti dates",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/sankranti/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "sankranti"
              ]
            },
            "description": "The previous and next Sankranti — the Sun's entry into a sidereal sign.\n\nSankranti is the Hindu calendar's solar month boundary, and the reason the dates matter well beyond astrology: Makar Sankranti, Mesha Sankranti and the rest are festival dates fixed by exactly this crossing.\n\nSidereal, so these do NOT coincide with the tropical ingresses /api/astro/transit/solar-ingress/ finds — the two are separated by the ayanamsa.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-06-02T06:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Saptamsa (D7)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/saptamsa/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "saptamsa"
              ]
            },
            "description": "The saptamsa, the seventh divisional chart: each sign divided into seven parts of roughly 4°17' each.\n\nRead for children and progeny.\n\nReturns the same flat shape as /api/astro/planet-positions/: the planets as a list in traditional order with `name`, longitude, sign, nakshatra, pada and house on each, plus the ascendant and the ayanamsa applied. Send a date and a place; `ayanamsa` defaults to LAHIRI and all 48 are accepted.\n\nThe chart is fixed by the route, so a `chart_name` in the body is ignored - this endpoint cannot return anything but the chart it is named for. /api/astro/chart/ is where to go for the other 24 divisions.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"datetime\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"ayanamsa\": \"LAHIRI\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Saptashalaka chakra",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/saptashalaka_chakra/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "saptashalaka_chakra"
              ]
            },
            "description": "The Saptashalaka chakra is a muhurta diagram of seven rods: the 28 nakshatras (27 plus Abhijit) are arranged seven to a side around a square, and lines drawn across it link each nakshatra to three others — the one directly opposite and the two reached diagonally. A planet sitting in any of the three is said to pierce (vedha) the nakshatra in question, and a moment falling in a pierced nakshatra is dropped when fixing a date, particularly for a marriage.\n\nThis GET endpoint returns the whole diagram and takes no parameters. `edges` gives `east`, `south`, `west` and `north`, each an ordered list of the seven nakshatra names along that side. `vedha_map` is keyed by nakshatra, 28 entries, each `{front, diagonal_right, diagonal_left, edge}`.\n\nThe data is fixed, so cache it rather than calling repeatedly, and use `/api/astro/saptashalaka_vedha/` for a single lookup. The difference from the Panchashalaka chakra is the number of partners — three here, one there — and the two diagrams arrange the nakshatras differently, so a nakshatra's partners are not the same in both.\n\nCosts 1 credit on success. Failed requests are not charged."
          },
          "response": []
        },
        {
          "name": "Saptashalaka vedha lookup",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/saptashalaka_vedha/?nakshatra=Abhijit",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "saptashalaka_vedha"
              ],
              "query": [
                {
                  "key": "nakshatra",
                  "value": "Abhijit",
                  "disabled": false,
                  "description": "Name of the nakshatra to look up vedha relationships for."
                },
                {
                  "key": "type",
                  "value": "diagonal_left",
                  "disabled": true,
                  "description": "Comma-separated vedha types to return. Omit for all three."
                }
              ]
            },
            "description": "A single-nakshatra lookup into the Saptashalaka chakra. Given a nakshatra it returns the three others that pierce it: `front`, the one directly opposite on the diagram, and `diagonal_right` and `diagonal_left`, the two reached across the corners. In muhurta practice a malefic in any of the three afflicts a moment falling in your nakshatra.\n\nPass `nakshatra` as a query parameter using the spellings the chakra endpoint returns; Abhijit is included. The optional `type` parameter takes a comma-separated subset of `front`, `diagonal_right` and `diagonal_left` — omit it to get all three. The response is `{nakshatra, vedha}`, where `vedha` holds only the types you asked for.\n\nAn unrecognised nakshatra is rejected with a 400. The relationships never change, so for more than a few lookups fetch the full map once from `/api/astro/saptashalaka_chakra/`.\n\nCosts 1 credit on success. Failed requests are not charged."
          },
          "response": []
        },
        {
          "name": "Sarvashtakavarga",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/sarvashtakavarga/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "sarvashtakavarga"
              ]
            },
            "description": "Sarvashtakavarga: the totals, one number per sign, keyed `Raasi 1` to `Raasi 12` for Aries to Pisces.\n\nEach is the sum of all the planets' points in that sign, so the twelve add up to 337 in the classical scheme - a test asserts that on every chart. Use it to rank signs by strength in a single call, and to judge which transits are worth acting on.\n\nBuilt from the rashi chart by default; pass `chart_name` for a divisional chart. For the per-planet tables underneath these totals, use /api/astro/bhinnashtakavarga/.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Equinoxes, solstices and ritus",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/seasons/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "seasons"
              ]
            },
            "description": "The two equinoxes, the two solstices and the six Indian ritus for a year.\n\nEach solar moment is named by its month and returned in chronological order. That matters: the underlying data gives the solstices December-first, so reading the first entry as the June one would be wrong half the time.\n\nThe ritus — Vasant, Grishma, Varsha, Sharad, Hemant and Shishir — are the Indian seasonal division and do not line up with the four-season calendar: there are six, each about two months, anchored to the Sun's sidereal position rather than to the solstices.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"year\": 2025,\n  \"date_time\": \"2025-02-13T05:00:37Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Shadbala",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/shadbala/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "shadbala"
              ]
            },
            "description": "Shadbala: the six-fold strength of each of the seven planets, with the six components the total is built from.\n\n`shadbala` is the total. `components` breaks it into sthana (positional), dig (directional), kaala (temporal), cheshta (motional), naisargika (natural) and drik (aspectual), so you can show WHY a planet scores as it does rather than only the score.\n\nValues are in virupas; sixty virupas make one rupa, and a planet is conventionally judged strong above its own required minimum.\n\nNote this endpoint takes `timezone`, not `timezone_as_float`, following its parent. `asc_house` is required on that parent and unused by this calculation, so it is not needed here.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Saturn transit phases",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/shani_analysis/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "shani_analysis"
              ]
            },
            "description": "Saturn's slow circuit of the zodiac produces four named phases that Indian astrology watches closely, all measured from the birth Moon or birth ascendant: Sade Sati, the seven-and-a-half years around Saturn's passage over that point; Ashtama Shani, Saturn in the eighth from it; Kantaka Shani, Saturn in the fourth, seventh or tenth; and Dhaiya, also called Ardhashtama, Saturn in the fourth or eighth. This endpoint says whether each is running at a given moment, when it ends, and when the next one begins.\n\nSend two charts: the birth data as `date_time_natal`, `latitude_natal`, `longitude_natal` and `chart_name_natal`, and the moment you are asking about as the matching `_transit` fields. `ref_celestial` chooses whether the phases are measured from the natal Moon or the natal ascendant. `mode` selects how strict the test is — 0 tests whole-sign house placement, and the higher values test a degree window around the reference point instead, which yields noticeably tighter start and end dates.\n\nThe response holds eight objects. `ashtama_shani`, `kantaka_shani`, `dhaiya_shani` and `sade_sati_shani` are each `{status, end_date}`: a boolean for whether the phase is running at the transit moment, and an ISO 8601 UTC end date when it is, or null when it is not. `next_ashtama_shani`, `next_kantaka_shani` and `next_dhaiya_shani` are `{date, ref_house_from_natal}`, giving when the next occurrence starts and which house from the reference point triggers it; `next_sade_sati_shani` gives just `{date}`. The forward search runs a hundred years from the transit moment.\n\nBecause Kantaka and Dhaiya both include the fourth house, the two often report the same dates. That is expected, not a duplicate.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time_natal\": \"2025-11-21T05:41:58.124Z\",\n  \"date_time_transit\": \"2024-11-21T05:41:58.124Z\",\n  \"longitude_natal\": 77.5946,\n  \"latitude_natal\": 12.9716,\n  \"longitude_transit\": 26.1046,\n  \"latitude_transit\": 26.9124,\n  \"chart_name_natal\": \"RashiChart\",\n  \"chart_name_transit\": \"RashiChart\",\n  \"ref_celestial\": \"ascendant\",\n  \"mode\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Shashtyamsa (D60)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/shashtyamsa/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "shashtyamsa"
              ]
            },
            "description": "The shashtyamsa, the sixtieth divisional chart: each sign divided into sixty parts of 30' each.\n\nThe finest division of the shodasavarga and traditionally given great weight. It is also the most sensitive to birth-time accuracy in the whole set: half a degree is about two minutes of clock time, so an uncertain birth time moves planets between divisions and changes the reading. Treat it as unreliable unless the time is rectified.\n\nReturns the same flat shape as /api/astro/planet-positions/: the planets as a list in traditional order with `name`, longitude, sign, nakshatra, pada and house on each, plus the ascendant and the ayanamsa applied. Send a date and a place; `ayanamsa` defaults to LAHIRI and all 48 are accepted.\n\nThe chart is fixed by the route, so a `chart_name` in the body is ignored - this endpoint cannot return anything but the chart it is named for. /api/astro/chart/ is where to go for the other 24 divisions.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"datetime\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"ayanamsa\": \"LAHIRI\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sign transitions",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/sign_transitions/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "sign_transitions"
              ]
            },
            "description": "Every moment a planet crosses from one sidereal sign into the next, for a whole year — the event Indian astrology calls gochar, or sankranti in the Sun's case. The Sun's twelve crossings mark the solar months, Jupiter's and Saturn's are what long-range predictions hang on, and the Moon's come round every two and a half days.\n\nSend `year` and `timezone_as_float`. The response is `data.planets`, an object keyed by planet name, each holding a list of `{from_sign, to_sign, datetime}` in date order. Twelve bodies are covered: sun, moon, mercury, venus, mars, jupiter, saturn, uranus, neptune, pluto, truenode and meannode. Note that the lunar nodes appear under those two names rather than as rahu and ketu.\n\nTimestamps are UTC, and the crossing instant is the same everywhere on Earth — the offset you send decides which local calendar year the scan covers, so that a crossing late on 31 December UTC is correctly returned in the following year for an Indian viewer. Convert to local time for display.\n\nCrossings are located by walking day by day and then narrowing within the day, giving times good to a small fraction of a degree. The Moon alone contributes over 150 entries a year, so expect a sizeable response. The same figures appear inside `/api/planetary_details/` alongside eight other calculations; this endpoint returns only the transitions.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"year\": 2026,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Fixed stars",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/star/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "star"
              ]
            },
            "description": "Positional data for a named fixed star, taken from the standard fixed-star catalogue. Both Vedic and Western astrology use a handful of bright stars as markers — Aldebaran, Regulus, Spica, Antares — and the nakshatras are themselves named after their yogataras, the junction stars that define them. This endpoint gives a star's ecliptic and equatorial coordinates, its rate of change, and its brightness.\n\nSend `name` as either a traditional name (`Aldebaran`, `Regulus`) or a Bayer designation (`alTau`, `alLeo`); matching ignores case and spaces, and a leading comma forces the Bayer form. Add `date_time`, `timezone_as_float`, and the `keys` you want.\n\nImportant: list `set_default_positions` as the first entry of `keys`. Keys are executed in the order you give them, and every positional key depends on the calculation flags that call installs — without it they fail. Only `magnitude`, which comes straight from the catalogue, works on its own. Positions are sidereal.\n\n`latitude` and `longitude` are accepted but not used; a fixed star's geocentric position does not depend on where you stand.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 10 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"name\": \"Aldebaran\",\n  \"keys\": [\n    \"set_default_positions\",\n    \"magnitude\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Planetary strength",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/strength/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "strength"
              ]
            },
            "description": "Shadbala, \"six strengths\", is the classical way of putting a number on how much a planet can actually deliver. Six sources are scored separately — position, time, direction, motion, natural rank and aspects received — and added together. The total is expressed in virupas, sixty of which make one rupa; each planet has a threshold in rupas it is expected to clear, and the ratio of what it scored to what it needed is the usable answer. This endpoint exposes that total, every component and sub-component of it, and several related strength schemes.\n\nStart with `shad_bala`. It returns a nine-element array: the six component lists, then the totals in virupas, the same totals in rupas, and finally each planet's rupas divided by its requirement (Sun 5, Moon 6, Mars 5, Mercury 7, Jupiter 6.5, Venus 5.5, Saturn 5). A ratio above 1 means the planet met its requirement. Every seven-element list on this endpoint is in the order Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn; every twelve-element list is houses one to twelve.\n\nSend `date_time`, `latitude`, `longitude` and `timezone`. Note that the field is `timezone` here, not `timezone_as_float` as on most other endpoints. `asc_house` is required but is used only by the three house-classification keys, and `planet_index`, `include_houses` and `use_epoch_table` only by the keys that name them.\n\nAlongside Shadbala the endpoint carries the Tajaka five-fold and twelve-fold strengths, the Ishta Phala benefic score, the Rashmi ray measures and Harsha Bala. Bhava Bala, the strength of the houses rather than the planets, is present in the key list but its three components are unimplemented stubs returning zeros, so `bhava_bala` returns zeros too.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 50 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"harsha_bala\"\n  ],\n  \"date_time\": \"2025-03-27T11:11:24.366Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone\": 5.5,\n  \"asc_house\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sunrise and sunset",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/sunrise/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "sunrise"
              ]
            },
            "description": "Sunrise and sunset for a date and place, with the length of the day in seconds. For the moon, use /api/astro/moonrise/.\n\nSend a date, a latitude, a longitude and the UTC offset. Nothing else. The same figures are reachable through /api/astro/celestial/, but only if you know to ask for the SUN by name, to put the rising-convention switch first in the keys array, and to read element zero of a two-element array whose second element is a ten-float ephemeris tuple.\n\nThis uses Hindu rising - upper limb, no refraction - the same convention /api/astro/panchanga/ builds its day from, so sunset minus sunrise here equals that endpoint's day_length to the second. The sunset returned is always the one that follows the sunrise.\n\nEither field can be null: inside a polar day or night the sun does not rise or set, and null says so. /api/astro/celestial/ returns \"2000-11-24T12:00:00Z\" for that case, which is julian day zero rather than an instant.\n\nOne boundary to know: this answers for the CIVIL day you named, while the panchanga day runs sunrise to sunrise. Ask for a moment before sunrise and panchanga is still describing the previous day, so its day_length will differ from the interval here. Both are correct for their own question.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Tajika aspects",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tajaka/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tajaka"
              ]
            },
            "description": "Tajika is the branch of Indian astrology that absorbed Perso-Arabic technique, and it uses a different aspect scheme from ordinary Vedic drishti. Signs and planets relate to one another by trine, sextile, square, opposition, conjunction and semi-sextile, much as in Western astrology, and each of those is classed benefic, malefic or neutral: trine and sextile are benefic, square, opposition and conjunction malefic, semi-sextile neutral. This endpoint answers aspect questions about a single chart cast for the date, time and place you send.\n\nEvery key works from that one chart, so ask for as many as you need in a single call. The keys ending `_of_the_raasi` take the `raasi` field, a sign index running 0 for Aries to 11 for Pisces; the keys ending `_of_the_planet` take `planet` instead and start from whichever sign that planet occupies. Planet names must be spelled exactly as in the enum (`Sun`, `Moon`, `Mars`, and so on) because the engine looks them up by exact match; a lower-case name is rejected.\n\nThe aspect keys all return a two-element array. The first element is the list of aspected sign indices in the same 0-11 scheme; the second is the planets standing in those signs, given as string ids where '0' is the Sun, '1' the Moon, '2' Mars, '3' Mercury, '4' Jupiter, '5' Venus, '6' Saturn, '7' Rahu and '8' Ketu, with 'L' for the ascendant. Start with `aspects_of_the_planet` if you simply want everything one planet touches, then narrow down to the benefic or malefic subsets.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 28 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"trinal_aspects_of_the_raasi\"\n  ],\n  \"raasi\": 0,\n  \"planet\": \"Moon\",\n  \"planet1\": \"Mercury\",\n  \"planet2\": \"Saturn\",\n  \"node\": \"true\",\n  \"date_time\": \"2025-02-12T08:55:55.430Z\",\n  \"house\": 0,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Tajika yogas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tajaka_yoga/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tajaka_yoga"
              ]
            },
            "description": "The Tajika yogas are the named planetary relationships used to judge whether a matter will actually come off, and they are the working tools of the annual solar-return chart (Varshaphala) and of horary work. The central pair is ithasala, where two planets are inside each other's orb and the faster one is still applying to the slower, taken as a promise that will be kept, and eesarpha, where the same two are separating, taken as an opportunity already gone. The rest qualify those: nakta and yamaya describe a third planet carrying the connection between two that do not aspect each other, kamboola brings the Moon into an ithasala, manahoo has Mars or Saturn spoiling one, and ishkavala and induvara are whole-chart patterns based on where the planets fall relative to the angles.\n\nThe chart is built from `date_time`, `latitude`, `longitude` and `node`. Keys whose names begin `get_` take no further fields and scan the chart themselves, over the seven classical planets only, so Rahu and Ketu never appear in their output. `ithasala_yoga` and `eesarpha_yoga` take `planet1` and `planet2`; `check_yamaya_yoga` takes `planet` as well.\n\nTwo keys are placeholders in the current build and return null rather than a result: `get_gairi_kamboola_yoga_planet_pairs` and `get_khallasara_yoga_planet_pairs`. Begin with `get_ithasala_yoga_planet_pairs`, which gives you every applying pair in the chart in one call, and use the single-pair keys only when you already know which two planets you care about.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 13 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keys\": [\n    \"check_yamaya_yoga\"\n  ],\n  \"planet\": \"Pluto\",\n  \"planet1\": \"Mars\",\n  \"planet2\": \"Saturn\",\n  \"node\": \"mean\",\n  \"date_time\": \"2025-02-12T09:13:52.017Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Tajika annual charts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tajika/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tajika"
              ]
            },
            "description": "Tajika timing works by re-casting the birth chart for the moment the Sun comes back to a chosen longitude. The annual chart, varshapravesh, is cast for the instant the Sun returns to its exact natal longitude, which is the birthday to the minute rather than to the day; the monthly chart, maasapravesh, advances that longitude by 30 degrees at a time. This endpoint returns those two plus four progressively shorter subdivisions of the same idea, down to charts that change every couple of minutes.\n\n`date_time`, `latitude` and `longitude` are the birth data. `solaryears` and `solarmonths` say how many returns forward to walk. `date_time_target` is the moment the short-period charts must bracket: for each of them the engine steps the natal solar longitude by a fixed increment (2.5 degrees for the sixty-hour chart, 0.208333 for the five-hour, 0.008 for the twenty-five-minute and 0.0007 for the two-minute) and keeps the crossing that falls closest before your target. `degree_increment` drives the general-purpose chart the same way, so you can choose your own subdivision. `notation` picks 'astrological', which reports positions as sign plus degrees, minutes and seconds, or 'degree' for plain decimals.\n\nThe response holds `varshapravesh`, `maasapravesh`, `tajika_chart`, `tajika_sixtyhour`, `tajika_fivehour`, `tajika_twentyfiveminute` and `tajika_twominute`, each a complete Rashi chart with an ascendant and every celestial body carrying longitude, latitude, nakshatra, pada, kakshya, sign and house. The last two are gated behind the booleans `tajika_25min` and `tajika_2min` and come back null unless you ask for them, because each searches hundreds of thousands of solar crossings and is markedly slower than the rest of the call.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2024-11-14T13:38:12.924Z\",\n  \"longitude\": 74.319,\n  \"latitude\": 26.1046,\n  \"name\": \"RashiChart\",\n  \"solarmonths\": 1,\n  \"solaryears\": 2,\n  \"degree_increment\": 1.5,\n  \"date_time_target\": \"2024-12-14T13:38:12.924Z\",\n  \"tajika_25min\": true,\n  \"tajika_2min\": false,\n  \"notation\": \"astrological\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Tamil calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tamil_calendar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tamil_calendar"
              ]
            },
            "description": "The Tamil calendar is solar rather than lunar, and that is what separates it from most of the other regional calendars here. A month begins the moment the Sun enters a new sidereal sign, so the twelve months (Chithirai, Vaikasi, Aani, Aadi, Aavani, Purattasi, Aippasi, Karthigai, Margazhi, Thai, Maasi and Panguni) follow the Sun's position and start on roughly the same Gregorian dates each year, with Chithirai opening the year around 14 April. Day one of a month is fixed by the sunset rule: if the Sun's ingress falls between sunrise and sunset, that civil day is day one, and if it falls after sunset the following day is. The Telugu, Marathi, Gujarati and Kannada calendars, by contrast, count months from a new or full Moon.\n\nPost a `year` together with `latitude`, `longitude` and `timezone_as_float`. The sunrise and sunset that resolve each observance are computed for those coordinates, so an event can shift by a day if you change location. The response is `{year, events}`, where each event is `{name, date, tamil_month, tamil_day}` — the Gregorian date plus the position within the Tamil month — covering the whole Gregorian year. Pongal, Puthandu, Thai Pusam, Masi Magam, Panguni Uthiram, Aadi Perukku, Karadaiyan Nombu, Ayutha Poojai and the rest appear under their Tamil names.\n\nA number of these festivals are the same lunar tithi the main Hindu festival engine computes, looked up under a Tamil name and then resolved to its own observance rule (sunrise, madhyahna, aparahna, nishita, pradosha or purvahna). Those come from the precomputed festival table and so limit this endpoint to the years 2006-2046. A few entries are deliberately left out rather than guessed, among them Agni Nakshatram, the three Veda-specific Avani Avittam dates, Gayathri Japam and Agastya Arghya.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Tarabala",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tarabala/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tarabala"
              ]
            },
            "description": "Tara bala: which of the twenty-seven birth nakshatras are well placed against the nakshatra the Moon is transiting.\n\nReturns the favourable nakshatras grouped by tier along with when the assessment stops being valid - the Moon changes nakshatra roughly every day, so this is a same-day answer. Use it to tell a user with a known birth nakshatra whether today favours them.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Telugu calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/telugu_calendar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "telugu_calendar"
              ]
            },
            "description": "The Telugu calendar is Amanta luni-solar: months run from one new Moon to the next, carry Telugu names (Chaithramu, Vaisakhamu, Jyesthamu, Ashadhamu, Sravanamu, Bhadhrapadamu, Asvayujamu, Karthikamu, Margasiramu, Pushyamu, Maghamu and Phalgunamu), and the year is reckoned in Shaka Samvat and opens at Ugadi on Chaithramu Shukla Padyami. The underlying month arithmetic, adhika-month detection included, is the same one the Marathi and Kannada calendars use — the difference between those three is the month naming and the festival list, not the astronomy. It is not the solar sign-to-sign scheme of the Tamil and Malayalam calendars.\n\nPost a `year` with `latitude`, `longitude` and `timezone_as_float`. The response is `{year, events}` and each event is just `{name, date}`; unlike the Tamil calendar there are no month or day-of-month fields. Expect around ninety entries a year: the twenty-four Ekadashis (twenty-six in an adhika year) under their Telugu names along with the Gauna and Vaishnava next-day alternates that most other regional calendars omit, roughly twenty-five weekday-named Pradosh Vrats (Ravi, Soma, Bhauma, Budha, Guru, Shukra, Shani), the twelve Sankashtahara Chaturthis, the twelve Shukla Dwadashi vratas and the main festivals.\n\nSunrise, sunset and the Pradosha window are computed for the coordinates you send, so a different city can move a date by one day; the Pradosh Vrat rule in particular assigns each Trayodashi to the civil day whose post-sunset Pradosha window it overlaps most. Festivals shared with the main Hindu calendar are read from the precomputed table, which covers 2006-2046 only.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Tithi",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tithi/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tithi"
              ]
            },
            "description": "The lunar day in force at the moment you ask, with its start, end and how much of it is left, plus every tithi touching the local day.\n\nA tithi is one thirtieth of the moon's cycle relative to the sun, so it is not a fixed length: it can run anywhere from about nineteen to twenty-six hours, which is why `start`, `end` and `remaining` matter more than the name alone. `paksha` says which fortnight - Shukla waxing, Krishna waning.\n\n`special_name` carries the classical name where the tithi has one, and `segments` lists every tithi overlapping the calendar day, for a timeline.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Tithi year scan",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tithi_scan/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tithi_scan"
              ]
            },
            "description": "A tithi is one thirtieth of the lunar month — the stretch of time during which the Moon gains a further 12 degrees of elongation on the Sun. Tithis are the unit almost every Hindu observance is defined on, and they do not line up with civil days: one can be as short as about nineteen hours or as long as about twenty-six, so a single occurrence often spans two dates. This endpoint takes one named tithi and returns every occurrence of it in a calendar year, with the true instant it begins and ends.\n\n`tithi_number` runs 1 to 30: 1-15 are Shukla Pratipada through Purnima, 16-29 are Krishna Pratipada through Chaturdashi, and 30 is Amavasya. `year` is the local calendar year and `timezone_as_float` decides which local year that is (5.5 for IST). No coordinates are required, because a tithi begins and ends at the same instant everywhere on Earth.\n\nThe response is `{year, tithi_number, rows}`, with `rows` a chronological list of `{start, end}` UTC ISO timestamps — usually twelve or thirteen entries, since a given tithi recurs once per lunar month. Windows are not split at intervening sunrises, so an occurrence that runs across two civil days is returned as a single row.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"timezone_as_float\": 5.5,\n  \"tithi_number\": 1,\n  \"year\": 2026\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Transit crossings",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/transit/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "transit"
              ]
            },
            "description": "This endpoint searches for moments rather than describing a chart at a fixed time. It answers questions of the form: when does the Sun next reach 0 degrees of Aries, when does Mars next cross a given degree between two dates, when do Saturn and the Sun next share an ecliptic longitude, and where exactly does a body stand at an instant.\n\nTwo of the keys are mode switches rather than calculations. `set_default_transit` selects the plain tropical ephemeris and `set_sidereal_transit` selects the sidereal one, and both return null. Keys in a request are evaluated in the order you list them, so put the switch first if you want the searches that follow to be sidereal.\n\nThe `planet`, `celestial`, `celestial1` and `celestial2` fields use upper-case ephemeris names (`SUN`, `MOON`, `MEAN_NODE`, `TRUE_NODE`, `CHIRON`, the Uranian points and several planetary moons), which is a different vocabulary from the `Sun`/`Moon` names used on most other endpoints here. `tz` is a plain hour offset applied to every timestamp that comes back, `when` chooses whether to search 'after' or 'before' the reference time, and `datetime_start`/`datetime_end` bound the window for `planet_transit`.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nReturns 8 named calculations.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2024-11-20T06:52:42.466Z\",\n  \"keys\": [\n    \"set_sidereal_transit\",\n    \"planet_transit\",\n    \"solar_crossing\",\n    \"celestial_conjunction\",\n    \"transit_details\"\n  ],\n  \"latitude\": 26.1046,\n  \"longitude\": 75.7873,\n  \"tz\": 5.5,\n  \"planet\": \"MARS\",\n  \"datetime_start\": \"2024-11-20T06:52:42.466Z\",\n  \"datetime_end\": \"2040-11-20T06:52:42.466Z\",\n  \"degr\": 0.0,\n  \"x2cross\": 0.0,\n  \"celestial1\": \"SATURN\",\n  \"celestial2\": \"SUN\",\n  \"celestial\": \"MARS\",\n  \"when\": \"after\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Text translation",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/translate/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "translate"
              ]
            },
            "description": "A thin wrapper over Google Cloud Translation, offered so that chart text produced elsewhere in this API can be shown in another language without you holding a separate Google key. It performs no astrological calculation of its own.\n\nPost `text` with an optional `target_language` (an ISO code, defaulting to `hi` for Hindi) and an optional `source_language` (defaulting to `en`); omit or blank the source and Google will detect it. The response is a flat object with `original_text`, `translated_text`, `source_language` (the detected code when you did not supply one) and `target_language`. Note that, unlike most endpoints here, it is not wrapped in a `data` envelope. A failure reaching or parsing the upstream service is returned as a 502.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"text\": \"Sun in Aries\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Trimsamsa (D30)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/trimsamsa/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "trimsamsa"
              ]
            },
            "description": "The trimsamsa, the thirtieth divisional chart: each sign divided into thirty parts of 1° each.\n\nRead for misfortune, hardship and character. Note the classical trimsamsa divisions are unequal and exclude the luminaries in some traditions, so compare against your own reference before relying on it.\n\nReturns the same flat shape as /api/astro/planet-positions/: the planets as a list in traditional order with `name`, longitude, sign, nakshatra, pada and house on each, plus the ascendant and the ayanamsa applied. Send a date and a place; `ayanamsa` defaults to LAHIRI and all 48 are accepted.\n\nThe chart is fixed by the route, so a `chart_name` in the body is ignored - this endpoint cannot return anything but the chart it is named for. /api/astro/chart/ is where to go for the other 24 divisions.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"datetime\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"ayanamsa\": \"LAHIRI\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Upagrahas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/upagraha/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "upagraha"
              ]
            },
            "description": "The shadow points, in the two families they come from.\n\n`from_sun` holds the five derived arithmetically from the Sun's sidereal longitude - Dhuma, Vyatipata, Parivesha, Indrachaapa and Upaketu - each a fixed offset from the one before, so they depend only on the moment.\n\n`from_day_division` holds the six derived by splitting the daylight or the night into eight planetary parts, including Gulika and Mandi. These depend on the PLACE as well as the moment, which is why the two families are returned separately rather than merged into one list.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01T06:00:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Varga and positional strength",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/varga-bala/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "varga-bala"
              ]
            },
            "description": "Strength across the divisional charts, plus the positional strengths Shadbala does not break out.\n\nSapthavargaja bala scores a planet over the seven vargas and dwadhasa vargeeya over the twelve — how well a planet sits not just in the rasi chart but across the divisions, which is where Vedic strength assessment differs most from Western practice.\n\nAlso returns kendra bala, ojayugama bala and dreshkon bala, which sthana bala rolls up.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone\": 5.5,\n  \"asc_house\": 1\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Agni vasa and Shiva vasa",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/vasa-segments/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "vasa-segments"
              ]
            },
            "description": "Where fire and Shiva are held to reside through the day, as timed segments.\n\nTwo muhurta considerations consulted for the same kinds of decision — homa and other fire rituals for agni vasa, anything Shiva-facing for shiva vasa. Both come back as lists of segments rather than a single state for the day, because either can change part-way through it.\n\nEach segment carries its own start and end, so you can say \"Prithvi until 07:01, then Akasha\" instead of picking one label for the whole day and being wrong for half of it. The agni segments flag `is_patala`, which is the state those rituals are specifically avoided in. Hindi labels come through as `state_hi`.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-09T06:00:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Nitya Yoga year scan",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/yoga_scan/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "yoga_scan"
              ]
            },
            "description": "The Nitya Yoga is the twenty-seventh division of the circle formed by adding the Sun's and the Moon's sidereal longitudes together. Each of the twenty-seven — Vishkambha through Vaidhriti — lasts a little under a day, and they matter for electional work: Vyatipata, Vaidhriti, Parigha, Vyaghata, Shoola, Ganda and Atiganda are traditionally avoided, while Siddhi, Siddha, Shubha, Amrita-class and Sukarma yogas are sought. This endpoint takes one yoga by name and returns every occurrence of it in a calendar year.\n\n`yoga_name` is case-sensitive and must match the enum exactly. `year` and `timezone_as_float` define the local year to cover, and no coordinates are needed because the yoga changes at the same instant everywhere. Because the sum of the two longitudes advances by roughly 13 degrees 20 minutes every 22.6 hours, each yoga comes round about fourteen or fifteen times a year.\n\nThe response is `{year, yoga_name, rows}`, where `rows` is a chronological list of `{start, end}` UTC ISO timestamps. Each pair is the genuine begin and end instant of that yoga, found by bisecting the Sun-plus-Moon longitude sum rather than by sampling at sunrise, so the boundaries are accurate to a fraction of a second.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"timezone_as_float\": 5.5,\n  \"year\": 2026,\n  \"yoga_name\": \"Vishkambha\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Ashtakvarga",
      "item": [
        {
          "name": "Prastara ashtakavarga",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/ashtakvarga/prastara/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "ashtakvarga",
                "prastara"
              ]
            },
            "description": "The full ashtakavarga grid the other tables are summed from.\n\nEight planets, each with a row per contributor — the seven grahas plus Rahu and Ketu — giving a bindu or nothing for each of the twelve signs. Bhinnashtakavarga is the column-sum of one of these grids and sarvashtakavarga is the sum of all of them, so this is the working behind both: what you need to show WHY a sign scores as it does rather than only that it does.\n\nEach row comes back three ways — keyed by sign name, as the raw twelve in order for anyone plotting a chart, and with its own total. The engine returns only the bare twelve, and nothing in that array says which end is Aries.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"chart_name\": \"RashiChart\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Ashtakavarga sodhana and pindas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/ashtakvarga/sodhana/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "ashtakvarga",
                "sodhana"
              ]
            },
            "description": "The two sodhana reductions, and the pindas they feed.\n\nSodhana is the pruning classical texts apply before a sarvashtakavarga total means anything. Trikona sodhana cancels points across each trine, keeping the smallest of the three and subtracting it from all of them; ekadhipatya sodhana then handles the signs that share a lord, zeroing the weaker of the pair. Both are returned reckoned by sign and by house, because which applies depends on whether you read the chart from the lagna or from the sign.\n\nThe pindas are the single numbers a planet's strength gets quoted as. The engine returns them as three bare arrays of seven floats with nothing saying which planet is which; here they are keyed by planet, and sodhya is returned alongside raasi and graha so you can check that it is their sum rather than take it on trust.\n\nNote there is no Rahu or Ketu pinda — classical pinda reckoning covers the seven grahas only, which is why these arrays are seven long where the prastara tables are eight.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"chart_name\": \"RashiChart\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Astrocartography",
      "item": [
        {
          "name": "Astrocartography lines",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/astrocartography/lines/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "astrocartography",
                "lines"
              ]
            },
            "description": "Every astrocartography line for a birth moment, as coordinates ready to plot on a map.\n\nRelocation astrology asks a geographic question rather than a chart one: not where a planet was in the sky, but which places on Earth had it rising, setting, culminating or at the nadir at the moment of birth. Those four curves per planet, drawn on a world map, are the ACG map.\n\nFor each of twelve bodies you get four lines. The MC and IC lines are meridians, so each is a single longitude. The AC and DC lines are curves, returned as a list of latitude/longitude points you can feed straight into a polyline — every five degrees of latitude by default, adjustable with latitude_step.\n\nCurves stop where the body becomes circumpolar, and that is real rather than missing data: above a certain latitude the body never crosses the horizon at all, so there is no rising line to draw there. The cut-off differs per planet because it depends on the declination.\n\nlatitude and longitude are optional on this endpoint alone. An ACG line is fixed by the birth MOMENT — the formulas use right ascension, declination and sidereal time and nothing else — so requiring a birthplace would imply it changes the answer when it does not. Use /api/astro/astrocartography/relocate/ when you want the lines near a particular place.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Local space lines",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/astrocartography/local-space/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "astrocartography",
                "local-space"
              ]
            },
            "description": "The compass bearing from the birthplace to each planet, extended across the map.\n\nA different relocation technique from the ACG lines. Instead of asking where on Earth a planet was on an angle, local space asks which way that planet lay in the sky as seen FROM the birthplace, and draws that bearing outward as a great circle. Travelling along a planet's line is held to carry that planet's themes.\n\nAzimuth is measured from true north, increasing eastward, so it reads directly as a compass bearing; a sixteen-point compass name is included for display. Each body also comes with a list of points along its great circle at fixed arc distances, ready to draw.\n\nAltitude is returned rather than used to filter. A planet below the horizon still has a bearing, and whether to draw its line is a judgement some practitioners make differently, so the number and an above_horizon flag are given and the choice is left to you.\n\nUnlike the other three endpoints here, this one genuinely depends on the birthplace, so latitude and longitude are required.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Paran crossings",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/astrocartography/parans/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "astrocartography",
                "parans"
              ]
            },
            "description": "Latitudes where two planetary lines cross.\n\nA paran is a latitude at which two bodies are on angles at the same moment — the point where two astrocartography lines intersect. Because the crossing is a LATITUDE, its influence is conventionally read right around the globe at that latitude rather than only at the single crossing point, which is why the response leads with latitude_deg.\n\nEach crossing names both bodies, both line types and the coordinates where they meet. Solved numerically to a ten-thousandth of a degree.\n\nPairs of meridian lines are excluded. MC and IC lines are true meridians, so they are parallel everywhere and never cross; any crossing reported for such a pair would be an artefact of the solver rather than a fact about the sky.\n\nDefaults to the ten classical planets. Adding the node and Chiron roughly doubles an already large pairwise result for two bodies most paran maps do not draw, so ask for them explicitly with the bodies field if you want them.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Lines near a place",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/astrocartography/relocate/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "astrocartography",
                "relocate"
              ]
            },
            "description": "Which planetary lines run near one particular place, and how close each one is.\n\nThis is the question a relocation feature actually asks — what is going on for me in Berlin? Answering it from the full line set means re-implementing the circumpolar test and the longitude comparison yourself, so this endpoint does it and returns only the lines within an orb you choose.\n\nEach hit carries the line's longitude at your latitude, a signed offset (positive means the place is east of the line), the absolute orb in degrees, and an approximate distance in kilometres. Results are sorted closest first.\n\nDistance is measured east-west along the parallel of latitude, which is the astrocartography convention and what makes the figure comparable to the familiar ‘within 700 miles of a line’ orb used by other tools. It is not the perpendicular great-circle distance to the curve; for a steeply slanted rising line at high latitude the two differ, so orb_degrees is the primary figure and the kilometre value is a convenience derived from it.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Chinese",
      "item": [
        {
          "name": "BaZi chart with ten gods",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/chinese/bazi/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "chinese",
                "bazi"
              ]
            },
            "description": "The full BaZi reading: hidden stems, ten gods and the element balance.\n\nEverything the four pillars carry, plus the interpretive layer that makes them readable.\n\nHIDDEN STEMS: each branch conceals one to three further stems, and a reading counts them. A chart that looks short of fire on its visible stems can be full of it once the branches are opened.\n\nTEN GODS: every stem is named by its relationship to the day master rather than on its own terms — Direct Officer, Seven Killings, Eating God and so on. This is the entire interpretive vocabulary of the system, which is why the day master has to be identified first.\n\nELEMENT BALANCE: counted over visible and hidden stems together, and returned both ways so you can see the difference the branches make. A reading turns on which of the five elements is strong and which is missing.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1984-06-15T14:30:00+08:00\",\n  \"latitude\": 39.9042,\n  \"longitude\": 116.4074,\n  \"timezone_as_float\": 8.0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Chinese Four Pillars (BaZi)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/chinese/four-pillars/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "chinese",
                "four-pillars"
              ]
            },
            "description": "The four pillars of a birth: year, month, day and hour.\n\nEach pillar is a heavenly stem over an earthly branch, and the sixty combinations of the two make the sexagenary cycle. The day's stem is the DAY MASTER — the single most important element in the chart, since everything else is read as its relationship to that.\n\nThe Chinese year begins at LICHUN — the moment the Sun reaches 315 degrees of tropical longitude, around 4 February. Not 1 January, and not Chinese New Year, which is a lunar date drifting between 21 January and 20 February and governs the festival rather than the chart. Someone born on 20 January 2024 has 2023's pillar: a Water Rabbit, not a Wood Dragon. This is the single thing cheap implementations get wrong, and it misassigns the year for everyone born in January.\n\nMonth pillars are bounded the same way, by the twelve major solar terms, so a month boundary is an astronomical instant and can fall at any hour of any day rather than on the first of a calendar month.\n\nTwo conventions are exposed because practitioners genuinely differ and both change the answer. `day_boundary` decides whether the day turns at 23:00 (traditional) or midnight. `true_solar_time` corrects the clock for the birthplace's distance from its timezone meridian — about fourteen minutes for Beijing — which can move the hour pillar by one place.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1984-06-15T14:30:00+08:00\",\n  \"latitude\": 39.9042,\n  \"longitude\": 116.4074,\n  \"timezone_as_float\": 8.0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Chinese luck pillars (da yun)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/chinese/luck-pillars/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "chinese",
                "luck-pillars"
              ]
            },
            "description": "The ten-year luck cycles, BaZi's timing technique.\n\nLife is divided into ten-year pillars stepping forward or backward through the sexagenary cycle from the month pillar. Two things decide how.\n\nDIRECTION: forward for a male born in a yang year or a female born in a yin year, backward otherwise. This is why `gender` is required — without it the cycles cannot be placed at all, and guessing would give a confident reading of the wrong half of someone's life.\n\nSTARTING AGE: the distance from the birth to the adjacent solar term — the next one going forward, the previous going backward — at the classical rate of three days to one year. So a birth two days after a term, running backward, begins its first pillar at about eight months old; one twenty-five days before the next, running forward, begins at about eight years.\n\nEach pillar carries the ages and dates it covers and its ten-god relation to the day master, which is how the period is actually read.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1984-06-15T14:30:00+08:00\",\n  \"latitude\": 39.9042,\n  \"longitude\": 116.4074,\n  \"timezone_as_float\": 8.0,\n  \"gender\": \"male\",\n  \"count\": 8\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Chinese zodiac sign",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/chinese/zodiac/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "chinese",
                "zodiac"
              ]
            },
            "description": "The animal, its element, and who it gets on with.\n\nThe animal comes from the year BRANCH and the element from the year STEM — which is what makes a Wood Dragon different from an Earth Dragon, and gives the cycle a sixty-year period rather than twelve.\n\nThe Chinese year begins at LICHUN — the moment the Sun reaches 315 degrees of tropical longitude, around 4 February. Not 1 January, and not Chinese New Year, which is a lunar date drifting between 21 January and 20 February and governs the festival rather than the chart. Someone born on 20 January 2024 has 2023's pillar: a Water Rabbit, not a Wood Dragon. This is the single thing cheap implementations get wrong, and it misassigns the year for everyone born in January.\n\nAlso returned: the two branches sharing the animal's trine, which the tradition reads as its natural allies, and the branch directly opposite, which is its clash. Plus the inner and secret animals from the month and hour branches — the year animal is the face others see, while those two are held to be nearer the person.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1984-06-15T14:30:00+08:00\",\n  \"latitude\": 39.9042,\n  \"longitude\": 116.4074,\n  \"timezone_as_float\": 8.0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Dasha",
      "item": [
        {
          "name": "Ashtottari dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/ashtottari/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "ashtottari"
              ]
            },
            "description": "The 108-year cycle, across eight planets.\n\nSun 6, Moon 15, Mars 8, Mercury 17, Saturn 10, Jupiter 19, Rahu 12, Venus 21.\n\nA CONDITIONAL dasha: the classical texts apply it only when a particular condition holds in the chart. Check /api/astro/dasha_applicability/ for a given chart before relying on it.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"levels\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Brahma dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/brahma/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "brahma"
              ]
            },
            "description": "The Jaimini sign dasha seeded from the Brahma karaka.\n\nNamed for the Jaimini karaka scheme it takes its seed from.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Budhi Gati dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/budhi-gati/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "budhi-gati"
              ]
            },
            "description": "The 112-year conditional cycle.\n\nShares its 112-year span with Dwadashottari but distributes it differently between the lords, so the two give different answers for the same chart.\n\nThis is a CONDITIONAL dasha: the classical texts apply it only when a particular configuration holds in the chart, so it is not a reading that is admissible for everyone. Call /api/astro/dasha_applicability/ to test which conditional dashas a given chart actually admits before you show one.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Chakra dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/chakra/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "chakra"
              ]
            },
            "description": "The Jaimini sign dasha that runs the wheel from its seed.\n\nProgresses the twelve signs as a wheel.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Chara dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/chara/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "chara"
              ]
            },
            "description": "The principal Jaimini rashi dasha.\n\nWhere the nakshatra dashas run on planets, the rashi dashas run on SIGNS: every `lord` in this response is a sign name, not a graha. Chara is the one Jaimini astrology is normally read with. Period lengths vary by sign, derived from where each sign's lord sits relative to it, so unlike Vimshottari the twelve periods are not all the same length.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"levels\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Chaturaseeti Sama dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/chaturaseeti-sama/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "chaturaseeti-sama"
              ]
            },
            "description": "The 84-year conditional cycle, with equal periods.\n\n\"Sama\" means equal: unlike Vimshottari, where each graha holds a different span, every period here runs the same length. That makes it behave quite differently as a timeline — there is no long Venus stretch or short Sun stretch to anchor a reading against.\n\nThis is a CONDITIONAL dasha: the classical texts apply it only when a particular configuration holds in the chart, so it is not a reading that is admissible for everyone. Call /api/astro/dasha_applicability/ to test which conditional dashas a given chart actually admits before you show one.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Current dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/current/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "current"
              ]
            },
            "description": "Which dasha period is running right now, at every level.\n\nThe question people actually ask of a dasha. Returns the chain from mahadasha down — \"Jupiter / Ketu / Mercury\" — each level with its start, its end, how far through it you are as a percentage, and how many days remain.\n\nThe timeline endpoints cannot answer this without you fetching the whole tree, recursing it and comparing dates yourself. Defaults to Vimshottari and to now; pass `as_of` for any other moment and `system` for any of the thirty.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"levels\": 3,\n  \"system\": \"Vimshottari\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Drig dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/drig/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "drig"
              ]
            },
            "description": "The Jaimini sign dasha built on aspect (drishti).\n\nWhere Chara reckons from sign lords, Drig is built on rashi drishti — the sign-to-sign aspects of Jaimini, which are not the planetary aspects of Parashari astrology.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Dasha drill-down",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/drill/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "drill"
              ]
            },
            "description": "One branch of a dasha tree, instead of the whole thing.\n\nlevels on the other dasha endpoints caps DEPTH, but still returns every period at that depth: levels=3 on Vimshottari is every pratyantardasha under every antardasha under every mahadasha, which is about 95 KB. A screen where someone taps one mahadasha to expand it needs a single branch of that.\n\nGive this endpoint the chain of lords to follow and it returns only what sits under the period you named. {\"lords\": [\"moon\", \"mars\"], \"levels\": 1} returns the pratyantardashas inside the Moon mahadasha's Mars antardasha — roughly 1.8 KB against the 95 KB of the tree that contains it.\n\nLord names are matched case-insensitively, and path in the response echoes the chain that was actually matched. Use a planet name for the nakshatra dashas and a sign name for the Jaimini rashi dashas; an unrecognised lord returns 400 listing what was available at that level.\n\nThis saves TRANSFER, not COMPUTATION. The engine still builds the tree to the depth you asked for and this discards the rest, so a drill is no faster to compute than the equivalent levels= call. What it saves is bandwidth, JSON parsing, and the memory a browser or phone spends holding a tree it is showing one branch of.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Dwadashottari dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/dwadashottari/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "dwadashottari"
              ]
            },
            "description": "The 112-year conditional cycle, run over eight planets.\n\nOne of the conditional nakshatra dashas of the classical literature. It shares its 112-year span with Budhi Gati but distributes the years differently between the lords.\n\nThis is a CONDITIONAL dasha: the classical texts apply it only when a particular configuration holds in the chart, so it is not a reading that is admissible for everyone. Call /api/astro/dasha_applicability/ to test which conditional dashas a given chart actually admits before you show one.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Dwisaptati Sama dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/dwisaptati/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "dwisaptati"
              ]
            },
            "description": "The 72-year conditional cycle, with equal periods.\n\nAnother equal-period system. Its brevity relative to Vimshottari means a chart moves through lords quickly, which is part of why it is read where it applies.\n\nThis is a CONDITIONAL dasha: the classical texts apply it only when a particular configuration holds in the chart, so it is not a reading that is admissible for everyone. Call /api/astro/dasha_applicability/ to test which conditional dashas a given chart actually admits before you show one.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Kalachakra dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/kalachakra/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "kalachakra"
              ]
            },
            "description": "The \"wheel of time\" dasha, seeded from the birth pada.\n\nUnusual among the rashi dashas in starting from the Moon's nakshatra PADA rather than from a house, which makes it more sensitive to birth-time accuracy than the others.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"levels\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Kendradhi dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/kendradhi/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "kendradhi"
              ]
            },
            "description": "The Jaimini sign dasha ordered by kendra.\n\nSequences signs by their angular relationship to the seed — kendras first, then the rest — rather than in zodiacal order.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Lagnamsaka dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/lagnamsaka/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "lagnamsaka"
              ]
            },
            "description": "The Jaimini sign dasha seeded from the lagna amsa.\n\nTakes its seed from the navamsa position of the ascendant rather than from the rashi lagna, so it is sensitive to birth-time accuracy in the way the divisional charts are.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Mandooka dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/mandooka/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "mandooka"
              ]
            },
            "description": "The \"frog\" dasha, which leaps between signs.\n\nNamed for its progression: rather than stepping to the adjacent sign it jumps, in the manner the name describes.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Nakshatra dasha (any system)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/nakshatra/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "nakshatra"
              ]
            },
            "description": "Any of the eleven nakshatra dashas, by name.\n\nThe systems people ask for by name have their own endpoints; this covers the rest — Chaturaseeti Sama, Dwadashottari, Dwisaptati, Panchottari, Sataabdika, Shattrimsa Sama and Budhi Gati — without a route each. Accepts either the display name or the engine id.\n\nEvery one of these except Vimshottari and Yogini is conditional; see /api/astro/dasha_applicability/.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"levels\": 2,\n  \"system\": \"Dwisaptati\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Narayana dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/narayana/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "narayana"
              ]
            },
            "description": "The Jaimini rashi dasha read from the lagna.\n\nClosely related to Chara and usually read alongside it; the periods are signs, with lengths following the same Jaimini reckoning from a different seed.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"levels\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Navamsa dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/navamsa/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "navamsa"
              ]
            },
            "description": "The Jaimini sign dasha read from the D9.\n\nSeeded from the navamsa chart rather than the rashi chart. Because D9 is the division most used for marriage and dharma, this is normally read alongside those questions.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Nirayana Shoola dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/nirayana-shoola/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "nirayana-shoola"
              ]
            },
            "description": "The sidereal reckoning of the Shoola dasha.\n\nA variant of Shoola, distinguished by the nirayana reckoning at its seeding step. Like Shoola it is traditionally consulted on questions of longevity; compare the two for the same chart with /api/astro/dasha/shoola/.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Panchottari dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/panchottari/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "panchottari"
              ]
            },
            "description": "The 105-year conditional cycle.\n\nAmong the shorter conditional nakshatra dashas, which means its sub-periods resolve to human timescales faster than Vimshottari's do.\n\nThis is a CONDITIONAL dasha: the classical texts apply it only when a particular configuration holds in the chart, so it is not a reading that is admissible for everyone. Call /api/astro/dasha_applicability/ to test which conditional dashas a given chart actually admits before you show one.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Paryaaya dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/paryaaya/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "paryaaya"
              ]
            },
            "description": "The Jaimini sign dasha of alternating order.\n\n\"Paryaaya\" marks its alternating progression through the signs.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Rashi dasha (any system)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/rashi/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "rashi"
              ]
            },
            "description": "Any of the nineteen rashi dashas, by name.\n\nChara, Narayana, Kalachakra and Sudasa have their own endpoints; this reaches the other fifteen — Brahma, Chakra, Drig, Kendradhi, Lagnamsaka, Mandooka, Navamsa, Nirayana Shoola, Paryaaya, Sandhya, Shoola, Sthira, Tara Lagna, Trikona and Yogardha.\n\nAll of them run on signs, so `lord` is a sign name throughout.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"levels\": 2,\n  \"system\": \"Drig\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sandhya dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/sandhya/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "sandhya"
              ]
            },
            "description": "The Jaimini sign dasha of the junctures.\n\nReckoned around sandhi, the junctions between signs, which is where the name comes from.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sataabdika dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/sataabdika/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "sataabdika"
              ]
            },
            "description": "The 100-year conditional cycle.\n\nA round hundred-year span, which makes the arithmetic unusually legible when you are reading periods off against a person's age.\n\nThis is a CONDITIONAL dasha: the classical texts apply it only when a particular configuration holds in the chart, so it is not a reading that is admissible for everyone. Call /api/astro/dasha_applicability/ to test which conditional dashas a given chart actually admits before you show one.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Shattrimsa Sama dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/shattrimsa-sama/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "shattrimsa-sama"
              ]
            },
            "description": "The 36-year conditional cycle, with equal periods.\n\nThe shortest nakshatra dasha offered here. A full cycle completes within a normal lifetime, so unlike the 120-year systems a chart can run through the entire wheel and begin again.\n\nThis is a CONDITIONAL dasha: the classical texts apply it only when a particular configuration holds in the chart, so it is not a reading that is admissible for everyone. Call /api/astro/dasha_applicability/ to test which conditional dashas a given chart actually admits before you show one.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Shodashottari dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/shodashottari/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "shodashottari"
              ]
            },
            "description": "The 116-year conditional nakshatra cycle.\n\nAnother of the conditional dashas — check /api/astro/dasha_applicability/ before using it for a chart.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"levels\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Shoola dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/shoola/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "shoola"
              ]
            },
            "description": "The Jaimini sign dasha read for hazard and longevity.\n\nClassically one of the ayur (longevity) dashas, read where the question is about difficulty rather than gain. Pair it with /api/astro/dasha/nirayana-shoola/ to compare reckonings.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sthira dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/sthira/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "sthira"
              ]
            },
            "description": "The fixed-period Jaimini sign dasha.\n\n\"Sthira\" means fixed: every sign holds the same span, so unlike Chara the period lengths do not vary from chart to chart. That makes it a stable backdrop to read the variable dashas against.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sudasa dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/sudasa/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "sudasa"
              ]
            },
            "description": "The Jaimini rashi dasha counted from Sri Lagna.\n\nTraditionally read for prosperity and material circumstance, being seeded from Sri Lagna rather than from the ascendant.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"levels\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Dasha systems index",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/systems/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "systems"
              ]
            },
            "description": "Every dasha system we compute, with its cycle length and the endpoint that serves it.\n\nThirty of them — eleven nakshatra dashas that run on planets, nineteen rashi dashas that run on signs. This endpoint exists because there is otherwise no way to discover them: they are values of a string field, so they appear in no route list and no search.\n\n`conditional` marks the nakshatra dashas the classical texts apply only when a particular condition holds in the chart. /api/astro/dasha_applicability/ tests those conditions for a given chart, so you can find out which readings are admissible before you show one.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"family\": \"both\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Tara Lagna dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/tara-lagna/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "tara-lagna"
              ]
            },
            "description": "The Jaimini sign dasha seeded from the tara lagna.\n\nUses the tara (star) lagna as its seed rather than the rashi ascendant.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Trikona dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/trikona/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "trikona"
              ]
            },
            "description": "The Jaimini sign dasha grouped by trines.\n\nMoves through the signs in trinal groups rather than in zodiacal sequence, which is what separates it from the other Jaimini dashas.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Vimshottari dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/vimshottari/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "vimshottari"
              ]
            },
            "description": "The 120-year cycle that almost every Vedic reading is built on.\n\nVimshottari starts from the nakshatra the Moon occupied at birth, which fixes both which planet's mahadasha was running at birth and how much of it remained, then runs all nine grahas across 120 years in a fixed order and with fixed lengths: Ketu 7, Venus 20, Sun 6, Moon 10, Mars 7, Rahu 18, Jupiter 16, Saturn 19, Mercury 17.\n\nReturned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each period carrying its lord and its exact start and end. Unlike the other nakshatra dashas, Vimshottari is unconditional: it applies to every chart.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"levels\": 3\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Yogardha dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/yogardha/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "yogardha"
              ]
            },
            "description": "The Jaimini sign dasha that averages two reckonings.\n\n\"Yogardha\" means half-sum: period lengths are the mean of two other systems' reckonings, which makes it a smoothed reading rather than an independent one.\n\nThis is a Jaimini RASHI dasha, so every lord in the response is a sign name, not a planet. Periods are returned as a nested timeline — mahadasha, then antardasha, then pratyantardasha — each carrying its lord and its exact start and end.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"dasha_direction\": \"forward\",\n  \"dasha_start\": \"current\",\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"node\": \"true\",\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Yogini dasha",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/dasha/yogini/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "dasha",
                "yogini"
              ]
            },
            "description": "The 36-year cycle of the eight yoginis.\n\nShorter and faster-moving than Vimshottari, which is why it is the usual second opinion when a Vimshottari period does not obviously explain what a chart is doing. Eight periods running one to eight years — Mangala, Pingala, Dhanya, Bhramari, Bhadrika, Ulka, Siddha and Sankata — for 36 years in total. Like Vimshottari it is unconditional.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"levels\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Eclipse",
      "item": [
        {
          "name": "Eclipse attributes at a moment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/eclipse/attributes/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "eclipse",
                "attributes"
              ]
            },
            "description": "How deep an eclipse is at one instant, seen from one place.\n\nA snapshot rather than a search: at this second, from these coordinates, what fraction of the disc is covered, how high the body stands above the horizon, what the magnitude is, and which Saros series the eclipse belongs to. Obscuration changes minute by minute through an eclipse, so stepping this endpoint across the event gives you the coverage curve — what a live tracker needs and what a list of contact times cannot give.\n\nDistinct from /api/astro/eclipse/local/, which searches for the next eclipse visible from a place and returns its contact times. This one measures a moment you already have: pass it a maximum from /local/ or /upcoming/ for the depth at the peak.\n\nSet kind to \"lunar\" for umbral and penumbral magnitude instead. There is no obscuration for a lunar eclipse — that is a solar concept, and the field is absent rather than zero.\n\nIf no eclipse is touching that place at that instant the response says so, rather than returning a page of zeros that reads like a real measurement.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-08-12T17:46:00+00:00\",\n  \"timezone_as_float\": 0.0,\n  \"latitude\": 64.1466,\n  \"longitude\": -21.9426,\n  \"kind\": \"solar\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Local eclipse visibility",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/eclipse/local/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "eclipse",
                "local"
              ]
            },
            "description": "The next eclipse VISIBLE from one place, with its local circumstances.\n\nA global search answers when an eclipse happens; this answers whether it happens for you. The 2026-08-12 total solar eclipse is total over Spain and simply invisible from India, and this endpoint reflects that — asked from Jaipur it skips straight past it to the next one that is actually visible there.\n\nReturns the four contact times as seen from your coordinates, how much of the disc is covered (obscuration is area, magnitude is diameter — at 50% magnitude only about 39% of the disc is hidden), how high the body sits above the horizon, and the Saros series and member number, which is the identifier eclipse catalogues cross-reference on.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-08-01T00:00:00+00:00\",\n  \"timezone_as_float\": 0.0,\n  \"latitude\": 40.4168,\n  \"longitude\": -3.7038,\n  \"kind\": \"solar\",\n  \"direction\": \"after\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Next lunar eclipse",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/eclipse/next-lunar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "eclipse",
                "next-lunar"
              ]
            },
            "description": "The next lunar eclipse, with the penumbral, partial and total phases named.\n\nWorth using rather than reading the raw array: swisseph's lunar timing array is NOT in the order a reader would guess. Element 1 is unused, elements 2 and 3 are the partial phase and 6 and 7 are the penumbral phase, so a naive left-to-right reading mislabels the whole timeline. These fields are named from the engine's verified index map.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-01-01T00:00:00+00:00\",\n  \"timezone_as_float\": 0.0,\n  \"direction\": \"after\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Next solar eclipse",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/eclipse/next-solar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "eclipse",
                "next-solar"
              ]
            },
            "description": "The next solar eclipse anywhere on Earth, with every contact time named.\n\nThe underlying engine returns ten datetimes in a positional array, where knowing that element 4 is the start of totality means reading source code. This returns them as named fields: begin, totality_begin, maximum, totality_end, end, and the centre-line times.\n\nFilter by eclipse_type (total, annular, partial, hybrid) and by centrality — whether the shadow's axis actually reaches the Earth's surface. Set direction to \"before\" to find the most recent one instead of the next.\n\nThis is a GLOBAL search: it answers when, not whether you can see it. Use /api/astro/eclipse/local/ for that.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-01-01T00:00:00+00:00\",\n  \"timezone_as_float\": 0.0,\n  \"eclipse_type\": \"total\",\n  \"centrality\": \"any\",\n  \"direction\": \"after\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Eclipses in a date range",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/eclipse/range/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "eclipse",
                "range"
              ]
            },
            "description": "Every eclipse between two dates, with no gaps.\n\nFor multi-year eclipse calendars and timelines. The window is capped at twenty years, which is roughly 140 eclipses — past that a single response stops being something a client can hold comfortably. Both kinds are returned in true chronological order unless you filter by kind.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-01-01T00:00:00+00:00\",\n  \"end_date_time\": \"2027-12-31T23:59:59+00:00\",\n  \"timezone_as_float\": 0.0,\n  \"kind\": \"both\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Upcoming eclipses",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/eclipse/upcoming/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "eclipse",
                "upcoming"
              ]
            },
            "description": "The next several eclipses, solar and lunar merged into one chronological list.\n\nOne call and one credit instead of stepping the date forward yourself and paying for each single lookup, which is what building an eclipse calendar otherwise costs. Ask for up to 24, filter to solar or lunar only, or set direction to \"before\" to walk backwards through history.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-01-01T00:00:00+00:00\",\n  \"timezone_as_float\": 0.0,\n  \"count\": 6,\n  \"kind\": \"both\",\n  \"direction\": \"after\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Eclipse visibility path",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/eclipse/visibility-path/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "eclipse",
                "visibility-path"
              ]
            },
            "description": "Where a solar eclipse is total, as a line of coordinates you can draw on a map.\n\nFinds the next solar eclipse from the moment you give, then samples the point where the Moon's shadow axis meets the Earth and returns ordered latitude/longitude pairs. For the 2026-08-12 total that track runs out of the Siberian Arctic, over the pole, down across Iceland and out into the Atlantic off Iberia — the path that decides whether a place sees a total eclipse or a partial one.\n\nThe window sampled is totality (or annularity), not the whole eclipse. Outside it the shadow axis misses the Earth altogether and there is no central line, so a purely partial eclipse returns an empty path with path_traced_over set to \"none\" rather than a line that does not exist. Points where the axis misses are dropped, so sample_count can be lower than the samples you asked for.\n\nAlso returns the point of greatest eclipse with its magnitude, obscuration and Saros series and member number — the identifier eclipse catalogues are indexed by.\n\nPath times are UTC and suffixed Z. A track crosses the globe, so the offset the rest of the eclipse endpoints use would be misleading on a point halfway round the world from you.\n\nUmbra and penumbra edge limits are not returned: swisseph populates only the central line for this calculation, and reporting the empty slots would mean publishing 0N 0E as a boundary.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-01-01T00:00:00+00:00\",\n  \"timezone_as_float\": 0.0,\n  \"eclipse_type\": \"total\",\n  \"direction\": \"after\",\n  \"samples\": 24\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Fixed Star",
      "item": [
        {
          "name": "Fixed star catalogue",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/fixed-star/catalog/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "fixed-star",
                "catalog"
              ]
            },
            "description": "Search the fixed star catalogue by name, designation or brightness.\n\n1357 rows covering 532 distinct stars — the remainder are alias names, folded into the star they belong to. That matters here: Aldebaran is also Rohini and Sirius is also Lubdhaka, so the Vedic names are searchable, and a naive listing would return Sirius three times.\n\nThis is the index you need before asking for anything else, because star names are not guessable. It takes no date and returns no positions — a position needs a date, so use /positions/ for that.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"search\": \"aldebaran\",\n  \"preset\": \"all\",\n  \"limit\": 25\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Stars on your chart",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/fixed-star/conjunctions/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "fixed-star",
                "conjunctions"
              ]
            },
            "description": "Which fixed stars sit on this chart's planets.\n\nThe question that actually gets asked, and the one a per-star lookup cannot answer — you would have to fetch every star yourself and compare them all. Give a birth moment and an orb and get back the contacts, closest first, each with the star's magnitude so you can weigh it.\n\nConjunction is by ecliptic LONGITUDE within the orb, which is how fixed star contacts are read. Ecliptic latitude is reported but deliberately not filtered on: many of the brightest stars lie far off the ecliptic — Algol is 22 degrees north, Sirius 39 degrees south — and excluding them would throw away most of the tradition.\n\nA degree of orb is already generous; the classical texts use much less.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"preset\": \"major\",\n  \"orb_degrees\": 1.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Star and planet parans",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/fixed-star/parans/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "fixed-star",
                "parans"
              ]
            },
            "description": "Latitudes where a fixed star and a planet are on angles at the same moment.\n\nParans are how Bernadette Brady's school reads fixed stars, and they catch a contact a longitude conjunction misses entirely: a star can be nowhere near a planet in the zodiac and still rise at the exact moment that planet culminates. Because the answer is a LATITUDE, it applies right around the globe at that latitude rather than at one place.\n\nSolved with the same geometry as /api/astro/astrocartography/parans/, with the star standing in for one of the bodies. Pairs of meridian lines are excluded: MC and IC lines are true meridians and never cross.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"stars\": [\n    \"Regulus\",\n    \"Sirius\",\n    \"Aldebaran\"\n  ],\n  \"bodies\": [\n    \"sun\",\n    \"moon\",\n    \"mars\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Fixed star positions",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/fixed-star/positions/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "fixed-star",
                "positions"
              ]
            },
            "description": "Where named fixed stars sit at a given moment: tropical longitude with sign and degree, ecliptic latitude, and equatorial coordinates.\n\nFixed stars are not fixed. They precess about a degree every 72 years, so a position quoted without a date is meaningless — Regulus left Leo for Virgo in 2012 and now sits at 0 Virgo.\n\nChoose stars by name, or use a preset: `behenian` for the fifteen stars of medieval magic, `major` for the set astrologers actually work with, `brightest` for everything above magnitude 1.5, or `all`.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-01-01T00:00:00+00:00\",\n  \"timezone_as_float\": 0.0,\n  \"preset\": \"behenian\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Human Design",
      "item": [
        {
          "name": "Human Design bodygraph",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/human-design/chart/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "human-design",
                "chart"
              ]
            },
            "description": "The complete Human Design bodygraph, computed from the ephemeris.\n\nHuman Design reads planetary longitudes against a fixed 64-gate wheel derived from the I Ching, twice over. The personality layer is the moment of birth. The design layer is the moment roughly three months earlier when the Sun stood exactly 88 degrees back along the ecliptic — not 88 days: the Earth's orbit is eccentric, so the gap runs from about 86 to 92 days depending on the time of year, and this endpoint solves for the true moment.\n\nReturns thirteen activations for each layer (the ten planets plus Earth, and both lunar nodes), each with its gate, line, gate name and centre. From the union of those gates it reports every one of the 36 channels that is complete, naming which layer supplied each end; all nine centres flagged defined or open; and the type, strategy, inner authority, profile, definition and incarnation cross that follow.\n\nEvery value is a lookup or a graph traversal, so the same birth moment always returns the same chart. What it deliberately does not include is what any of it means — that is authored interpretation, not something an ephemeris can produce.\n\nlatitude and longitude are optional. A bodygraph uses no houses and no angles, so the birthplace never enters the calculation: two people born at the same instant anywhere on Earth have identical charts. Implementations that demand a birthplace imply otherwise.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Connection chart",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/human-design/connection/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "human-design",
                "connection"
              ]
            },
            "description": "How two bodygraphs wire together.\n\nEvery channel in the combined chart falls into exactly one of four kinds, decided purely by who holds which gate. Electromagnetic: each person holds one end, so the channel exists only between them. Companionship: both hold both ends, and the meeting adds nothing. Dominance: one holds both ends and the other holds neither. Compromise: one holds both ends and the other holds one of them.\n\nAlso returns the centres the pair define together that neither defines alone — what actually changes when they are in the same room — along with the combined type and definition, and a short summary of each person's own chart.\n\nSend the second person as partner_date_time and partner_timezone_as_float. Birthplaces are not needed for either person, for the same reason as the other Human Design endpoints.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"partner_date_time\": \"2026-09-01 06:00:00\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Type, strategy and authority",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/human-design/properties/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "human-design",
                "properties"
              ]
            },
            "description": "The summary line of a bodygraph: type, strategy, inner authority, profile, definition, signature, not-self theme and incarnation cross, plus which centres and channels are defined.\n\nThe same computation as the full bodygraph with the three long arrays left out — the 26 activations, the per-channel detail and the per-gate detail. Those are most of the response by size and none of it by the time you are rendering ‘you are a Projector with Splenic authority’, which is the first thing almost every Human Design product shows.\n\nRoughly a tenth the size of /chart/ for the same credit. Use /chart/ when you are drawing the bodygraph itself and need the gate positions.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-09-01 06:00:00\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Lunar",
      "item": [
        {
          "name": "Lunar mansions",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/lunar/mansions/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "lunar",
                "mansions"
              ]
            },
            "description": "Which of the twenty-eight manazil the Moon occupies.\n\nTwenty-eight divisions of the ecliptic of 12°51'26\" each, used throughout medieval Western electional and magical astrology.\n\nNOT the Vedic nakshatras, which are twenty-SEVEN and are served by /api/astro/nakshatra/. The two traditions divide the same circle differently and a mansion never lines up with a nakshatra except by coincidence, so using one where the other is meant is a real error rather than a naming preference. These are tropical; the nakshatras are sidereal.\n\nReturns the current mansion with progress through it, when the Moon enters the next, and the full table of twenty-eight for reference.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Void of course Moon",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/lunar/void-of-course/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "lunar",
                "void-of-course"
              ]
            },
            "description": "Whether the Moon will make any further aspect before it changes sign.\n\nThe Moon is void of course once it has completed its last aspect in a sign and has nothing left to perfect. Electional astrology reads a void Moon as a poor time to begin anything, which makes this the lunar question people actually search for.\n\nAnswering it needs a forward SEARCH, not a snapshot: the Moon moves about thirteen degrees a day and the other planets move too, so an aspect two degrees away can perfect or be missed depending on whether the slower body is running away from it. This scans to the sign egress and bisects onto every aspect that perfects, in both directions — the Moon can apply to a planet from ahead or from behind, and both are aspects.\n\nReturns whether the Moon is void now, every remaining aspect with the exact moment it perfects, when the Moon leaves the sign, and when the void begins and ends.\n\n`include_modern` decides whether Uranus, Neptune and Pluto count. Off by default, because no traditional source uses them and including them makes void periods much rarer. The convention used is named in the response.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Mundane",
      "item": [
        {
          "name": "Planetary conjunctions",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/mundane/conjunctions/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "mundane",
                "conjunctions"
              ]
            },
            "description": "When two bodies next share the same ecliptic longitude.\n\nA planetary conjunction is a sky event with no birth chart in it, which is why this sits beside /api/astro/mundane/ingresses/ and /api/astro/mundane/stations/ rather than under transits.\n\nChoose the pair with `celestial1` and `celestial2`. Both longitudes at the moment found are returned as well as the date — the search stops when they meet, so seeing the two values agree is how you check that it really did.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2025-01-01T00:00:00+00:00\",\n  \"tz\": 0.0,\n  \"when\": \"after\",\n  \"celestial1\": \"jupiter\",\n  \"celestial2\": \"saturn\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sky events timeline",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/mundane/events/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "mundane",
                "events"
              ]
            },
            "description": "Every sky event in a window, as one ordered timeline.\n\nIngresses, retrograde stations, lunations and eclipses merged and sorted — a year-ahead calendar in one call rather than four. This is the feed to build a scheduler or a content calendar on.\n\nUse `include` to pick which families you want and `bodies` to narrow the planets; a five-year window with everything switched on is a large response. Eclipses come from the same engine code as the /api/astro/eclipse/ endpoints, so the two never disagree.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-01-01T00:00:00+00:00\",\n  \"end_date_time\": \"2026-06-30T23:59:59+00:00\",\n  \"timezone_as_float\": 0.0,\n  \"bodies\": [\n    \"mars\",\n    \"mercury\"\n  ],\n  \"phases\": [\n    \"new_moon\",\n    \"full_moon\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sign ingresses",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/mundane/ingresses/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "mundane",
                "ingresses"
              ]
            },
            "description": "Every sign change, for every body, across a window of dates.\n\nMundane astrology asks about the sky itself rather than about a person, so there is no birth data here — just a window and what happens in it. Each event names the sign left and the sign entered, and flags whether the body was retrograde: a retrograde ingress is a planet re-entering the sign it just left, which products normally label differently from an ordinary one.\n\nFound by scanning rather than by formula, which matters for correctness — a retrograde planet can cross the same boundary three times in a few weeks, and a closed-form solution returns one answer where there are really three.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-01-01T00:00:00+00:00\",\n  \"end_date_time\": \"2026-12-31T23:59:59+00:00\",\n  \"timezone_as_float\": 0.0,\n  \"bodies\": [\n    \"mars\",\n    \"jupiter\",\n    \"saturn\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "New and full moons",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/mundane/lunations/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "mundane",
                "lunations"
              ]
            },
            "description": "New moons, full moons and both quarters across a window of dates.\n\nSolved on the Moon's elongation from the Sun rather than on the Moon's position alone. That distinction is not pedantic: a full moon is the Moon 180 degrees from where the SUN is now, and using the Moon's longitude by itself drifts by up to a day over a year.\n\nEach entry gives the sign of both the Moon and the Sun at that moment. Filter with `phases` if you only want new and full.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-01-01T00:00:00+00:00\",\n  \"end_date_time\": \"2026-06-30T23:59:59+00:00\",\n  \"timezone_as_float\": 0.0,\n  \"phases\": [\n    \"new_moon\",\n    \"full_moon\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Retrograde stations",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/mundane/stations/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "mundane",
                "stations"
              ]
            },
            "description": "When each planet turns retrograde, and when it turns direct again.\n\nThe moment of station is where the planet's apparent motion passes through zero, solved to within a second. Each event gives the sign and degree it stations at.\n\nThe Sun and Moon never station and the mean node is always retrograde, so those three are simply absent rather than reported as having none.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2026-01-01T00:00:00+00:00\",\n  \"end_date_time\": \"2026-12-31T23:59:59+00:00\",\n  \"timezone_as_float\": 0.0,\n  \"bodies\": [\n    \"mercury\",\n    \"mars\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Numerology",
      "item": [
        {
          "name": "Chaldean numerology",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/numerology/chaldean/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "numerology",
                "chaldean"
              ]
            },
            "description": "Chaldean numerology: the older Western system, and the one most Indian practitioners use for names.\n\nLetters score 1 to 8 — there is no 9, which is held sacred — and the values follow sound rather than alphabetical order, so the same name can differ from its Pythagorean value. Returns life path, expression, soul urge, personality, birthday, maturity and the compound numbers.\n\nReturns 16 calculations.\n\nSend a name and a date of birth. The system is fixed by the route, so a `system` field in the body is ignored — this endpoint cannot return another system's numbers.\n\nThe parent /api/astro/numerology/ carries all 34 calculations behind a `system` field, and asking for a key that belongs to a different system returns a 400 that fails the WHOLE request. These routes remove that: each asks only for the keys its own system supports.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"name\": \"Ajeet Kumar\",\n  \"day\": 15,\n  \"month\": 8,\n  \"year\": 1990\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Chinese numerology",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/numerology/chinese/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "numerology",
                "chinese"
              ]
            },
            "description": "Chinese numerology: the Lo Shu grid and the five elements.\n\n`loshu_grid_arrows` reads the arrows of strength and absence across the 3×3 grid of birth-date digits; `five_element_balance` reports Wood, Fire, Earth, Metal and Water as counts and percentages. Lucky and unlucky numbers follow the homophone tradition — 8 for prosperity, 4 avoided.\n\n`house_number` and `phone_number` reduce a number you supply. Both default to 0 if you omit them, so the call still succeeds.\n\nReturns 9 calculations.\n\nSend a name and a date of birth. The system is fixed by the route, so a `system` field in the body is ignored — this endpoint cannot return another system's numbers.\n\nThe parent /api/astro/numerology/ carries all 34 calculations behind a `system` field, and asking for a key that belongs to a different system returns a 400 that fails the WHOLE request. These routes remove that: each asks only for the keys its own system supports.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"name\": \"Ajeet Kumar\",\n  \"day\": 15,\n  \"month\": 8,\n  \"year\": 1990\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Pythagorean numerology",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/numerology/pythagorean/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "numerology",
                "pythagorean"
              ]
            },
            "description": "Pythagorean numerology: the modern Western system, and the widest set here at nineteen calculations.\n\nLetters score 1 to 9 in alphabetical order, and master numbers 11 and 22 are preserved rather than reduced. Includes everything Chaldean returns plus balance number, pinnacle cycles and rational thought, which are defined only in this system.\n\nReturns 19 calculations.\n\nSend a name and a date of birth. The system is fixed by the route, so a `system` field in the body is ignored — this endpoint cannot return another system's numbers.\n\nThe parent /api/astro/numerology/ carries all 34 calculations behind a `system` field, and asking for a key that belongs to a different system returns a 400 that fails the WHOLE request. These routes remove that: each asks only for the keys its own system supports.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"name\": \"Ajeet Kumar\",\n  \"day\": 15,\n  \"month\": 8,\n  \"year\": 1990\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Vedic numerology",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/numerology/vedic/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "numerology",
                "vedic"
              ]
            },
            "description": "Vedic numerology: the seven calculations of the Indian system.\n\n`moolank` is the root number from the birth day alone, `bhagyank` the destiny number from the full date, and `namank` the name number scored on the Chaldean letter table — Vedic practice borrows that table rather than using one of its own. `vedic_grid` is the 3×3 grid of digit counts, with personal day, month and year cycles alongside.\n\nReturns 7 calculations.\n\nSend a name and a date of birth. The system is fixed by the route, so a `system` field in the body is ignored — this endpoint cannot return another system's numbers.\n\nThe parent /api/astro/numerology/ carries all 34 calculations behind a `system` field, and asking for a key that belongs to a different system returns a 400 that fails the WHOLE request. These routes remove that: each asks only for the keys its own system supports.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"name\": \"Ajeet Kumar\",\n  \"day\": 15,\n  \"month\": 8,\n  \"year\": 1990\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Prashnavali",
      "item": [
        {
          "name": "Hanuman Prashnavali",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/prashnavali/hanuman/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "prashnavali",
                "hanuman"
              ]
            },
            "description": "The Hanuman Prashnavali: 49 numbered answers. The querent settles on a number between 1 and 49 and reads the entry it lands on.\n\nEach entry has a `number`, an `answer` and a `description`. Omit `number` and all 49 come back in order; pass one to get a single entry. A number outside 1–49 returns 400.\n\nFixed devotional text, not a calculation — the response does not depend on a date or a place.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nOptional fields: number.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Mavji Maharaj Prashnavali",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/prashnavali/mavji/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "prashnavali",
                "mavji"
              ]
            },
            "description": "Mavji Maharaj: 64 readings, one for every three-digit draw from '111' to '444'.\n\nEach digit is 1 to 4, as though three four-sided draws, which is why there are 64 and not a thousand. Each entry carries the number in English and Hindi digits and the reading in both languages.\n\n`number` is a STRING, because the leading digits matter and '111' is not the integer 111. Omit it for all 64. A draw that cannot occur — anything with a digit outside 1–4, such as '555' — returns 400.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nOptional fields: number.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Ram Shalaka Prashnavali",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/prashnavali/ram-shalaka/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "prashnavali",
                "ram-shalaka"
              ]
            },
            "description": "The Ram Shalaka Prashnavali: 225 chaupais from the Ramcharitmanas, arranged in a nine-by-nine grid the querent points at after holding a question in mind.\n\nEach entry carries the Devanagari `letter` that indexes it in the traditional grid, the `chaupai` itself, a `source` note saying where in the epic it appears, and an English `answer`. `index` is the 1-based position in the grid.\n\nSend nothing and all 225 come back, which is the usual way to use this — fetch once, cache, and index locally as the querent picks. `letter` returns the entries under one Devanagari letter; `index` returns one entry by position. There is no astronomy here: nothing is calculated from a date or a place, so the response never varies.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nOptional fields: index, letter.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sai Prashnavali",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/prashnavali/sai/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "prashnavali",
                "sai"
              ]
            },
            "description": "The Sai Prashnavali: 720 numbered answers.\n\n`number` is OPTIONAL here, which is the difference from /api/astro/chakra/ — that endpoint rejects a Sai request without one. Omit it and all 720 entries come back in numeric order, so the set can be fetched once and indexed client-side. Pass a number from 1 to 720 for a single entry; anything outside that range returns 400.\n\nFixed devotional text: nothing is calculated from a date or a place.\n\nCosts 1 credit on success. Failed requests are not charged.\n\nOptional fields: number.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Return",
      "item": [
        {
          "name": "Lunar return",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/return/lunar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "return",
                "lunar"
              ]
            },
            "description": "The Moon back on its natal degree, roughly every 27.3 days — the monthly chart.\n\nUse `count` for a run of months and `search_from` to begin at today rather than at birth. As with the solar return, each result carries its own accuracy in arcseconds.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"search_from\": \"2026-01-01T00:00:00+00:00\",\n  \"count\": 3\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Planetary return",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/return/planet/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "return",
                "planet"
              ]
            },
            "description": "A return of any body, chosen at request time with `body`.\n\nThe same search as the dedicated solar, lunar and Saturn endpoints — use this when the body is a runtime choice rather than fixed by the route. Jupiter returns every twelve years, Mars every two, and the outer planets do not return within a lifetime.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"body\": \"jupiter\",\n  \"search_from\": \"2026-01-01T00:00:00+00:00\",\n  \"count\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Saturn return",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/return/saturn/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "return",
                "saturn"
              ]
            },
            "description": "Saturn back on its natal degree — around ages 29, 58 and 88.\n\nReturned as a list of exact PASSES rather than a single date, because Saturn usually crosses its own natal degree three times: direct, retrograde back over it, then direct again. Those three moments can be nine months apart, and quoting only the first is the usual way this gets reported wrongly. A return is either one pass or three, never two.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"search_from\": \"2015-01-01T00:00:00+00:00\",\n  \"count\": 2\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Solar return",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/return/solar/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "return",
                "solar"
              ]
            },
            "description": "The exact instant the Sun regains the ecliptic longitude it held at birth — the astrological birthday, and the chart read for the year ahead.\n\nThis is usually NOT the calendar birthday. The return drifts about six hours a year against the calendar (that is the quarter-day that makes leap years), so it can fall a day either side.\n\nAsk for several consecutive years with `count`, and start somewhere other than birth with `search_from`. Every result publishes `error_arcseconds`, the distance between where the Sun actually was and the natal degree, so you can see the answer is exact rather than trust it.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"search_from\": \"2026-01-01T00:00:00+00:00\",\n  \"count\": 3\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Return to a degree",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/return/to-degree/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "return",
                "to-degree"
              ]
            },
            "description": "When a body reaches an arbitrary ecliptic degree rather than its natal one.\n\nWhat demi- and quarter-returns are built from: a demi-solar return is the Sun opposite its natal place, so pass the natal longitude plus 180. It also answers plain ingress questions — when does Jupiter next reach 0 Aries — without needing a birth chart at all.\n\nRetrograde bodies cross a degree up to three times, and all the passes are returned.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"body\": \"sun\",\n  \"target_longitude\": 229.667,\n  \"search_from\": \"2026-01-01T00:00:00+00:00\",\n  \"count\": 1\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Tajika",
      "item": [
        {
          "name": "Tajika aspects",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tajika/aspects/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tajika",
                "aspects"
              ]
            },
            "description": "Every Tajika aspect to one sign and one planet, in a single call.\n\nTajika — the Persian-derived branch used for varshaphala, the annual chart — reads aspects by ANGLE the way Western astrology does, rather than by the whole-sign drishti of parashari astrology. Conjunction, semi-sextile, sextile, square, trine and opposition are each returned as the signs that make them, spelled out by name, alongside the tradition's own benefic / malefic / neutral grouping of the same set.\n\nAlso returned: whether your chosen pair of planets is inside its deeptamsa — the orb within which a Tajika aspect is held to actually operate — and whether the two are applying or separating. That last distinction is what separates an ithasala from an eesarpha, and so is the question most Tajika readings turn on.\n\nTwenty-seven engine keys for one credit. Reaching the same answers through /api/astro/tajaka/ costs a credit per call, requires you to supply a raasi, a planet, two more planets, a node and a house on every request whichever key you wanted, and returns unlabelled positional arrays whose sign indices are zero-based — so reading index 4 as Taurus rather than Leo gives a confident wrong answer. Here every field defaults and every index is named.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"raasi\": 0,\n  \"planet\": \"Moon\",\n  \"planet1\": \"Mercury\",\n  \"planet2\": \"Saturn\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Tajika yogas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tajika/yogas/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tajika",
                "yogas"
              ]
            },
            "description": "The thirteen Tajika yogas, as named results rather than thirteen keys.\n\nThese are the combinations varshaphala is actually judged by. Ithasala — an applying aspect between the relevant lords, the promise of a thing coming about — and eesarpha — a separating one, the promise lapsing — are the two a reading usually turns on; the rest qualify them.\n\nEach yoga reports whether it is present, keeping whatever detail the engine attaches to it, and the pair- and triple-finding results are grouped separately because those answer which planets rather than whether.\n\nAs with /api/astro/tajika/aspects/, the parent requires a planet and two more planets and a node on every call regardless of which yoga you asked for. Here they default.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"planet\": \"Moon\",\n  \"planet1\": \"Mars\",\n  \"planet2\": \"Saturn\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Tarot",
      "item": [
        {
          "name": "Tarot deck reference",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tarot/deck/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tarot",
                "deck"
              ]
            },
            "description": "The whole deck, and every spread, as reference data.\n\nAll seventy-eight cards — twenty-two major arcana and four suits of fourteen — each with its suit, element, number and the keywords for both orientations. Also every spread with its position labels, which is the only way to discover what `spread` accepts.\n\nExists so a client can render a card it has drawn without keeping its own copy of the deck and letting the two drift apart.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"arcana\": \"both\",\n  \"suit\": \"all\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Tarot draw",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tarot/draw/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tarot",
                "draw"
              ]
            },
            "description": "Draw cards from a shuffled seventy-eight card Rider-Waite-Smith deck.\n\nCards are drawn without replacement, so a draw never repeats one. Each comes back with its arcana, suit, rank, number, orientation and the standard keywords for the way it landed.\n\nEvery response carries the `seed` that produced it, and sending that seed back reproduces the draw exactly — same cards, same order, same way up. Omit it and one is generated and returned, so a fresh draw is the default and repeating it afterwards is always possible. This is what lets a client store a reading and show it again rather than handing the querent a different answer to the same question.\n\n`allow_reversed` and `reversal_chance` are there because readers differ: some work upright-only, some reverse about half the deck, some far less.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"question\": \"What should I focus on this month?\",\n  \"count\": 3,\n  \"seed\": \"sample-draw\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Tarot spread",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tarot/spread/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tarot",
                "spread"
              ]
            },
            "description": "A named spread with every position labelled.\n\nSix layouts, from a single card to the ten-card Celtic Cross — also past/present/future, situation/action/outcome, a five-card relationship spread and the seven-card horseshoe.\n\nThe labels are the point. Three unlabelled cards are three cards; \"Past, Present, Future\" is a reading. Each card comes back with the position it fell in and what that position stands for.\n\nEvery response carries the `seed` that produced it, and sending that seed back reproduces the draw exactly — same cards, same order, same way up. Omit it and one is generated and returned, so a fresh draw is the default and repeating it afterwards is always possible. This is what lets a client store a reading and show it again rather than handing the querent a different answer to the same question.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"question\": \"How is this relationship placed?\",\n  \"spread\": \"three_card\",\n  \"seed\": \"sample-spread\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Tarot yes or no",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/tarot/yes-no/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "tarot",
                "yes-no"
              ]
            },
            "description": "One card drawn against a question, read as yes, no or maybe.\n\nHow the answer is decided is stated rather than left implicit, because conventions differ between readers and a bare \"yes\" hides which one produced it. Each card carries a traditional leaning — the Sun and the Ace of Cups lean yes, the Tower and the Nine of Swords lean no, the Two of Swords and Seven of Cups are ambivalent. A reversal flips a yes to a no and a no to a yes; an ambivalent card stays ambivalent either way up. Set `allow_reversed` false to read upright-only.\n\nThe card and its full keywords come back with the verdict, because \"no\" on its own is not a reading and the card is what carries the meaning.\n\nEvery response carries the `seed` that produced it, and sending that seed back reproduces the draw exactly — same cards, same order, same way up. Omit it and one is generated and returned, so a fresh draw is the default and repeating it afterwards is always possible. This is what lets a client store a reading and show it again rather than handing the querent a different answer to the same question.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"question\": \"Should I take the offer?\",\n  \"seed\": \"sample-yesno\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Traditional",
      "item": [
        {
          "name": "Almuten",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/traditional/almuten/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "traditional",
                "almuten"
              ]
            },
            "description": "Which planet has most dignity over the chart, and over each of its key points.\n\nTraditional astrology asks not only where the planets are but which of them is strongest over a given degree. The almuten is the answer: the planet holding the most weighted dignity there.\n\nReturned three ways. `by_point` gives the almuten of the Sun, Moon, ascendant, midheaven and part of fortune, with every candidate's score so you can see the margin. `by_planet` totals each planet across all of them. `almuten_figuris` is the overall winner — the chart's ruler in the medieval scheme.\n\nOnly dignities count, not debilities: an almuten asks who rules a degree, not who is weak in it, so no score is ever negative. The part of fortune reverses by sect — ascendant + Moon − Sun by day, the reverse by night — which is the step most implementations skip.\n\nTies are reported as ties. Where two planets score equally, `tied` lists them and the almuten is null, because breaking a tie silently would be an opinion presented as a calculation.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Essential dignities",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/traditional/dignities/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "traditional",
                "dignities"
              ]
            },
            "description": "Domicile, exaltation, triplicity, term and face for every planet, with Lilly's score.\n\nThe backbone of traditional Western astrology and the thing that decides whether a planet is in a position to act at all. For each planet: which of the five dignities it holds where it stands, which debilities, and the weighted total — domicile +5, exaltation +4, triplicity +3, term +2, face +1, against detriment -5, fall -4 and peregrine -5.\n\nTROPICAL, necessarily. Essential dignity is defined against the tropical zodiac. Every other chart endpoint here is sidereal, and reading these tables off sidereal longitudes would move nearly every planet back a sign and report a planet in its own domicile as peregrine.\n\nTriplicity depends on SECT, so the sect is computed first from the Sun's actual altitude and returned alongside: the day and night rulers of an element are different planets, and a table applied with the wrong one is wrong in a way nothing in the output would reveal.\n\nBounds are the Egyptian set and faces the Chaldean order. Sources disagree — Ptolemy's bounds differ from the Egyptian — so the choice is named in `tables_used` rather than left to be inferred from numbers that will not match your book. Peregrine is applied only when a planet holds no dignity and is neither in detriment nor fall, so one placement is never penalised twice.\n\nUranus, Neptune and Pluto rule nothing in this doctrine and are returned with a null score rather than a zero that would read like a measurement.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Profections",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/traditional/profections/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "traditional",
                "profections"
              ]
            },
            "description": "Annual, monthly and daily profections, with the lord of each period.\n\nThe main Hellenistic timing technique, and the simplest: the chart advances one whole sign per year of life from the ascendant, so a 33-year-old is in a 10th-house profection and the ruler of that sign becomes Lord of the Year — the planet the year is read through. The same motion repeats faster inside the year, one sign per month and one per roughly two and a half days.\n\nAll three are returned together with each period's exact start and end, because a reading normally uses the annual for theme and the monthly to place it. The monthly continues from the annual sign rather than restarting at the ascendant, and the daily from the monthly.\n\nAge is counted by BIRTHDAY, not by dividing elapsed days: the profection turns over on the solar return, so someone eleven months past their thirty-third birthday is still in their thirty-fourth year. That is the detail most implementations get wrong.\n\nEvery timestamp is UTC, so the periods can be compared and sorted without reparsing.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"as_of\": \"2026-09-09T12:00:00+00:00\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sect",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/traditional/sect/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "traditional",
                "sect"
              ]
            },
            "description": "Whether a chart is diurnal or nocturnal, and everything that follows from it.\n\nSect is the first question traditional astrology asks of a chart and it changes almost everything after: which luminary leads, which benefic and which malefic are working with the chart rather than against it, and which triplicity rulers apply. By day the Sun leads, Jupiter is the benefic of the sect and Mars the malefic out of it; by night all of that reverses.\n\nDecided by the Sun's actual ALTITUDE rather than by house placement, so the answer does not depend on a house system. The altitude is returned, so a borderline chart is visible instead of arriving as a bare label.\n\nFor each planet: whether it is in its own sect, whether it is above the horizon, and whether it is in hayz — in sect, in the matching half of the sky, and in a sign of matching gender, the strongest condition the tradition recognises. Mercury takes its sect from which side of the Sun it sits on, being a morning or evening star rather than diurnal or nocturnal by nature.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Transit",
      "item": [
        {
          "name": "Transit snapshot",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/transit/details/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "transit",
                "details"
              ]
            },
            "description": "Where a body is right now: sign, degree, nakshatra, pada and nakshatra lord.\n\nThe snapshot a transit widget renders. Choose the body with `celestial`.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2025-01-01T00:00:00+00:00\",\n  \"tz\": 0.0,\n  \"when\": \"after\",\n  \"celestial\": \"mars\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Moon crossing",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/transit/moon-crossing/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "transit",
                "moon-crossing"
              ]
            },
            "description": "When the Moon next reaches a given ecliptic longitude.\n\nThe Moon covers the whole zodiac in about 27 days, so a crossing is never more than a month away. Forward search only, for the same reason as the solar ingress.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2025-01-01T00:00:00+00:00\",\n  \"tz\": 0.0,\n  \"when\": \"after\",\n  \"x2cross\": 90.0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Lunar node crossing",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/transit/node-crossing/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "transit",
                "node-crossing"
              ]
            },
            "description": "When the Moon next crosses its own node — the moments eclipses cluster around.\n\nReturns the moment, the longitude it happens at, and the Moon's ecliptic latitude there, which comes back as essentially zero: crossing the node IS the Moon passing through the ecliptic plane, so that value is how you check the search landed in the right place.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2025-01-01T00:00:00+00:00\",\n  \"tz\": 0.0,\n  \"when\": \"after\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Planet at a degree",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/transit/planet-at-degree/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "transit",
                "planet-at-degree"
              ]
            },
            "description": "When a planet reaches a given degree, within a date window.\n\nChoose the body with `planet` and the degree with `degr`. Leave `datetime_start` and `datetime_end` out and the window runs from the given moment to a year later, so a first call works without inventing one.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2025-01-01T00:00:00+00:00\",\n  \"tz\": 0.0,\n  \"when\": \"after\",\n  \"planet\": \"mars\",\n  \"degr\": 135.0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Solar ingress",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/transit/solar-ingress/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "transit",
                "solar-ingress"
              ]
            },
            "description": "When the Sun next reaches a given ecliptic longitude.\n\nThe calculation behind every solar ingress question: pass 0 for the Aries ingress, 90 for Cancer, 180 for Libra, 270 for Capricorn — or any degree at all. Crossing 0 degrees of Aries IS the March equinox, and this endpoint returns the same instant /api/astro/seasons/ does.\n\nForward search only. The engine's backward search is unreliable — for a target of 0 degrees it returns a date identical to the forward answer, and for 90 a date a year later — so it is not offered.\n\nDistinct from /api/astro/sankranti/, which gives the SIDEREAL Sankranti dates used by the Hindu calendar. The two differ by the ayanamsa.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"2025-01-01T00:00:00+00:00\",\n  \"tz\": 0.0,\n  \"when\": \"after\",\n  \"x2cross\": 0.0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Astrology / Western",
      "item": [
        {
          "name": "Antiscia and contra-antiscia",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/western/antiscia/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "western",
                "antiscia"
              ]
            },
            "description": "The hidden points of a chart: reflections across the solstice axis.\n\nAn antiscion is a planet reflected across the 0 Cancer – 0 Capricorn line, so a planet and its antiscion share the same DECLINATION and, in the old doctrine, a hidden sympathy. The contra-antiscion reflects across the equinoctial axis instead and is read as antipathy.\n\nantiscion = 180 − longitude; contra-antiscion = 360 − longitude. Contacts are what the technique is for — a planet sitting on another's antiscion is a connection invisible in an ordinary aspect grid — so those are computed against Lilly's tight orb of about a degree, scalable with `orb_factor`.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Composite chart",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/western/composite/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "western",
                "composite"
              ]
            },
            "description": "The midpoint chart of a relationship, read as its own entity.\n\nWhere synastry compares two charts, a composite MERGES them: each body sits at the midpoint of the two people's positions, and the result is read as the chart of the relationship itself rather than of either person.\n\nMidpoints are taken on the shorter arc, which is the convention and is NOT the same as averaging the two numbers — a pair at 350 and 10 degrees composites to 0, not to 180. Each body reports the two source longitudes it came from, so the midpoint is checkable.\n\nA composite carries no speed and no retrogradation: it is not a moment in time, so nothing in it is moving. Aspects between composite bodies ARE meaningful and are returned.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"partner_date_time\": \"1988-11-23T07:15:00+05:30\",\n  \"partner_timezone_as_float\": 5.5,\n  \"orb_factor\": 1.0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Davison relationship chart",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/western/davison/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "western",
                "davison"
              ]
            },
            "description": "A real chart cast for the midpoint of two births.\n\nDifferent in kind from the composite at /api/astro/western/composite/, and the difference matters. A composite AVERAGES two charts' longitudes, producing midpoints that never existed in the sky. A Davison is an actual chart for an actual moment — the midpoint in time between two births, at the midpoint of the two places — so every planet in it was really there.\n\nThat is why this endpoint needs the partner's coordinates and the composite does not. The place midpoint uses the shorter arc, so a London–Tokyo pair meets across Asia rather than across the Atlantic.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"partner_date_time\": \"1992-03-20T06:15:00+05:30\",\n  \"partner_latitude\": 19.076,\n  \"partner_longitude\": 72.8777\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Draconic chart",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/western/draconic/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "western",
                "draconic"
              ]
            },
            "description": "The natal chart measured from the lunar node instead of from 0 Aries.\n\nThe draconic zodiac begins at the Moon's north node, so this is the natal chart rotated until the node sits at the start of Aries. Practitioners read it as the chart's deeper layer and compare it against the natal positions — the contacts between the two sets are the technique.\n\nBoth sets are returned. Note that every aspect INSIDE a draconic chart is identical to the natal chart's, because the whole wheel rotates rigidly; what changes is which signs the planets fall in. A draconic endpoint returning different internal aspects would be wrong.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Harmonic chart",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/western/harmonic/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "western",
                "harmonic"
              ]
            },
            "description": "The Nth harmonic: every longitude multiplied by N and re-wrapped.\n\nAddey's technique. Multiplying by N and taking the result modulo 360 turns a division of the circle into a conjunction, so planets an exact fifth of the circle apart become conjunct in the 5th harmonic. It makes a subtle pattern legible.\n\nThe 4th and 8th are most often read, since they collapse the hard aspects; the 5th shows quintiles and the 9th noviles. Harmonic aspects are computed and returned, because finding the new conjunctions is the whole point.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"harmonic\": 5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Heliocentric chart",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/western/heliocentric/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "western",
                "heliocentric"
              ]
            },
            "description": "The solar system seen from the Sun rather than from the Earth.\n\nThe Earth takes the Sun's place: it is the body that is somewhere, and the Sun is the centre. So there is no heliocentric Sun, Moon or lunar node — those are Earth-centred constructs, and they are named in `omitted` rather than returned with an invented number.\n\nNo body is ever retrograde here. Retrogradation is an illusion of watching one moving planet from another, so every `retrograde` is false, and that is the correct answer rather than a missing feature.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Western house cusps",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/western/house-cusps/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "western",
                "house-cusps"
              ]
            },
            "description": "Tropical house cusps, with the ascendant, midheaven and vertex.\n\nEight house systems: placidus (the Western default), koch, porphyry, regiomontanus, campanus, equal, whole_sign and topocentric. Pass `house_system`; it defaults to placidus.\n\nThe ascendant IS the first house cusp and the midheaven IS the tenth, and this endpoint returns them from a single calculation so they cannot disagree. Two exceptions, both correct rather than bugs: under whole_sign the first cusp is 0 degrees of the sign HOLDING the ascendant, not the ascendant itself, and under equal and whole_sign the midheaven floats free of the tenth cusp because those systems divide from the ascendant rather than from the meridian.\n\nTROPICAL, not sidereal — see /api/astro/western/planets/. For Vedic houses use /api/astro/house/ or /api/astro/bhava-cusps/, which are sidereal.\n\nOpposite cusps are exactly 180 degrees apart and the twelve advance in order round the zodiac; both are asserted by tests.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 19.2056,\n  \"longitude\": 25.2056,\n  \"house_system\": \"placidus\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Western natal chart",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/western/natal-chart/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "western",
                "natal-chart"
              ]
            },
            "description": "A tropical natal chart: the same twelve bodies, plus every aspect between them.\n\nTROPICAL, not sidereal. Every other chart endpoint here subtracts the ayanamsa — about 24 degrees at present — which moves nearly every planet into the previous sign. Someone born on 15 August is a Leo here and a Cancer on /api/astro/chart/. Both are correct for their own tradition; pick the one your product uses and do not mix them.\n\nTwelve bodies: the ten Western planets, the true north node and Chiron. Each returns its longitude, the sign and degrees within it, a formatted position, its daily motion and whether it is retrograde.\n\nSend a date, a time and a place. Nothing else — the zodiac is fixed by the route.\n\nAspects cover the five Ptolemaic angles — conjunction, sextile, square, trine, opposition — plus quincunx and semisextile. Each carries its exact angle, the `orb` by which it misses exact, and the `allowed_orb` that admitted it, so you can filter tighter than our defaults without recalculating. `applying` is true while the aspect is still forming and false once it has passed exact, derived from the bodies' own daily motion.\n\nOrbs are a matter of convention and astrologers disagree; ours are the widely used defaults and are stated on every hit rather than assumed.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Western planets (tropical)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/western/planets/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "western",
                "planets"
              ]
            },
            "description": "Tropical positions of the ten planets, the north node and Chiron.\n\nTROPICAL, not sidereal. Every other chart endpoint here subtracts the ayanamsa — about 24 degrees at present — which moves nearly every planet into the previous sign. Someone born on 15 August is a Leo here and a Cancer on /api/astro/chart/. Both are correct for their own tradition; pick the one your product uses and do not mix them.\n\nTwelve bodies: the ten Western planets, the true north node and Chiron. Each returns its longitude, the sign and degrees within it, a formatted position, its daily motion and whether it is retrograde.\n\nSend a date, a time and a place. Nothing else — the zodiac is fixed by the route.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-08-15T10:30:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Secondary progressions",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/western/progressions/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "western",
                "progressions"
              ]
            },
            "description": "Secondary progressions: a day of ephemeris for a year of life.\n\nThe chart is advanced by reading the sky one DAY after birth for each YEAR lived, so a fortieth birthday is read from the fortieth day of life. It is the oldest predictive technique in Western astrology, and the reason a progressed Moon moves about a degree a month while progressed Pluto barely moves at all across a whole lifetime.\n\nGive the date you want the chart for in `progressed_to`; the endpoint works out the elapsed years and the ephemeris date itself and reports both, so the conversion is visible rather than implied. Returns the progressed positions, the natal ones beside them, and every aspect from the progressed chart to the natal — which is how progressions are actually read.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"progressed_to\": \"2026-05-10T00:00:00+00:00\",\n  \"orb_factor\": 1.0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Synastry",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/western/synastry/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "western",
                "synastry"
              ]
            },
            "description": "Every aspect between two people's charts.\n\nSynastry compares one chart against another body by body, so a contact like 'her Venus trine his Mars' is a relationship between two DIFFERENT charts and has no equivalent inside either one. That is why a natal aspect grid cannot answer it: there a body never aspects itself, while here Sun-to-Sun is one of the most-read contacts there is.\n\nReturns both charts' positions and every cross-aspect, tightest orb first. `orb_factor` scales the whole aspect table if you work to tighter or wider orbs than the conventional ones — 0.5 halves them, 2 doubles them.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"partner_date_time\": \"1988-11-23T07:15:00+05:30\",\n  \"partner_timezone_as_float\": 5.5,\n  \"orb_factor\": 1.0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Transits to natal",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astro/western/transits/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astro",
                "western",
                "transits"
              ]
            },
            "description": "Today's sky against a birth chart.\n\nEvery aspect from the transiting planets at `transit_date_time` to the natal planets at `date_time` — the everyday question of Western practice, and one a single-chart endpoint cannot answer however many times you call it.\n\nReported transit-first, so `transit: saturn, natal: sun, aspect: square` reads as transiting Saturn square natal Sun, which is the direction practitioners state it in. Both charts come back in full alongside the aspects.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"date_time\": \"1990-05-10T19:55:00+05:30\",\n  \"timezone_as_float\": 5.5,\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"transit_date_time\": \"2026-09-08T00:00:00+00:00\",\n  \"orb_factor\": 1.0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Celebrity data",
      "item": [
        {
          "name": "Celebrity chart search",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astrodatabank/celebrities/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astrodatabank",
                "celebrities"
              ]
            },
            "description": "A searchable database of birth charts for public figures and dated historical events, with each record already reduced to divisional charts, house positions, aspects and arudhas so you can query by chart feature rather than by date. It is the tool for research questions such as which charts have Saturn in the tenth house, or which astrologers were born with Mars and Mercury conjunct.\n\nEvery filter is optional and they combine with AND. Biographical filters cover `name_search` (each word must appear, so 'Amitabh Bachchan' matches a record stored as 'Bachchan, Amitabh'), `name_starts_with`, `birth_date_from`/`birth_date_to`, `birth_month_day` as 'MM-DD', `gender`, `countries`, `categories` (a substring match against the AstroDatabank category strings such as 'Vocation: Sports: Football') and `rodden_rating` — the standard scale for how well a birth time is sourced, from AA for a birth certificate down to DD for conflicting or unverified data. Chart filters cover `planets_in_houses`, `planets_in_signs`, `planets_in_nakshatras`, `conjunct` (two planets in the same house), `graha_aspects` and `rashi_aspects` (planet-to-planet, one aspecting the other), `bhava_arudhas`, `combust_planets` and `retrograde_planets`. `chart` selects which divisional chart the position filters apply to — RashiChart by default, or Hora, Drekkana, Chaturthamsa, Navamsa or Dasamsa — and `nodes` chooses true or mean nodes for any Rahu or Ketu condition.\n\nResults are paginated: `page` from 1 and `page_size` from 1 to 100, defaulting to 20, ordered by `order_by` (`birth_date_asc` by default, or name ascending or descending, which sorts on the given name rather than the stored 'Last, First' form). The response is `{results, total, page, page_size, total_pages}`; each result carries id, display name, gender, birth date and time, city, country, latitude, longitude, Rodden rating, data source, category list, image URL, the Rashi ascendant and the localised birth datetime. Take the `id` to the detail endpoint for the full chart data.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"chart\": \"RashiChart\",\n  \"combust_planets\": [],\n  \"gender\": \"male\",\n  \"nodes\": \"true\",\n  \"order_by\": \"name_asc\",\n  \"retrograde_planets\": []\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Celebrity detail",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/astrodatabank/celebrities/:id/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "astrodatabank",
                "celebrities",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "",
                  "description": ""
                }
              ]
            },
            "description": "Returns everything stored for one record in the celebrity database, addressed by the numeric `id` you get back from the search endpoint. Use it after a search when you want the actual charts rather than the summary line.\n\nThe response repeats the summary fields — name, gender, birth date and time, city, country, coordinates, Rodden rating, data source, categories, image URL, the Rashi ascendant and the localised birth datetime — and adds a nested `data` object holding the precomputed astrology. That includes `chart_data` keyed by divisional chart (RashiChart, HoraChart, DrekkanaChart, ChaturthamsaChart, NavamsaChart, DasamsaChart), each with an ascendant and every celestial body's longitude, latitude, nakshatra, pada, sign and house; `house_hora_data` with the aspect lists per planet; `bhava_arudha_data`; and the combust and retrograde flags. Also present are the collector, the original timezone description and any recorded life events.\n\nAn unknown id returns 404.\n\nCosts 1 credit on success. Failed requests are not charged."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Dashas",
      "item": [
        {
          "name": "Nakshatra dashas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/nakshatra_dasha/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "nakshatra_dasha"
              ]
            },
            "description": "A dasha is a timeline that divides a life into periods, each ruled by a planet. The nakshatra dashas start from the lunar mansion the Moon occupied at birth: that fixes which planet's period was running at birth and how much of it remained, and the rest of the cycle follows in a fixed order. Vimshottari, the 120-year scheme, is the one in general use; the others suit charts where their own applicability conditions are met.\n\n`dasha_type` selects the scheme, and the schemes differ in total length and in which planets take part. VimshottariDasha runs 120 years over nine planets; AshtottariDasha 108 over eight (Ketu is omitted); ChaturaseetiSamaDasha 84, as seven equal twelve-year periods; DwadashottariDasha 112; DwisaptatiDasha 72, as eight equal nine-year periods; PanchottariDasha 105; SataabdikaDasha 100; ShodashottariDasha 116; ShattrimsaSamaDasha and YoginiDasha both 36 over eight periods of one to eight years, differing in how the first lord is chosen; and BudhiGatiDasha 120 over a ten-step sequence. Note that YoginiDasha reports its periods by ruling planet rather than by the eight yogini names.\n\n`dasha_period` chooses the depth: mahadasha, antardasha, pratyantardasha, sookshmasha, pranadasha, dehdasha, or 'all' for the nested structure. `dasha_start` ('current', 'next' or 'previous') and `dasha_direction` ('forward' or 'backward') position the sequence relative to the birth moment, and `days_in_year` sets the year length used to convert periods into dates — pass 365.256364 for the sidereal year or 360 for the traditional savana reckoning, which shifts every date. `max_levels` caps the nesting depth and is the main lever on response size, since a full six-level Vimshottari expansion runs to hundreds of thousands of rows.\n\nThe response is `{data: {<dasha_type>: …}}`. Each period is `{mahadasha_lord, start_date, end_date}` at the top level, with the sub-period lords added at deeper levels, plus a `_metadata` block giving the calculation time and a count per level. Setting `save_to_file` true changes the response entirely: the body becomes a compressed file download in the format named by `compression_type` rather than JSON.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"dasha_type\": \"VimshottariDasha\",\n  \"dasha_period\": \"all\",\n  \"datetime\": \"2024-11-21T09:21:43.577Z\",\n  \"latitude\": 26.1046,\n  \"longitude\": 74.319,\n  \"timezone_as_float\": 5.5,\n  \"days_in_year\": 365.256364,\n  \"dasha_start\": \"current\",\n  \"dasha_direction\": \"forward\",\n  \"compressed_output\": true,\n  \"max_levels\": 1,\n  \"use_cache\": true,\n  \"use_nested\": true,\n  \"save_to_file\": true,\n  \"compression_type\": \"gzip\",\n  \"output_dir\": \"dasha_output\",\n  \"ultra_fast\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Rashi dashas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/raasi_dasha/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "raasi_dasha"
              ]
            },
            "description": "Rashi dashas divide a life into periods ruled by signs rather than by planets. Where the nakshatra dashas start from the Moon's birth star and cycle through the planets, these start from a seed sign — usually the ascendant, sometimes the stronger of the first and seventh, sometimes the ninth — and cycle through the twelve signs, with each sign's length derived from where its lord sits. They belong mostly to the Jaimini stream and are used for concrete outward events, whereas Vimshottari is generally read for inner experience.\n\n`dasha_type` selects among twenty schemes. NarayanaRaasi, CharaRaasi, DrigRaasi, SudasaRaasi, KendradhiRaasi, TrikonaRaasi, SthiraRaasi, ShoolaRaasi, NirayanaRaasi, VarnadaRaasi, MandookaRaasi, ParyaayaRaasi, BrahmaRaasi, ChakraRaasi, LagnamsakaRaasi, NavmasaRaasi, YogardhaRaasi, SandhyaRaasi, TaraLagnaRaasi and KalachakraRaasi each pick a different seed sign, direction and period length; several are meant to be applied only when their own applicability conditions hold, and an inapplicable chart can legitimately produce an empty period list.\n\nThe request mirrors the nakshatra dasha endpoint. `datetime`, `latitude`, `longitude` and `node` build the chart; `dasha_period` chooses the depth from mahadasha down to dehdasha or 'all'; `dasha_start` and `dasha_direction` position the sequence; `days_in_year` sets the year length used to turn periods into dates; `max_levels` caps the nesting and is the main control on response size.\n\nThe response is `{data: {<dasha_type>: …}}`, with each period given as a lord (a sign name at the top level) together with `start_date` and `end_date`, nested by level when you ask for 'all'. As on the nakshatra endpoint, setting `save_to_file` true replaces the JSON body with a compressed file download.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"node\": \"true\",\n  \"dasha_type\": \"BrahmaRaasi\",\n  \"dasha_period\": \"mahadasha\",\n  \"datetime\": \"2025-05-27T05:12:46.849Z\",\n  \"latitude\": 26.9124,\n  \"longitude\": 75.7873,\n  \"timezone_as_float\": 5.5,\n  \"days_in_year\": 365.256364,\n  \"dasha_start\": \"current\",\n  \"dasha_direction\": \"forward\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Festivals",
      "item": [
        {
          "name": "Festival calendar",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/festivals/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "festivals"
              ]
            },
            "description": "Precomputed festival dates across four traditions, read straight from a table rather than calculated on the request, so a whole year comes back in one indexed query. `keys` chooses which lists you want: `festivals` is the main Hindu calendar, `ekadashis` the twenty-four or twenty-six named Ekadashis of the year, and `jain_festivals`, `sikh_festivals` and `christian_festivals` the corresponding calendars.\n\n`year` is required and `month` (1-12) is optional; omit the month to get the whole year. The response is `{data}` keyed by each requested category, each holding a chronological list of events. An event carries `name`, `name_hi` (a Hindi rendering, currently populated only for the main Hindu category and null elsewhere), `month` (the lunar month name), `paksha`, `tithi` (used by the Sikh list), `date` (used where the observance is on a fixed civil date, as the Christian festivals are) and `start_time`/`end_time`, which are the exact instants the governing tithi begins and ends.\n\nDates are precomputed for the years 2006 to 2046 inclusive. Anything outside that range returns empty lists rather than an error. Because the underlying rows are stored rather than derived per request, this endpoint takes no coordinates; if you need a location-sensitive observance day, use the regional calendar endpoints, which resolve each festival to a civil day using local sunrise and sunset.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"year\": 2026,\n  \"month\": 9,\n  \"keys\": [\n    \"festivals\",\n    \"ekadashis\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Natural hazards",
      "item": [
        {
          "name": "Earthquake events",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/hazard/earthquake/?",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "hazard",
                "earthquake"
              ],
              "query": [
                {
                  "key": "alertlevel",
                  "value": "green",
                  "disabled": true,
                  "description": "Limit to events with a specific PAGER alert level"
                },
                {
                  "key": "catalog",
                  "value": "",
                  "disabled": true,
                  "description": "Limit to events from a specific catalog"
                },
                {
                  "key": "contributor",
                  "value": "",
                  "disabled": true,
                  "description": "Limit to events contributed by a specific contributor"
                },
                {
                  "key": "endtime",
                  "value": "",
                  "disabled": true,
                  "description": "End of time window (ISO8601). Default: present time"
                },
                {
                  "key": "eventid",
                  "value": "",
                  "disabled": true,
                  "description": "Select a specific event by ID (implies includeallorigins and includeallmagnitudes)"
                },
                {
                  "key": "eventtype",
                  "value": "",
                  "disabled": true,
                  "description": "Limit to events of a specific type (e.g. 'earthquake' filters non-earthquake events)"
                },
                {
                  "key": "includeallmagnitudes",
                  "value": "",
                  "disabled": true,
                  "description": "Include all magnitudes for each event (default: false)"
                },
                {
                  "key": "includeallorigins",
                  "value": "",
                  "disabled": true,
                  "description": "Include all origins for each event (default: false)"
                },
                {
                  "key": "includearrivals",
                  "value": "",
                  "disabled": true,
                  "description": "Include phase arrivals (default: false, NOT CURRENTLY IMPLEMENTED)"
                },
                {
                  "key": "includedeleted",
                  "value": "true",
                  "disabled": true,
                  "description": "Include deleted events (default: false). Use 'only' to return only deleted events"
                },
                {
                  "key": "includesuperseded",
                  "value": "",
                  "disabled": true,
                  "description": "Include superseded products (default: false). Only works with eventid"
                },
                {
                  "key": "latitude",
                  "value": "",
                  "disabled": true,
                  "description": "Center latitude for circle search [-90, 90]. Requires longitude and maxradius/maxradiuskm"
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": "Max number of events to return [1, 20000]"
                },
                {
                  "key": "longitude",
                  "value": "",
                  "disabled": true,
                  "description": "Center longitude for circle search [-180, 180]"
                },
                {
                  "key": "maxalertlevel",
                  "value": "green",
                  "disabled": true,
                  "description": "Limit to events with PAGER alert level ≤ this value"
                },
                {
                  "key": "maxcdi",
                  "value": "",
                  "disabled": true,
                  "description": "Maximum Community Determined Intensity (DYFI) [0, 12]"
                },
                {
                  "key": "maxdepth",
                  "value": "",
                  "disabled": true,
                  "description": "Max depth in km [-100, 1000]"
                },
                {
                  "key": "maxgap",
                  "value": "",
                  "disabled": true,
                  "description": "Max azimuthal gap in degrees [0, 360]"
                },
                {
                  "key": "maxlatitude",
                  "value": "",
                  "disabled": true,
                  "description": "Bounding box northern boundary [-90, 90]"
                },
                {
                  "key": "maxlongitude",
                  "value": "",
                  "disabled": true,
                  "description": "Bounding box eastern boundary [-360, 360]"
                },
                {
                  "key": "maxmagnitude",
                  "value": "",
                  "disabled": true,
                  "description": "Max magnitude"
                },
                {
                  "key": "maxmmi",
                  "value": "",
                  "disabled": true,
                  "description": "Maximum Modified Mercalli Intensity (ShakeMap) [0, 12]"
                },
                {
                  "key": "maxradius",
                  "value": "",
                  "disabled": true,
                  "description": "Max radius in degrees from center point [0, 180]. Mutually exclusive with maxradiuskm"
                },
                {
                  "key": "maxradiuskm",
                  "value": "",
                  "disabled": true,
                  "description": "Max radius in km from center point [0, 20001.6]. Mutually exclusive with maxradius"
                },
                {
                  "key": "maxsig",
                  "value": "",
                  "disabled": true,
                  "description": "Max significance"
                },
                {
                  "key": "minalertlevel",
                  "value": "green",
                  "disabled": true,
                  "description": "Limit to events with PAGER alert level ≥ this value"
                },
                {
                  "key": "mincdi",
                  "value": "",
                  "disabled": true,
                  "description": "Minimum Community Determined Intensity (DYFI)"
                },
                {
                  "key": "mindepth",
                  "value": "",
                  "disabled": true,
                  "description": "Min depth in km [-100, 1000]"
                },
                {
                  "key": "minfelt",
                  "value": "",
                  "disabled": true,
                  "description": "Minimum number of DYFI responses [1, ∞]"
                },
                {
                  "key": "mingap",
                  "value": "",
                  "disabled": true,
                  "description": "Min azimuthal gap in degrees [0, 360]"
                },
                {
                  "key": "minlatitude",
                  "value": "",
                  "disabled": true,
                  "description": "Bounding box southern boundary [-90, 90]"
                },
                {
                  "key": "minlongitude",
                  "value": "",
                  "disabled": true,
                  "description": "Bounding box western boundary [-360, 360]. Rectangles may cross the date line by using minlongitude < -180 or maxlongitude > 180"
                },
                {
                  "key": "minmagnitude",
                  "value": "",
                  "disabled": true,
                  "description": "Min magnitude"
                },
                {
                  "key": "minsig",
                  "value": "",
                  "disabled": true,
                  "description": "Min significance"
                },
                {
                  "key": "nodata",
                  "value": "204",
                  "disabled": true,
                  "description": "HTTP status code returned when no data is found (204 or 404)"
                },
                {
                  "key": "offset",
                  "value": "",
                  "disabled": true,
                  "description": "Return results starting at this count (1-based)"
                },
                {
                  "key": "orderby",
                  "value": "magnitude",
                  "disabled": true,
                  "description": "Order results by field"
                },
                {
                  "key": "productcode",
                  "value": "",
                  "disabled": true,
                  "description": "Return the event associated with this product code"
                },
                {
                  "key": "producttype",
                  "value": "",
                  "disabled": true,
                  "description": "Limit to events with this product type (e.g. moment-tensor, focal-mechanism, shakemap, losspager, dyfi)"
                },
                {
                  "key": "reviewstatus",
                  "value": "automatic",
                  "disabled": true,
                  "description": "Limit to events with a specific review status"
                },
                {
                  "key": "starttime",
                  "value": "",
                  "disabled": true,
                  "description": "Start of time window (ISO8601, e.g. 2022-01-01 or 2022-01-01T00:00:00). Default: NOW - 30 days"
                },
                {
                  "key": "updatedafter",
                  "value": "",
                  "disabled": true,
                  "description": "Limit to events updated after this time (ISO8601)"
                }
              ]
            },
            "description": "A pass-through proxy for the United States Geological Survey FDSN earthquake event service. This is a historical and near-real-time seismology dataset, not an astrological calculation; it is here so that mundane and event-correlation work can pull the events and the chart data through one API.\n\nEvery query parameter is forwarded to USGS unchanged, so the full FDSN vocabulary applies: `starttime` and `endtime` in ISO 8601 (defaulting to the last thirty days), a bounding box via `minlatitude`/`maxlatitude`/`minlongitude`/`maxlongitude` or a circle via `latitude`/`longitude` with `maxradius` or `maxradiuskm`, `minmagnitude`/`maxmagnitude`, `mindepth`/`maxdepth`, `minsig`/`maxsig`, PAGER `alertlevel`, `eventtype`, `reviewstatus`, `limit` up to 20000, `offset` and `orderby`.\n\nThe response is the USGS GeoJSON FeatureCollection as returned: a `metadata` object with the result `count`, and a `features` list in which each entry has a `geometry` giving [longitude, latitude, depth in km] and a `properties` object with magnitude, place description, epoch-millisecond `time`, felt reports, Mercalli and Community intensity, significance, a tsunami flag and the USGS event page URL. The `format` parameter is ignored and always forced to geojson. If USGS cannot be reached the endpoint returns 503.\n\nCosts 1 credit on success. Failed requests are not charged."
          },
          "response": []
        },
        {
          "name": "Forest fires",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/hazard/forest-fires/?",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "hazard",
                "forest-fires"
              ],
              "query": [
                {
                  "key": "circle",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by circle name (case-insensitive contains)"
                },
                {
                  "key": "district",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by district name (case-insensitive contains)"
                },
                {
                  "key": "division",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by division name (case-insensitive contains)"
                },
                {
                  "key": "end_date",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by end date/time (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS)"
                },
                {
                  "key": "fire_name",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by fire name (case-insensitive contains)"
                },
                {
                  "key": "itemsPerPage",
                  "value": "",
                  "disabled": true,
                  "description": "Number of items per page"
                },
                {
                  "key": "page",
                  "value": "",
                  "disabled": true,
                  "description": "Page number"
                },
                {
                  "key": "sort",
                  "value": "newest",
                  "disabled": true,
                  "description": "Sort order: 'newest' (default), 'oldest', 'name_asc' (fire name A-Z), or 'name_desc' (Z-A)"
                },
                {
                  "key": "start_date",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by start date/time (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS)"
                },
                {
                  "key": "state",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by state name (case-insensitive contains)"
                }
              ]
            },
            "description": "A stored dataset of large forest fire detections, organised by the Indian forest administrative hierarchy. It is a historical event log, not an astrological calculation, and is provided for mundane and correlation work alongside the chart endpoints.\n\nFilter with `state`, `district`, `circle`, `division` and `fire_name`, all case-insensitive substring matches, and with `start_date`/`end_date` against the first detection time (accepting either YYYY-MM-DD or a full ISO timestamp). `sort` takes 'newest' (the default), 'oldest', 'name_asc' or 'name_desc' on the fire name. Paging uses `page` and `itemsPerPage`, fifty per page by default and up to five hundred.\n\nThe response is a standard paged envelope of `count`, `next`, `previous` and `results`. Each result gives an id, `first_detection` and `last_detection` timestamps, the state, district, forest circle, division and range, a fire name and the point coordinates as `latitude` and `longitude`. Administrative fields are null for detections outside a mapped forest division.\n\nCosts 1 credit on success. Failed requests are not charged."
          },
          "response": []
        },
        {
          "name": "Plane crashes",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/hazard/plane-crashes/?",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "hazard",
                "plane-crashes"
              ],
              "query": [
                {
                  "key": "aircraft",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by aircraft (case-insensitive contains)"
                },
                {
                  "key": "country",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by country (case-insensitive contains)"
                },
                {
                  "key": "crash_cause",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by crash cause (case-insensitive contains)"
                },
                {
                  "key": "end_date",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by end date (YYYY-MM-DD)"
                },
                {
                  "key": "flight_phase",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by flight phase (case-insensitive contains)"
                },
                {
                  "key": "flight_type",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by flight type (case-insensitive contains)"
                },
                {
                  "key": "itemsPerPage",
                  "value": "",
                  "disabled": true,
                  "description": "Number of items per page"
                },
                {
                  "key": "min_fatalities",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by minimum total fatalities"
                },
                {
                  "key": "operator",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by operator (case-insensitive contains)"
                },
                {
                  "key": "page",
                  "value": "",
                  "disabled": true,
                  "description": "Page number"
                },
                {
                  "key": "region",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by region (case-insensitive contains)"
                },
                {
                  "key": "sort",
                  "value": "newest",
                  "disabled": true,
                  "description": "Sort order: 'newest' (default), 'oldest', 'name_asc' (aircraft A-Z), 'name_desc' (Z-A), 'fatalities_desc' (highest fatalities first), or 'fatalities_asc' (lowest first)"
                },
                {
                  "key": "start_date",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by start date (YYYY-MM-DD)"
                }
              ]
            },
            "description": "A stored dataset of aviation accidents with a written account of each, going back to the 1920s. It is a historical event record rather than an astrological calculation, and sits alongside the chart endpoints so that a crash's time and place can be fed straight into a chart.\n\nFilter with `country`, `region`, `aircraft`, `operator`, `crash_cause`, `flight_phase` and `flight_type`, all case-insensitive substring matches, with `start_date` and `end_date` on the accident date, and with `min_fatalities`. `sort` accepts 'newest' (the default), 'oldest', 'name_asc' and 'name_desc' on the aircraft type, and 'fatalities_desc' or 'fatalities_asc'. Paging uses `page` and `itemsPerPage`, fifty per page by default and up to five hundred.\n\nThe response is a paged envelope of `count`, `next`, `previous` and `results`. Each result carries the date and a local time string, the aircraft type and operator, the phase of flight and flight type, a crash site classification and free-text location, country and region, latitude and longitude, crew, passenger, other and total fatality counts, a stated `crash_cause` and a `circumstances` paragraph describing what happened.\n\nCosts 1 credit on success. Failed requests are not charged."
          },
          "response": []
        },
        {
          "name": "Suicide attacks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/hazard/suicide-attacks/?",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "hazard",
                "suicide-attacks"
              ],
              "query": [
                {
                  "key": "city",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by city name (case-insensitive contains)"
                },
                {
                  "key": "end_date",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by end date (YYYY-MM-DD)"
                },
                {
                  "key": "itemsPerPage",
                  "value": "",
                  "disabled": true,
                  "description": "Number of items per page"
                },
                {
                  "key": "max_killed",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by maximum killed (max count)"
                },
                {
                  "key": "min_injured",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by minimum injured (min count)"
                },
                {
                  "key": "min_killed",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by minimum killed (max count)"
                },
                {
                  "key": "no_of_suicide_blasts",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by exact number of suicide blasts"
                },
                {
                  "key": "page",
                  "value": "",
                  "disabled": true,
                  "description": "Page number"
                },
                {
                  "key": "province",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by province name (case-insensitive contains)"
                },
                {
                  "key": "sort",
                  "value": "newest",
                  "disabled": true,
                  "description": "Sort order: 'newest' (default), 'oldest', 'killed_desc'/'killed_asc' (by killed count), or 'injured_desc'/'injured_asc' (by injured count)"
                },
                {
                  "key": "start_date",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by start date (YYYY-MM-DD)"
                }
              ]
            },
            "description": "A stored dataset of suicide bombing incidents with location and casualty figures. It is a historical event record rather than an astrological calculation; it is here so that mundane analysis can draw event data and chart data from the same API.\n\nRecords are located by city and province rather than by country, and the loaded data is centred on Pakistan (Balochistan, Khyber Pakhtunkhwa, Punjab, Sindh). Filter with `city` and `province`, both case-insensitive substring matches, with `start_date` and `end_date` on the incident date, and with `min_killed`, `max_killed`, `min_injured` and `no_of_suicide_blasts`. `sort` accepts 'newest' (the default), 'oldest', 'killed_desc', 'killed_asc', 'injured_desc' and 'injured_asc'. Paging uses `page` and `itemsPerPage`, fifty per page by default and up to five hundred.\n\nThe response is a paged envelope of `count`, `next`, `previous` and `results`. Each result gives an id, the date, a local time string, city, province, latitude and longitude, a free-text `location` naming the exact spot, `killed_min` and `killed_max` (reported casualty figures often being a range), `injured_min` and the number of blasts in the incident.\n\nCosts 1 credit on success. Failed requests are not charged."
          },
          "response": []
        },
        {
          "name": "Tsunami events",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/hazard/tsunami/events/?",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "hazard",
                "tsunami",
                "events"
              ],
              "query": [
                {
                  "key": "area",
                  "value": "",
                  "disabled": true,
                  "description": "State, Province or Prefecture of the tsunami source"
                },
                {
                  "key": "assocDeposits",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by associated tsunami deposits"
                },
                {
                  "key": "causeCode",
                  "value": "0",
                  "disabled": true,
                  "description": "Cause code(s), comma-separated. 0-Unknown, 1-Earthquake, 2-Questionable Earthquake, 3-Earthquake and Landslide, 4-Volcano and Earthquake, 5-Volcano/Earthquake/Landslide, 6-Volcano, 7-Volcano and Landslide, 8-Landslide, 9-Meteorological, 10-Explosion, 11-Astronomical Tide. Example: 2,9,11"
                },
                {
                  "key": "commentsEnd",
                  "value": "",
                  "disabled": true,
                  "description": "Comments end with"
                },
                {
                  "key": "commentsInclude",
                  "value": "",
                  "disabled": true,
                  "description": "Comments include"
                },
                {
                  "key": "commentsMatch",
                  "value": "",
                  "disabled": true,
                  "description": "Comments match exactly"
                },
                {
                  "key": "commentsNot",
                  "value": "",
                  "disabled": true,
                  "description": "Comments do not include"
                },
                {
                  "key": "commentsStart",
                  "value": "",
                  "disabled": true,
                  "description": "Comments start with"
                },
                {
                  "key": "country",
                  "value": "",
                  "disabled": true,
                  "description": "Country where the tsunami source occurred (e.g. Japan)"
                },
                {
                  "key": "day",
                  "value": "",
                  "disabled": true,
                  "description": "Day of the event (1–31)"
                },
                {
                  "key": "id",
                  "value": "",
                  "disabled": true,
                  "description": "Exact event ID"
                },
                {
                  "key": "itemsPerPage",
                  "value": "",
                  "disabled": true,
                  "description": "Number of items per page"
                },
                {
                  "key": "locEnd",
                  "value": "",
                  "disabled": true,
                  "description": "Location name ends with"
                },
                {
                  "key": "locInclude",
                  "value": "",
                  "disabled": true,
                  "description": "Location name includes"
                },
                {
                  "key": "locMatch",
                  "value": "",
                  "disabled": true,
                  "description": "Location name matches exactly"
                },
                {
                  "key": "locNot",
                  "value": "",
                  "disabled": true,
                  "description": "Location name does not include"
                },
                {
                  "key": "locStart",
                  "value": "",
                  "disabled": true,
                  "description": "Location name starts with"
                },
                {
                  "key": "maxCauseCode",
                  "value": "",
                  "disabled": true,
                  "description": "Max cause code. 0-Unknown, 1-Earthquake, 2-Questionable Earthquake, 3-Earthquake and Landslide, 4-Volcano and Earthquake, 5-Volcano/Earthquake/Landslide, 6-Volcano, 7-Volcano and Landslide, 8-Landslide, 9-Meteorological, 10-Explosion, 11-Astronomical Tide. Example: 2,9,11"
                },
                {
                  "key": "maxDamageAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Max damage description. 0-None, 1-LIMITED (<$1M), 2-MODERATE ($1–5M), 3-SEVERE ($5–25M), 4-EXTREME (>$25M)"
                },
                {
                  "key": "maxDamageAmountOrderTotal",
                  "value": "",
                  "disabled": true,
                  "description": "Max total damage description. 0-None, 1-LIMITED (<$1M), 2-MODERATE ($1–5M), 3-SEVERE ($5–25M), 4-EXTREME (>$25M)"
                },
                {
                  "key": "maxDamageMillionsDollars",
                  "value": "",
                  "disabled": true,
                  "description": "Max damage in millions of dollars"
                },
                {
                  "key": "maxDamageMillionsDollarsTotal",
                  "value": "",
                  "disabled": true,
                  "description": "Max total damage in millions of dollars (tsunami + source event)"
                },
                {
                  "key": "maxDeaths",
                  "value": "",
                  "disabled": true,
                  "description": "Max deaths from the tsunami"
                },
                {
                  "key": "maxDeathsAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Max deaths description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "maxDeathsAmountOrderTotal",
                  "value": "",
                  "disabled": true,
                  "description": "Max total deaths description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "maxDeathsTotal",
                  "value": "",
                  "disabled": true,
                  "description": "Max total deaths from tsunami and source event"
                },
                {
                  "key": "maxEqMagnitude",
                  "value": "",
                  "disabled": true,
                  "description": "Max earthquake magnitude [0.0, 9.9]"
                },
                {
                  "key": "maxEventValidity",
                  "value": "",
                  "disabled": true,
                  "description": "Max event validity. −1-erroneous, 0-None, 1-very doubtful, 2-questionable, 3-probable, 4-definite"
                },
                {
                  "key": "maxHousesDestroyed",
                  "value": "",
                  "disabled": true,
                  "description": "Max houses destroyed"
                },
                {
                  "key": "maxHousesDestroyedAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Max houses destroyed description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "maxId",
                  "value": "",
                  "disabled": true,
                  "description": "Maximum event ID"
                },
                {
                  "key": "maxInjuries",
                  "value": "",
                  "disabled": true,
                  "description": "Max injuries from the tsunami"
                },
                {
                  "key": "maxInjuriesAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Max injuries description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "maxLatitude",
                  "value": "",
                  "disabled": true,
                  "description": "Max latitude [−90, 90]"
                },
                {
                  "key": "maxLongitude",
                  "value": "",
                  "disabled": true,
                  "description": "Max longitude [−180, 180]"
                },
                {
                  "key": "maxMaxWaterHeight",
                  "value": "",
                  "disabled": true,
                  "description": "Max maximum water height above sea level (m)"
                },
                {
                  "key": "maxNumRunups",
                  "value": "",
                  "disabled": true,
                  "description": "Max number of runup locations associated with the event"
                },
                {
                  "key": "maxRunupHoriz",
                  "value": "",
                  "disabled": true,
                  "description": "Max maximum horizontal inland flooding distance (m)"
                },
                {
                  "key": "maxYear",
                  "value": "",
                  "disabled": true,
                  "description": "Maximum year"
                },
                {
                  "key": "minCauseCode",
                  "value": "",
                  "disabled": true,
                  "description": "Min cause code. 0-Unknown, 1-Earthquake, 2-Questionable Earthquake, 3-Earthquake and Landslide, 4-Volcano and Earthquake, 5-Volcano/Earthquake/Landslide, 6-Volcano, 7-Volcano and Landslide, 8-Landslide, 9-Meteorological, 10-Explosion, 11-Astronomical Tide. Example: 2,9,11"
                },
                {
                  "key": "minDamageAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Min damage description. 0-None, 1-LIMITED (<$1M), 2-MODERATE ($1–5M), 3-SEVERE ($5–25M), 4-EXTREME (>$25M)"
                },
                {
                  "key": "minDamageAmountOrderTotal",
                  "value": "",
                  "disabled": true,
                  "description": "Min total damage description. 0-None, 1-LIMITED (<$1M), 2-MODERATE ($1–5M), 3-SEVERE ($5–25M), 4-EXTREME (>$25M)"
                },
                {
                  "key": "minDamageMillionsDollars",
                  "value": "",
                  "disabled": true,
                  "description": "Min damage in millions of dollars"
                },
                {
                  "key": "minDamageMillionsDollarsTotal",
                  "value": "",
                  "disabled": true,
                  "description": "Min total damage in millions of dollars (tsunami + source event)"
                },
                {
                  "key": "minDeaths",
                  "value": "",
                  "disabled": true,
                  "description": "Min deaths from the tsunami"
                },
                {
                  "key": "minDeathsAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Min deaths description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "minDeathsAmountOrderTotal",
                  "value": "",
                  "disabled": true,
                  "description": "Min total deaths description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "minDeathsTotal",
                  "value": "",
                  "disabled": true,
                  "description": "Min total deaths from tsunami and source event"
                },
                {
                  "key": "minEqMagnitude",
                  "value": "",
                  "disabled": true,
                  "description": "Min earthquake magnitude [0.0, 9.9]"
                },
                {
                  "key": "minEventValidity",
                  "value": "",
                  "disabled": true,
                  "description": "Min event validity. −1-erroneous, 0-None, 1-very doubtful, 2-questionable, 3-probable, 4-definite"
                },
                {
                  "key": "minHousesDestroyed",
                  "value": "",
                  "disabled": true,
                  "description": "Min houses destroyed"
                },
                {
                  "key": "minHousesDestroyedAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Min houses destroyed description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "minId",
                  "value": "",
                  "disabled": true,
                  "description": "Minimum event ID"
                },
                {
                  "key": "minInjuries",
                  "value": "",
                  "disabled": true,
                  "description": "Min injuries from the tsunami"
                },
                {
                  "key": "minInjuriesAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Min injuries description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "minLatitude",
                  "value": "",
                  "disabled": true,
                  "description": "Min latitude [−90, 90]"
                },
                {
                  "key": "minLongitude",
                  "value": "",
                  "disabled": true,
                  "description": "Min longitude [−180, 180]"
                },
                {
                  "key": "minMaxWaterHeight",
                  "value": "",
                  "disabled": true,
                  "description": "Min maximum water height above sea level (m)"
                },
                {
                  "key": "minNumRunups",
                  "value": "",
                  "disabled": true,
                  "description": "Min number of runup locations associated with the event"
                },
                {
                  "key": "minRunupHoriz",
                  "value": "",
                  "disabled": true,
                  "description": "Min maximum horizontal inland flooding distance (m)"
                },
                {
                  "key": "minYear",
                  "value": "",
                  "disabled": true,
                  "description": "Minimum year"
                },
                {
                  "key": "month",
                  "value": "",
                  "disabled": true,
                  "description": "Month of the event (1–12)"
                },
                {
                  "key": "oceanicTsunami",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by oceanic tsunami (true/false)"
                },
                {
                  "key": "op",
                  "value": "",
                  "disabled": true,
                  "description": "Logical operator for filters"
                },
                {
                  "key": "order",
                  "value": "",
                  "disabled": true,
                  "description": "Sort order. Examples: year:asc, month:desc"
                },
                {
                  "key": "page",
                  "value": "",
                  "disabled": true,
                  "description": "Page number"
                },
                {
                  "key": "regionCode",
                  "value": "30",
                  "disabled": true,
                  "description": "Region code(s). 87 - Alaska (including Aleutian Islands), 40 - Black Sea and Caspian Sea, 74 - Caribbean Sea, 78 - Central Africa, 84 - China/North and South Korea/Philippines/Taiwan, 81 - E Coast Australia/New Zealand/South Pacific Is., 75 - East Coast USA and Canada, 76 - Gulf of America/Mexico, 80 - Hawaii/Johnston Atoll/Midway I, 60 - Indian Ocean (including west coast of Australia), 83 - Indonesia (Pacific Ocean) and Malaysia, 85 - Japan, 86 - Kamchatka and Kuril Islands, 50 - Mediterranean Sea, 82 - New Caledonia/New Guinea/Solomon Is./Vanuatu, 73 - Northeast Atlantic Ocean, 72 - Northwest Atlantic Ocean, 30 - Red Sea and Persian Gulf, 70 - Southeast Atlantic Ocean, 71 - Southwest Atlantic Ocean, 77 - West Coast of Africa, 88 - West Coast of North and Central America, 89 - West Coast of South America. Example: 87,30,89"
                },
                {
                  "key": "runupArea",
                  "value": "",
                  "disabled": true,
                  "description": "State/Province/Prefecture of the runup location"
                },
                {
                  "key": "runupCountry",
                  "value": "",
                  "disabled": true,
                  "description": "Country of the runup location"
                },
                {
                  "key": "runupDoubtful",
                  "value": "n",
                  "disabled": true,
                  "description": "Validity of runup: n-OK, y-Doubtful, m-Meteorological, a-Atmospheric"
                },
                {
                  "key": "runupLocEnd",
                  "value": "",
                  "disabled": true,
                  "description": "Runup location name ends with"
                },
                {
                  "key": "runupLocInclude",
                  "value": "",
                  "disabled": true,
                  "description": "Runup location name includes"
                },
                {
                  "key": "runupLocMatch",
                  "value": "",
                  "disabled": true,
                  "description": "Runup location name matches exactly"
                },
                {
                  "key": "runupLocNot",
                  "value": "",
                  "disabled": true,
                  "description": "Runup location name does not include"
                },
                {
                  "key": "runupLocStart",
                  "value": "",
                  "disabled": true,
                  "description": "Runup location name starts with"
                },
                {
                  "key": "runupMaxDamageAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Max runup damage description. 0-None, 1-LIMITED (<$1M), 2-MODERATE ($1–5M), 3-SEVERE ($5–25M), 4-EXTREME (>$25M)"
                },
                {
                  "key": "runupMaxDamageMillionsDollars",
                  "value": "",
                  "disabled": true,
                  "description": "Max damage at runup location (millions $)"
                },
                {
                  "key": "runupMaxDeaths",
                  "value": "",
                  "disabled": true,
                  "description": "Max deaths at the runup location"
                },
                {
                  "key": "runupMaxDeathsAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Max runup deaths description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "runupMaxDistance",
                  "value": "",
                  "disabled": true,
                  "description": "Max distance from source to runup (km)"
                },
                {
                  "key": "runupMaxHeight",
                  "value": "",
                  "disabled": true,
                  "description": "Max maximum water height at runup location (m)"
                },
                {
                  "key": "runupMaxHousesDestroyed",
                  "value": "",
                  "disabled": true,
                  "description": "Max houses destroyed at runup location"
                },
                {
                  "key": "runupMaxHousesDestroyedAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Max runup houses destroyed description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "runupMaxInjuries",
                  "value": "",
                  "disabled": true,
                  "description": "Max injuries at the runup location"
                },
                {
                  "key": "runupMaxInjuriesAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Max runup injuries description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "runupMaxTravelTime",
                  "value": "",
                  "disabled": true,
                  "description": "Max travel time (minutes)"
                },
                {
                  "key": "runupMaxTroughHt",
                  "value": "",
                  "disabled": true,
                  "description": "Max maximum water trough below sea level (m)"
                },
                {
                  "key": "runupMeasureType",
                  "value": "",
                  "disabled": true,
                  "description": "Type of measurement: 1-Eyewitness water height, 2-Tide Gauge, 3-Deep Ocean Gauge, 4-Post-survey water height, 5-Runup Height post-survey, 6-Atmospheric Wave, 7-Seiche, 8-Runup Height in Harbor, 9-Splash mark, 10-Flow Depth"
                },
                {
                  "key": "runupMinDamageAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Min runup damage description. 0-None, 1-LIMITED (<$1M), 2-MODERATE ($1–5M), 3-SEVERE ($5–25M), 4-EXTREME (>$25M)"
                },
                {
                  "key": "runupMinDamageMillionsDollars",
                  "value": "",
                  "disabled": true,
                  "description": "Min damage at runup location (millions $)"
                },
                {
                  "key": "runupMinDeaths",
                  "value": "",
                  "disabled": true,
                  "description": "Min deaths at the runup location"
                },
                {
                  "key": "runupMinDeathsAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Min runup deaths description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "runupMinDistance",
                  "value": "",
                  "disabled": true,
                  "description": "Min distance from source to runup (km)"
                },
                {
                  "key": "runupMinHeight",
                  "value": "",
                  "disabled": true,
                  "description": "Min maximum water height at runup location (m)"
                },
                {
                  "key": "runupMinHousesDestroyed",
                  "value": "",
                  "disabled": true,
                  "description": "Min houses destroyed at runup location"
                },
                {
                  "key": "runupMinHousesDestroyedAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Min runup houses destroyed description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "runupMinInjuries",
                  "value": "",
                  "disabled": true,
                  "description": "Min injuries at the runup location"
                },
                {
                  "key": "runupMinInjuriesAmountOrder",
                  "value": "",
                  "disabled": true,
                  "description": "Min runup injuries description. 0-None, 1-Few (~1–50), 2-Some (~51–100), 3-Many (~101–1000), 4-Very many (>1000)"
                },
                {
                  "key": "runupMinTravelTime",
                  "value": "",
                  "disabled": true,
                  "description": "Min travel time (minutes)"
                },
                {
                  "key": "runupMinTroughHt",
                  "value": "",
                  "disabled": true,
                  "description": "Min maximum water trough below sea level (m)"
                },
                {
                  "key": "runupRegion",
                  "value": "30",
                  "disabled": true,
                  "description": "Runup region code(s). 87 - Alaska (including Aleutian Islands), 40 - Black Sea and Caspian Sea, 74 - Caribbean Sea, 78 - Central Africa, 84 - China/North and South Korea/Philippines/Taiwan, 81 - E Coast Australia/New Zealand/South Pacific Is., 75 - East Coast USA and Canada, 76 - Gulf of America/Mexico, 80 - Hawaii/Johnston Atoll/Midway I, 60 - Indian Ocean (including west coast of Australia), 83 - Indonesia (Pacific Ocean) and Malaysia, 85 - Japan, 86 - Kamchatka and Kuril Islands, 50 - Mediterranean Sea, 82 - New Caledonia/New Guinea/Solomon Is./Vanuatu, 73 - Northeast Atlantic Ocean, 72 - Northwest Atlantic Ocean, 30 - Red Sea and Persian Gulf, 70 - Southeast Atlantic Ocean, 71 - Southwest Atlantic Ocean, 77 - West Coast of Africa, 88 - West Coast of North and Central America, 89 - West Coast of South America. Example: 87,30,89"
                },
                {
                  "key": "tsuAssoc",
                  "value": "",
                  "disabled": true,
                  "description": "Tsunami association filter"
                },
                {
                  "key": "year",
                  "value": "",
                  "disabled": true,
                  "description": "Exact year of the event"
                }
              ]
            },
            "description": "A pass-through proxy for the NOAA National Centers for Environmental Information Global Historical Tsunami Database. This is a historical geophysical catalogue, not an astrological calculation, and it reaches back to the second millennium BC — years before the common era appear as negative numbers.\n\nQuery parameters are forwarded to NOAA unchanged. The main ones are `year`, `minYear` and `maxYear`, `day` and `month`, `country`, `area` and `regionCode` (numeric ocean-basin codes such as 85 for Japan, 50 for the Mediterranean and 89 for the west coast of South America; several can be given comma-separated), a latitude and longitude box, `minCauseCode`/`maxCauseCode` (0 unknown, 1 earthquake, 6 volcano, 8 landslide, 9 meteorological, 10 explosion, 11 astronomical tide, among others), `minEventValidity`/`maxEventValidity` on a scale from -1 erroneous to 4 definite, and thresholds on wave height, earthquake magnitude, deaths, injuries, houses destroyed and damage in millions of dollars. Several of those also come in an 'amount order' form, a coarse 0-4 banding used where an exact figure was never recorded. Paging uses `page`, `itemsPerPage` and `order` (for example `year:asc`).\n\nThe response is NOAA's own envelope with an `items` list. Each item carries an id, the date parts, `eventValidity`, `causeCode`, the linked earthquake or volcano event ids, country and `locationName`, `regionCode`, latitude and longitude, `maxWaterHeight` in metres, the number of recorded runups, tsunami intensity and the death and damage order bands for both the source region and the event as a whole.\n\nCosts 1 credit on success. Failed requests are not charged."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Pancha Pakshi",
      "item": [
        {
          "name": "Pancha Pakshi (day in ten yamas)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/panchpakshi/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "panchpakshi"
              ]
            },
            "description": "Pancha Pakshi is a South Indian timing system that assigns every person one of five birds — vulture, owl, crow, cock or peacock — and divides the day into ten periods called yamas, five between sunrise and sunset and five between sunset and the next sunrise. In the full tradition each bird passes through five states of activity (ruling, eating, walking, sleeping and dying) across those periods, and work is timed to the periods when your own bird is strong. This endpoint returns the two inputs that scheme is built on: the yama boundaries for a given day and place, and the birth bird for a given moment.\n\n`datetime`, `latitude`, `longitude` and `timezone_as_float` set the day and the place. `fixed` chooses how the day is divided: false uses real local sunrise and sunset, so daytime and nighttime yamas have different lengths and shift through the year; true uses a flat 06:00 to 18:00 day, which gives ten equal 2 hour 24 minute periods and is what the traditional tables assume.\n\nThe response is `{yamas, birth panchpakshi}`. `yamas` has `daytime` and `nighttime`, each a list of five `{start, end}` local timestamps in 'YYYY-MM-DD HH:MM:SS' form. `birth panchpakshi` is a single string, one of Vulture, Owl, Crow, Cock or Peacock, derived from the Moon's nakshatra group at that instant together with the paksha: the same nakshatra group yields a different bird in the waxing and waning fortnights, except for the middle group, which gives Crow in both.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"fixed\": true,\n  \"datetime\": \"2024-11-21T09:39:20.910Z\",\n  \"latitude\": 26.1046,\n  \"longitude\": 74.319,\n  \"timezone_as_float\": 5.5\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Planets",
      "item": [
        {
          "name": "Planetary details",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/planetary_details/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "planetary_details"
              ]
            },
            "description": "A single call that runs nine separate ephemeris scans over a date range and returns them together. It is the endpoint to reach for when you want everything that happens to the planets between two dates rather than a snapshot: sign and nakshatra changes, retrograde spells, declination alignments and out-of-bounds excursions.\n\n`start_date` and `end_date` bound the window, `planet_name` and `sign` narrow the three planet-specific sections, and `longitude` is the ecliptic degree tested by the position search. Supplying `geo_latitude` and `geo_longitude` adds an extra section for ascendant ingress and is otherwise omitted. Note that the window is scanned in full, so a multi-year range is considerably slower than a few days.\n\nThe response holds, under keys with spaces in their names, `sign transitions`, `planet at position` (when the named planet sits at the given longitude in the given sign), `planet ingress exit` (entry and exit times for the named planet in the named sign only), `planet nakshatra ingress exit` (keyed by all twenty-seven nakshatras, each a list of `{start_date, end_date}` windows), `planet sankranti times` (keyed by every supported body, including the Uranian points and planetary moons), `planet retrogression dates` (keyed by planet, each a list of `{start, end}`), `planet krantisamya dates` (a list of `{Planet_1, Planet_2, DateTime, Alignment}` where Alignment is North-North, South-South or Opposite, that is, equal or mirrored declination), `abhijit nakshatra periods` and `planet oob range` (the spells when the body is beyond the Sun's maximum declination). Empty lists mean nothing of that kind happened inside your window.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"start_date\": \"2024-11-21T08:33:35.539Z\",\n  \"end_date\": \"2024-11-22T08:33:35.539Z\",\n  \"longitude\": 76.125,\n  \"planet_name\": \"mercury\",\n  \"sign\": \"Taurus\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Vrat & upavas",
      "item": [
        {
          "name": "Vrat and upavas",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/vrat-upavas/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "vrat-upavas"
              ]
            },
            "description": "Vrat and upavas are the recurring fasting and observance days of the Hindu month, each tied to a particular tithi. This endpoint returns every occurrence of the types you ask for across a whole year, read from a precomputed table rather than calculated on the request, so a year of eighteen observance types is one indexed query.\n\nEach type is defined purely by which tithi numbers it matches, in the 1-30 scheme where 1-15 are Shukla Pratipada to Purnima, 16-29 are Krishna Pratipada to Chaturdashi and 30 is Amavasya. So `ekadashi` returns both Ekadashis of every month, `pradosham` both Trayodashis, `shivarathri` the Krishna Chaturdashi of every month (the monthly Masik Shivaratri, not only Maha Shivaratri), `sashti` and `durgashtami` and `vinayaka_chathurthi` the Shukla sixth, eighth and fourth, `kaalashtami` and `sankatahara_chathurthi` their Krishna counterparts, `amavasya` and `pournami` the new and full Moons, `sathyanarayana_puja` the full Moon, `chandra_dharshan` and `moondraam_pirai` the first and third days of the waxing Moon, and `srartha_yoga`, `ashtaka`, `manvaadhi` and `yugadhi` their own small sets of tithis. Be aware that `mahalaya_paksha` matches every tithi from 15 to 30, which means the whole dark fortnight of every lunar month rather than just the Bhadrapada Pitru Paksha.\n\n`year` and `keys` are required. Passing `latitude`, `longitude` and `timezone_as_float` as well adds two live-computed fields to each event: `moonrise`, the evening moonrise falling inside that event's tithi window at your location, and, for `vinayaka_chathurthi` rows only, `puja_muhurat` with `start`, `end` and `duration_minutes` for the Madhyahna Ganesha Puja window. Both come back null if they cannot be computed, and neither is present at all if you omit the coordinates.\n\nThe response is `{data}` keyed by each requested type, each holding a chronological list of `{date, month, tithi, paksha, start_time, end_time}` where the times are the exact instants the tithi begins and ends. Dates are precomputed for 2006 to 2046 inclusive; a year outside that range returns empty lists rather than an error.\n\nCosts 1 credit on success. Failed requests are not charged.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"year\": 2026,\n  \"month\": 9,\n  \"keys\": [\n    \"ekadashi\",\n    \"amavasya\",\n    \"pradosham\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    }
  ]
}
