/api/astro/karana_scan/1 creditKarana scan
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. This 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. The 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.
https://yogataraapi.prahlad.app/api/astro/karana_scan/Authentication
Send your key in the X-API-Key header. Keys are server-side credentials — never put one in browser JavaScript or a mobile app.
X-API-Key: yt_live_a1b2c3d4_…
Content-Type: application/jsonRequest fields
| Field | Type | Required | Notes |
|---|---|---|---|
| karana_name | string | required | KimstughnaBavaBalavaKaulavaTaitulaGarajaVanijaVishtiShakuniChatushpadaNaga |
| 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. |
| year | integer | required | Year of birth as a number, e.g. 1990. Four digits. min 1800 · max 2400 |
Example request
curl -X POST https://yogataraapi.prahlad.app/api/astro/karana_scan/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"karana_name":"Kimstughna","timezone_as_float":5.5,"year":2026}'Response
{
"data": {
"year": 2026,
"karana_name": "Kimstughna",
"rows": [
{
"start": "2026-01-18T19:52:39+00:00",
"end": "2026-01-19T08:22:04+00:00"
},
{
"start": "2026-02-17T12:01:47+00:00",
"end": "2026-02-17T23:48:42+00:00"
},
{
"start": "2026-03-19T01:24:05+00:00",
"end": "2026-03-19T12:26:49+00:00"
},
{
"start": "2026-04-17T11:52:21+00:00",
"end": "2026-04-17T22:18:56+00:00"
},
{
"start": "2026-05-16T20:01:32+00:00",
"end": "2026-05-17T06:07:05+00:00"
},
{
"start": "2026-06-15T02:54:39+00:00",
"end": "2026-06-15T12:57:08+00:00"
},
{
"start": "2026-07-14T09:44:04+00:00",
"end": "2026-07-14T20:00:36+00:00"
},
{
"start": "2026-08-12T17:37:11+00:00",
"end": "2026-08-13T04:21:33+00:00"
},
{
"start": "2026-09-11T03:27:28+00:00",
"end": "2026-09-11T14:48:43+00:00"
},
{
"start": "2026-10-10T15:50:36+00:00",
"end": "2026-10-11T03:52:40+00:00"
},
{
"start": "2026-11-09T07:02:42+00:00",
"end": "2026-11-09T19:43:50+00:00"
},
{
"start": "2026-12-09T00:52:31+00:00",
"end": "2026-12-09T14:03:05+00:00"
}
]
},
"message": "successful",
"is_error": false
}Captured from a real call using the exact request above. Results sit under data.
Errors
Metering errors return { "error": "…", "message": "<code>", "is_error": true }. Show error to people and branch on message. See the error reference.