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
| Name | In | Type | Notes |
|---|---|---|---|
date required | query | string (date) | e.g. "1990-08-13" |
lat | query | number | With lon; or use place_id. ≥ -90 · ≤ 90 |
lon | query | number | ≥ -180 · ≤ 180 |
place_id | query | string | |
lang | query | string | one of en, hi · default "en" |
Response
JSON { data, meta, warnings }, where data is:
datestring (date) requirede.g.
"1990-08-13"placeCoordinates requiredlatitudenumber required≥ -90 · ≤ 90
longitudenumber required≥ -180 · ≤ 180
timezoneobject requirednamestring requiredutc_offsetstring required
tithiobject requirednumberinteger required≥ 1 · ≤ 30
namestring requiredlabelstring requiredpakshastring required
nakshatraobject requirednamestring requiredlabelstring requiredlordstring requirednextstring required
yogaobject requirednamestring requiredlabelstring requiredqualitystring required
karanaobject requirednumberinteger required≥ 1 · ≤ 60
namestring requiredlabelstring required
varaobject requirednamestring requiredlabelstring requiredlordstring required
sunrisestring (date-time) requiredsunsetstring (date-time) requiredrahu_kaalTimeWindow or null requiredOne of:
- TimeWindow
Fields
startstring (date-time) requiredendstring (date-time) required
- null
- TimeWindow
gulika_kaalTimeWindow or null requiredOne of:
- TimeWindow
Fields
startstring (date-time) requiredendstring (date-time) required
- null
- TimeWindow
yamagandaTimeWindow or null requiredOne of:
- TimeWindow
Fields
startstring (date-time) requiredendstring (date-time) required
- null
- TimeWindow
abhijitTimeWindow or null requiredOne of:
- TimeWindow
Fields
startstring (date-time) requiredendstring (date-time) required
- null
- TimeWindow
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
Day and night choghadiya
GET/v1/panchang/choghadiya
1 credit · Secret or publishable key · getChoghadiya
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
date required | query | string (date) | e.g. "1990-08-13" |
lat | query | number | With lon; or use place_id. ≥ -90 · ≤ 90 |
lon | query | number | ≥ -180 · ≤ 180 |
place_id | query | string | |
lang | query | string | one of en, hi · default "en" |
Response
JSON { data, meta, warnings }, where data is:
datestring (date) requirede.g.
"1990-08-13"periodsarray of object requirednamestring requiredlabelstring requiredqualitystring requiredpartstring requiredone of
day,nightstartstring (date-time) requiredendstring (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
Supported muhurat activities
GET/v1/muhurat/activities
0 credits · Secret or publishable key · listMuhuratActivities
Response
JSON { data, meta, warnings }, where data is:
activitiesarray of object requiredidstring requiredlabelstring 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
Days rated for an activity, with scores and rejection reasons
GET/v1/muhurat/search
2 credits · Secret key (test or live) · searchMuhurat
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
activity required | query | string | |
from required | query | string (date) | e.g. "1990-08-13" |
to required | query | string (date) | e.g. "1990-08-13" |
lat | query | number | With lon; or use place_id. ≥ -90 · ≤ 90 |
lon | query | number | ≥ -180 · ≤ 180 |
place_id | query | string | |
limit | query | integer | ≥ 1 · ≤ 100 · default 20 |
cursor | query | string |
Response
JSON { data, meta, warnings }, where data is:
activitystring requireddaysarray of object requireddatestring (date) requirede.g.
"1990-08-13"scorenumber requiredbandstring requiredrejectedboolean requiredreasonsarray 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
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
birthBirth requireddatestring (date) requirede.g.
"1990-08-13"timestringpattern
^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$· e.g."06:30"time_accuracystringWith "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"placeCoordinates or object or object requiredCoordinates, 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:
- Coordinates
Fields
latitudenumber required≥ -90 · ≤ 90
longitudenumber required≥ -180 · ≤ 180
No other fields are accepted.
- object
Fields
place_idstring required
No other fields are accepted.
- object
Fields
querystring requiredat least 2 characters · at most 120 characters
No other fields are accepted.
- Coordinates
timezonestring"auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".
default
"auto"
No other fields are accepted.
activitystring requiredfromstring (date) requirede.g.
"1990-08-13"tostring (date) requirede.g.
"1990-08-13"placeCoordinates or object or objectCoordinates, 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:
- Coordinates
Fields
latitudenumber required≥ -90 · ≤ 90
longitudenumber required≥ -180 · ≤ 180
No other fields are accepted.
- object
Fields
place_idstring required
No other fields are accepted.
- object
Fields
querystring requiredat least 2 characters · at most 120 characters
No other fields are accepted.
- Coordinates
optionsOptionsayanamsastringEach 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_systemstringone of
whole_sign· default"whole_sign"nodestringone of
true,mean· default"true"langstringone of
en,hi· default"en"viewstringcompact 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:
activitystring requireddaysarray of object requireddatestring (date) requirede.g.
"1990-08-13"scorenumber requiredbandstring requiredrejectedboolean requiredreasonsarray of string requiredtara_balaany requiredchandra_balaany 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
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
| Name | In | Type | Notes |
|---|---|---|---|
date required | query | string (date) | e.g. "1990-08-13" |
lat required | query | number | ≥ -90 · ≤ 90 |
lon required | query | number | ≥ -180 · ≤ 180 |
Response
JSON { data, meta, warnings }, where data is:
datestring (date) requirede.g.
"1990-08-13"sunrisestring (date-time) requiredsunsetstring (date-time) requirednext_sunrisestring (date-time) requireddayarray of object requiredlordstring requiredstartstring (date-time) requiredendstring (date-time) required
nightarray of object requiredlordstring requiredstartstring (date-time) requiredendstring (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": []
}