curl -X POST https://yogataraapi.prahlad.app/api/astro/patyayini_dasha/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keys":["get_dasha_periods"],"date_time":"2025-02-13T05:07:54.585Z","latitude":26.9124,"longitude":75.7873,"timezone_as_float":5.5}'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. One 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. Two 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.
| Field | Type | Required | Notes |
|---|---|---|---|
| date_time | string (date-time) | required | The moment to calculate for, ISO 8601. ALWAYS include an offset or a trailing Z - a value with no zone is read as Asia/Kolkata (UTC+05:30), not UTC, and can return the previous day's result with a 200. '2026-09-01T06:00:00Z' and '2026-09-01 06:00:00' are different instants and give different answers. |
| keys | array | required | Which calculations to return, as a list of names. See the key table for this endpoint; an unrecognised name rejects the whole request. One call costs one credit however many keys you ask for, so request everything you need at once rather than making several calls. |
| latitude | number (double) | required | Latitude of the place, in decimal degrees. Positive is north, negative is south. Example: 26.9124 for Jaipur, 40.7128 for New York. Minutes and seconds are not accepted - convert first. min -90 · max 90 |
| longitude | number (double) | required | Longitude of the place, in decimal degrees. Positive is east, negative is west. Example: 75.7873 for Jaipur, -74.0060 for New York. Note the sign: a missing minus puts New York in China. min -180 · max 180 |
| timezone_as_float | number (double) | required | UTC offset of the place, in hours, as a decimal. Example: 5.5 for India (UTC+05:30), -5 for New York in winter, 5.75 for Nepal. This is NOT validated against date_time - if the two disagree you get a successful response for the wrong moment, so derive both from the same source. Use the offset in force on that date, not today's: a summer birth in a country with daylight saving needs the summer offset. min -12 · max 14 |
Ask for exactly the calculations you want by listing them in keys. An unknown key rejects the whole request, and you are charged 1 credit however many you ask for — so batch them.
| Key | Extra fields needed | Description | |
|---|---|---|---|
| get_dasha_periods | — | The full Patyayini sequence for one year: a list of `[planet, sub_periods, duration]`, one entry per major period. `planet` is an integer index into Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn; `duration` is the length of that period in days, and the durations across the list add up to roughly 365.24. `sub_periods` is a list of seven `[lord, start]` pairs, `lord` being the same integer index and `start` a string of the form `"YYYY-MM-DD {'degrees': H, 'minutes': M, 'seconds': S}"`, in which the three numbers are the hours, minutes and seconds of that day. |