Skip to content
POST/api/astro/yoga_scan/1 credit

Nitya Yoga year scan

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. `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. The 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.

https://yogataraapi.prahlad.app/api/astro/yoga_scan/
Test Request

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/json

Request fields

FieldTypeRequiredNotes
timezone_as_floatnumber (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.

yearintegerrequired

Year of birth as a number, e.g. 1990. Four digits.

min 1800 · max 2400

yoga_namestringrequired
VishkambhaPreetiAyushmanSaubhagyaShobhanaAtigandaSukarmaDhritiShoolaGandaVriddhiDhruva

Example request

curl -X POST https://yogataraapi.prahlad.app/api/astro/yoga_scan/ \
  -H "X-API-Key: $OCCULT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"timezone_as_float":5.5,"year":2026,"yoga_name":"Vishkambha"}'

Response

{
  "data": {
    "year": 2026,
    "yoga_name": "Vishkambha",
    "rows": [
      {
        "start": "2026-01-04T20:17:27.999999+00:00",
        "end": "2026-01-05T17:17:16.999999+00:00"
      },
      {
        "start": "2026-01-30T11:28:35.999999+00:00",
        "end": "2026-01-31T08:03:35.999999+00:00"
      },
      {
        "start": "2026-02-24T22:56:20.999999+00:00",
        "end": "2026-02-25T19:58:43.999999+00:00"
      },
      {
        "start": "2026-03-22T10:11:35.999999+00:00",
        "end": "2026-03-23T06:52:06.999999+00:00"
      },
      {
        "start": "2026-04-17T01:51:55.999999+00:00",
        "end": "2026-04-17T22:15:28.999999+00:00"
      },
      {
        "start": "2026-05-12T17:49:31.999999+00:00",
        "end": "2026-05-13T15:24:49.999999+00:00"
      },
      {
        "start": "2026-06-07T04:31:57.999999+00:00",
        "end": "2026-06-08T03:58:13.999999+00:00"
      },
      {
        "start": "2026-07-02T11:09:21.999999+00:00",
        "end": "2026-07-03T11:30:01.999999+00:00"
      },
      {
        "start": "2026-07-27T17:24:55.999999+00:00",
        "end": "2026-07-28T18:03:37.999999+00:00"
      },
      {
        "start": "2026-08-21T23:48:40.999999+00:00",
        "end": "2026-08-23T00:44:33.999999+00:00"
      },
      {
        "start": "2026-09-16T06:52:40.999999+00:00",
        "end": "2026-09-17T07:19:46.999999+00:00"
      },
      {
        "start": "2026-10-11T15:35:35.999999+00:00",
        "end": "2026-10-12T15:02:25.999999+00:00"
      },
      {
        "start": "2026-11-05T23:39:40.999999+00:00",
        "end": "2026-11-06T22:40:11.999999+00:00"
      },
      {
        "start": "2026-12-01T06:45:12.999999+00:00",
        "end": "2026-12-02T05:01:50.999999+00:00"
      },
      {
        "start": "2026-12-26T18:52:33.999999+00:00",
        "end": "2026-12-27T15:23:47.999999+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.