Panchang & muhurat

Daily panchang, choghadiya, and muhurat windows with scores and rejection reasons.

Panchang for a date and place

GET/v1/panchang

1 credit · Secret or publishable key · getPanchang

Tithi, nakshatra, yoga, karana, vara; sunrise, sunset; Rahu Kaal, Gulika, Yamaganda, Abhijit. Tithi start and end times: GET /v1/calendar/tithis. End times of yoga and karana, and moonrise, are not computed.

Parameters

NameInTypeNotes
date requiredquerystring (date) e.g. "1990-08-13"
latquerynumberWith lon; or use place_id. ≥ -90 · ≤ 90
lonquerynumber ≥ -180 · ≤ 180
place_idquerystring
langquerystring one of en, hi · default "en"

Response

JSON { data, meta, warnings }, where data is:

  • date string (date) required

    e.g. "1990-08-13"

  • place Coordinates required
    • latitude number required

      ≥ -90 · ≤ 90

    • longitude number required

      ≥ -180 · ≤ 180

  • timezone object required
    • name string required
    • utc_offset string required
  • tithi object required
    • number integer required

      ≥ 1 · ≤ 30

    • name string required
    • label string required
    • paksha string required
  • nakshatra object required
    • name string required
    • label string required
    • lord string required
    • next string required
  • yoga object required
    • name string required
    • label string required
    • quality string required
  • karana object required
    • number integer required

      ≥ 1 · ≤ 60

    • name string required
    • label string required
  • vara object required
    • name string required
    • label string required
    • lord string required
  • sunrise string (date-time) required
  • sunset string (date-time) required
  • rahu_kaal TimeWindow or null required

    One of:

    1. TimeWindow
      Fields
      • start string (date-time) required
      • end string (date-time) required
    2. null
  • gulika_kaal TimeWindow or null required

    One of:

    1. TimeWindow
      Fields
      • start string (date-time) required
      • end string (date-time) required
    2. null
  • yamaganda TimeWindow or null required

    One of:

    1. TimeWindow
      Fields
      • start string (date-time) required
      • end string (date-time) required
    2. null
  • abhijit TimeWindow or null required

    One of:

    1. TimeWindow
      Fields
      • start string (date-time) required
      • end string (date-time) required
    2. null

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl 'https://api.astrologics.in/v1/panchang?date=2026-10-02&lat=28.6139&lon=77.209' \
  -H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/panchang?date=2026-10-02&lat=28.6139&lon=77.209", {
  headers: { Authorization: "Bearer al_test_YOUR_KEY" },
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

req = urllib.request.Request(
    "https://api.astrologics.in/v1/panchang?date=2026-10-02&lat=28.6139&lon=77.209",
    method="GET",
    headers={"Authorization": "Bearer al_test_YOUR_KEY"},
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/panchang?date=2026-10-02&lat=28.6139&lon=77.209');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY'],
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 1,452 characters
{
  "data": {
    "date": "2026-10-02",
    "place": {
      "latitude": 28.6139,
      "longitude": 77.209
    },
    "timezone": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30"
    },
    "tithi": {
      "number": 22,
      "name": "saptami",
      "label": "Saptami",
      "paksha": "krishna"
    },
    "nakshatra": {
      "name": "mrigashira",
      "label": "Mrigashira",
      "lord": "mars",
      "next": "ardra"
    },
    "yoga": {
      "name": "vyatipata",
      "label": "Vyatipata",
      "quality": "inauspicious"
    },
    "karana": {
      "number": 43,
      "name": "vishti",
      "label": "Vishti"
    },
    "vara": {
      "name": "shukravara",
      "label": "Shukravara",
      "lord": "venus"
    },
    "sunrise": "2026-10-02T06:15:00+05:30",
    "sunset": "2026-10-02T18:06:00+05:30",
    "rahu_kaal": {
      "start": "2026-10-02T10:41:00+05:30",
      "end": "2026-10-02T12:10:00+05:30"
    },
    "gulika_kaal": {
      "start": "2026-10-02T06:15:00+05:30",
      "end": "2026-10-02T07:43:00+05:30"
    },
    "yamaganda": {
      "start": "2026-10-02T13:39:00+05:30",
      "end": "2026-10-02T15:08:00+05:30"
    },
    "abhijit": {
      "start": "2026-10-02T11:46:00+05:30",
      "end": "2026-10-02T12:34:00+05:30"
    }
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.9.28",
    "mode": "live",
    "credits_charged": 1
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Day and night choghadiya

GET/v1/panchang/choghadiya

1 credit · Secret or publishable key · getChoghadiya

Parameters

NameInTypeNotes
date requiredquerystring (date) e.g. "1990-08-13"
latquerynumberWith lon; or use place_id. ≥ -90 · ≤ 90
lonquerynumber ≥ -180 · ≤ 180
place_idquerystring
langquerystring one of en, hi · default "en"

Response

JSON { data, meta, warnings }, where data is:

  • date string (date) required

    e.g. "1990-08-13"

  • periods array of object required
    • name string required
    • label string required
    • quality string required
    • part string required

      one of day, night

    • start string (date-time) required
    • end string (date-time) required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl 'https://api.astrologics.in/v1/panchang/choghadiya?date=2026-10-02&lat=28.6139&lon=77.209' \
  -H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/panchang/choghadiya?date=2026-10-02&lat=28.6139&lon=77.209", {
  headers: { Authorization: "Bearer al_test_YOUR_KEY" },
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

req = urllib.request.Request(
    "https://api.astrologics.in/v1/panchang/choghadiya?date=2026-10-02&lat=28.6139&lon=77.209",
    method="GET",
    headers={"Authorization": "Bearer al_test_YOUR_KEY"},
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/panchang/choghadiya?date=2026-10-02&lat=28.6139&lon=77.209');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY'],
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 3,572 characters
{
  "data": {
    "date": "2026-10-02",
    "periods": [
      {
        "name": "char",
        "label": "Char",
        "quality": "neutral",
        "part": "day",
        "start": "2026-10-02T06:15:00+05:30",
        "end": "2026-10-02T07:43:00+05:30"
      },
      {
        "name": "labh",
        "label": "Labh",
        "quality": "good",
        "part": "day",
        "start": "2026-10-02T07:43:00+05:30",
        "end": "2026-10-02T09:12:00+05:30"
      },
      {
        "name": "amrit",
        "label": "Amrit",
        "quality": "excellent",
        "part": "day",
        "start": "2026-10-02T09:12:00+05:30",
        "end": "2026-10-02T10:41:00+05:30"
      },
      {
        "name": "kaal",
        "label": "Kaal",
        "quality": "avoid",
        "part": "day",
        "start": "2026-10-02T10:41:00+05:30",
        "end": "2026-10-02T12:10:00+05:30"
      },
      {
        "name": "shubh",
        "label": "Shubh",
        "quality": "good",
        "part": "day",
        "start": "2026-10-02T12:10:00+05:30",
        "end": "2026-10-02T13:39:00+05:30"
      },
      {
        "name": "rog",
        "label": "Rog",
        "quality": "avoid",
        "part": "day",
        "start": "2026-10-02T13:39:00+05:30",
        "end": "2026-10-02T15:08:00+05:30"
      },
      {
        "name": "udveg",
        "label": "Udveg",
        "quality": "caution",
        "part": "day",
        "start": "2026-10-02T15:08:00+05:30",
        "end": "2026-10-02T16:37:00+05:30"
      },
      {
        "name": "char",
        "label": "Char",
        "quality": "neutral",
        "part": "day",
        "start": "2026-10-02T16:37:00+05:30",
        "end": "2026-10-02T18:06:00+05:30"
      },
      {
        "name": "rog",
        "label": "Rog",
        "quality": "avoid",
        "part": "night",
        "start": "2026-10-02T18:06:00+05:30",
        "end": "2026-10-02T19:37:00+05:30"
      },
      {
        "name": "kaal",
        "label": "Kaal",
        "quality": "avoid",
        "part": "night",
        "start": "2026-10-02T19:37:00+05:30",
        "end": "2026-10-02T21:08:00+05:30"
      },
      {
        "name": "labh",
        "label": "Labh",
        "quality": "good",
        "part": "night",
        "start": "2026-10-02T21:08:00+05:30",
        "end": "2026-10-02T22:39:00+05:30"
      },
      {
        "name": "udveg",
        "label": "Udveg",
        "quality": "caution",
        "part": "night",
        "start": "2026-10-02T22:39:00+05:30",
        "end": "2026-10-03T00:10:00+05:30"
      },
      {
        "name": "shubh",
        "label": "Shubh",
        "quality": "good",
        "part": "night",
        "start": "2026-10-03T00:10:00+05:30",
        "end": "2026-10-03T01:41:00+05:30"
      },
      {
        "name": "amrit",
        "label": "Amrit",
        "quality": "excellent",
        "part": "night",
        "start": "2026-10-03T01:41:00+05:30",
        "end": "2026-10-03T03:12:00+05:30"
      },
      {
        "name": "char",
        "label": "Char",
        "quality": "neutral",
        "part": "night",
        "start": "2026-10-03T03:12:00+05:30",
        "end": "2026-10-03T04:43:00+05:30"
      },
      {
        "name": "rog",
        "label": "Rog",
        "quality": "avoid",
        "part": "night",
        "start": "2026-10-03T04:43:00+05:30",
        "end": "2026-10-03T06:15:00+05:30"
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.9.28",
    "mode": "live",
    "credits_charged": 1
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Supported muhurat activities

GET/v1/muhurat/activities

0 credits · Secret or publishable key · listMuhuratActivities

Response

JSON { data, meta, warnings }, where data is:

  • activities array of object required
    • id string required
    • label string required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl 'https://api.astrologics.in/v1/muhurat/activities' \
  -H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/muhurat/activities", {
  headers: { Authorization: "Bearer al_test_YOUR_KEY" },
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

req = urllib.request.Request(
    "https://api.astrologics.in/v1/muhurat/activities",
    method="GET",
    headers={"Authorization": "Bearer al_test_YOUR_KEY"},
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/muhurat/activities');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY'],
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 911 characters
{
  "data": {
    "activities": [
      {
        "id": "marriage",
        "label": "Marriage / engagement"
      },
      {
        "id": "griha-pravesh",
        "label": "Griha pravesh (house warming)"
      },
      {
        "id": "business",
        "label": "Business / shop opening"
      },
      {
        "id": "vehicle",
        "label": "Buying a vehicle"
      },
      {
        "id": "travel",
        "label": "Starting a journey"
      },
      {
        "id": "education",
        "label": "Starting education (vidyarambha)"
      },
      {
        "id": "namkaran",
        "label": "Naming a child (namkaran)"
      },
      {
        "id": "property",
        "label": "Buying land or property"
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.9.28",
    "mode": "live",
    "credits_charged": 0
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Days rated for an activity, with scores and rejection reasons

GET/v1/muhurat/search

2 credits · Secret key (test or live) · searchMuhurat

Parameters

NameInTypeNotes
activity requiredquerystring
from requiredquerystring (date) e.g. "1990-08-13"
to requiredquerystring (date) e.g. "1990-08-13"
latquerynumberWith lon; or use place_id. ≥ -90 · ≤ 90
lonquerynumber ≥ -180 · ≤ 180
place_idquerystring
limitqueryinteger ≥ 1 · ≤ 100 · default 20
cursorquerystring

Response

JSON { data, meta, warnings }, where data is:

  • activity string required
  • days array of object required
    • date string (date) required

      e.g. "1990-08-13"

    • score number required
    • band string required
    • rejected boolean required
    • reasons array of string required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl 'https://api.astrologics.in/v1/muhurat/search?activity=marriage&from=2026-10-01&to=2026-10-31&lat=28.6139&lon=77.209' \
  -H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/muhurat/search?activity=marriage&from=2026-10-01&to=2026-10-31&lat=28.6139&lon=77.209", {
  headers: { Authorization: "Bearer al_test_YOUR_KEY" },
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

req = urllib.request.Request(
    "https://api.astrologics.in/v1/muhurat/search?activity=marriage&from=2026-10-01&to=2026-10-31&lat=28.6139&lon=77.209",
    method="GET",
    headers={"Authorization": "Bearer al_test_YOUR_KEY"},
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/muhurat/search?activity=marriage&from=2026-10-01&to=2026-10-31&lat=28.6139&lon=77.209');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY'],
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 5,277 characters
{
  "data": {
    "activity": "marriage",
    "days": [
      {
        "date": "2026-10-01",
        "score": 80,
        "band": "Excellent",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-02",
        "score": 44,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vyatipata yoga",
          "Vishti (Bhadra)"
        ]
      },
      {
        "date": "2026-10-03",
        "score": 32,
        "band": "Avoid",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-04",
        "score": 4,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Rikta tithi",
          "Parigha yoga"
        ]
      },
      {
        "date": "2026-10-05",
        "score": 52,
        "band": "Fair",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-06",
        "score": 32,
        "band": "Avoid",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-07",
        "score": 52,
        "band": "Fair",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-08",
        "score": 52,
        "band": "Fair",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-09",
        "score": 56,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Rikta tithi"
        ]
      },
      {
        "date": "2026-10-10",
        "score": 32,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Amavasya"
        ]
      },
      {
        "date": "2026-10-11",
        "score": 56,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vaidhriti yoga"
        ]
      },
      {
        "date": "2026-10-12",
        "score": 74,
        "band": "Excellent",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-13",
        "score": 32,
        "band": "Avoid",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-14",
        "score": 56,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Rikta tithi"
        ]
      },
      {
        "date": "2026-10-15",
        "score": 52,
        "band": "Fair",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-16",
        "score": 52,
        "band": "Fair",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-17",
        "score": 16,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Atiganda yoga"
        ]
      },
      {
        "date": "2026-10-18",
        "score": 24,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vishti (Bhadra)"
        ]
      },
      {
        "date": "2026-10-19",
        "score": 56,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Rikta tithi"
        ]
      },
      {
        "date": "2026-10-20",
        "score": 20,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Rikta tithi",
          "Shula yoga"
        ]
      },
      {
        "date": "2026-10-21",
        "score": 46,
        "band": "Weak",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-22",
        "score": 32,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vishti (Bhadra)"
        ]
      },
      {
        "date": "2026-10-23",
        "score": 52,
        "band": "Fair",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-24",
        "score": 44,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vyaghata yoga"
        ]
      },
      {
        "date": "2026-10-25",
        "score": 52,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vishti (Bhadra)"
        ]
      },
      {
        "date": "2026-10-26",
        "score": 36,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vajra yoga"
        ]
      },
      {
        "date": "2026-10-27",
        "score": 16,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vyatipata yoga"
        ]
      },
      {
        "date": "2026-10-28",
        "score": 52,
        "band": "Fair",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-29",
        "score": 40,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Rikta tithi",
          "Parigha yoga"
        ]
      },
      {
        "date": "2026-10-30",
        "score": 52,
        "band": "Fair",
        "rejected": false,
        "reasons": []
      },
      {
        "date": "2026-10-31",
        "score": 32,
        "band": "Avoid",
        "rejected": false,
        "reasons": []
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.9.28",
    "mode": "live",
    "credits_charged": 2
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Muhurat windows with tara bala and chandra bala for one person

POST/v1/muhurat/personal

3 credits · Secret key (test or live) · searchMuhuratPersonal

Request body

  • birth Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • activity string required
  • from string (date) required

    e.g. "1990-08-13"

  • to string (date) required

    e.g. "1990-08-13"

  • place Coordinates or object or object

    Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

    One of:

    1. Coordinates
      Fields
      • latitude number required

        ≥ -90 · ≤ 90

      • longitude number required

        ≥ -180 · ≤ 180

      No other fields are accepted.

    2. object
      Fields
      • place_id string required

      No other fields are accepted.

    3. object
      Fields
      • query string required

        at least 2 characters · at most 120 characters

      No other fields are accepted.

  • options Options
    • ayanamsa string

      Each system is its Swiss Ephemeris definition (a constant offset from Lahiri). Applies to chart operations; KP operations always use KP-New and the personal muhurat stays Lahiri. meta.ayanamsa names the system used.

      one of lahiri, raman, krishnamurti, yukteshwar, fagan_bradley · default "lahiri"

    • house_system string

      one of whole_sign · default "whole_sign"

    • node string

      one of true, mean · default "true"

    • lang string

      one of en, hi · default "en"

    • view string

      compact drops labels and prose — for LLM callers.

      one of full, compact · default "full"

    No other fields are accepted.

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • activity string required
  • days array of object required
    • date string (date) required

      e.g. "1990-08-13"

    • score number required
    • band string required
    • rejected boolean required
    • reasons array of string required
    • tara_bala any required
    • chandra_bala any required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/muhurat/personal' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}},"activity":"marriage","from":"2026-11-01","to":"2026-11-30","place":{"latitude":28.6139,"longitude":77.209}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/muhurat/personal", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    },
    "activity": "marriage",
    "from": "2026-11-01",
    "to": "2026-11-30",
    "place": {
      "latitude": 28.6139,
      "longitude": 77.209
    }
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
    "activity": "marriage",
    "from": "2026-11-01",
    "to": "2026-11-30",
    "place": {
        "latitude": 28.6139,
        "longitude": 77.209,
    },
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/muhurat/personal",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/muhurat/personal');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}},"activity":"marriage","from":"2026-11-01","to":"2026-11-30","place":{"latitude":28.6139,"longitude":77.209}}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 14,046 characters
{
  "data": {
    "activity": "marriage",
    "days": [
      {
        "date": "2026-11-01",
        "score": 18,
        "band": "Avoid",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 7,
          "tara": 7,
          "name": "Vadha",
          "good": false,
          "bad": true,
          "note": null
        },
        "chandra_bala": {
          "from": 4,
          "good": false,
          "bad": true
        }
      },
      {
        "date": "2026-11-02",
        "score": 50,
        "band": "Weak",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 8,
          "tara": 8,
          "name": "Mitra",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 4,
          "good": false,
          "bad": true
        }
      },
      {
        "date": "2026-11-03",
        "score": 42,
        "band": "Avoid",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 9,
          "tara": 9,
          "name": "Ati-Mitra",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 5,
          "good": false,
          "bad": false
        }
      },
      {
        "date": "2026-11-04",
        "score": 52,
        "band": "Fair",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 10,
          "tara": 1,
          "name": "Janma",
          "good": false,
          "bad": false,
          "note": "Janma tara — the birth star itself. Read as mixed: acceptable for personal affairs, avoided for travel."
        },
        "chandra_bala": {
          "from": 5,
          "good": false,
          "bad": false
        }
      },
      {
        "date": "2026-11-05",
        "score": 82,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vaidhriti yoga"
        ],
        "tara_bala": {
          "count": 11,
          "tara": 2,
          "name": "Sampat",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 6,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-06",
        "score": 68,
        "band": "Good",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 12,
          "tara": 3,
          "name": "Vipat",
          "good": false,
          "bad": true,
          "note": null
        },
        "chandra_bala": {
          "from": 6,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-07",
        "score": 34,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Rikta tithi",
          "Vishti (Bhadra)"
        ],
        "tara_bala": {
          "count": 13,
          "tara": 4,
          "name": "Kshema",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 6,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-08",
        "score": 38,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Amavasya"
        ],
        "tara_bala": {
          "count": 14,
          "tara": 5,
          "name": "Pratyari",
          "good": false,
          "bad": true,
          "note": null
        },
        "chandra_bala": {
          "from": 7,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-09",
        "score": 42,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Amavasya"
        ],
        "tara_bala": {
          "count": 15,
          "tara": 6,
          "name": "Sadhaka",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 7,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-10",
        "score": 34,
        "band": "Avoid",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 16,
          "tara": 7,
          "name": "Vadha",
          "good": false,
          "bad": true,
          "note": null
        },
        "chandra_bala": {
          "from": 8,
          "good": false,
          "bad": true
        }
      },
      {
        "date": "2026-11-11",
        "score": 34,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Atiganda yoga"
        ],
        "tara_bala": {
          "count": 17,
          "tara": 8,
          "name": "Mitra",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 8,
          "good": false,
          "bad": true
        }
      },
      {
        "date": "2026-11-12",
        "score": 50,
        "band": "Weak",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 17,
          "tara": 8,
          "name": "Mitra",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 8,
          "good": false,
          "bad": true
        }
      },
      {
        "date": "2026-11-13",
        "score": 18,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Rikta tithi",
          "Vishti (Bhadra)"
        ],
        "tara_bala": {
          "count": 18,
          "tara": 9,
          "name": "Ati-Mitra",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 9,
          "good": false,
          "bad": false
        }
      },
      {
        "date": "2026-11-14",
        "score": 16,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Shula yoga"
        ],
        "tara_bala": {
          "count": 19,
          "tara": 1,
          "name": "Janma",
          "good": false,
          "bad": false,
          "note": "Janma tara — the birth star itself. Read as mixed: acceptable for personal affairs, avoided for travel."
        },
        "chandra_bala": {
          "from": 9,
          "good": false,
          "bad": false
        }
      },
      {
        "date": "2026-11-15",
        "score": 84,
        "band": "Excellent",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 20,
          "tara": 2,
          "name": "Sampat",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 10,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-16",
        "score": 74,
        "band": "Excellent",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 21,
          "tara": 3,
          "name": "Vipat",
          "good": false,
          "bad": true,
          "note": null
        },
        "chandra_bala": {
          "from": 10,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-17",
        "score": 30,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vishti (Bhadra)"
        ],
        "tara_bala": {
          "count": 22,
          "tara": 4,
          "name": "Kshema",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 10,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-18",
        "score": 6,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Rikta tithi",
          "Vyaghata yoga"
        ],
        "tara_bala": {
          "count": 23,
          "tara": 5,
          "name": "Pratyari",
          "good": false,
          "bad": true,
          "note": null
        },
        "chandra_bala": {
          "from": 11,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-19",
        "score": 70,
        "band": "Good",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 24,
          "tara": 6,
          "name": "Sadhaka",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 11,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-20",
        "score": 38,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vajra yoga"
        ],
        "tara_bala": {
          "count": 25,
          "tara": 7,
          "name": "Vadha",
          "good": false,
          "bad": true,
          "note": null
        },
        "chandra_bala": {
          "from": 12,
          "good": false,
          "bad": true
        }
      },
      {
        "date": "2026-11-21",
        "score": 58,
        "band": "Fair",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 26,
          "tara": 8,
          "name": "Mitra",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 12,
          "good": false,
          "bad": true
        }
      },
      {
        "date": "2026-11-22",
        "score": 46,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vyatipata yoga"
        ],
        "tara_bala": {
          "count": 27,
          "tara": 9,
          "name": "Ati-Mitra",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 1,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-23",
        "score": 36,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Rikta tithi"
        ],
        "tara_bala": {
          "count": 1,
          "tara": 1,
          "name": "Janma",
          "good": false,
          "bad": false,
          "note": "Janma tara — the birth star itself. Read as mixed: acceptable for personal affairs, avoided for travel."
        },
        "chandra_bala": {
          "from": 1,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-24",
        "score": 26,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Parigha yoga"
        ],
        "tara_bala": {
          "count": 2,
          "tara": 2,
          "name": "Sampat",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 2,
          "good": false,
          "bad": false
        }
      },
      {
        "date": "2026-11-25",
        "score": 66,
        "band": "Good",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 3,
          "tara": 3,
          "name": "Vipat",
          "good": false,
          "bad": true,
          "note": null
        },
        "chandra_bala": {
          "from": 2,
          "good": false,
          "bad": false
        }
      },
      {
        "date": "2026-11-26",
        "score": 98,
        "band": "Excellent",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 4,
          "tara": 4,
          "name": "Kshema",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 3,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-27",
        "score": 22,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Rikta tithi"
        ],
        "tara_bala": {
          "count": 5,
          "tara": 5,
          "name": "Pratyari",
          "good": false,
          "bad": true,
          "note": null
        },
        "chandra_bala": {
          "from": 3,
          "good": true,
          "bad": false
        }
      },
      {
        "date": "2026-11-28",
        "score": 30,
        "band": "Avoid",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 6,
          "tara": 6,
          "name": "Sadhaka",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 4,
          "good": false,
          "bad": true
        }
      },
      {
        "date": "2026-11-29",
        "score": 42,
        "band": "Avoid",
        "rejected": false,
        "reasons": [],
        "tara_bala": {
          "count": 8,
          "tara": 8,
          "name": "Mitra",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 4,
          "good": false,
          "bad": true
        }
      },
      {
        "date": "2026-11-30",
        "score": 42,
        "band": "Avoid",
        "rejected": true,
        "reasons": [
          "Vishti (Bhadra)"
        ],
        "tara_bala": {
          "count": 9,
          "tara": 9,
          "name": "Ati-Mitra",
          "good": true,
          "bad": false,
          "note": null
        },
        "chandra_bala": {
          "from": 5,
          "good": false,
          "bad": false
        }
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.9.28",
    "mode": "live",
    "credits_charged": 3,
    "ayanamsa": "lahiri",
    "house_system": "whole_sign",
    "node": "true",
    "timezone_used": {
      "name": "Asia/Kolkata",
      "utc_offset": "+05:30",
      "source": "auto"
    }
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

Hora: the 24 planetary hours of a day

GET/v1/panchang/hora

1 credit · Secret or publishable key · getHora

The first hora of the day belongs to the weekday lord, then Chaldean order (Saturn, Jupiter, Mars, Sun, Venus, Mercury, Moon). Sunrise and sunset: upper limb, refracted.

Parameters

NameInTypeNotes
date requiredquerystring (date) e.g. "1990-08-13"
lat requiredquerynumber ≥ -90 · ≤ 90
lon requiredquerynumber ≥ -180 · ≤ 180

Response

JSON { data, meta, warnings }, where data is:

  • date string (date) required

    e.g. "1990-08-13"

  • sunrise string (date-time) required
  • sunset string (date-time) required
  • next_sunrise string (date-time) required
  • day array of object required
    • lord string required
    • start string (date-time) required
    • end string (date-time) required
  • night array of object required
    • lord string required
    • start string (date-time) required
    • end string (date-time) required

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl 'https://api.astrologics.in/v1/panchang/hora?date=2026-10-02&lat=28.6139&lon=77.209' \
  -H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/panchang/hora?date=2026-10-02&lat=28.6139&lon=77.209", {
  headers: { Authorization: "Bearer al_test_YOUR_KEY" },
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

req = urllib.request.Request(
    "https://api.astrologics.in/v1/panchang/hora?date=2026-10-02&lat=28.6139&lon=77.209",
    method="GET",
    headers={"Authorization": "Bearer al_test_YOUR_KEY"},
)
try:
    with urllib.request.urlopen(req) as res:
        print(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/panchang/hora?date=2026-10-02&lat=28.6139&lon=77.209');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY'],
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 3,490 characters
{
  "data": {
    "date": "2026-10-02",
    "sunrise": "2026-10-02T00:44:31.372Z",
    "sunset": "2026-10-02T12:36:11.739Z",
    "next_sunrise": "2026-10-03T00:45:03.133Z",
    "day": [
      {
        "lord": "venus",
        "start": "2026-10-02T00:44:31.372Z",
        "end": "2026-10-02T01:43:49.735Z"
      },
      {
        "lord": "mercury",
        "start": "2026-10-02T01:43:49.735Z",
        "end": "2026-10-02T02:43:08.099Z"
      },
      {
        "lord": "moon",
        "start": "2026-10-02T02:43:08.099Z",
        "end": "2026-10-02T03:42:26.463Z"
      },
      {
        "lord": "saturn",
        "start": "2026-10-02T03:42:26.463Z",
        "end": "2026-10-02T04:41:44.827Z"
      },
      {
        "lord": "jupiter",
        "start": "2026-10-02T04:41:44.827Z",
        "end": "2026-10-02T05:41:03.191Z"
      },
      {
        "lord": "mars",
        "start": "2026-10-02T05:41:03.191Z",
        "end": "2026-10-02T06:40:21.555Z"
      },
      {
        "lord": "sun",
        "start": "2026-10-02T06:40:21.555Z",
        "end": "2026-10-02T07:39:39.919Z"
      },
      {
        "lord": "venus",
        "start": "2026-10-02T07:39:39.919Z",
        "end": "2026-10-02T08:38:58.283Z"
      },
      {
        "lord": "mercury",
        "start": "2026-10-02T08:38:58.283Z",
        "end": "2026-10-02T09:38:16.647Z"
      },
      {
        "lord": "moon",
        "start": "2026-10-02T09:38:16.647Z",
        "end": "2026-10-02T10:37:35.011Z"
      },
      {
        "lord": "saturn",
        "start": "2026-10-02T10:37:35.011Z",
        "end": "2026-10-02T11:36:53.375Z"
      },
      {
        "lord": "jupiter",
        "start": "2026-10-02T11:36:53.375Z",
        "end": "2026-10-02T12:36:11.739Z"
      }
    ],
    "night": [
      {
        "lord": "mars",
        "start": "2026-10-02T12:36:11.739Z",
        "end": "2026-10-02T13:36:56.021Z"
      },
      {
        "lord": "sun",
        "start": "2026-10-02T13:36:56.021Z",
        "end": "2026-10-02T14:37:40.304Z"
      },
      {
        "lord": "venus",
        "start": "2026-10-02T14:37:40.304Z",
        "end": "2026-10-02T15:38:24.587Z"
      },
      {
        "lord": "mercury",
        "start": "2026-10-02T15:38:24.587Z",
        "end": "2026-10-02T16:39:08.870Z"
      },
      {
        "lord": "moon",
        "start": "2026-10-02T16:39:08.870Z",
        "end": "2026-10-02T17:39:53.153Z"
      },
      {
        "lord": "saturn",
        "start": "2026-10-02T17:39:53.153Z",
        "end": "2026-10-02T18:40:37.436Z"
      },
      {
        "lord": "jupiter",
        "start": "2026-10-02T18:40:37.436Z",
        "end": "2026-10-02T19:41:21.718Z"
      },
      {
        "lord": "mars",
        "start": "2026-10-02T19:41:21.718Z",
        "end": "2026-10-02T20:42:06.001Z"
      },
      {
        "lord": "sun",
        "start": "2026-10-02T20:42:06.001Z",
        "end": "2026-10-02T21:42:50.284Z"
      },
      {
        "lord": "venus",
        "start": "2026-10-02T21:42:50.284Z",
        "end": "2026-10-02T22:43:34.567Z"
      },
      {
        "lord": "mercury",
        "start": "2026-10-02T22:43:34.567Z",
        "end": "2026-10-02T23:44:18.850Z"
      },
      {
        "lord": "moon",
        "start": "2026-10-02T23:44:18.850Z",
        "end": "2026-10-03T00:45:03.133Z"
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.9.28",
    "mode": "live",
    "credits_charged": 1
  },
  "warnings": []
}
Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one