Kundli
The birth chart: lagna, the nine grahas, divisional charts, aspects, yogas, Ashtakavarga, positions at any moment.
Birth chart: lagna and the nine grahas
POST/v1/kundli
2 credits · Secret key (test or live) · getKundli · Page for this operation
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
lagnaobjectsignstring requiredsign_labelstring requireddegreenumber requirednakshatraNakshatraId requiredThe 27 nakshatras, 1 Ashwini … 27 Revati. Spellings are fixed: mula (not moola), shatabhisha (not satabhisha), purva_ashadha, uttara_bhadrapada.
one of
ashwini,bharani,krittika,rohini,mrigashira,ardra,punarvasu,pushya,ashlesha,magha,purva_phalguni,uttara_phalguni,hasta,chitra,swati,vishakha,anuradha,jyeshtha,mula,purva_ashadha,uttara_ashadha,shravana,dhanishta,shatabhisha,purva_bhadrapada,uttara_bhadrapada,revatinakshatra_labelstring requiredpadainteger required≥ 1 · ≤ 4
planetsarray of object requiredidstring requiredlabelstring requiredlongitudenumber required≥ 0 · < 360
signstring requireddegree_in_signnumber requirednakshatraNakshatraId requiredThe 27 nakshatras, 1 Ashwini … 27 Revati. Spellings are fixed: mula (not moola), shatabhisha (not satabhisha), purva_ashadha, uttara_bhadrapada.
one of
ashwini,bharani,krittika,rohini,mrigashira,ardra,punarvasu,pushya,ashlesha,magha,purva_phalguni,uttara_phalguni,hasta,chitra,swati,vishakha,anuradha,jyeshtha,mula,purva_ashadha,uttara_ashadha,shravana,dhanishta,shatabhisha,purva_bhadrapada,uttara_bhadrapada,revatipadainteger required≥ 1 · ≤ 4
nakshatra_lordstring requiredhouseinteger≥ 1 · ≤ 12
retrogradeboolean required
divisional_lagnasobjectD2string requiredD9string requiredD10string required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli",
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/kundli');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 3,310 characters
{
"data": {
"lagna": {
"sign": "leo",
"sign_label": "Leo",
"degree": 4.27,
"nakshatra": "magha",
"nakshatra_label": "Magha",
"pada": 2
},
"planets": [
{
"id": "sun",
"label": "Sun",
"longitude": 116.3139,
"sign": "cancer",
"degree_in_sign": 26.3139,
"nakshatra": "ashlesha",
"pada": 3,
"nakshatra_lord": "mercury",
"house": 12,
"retrograde": false
},
{
"id": "moon",
"label": "Moon",
"longitude": 18.0955,
"sign": "aries",
"degree_in_sign": 18.0955,
"nakshatra": "bharani",
"pada": 2,
"nakshatra_lord": "venus",
"house": 9,
"retrograde": false
},
{
"id": "mars",
"label": "Mars",
"longitude": 26.2271,
"sign": "aries",
"degree_in_sign": 26.2271,
"nakshatra": "bharani",
"pada": 4,
"nakshatra_lord": "venus",
"house": 9,
"retrograde": false
},
{
"id": "mercury",
"label": "Mercury",
"longitude": 143.6373,
"sign": "leo",
"degree_in_sign": 23.6373,
"nakshatra": "purva_phalguni",
"pada": 4,
"nakshatra_lord": "venus",
"house": 1,
"retrograde": false
},
{
"id": "jupiter",
"label": "Jupiter",
"longitude": 95.14,
"sign": "cancer",
"degree_in_sign": 5.14,
"nakshatra": "pushya",
"pada": 1,
"nakshatra_lord": "saturn",
"house": 12,
"retrograde": false
},
{
"id": "venus",
"label": "Venus",
"longitude": 95.1983,
"sign": "cancer",
"degree_in_sign": 5.1983,
"nakshatra": "pushya",
"pada": 1,
"nakshatra_lord": "saturn",
"house": 12,
"retrograde": false
},
{
"id": "saturn",
"label": "Saturn",
"longitude": 266.2724,
"sign": "sagittarius",
"degree_in_sign": 26.2724,
"nakshatra": "purva_ashadha",
"pada": 4,
"nakshatra_lord": "venus",
"house": 5,
"retrograde": true
},
{
"id": "rahu",
"label": "Rahu",
"longitude": 283.4929,
"sign": "capricorn",
"degree_in_sign": 13.4929,
"nakshatra": "shravana",
"pada": 2,
"nakshatra_lord": "moon",
"house": 6,
"retrograde": true
},
{
"id": "ketu",
"label": "Ketu",
"longitude": 103.4929,
"sign": "cancer",
"degree_in_sign": 13.4929,
"nakshatra": "pushya",
"pada": 4,
"nakshatra_lord": "saturn",
"house": 12,
"retrograde": true
}
],
"divisional_lagnas": {
"D2": "leo",
"D9": "taurus",
"D10": "virgo"
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Avakhada birth details
POST/v1/kundli/birth-details
1 credit · Secret key (test or live) · getBirthDetails · Page for this operation
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
varnastringvashyastringyonistringganastringnadistringnakshatrastring
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/birth-details' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/birth-details", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/birth-details",
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/kundli/birth-details');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 546 characters
{
"data": {
"varna": "Kshatriya",
"vashya": "Chatushpada",
"yoni": "Elephant",
"gana": "Manushya",
"nadi": "Madhya (Pitta)",
"nakshatra": "bharani"
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Divisional charts D1–D60
POST/v1/kundli/divisional
2 credits · Secret key (test or live) · getDivisional · Page for this operation
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.
vargasarray of string requiredoptionsOptionsayanamsastringEach 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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
chartsmap of object requiredlagnastringplanetsmap of string required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/divisional' \
-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}},"vargas":["D9","D10","D60"]}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/divisional", {
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
}
},
"vargas": [
"D9",
"D10",
"D60"
]
}),
});
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,
},
},
"vargas": [
"D9",
"D10",
"D60",
],
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/divisional",
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/kundli/divisional');
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}},"vargas":["D9","D10","D60"]}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 1,424 characters
{
"data": {
"charts": {
"D9": {
"lagna": "taurus",
"planets": {
"sun": "aquarius",
"moon": "virgo",
"mars": "scorpio",
"mercury": "scorpio",
"jupiter": "leo",
"venus": "leo",
"saturn": "scorpio",
"rahu": "taurus",
"ketu": "scorpio"
}
},
"D10": {
"lagna": "virgo",
"planets": {
"sun": "scorpio",
"moon": "libra",
"mars": "sagittarius",
"mercury": "pisces",
"jupiter": "aries",
"venus": "aries",
"saturn": "leo",
"rahu": "capricorn",
"ketu": "cancer"
}
},
"D60": {
"lagna": "aries",
"planets": {
"sun": "scorpio",
"moon": "aries",
"mars": "leo",
"mercury": "cancer",
"jupiter": "taurus",
"venus": "taurus",
"saturn": "aries",
"rahu": "pisces",
"ketu": "virgo"
}
}
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Graha drishti: houses and planets aspected
POST/v1/kundli/aspects
1 credit · Secret key (test or live) · getAspects · Page for this operation
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
aspectsarray of object requiredplanetstring requiredoffsetsarray of integer requiredhousesarray of integer requiredplanetsarray of string required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/aspects' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/aspects", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/aspects",
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/kundli/aspects');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 2,214 characters
{
"data": {
"aspects": [
{
"planet": "sun",
"offsets": [
7
],
"houses": [
6
],
"planets": [
"rahu"
]
},
{
"planet": "moon",
"offsets": [
7
],
"houses": [
3
],
"planets": []
},
{
"planet": "mars",
"offsets": [
4,
7,
8
],
"houses": [
3,
4,
12
],
"planets": [
"sun",
"jupiter",
"venus",
"ketu"
]
},
{
"planet": "mercury",
"offsets": [
7
],
"houses": [
7
],
"planets": []
},
{
"planet": "jupiter",
"offsets": [
5,
7,
9
],
"houses": [
4,
6,
8
],
"planets": [
"rahu"
]
},
{
"planet": "venus",
"offsets": [
7
],
"houses": [
6
],
"planets": [
"rahu"
]
},
{
"planet": "saturn",
"offsets": [
3,
7,
10
],
"houses": [
2,
7,
11
],
"planets": []
},
{
"planet": "rahu",
"offsets": [
7
],
"houses": [
12
],
"planets": [
"sun",
"jupiter",
"venus",
"ketu"
]
},
{
"planet": "ketu",
"offsets": [
7
],
"houses": [
6
],
"planets": [
"rahu"
]
}
]
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Yogas present, with strength and rule
POST/v1/kundli/yogas
2 credits · Secret key (test or live) · getYogas · Page for this operation
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
yogasarray of object requirednamestring requiredtypestringstrengthstringplanetsarray of stringrulestring
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/yogas' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/yogas", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/yogas",
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/kundli/yogas');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 2,391 characters
{
"data": {
"yogas": [
{
"name": "Gajakesari Yoga",
"type": "wealth",
"strength": "very_strong",
"planets": [
"moon",
"jupiter"
],
"rule": "Jupiter in 4th from Moon - wisdom, wealth and public recognition"
},
{
"name": "Dhana Yoga",
"type": "wealth",
"strength": "strong",
"planets": [
"mercury",
"mercury"
],
"rule": "Mercury (2nd lord) and Mercury (11th lord) in wealth axis - significant financial accumulation"
},
{
"name": "Raja Yoga",
"type": "power",
"strength": "strong",
"planets": [
"sun",
"jupiter"
],
"rule": "Sun and Jupiter (kendra + trikona lords) in conjunction - authority, career success and high status"
},
{
"name": "Raja Yoga",
"type": "power",
"strength": "strong",
"planets": [
"saturn",
"jupiter"
],
"rule": "Saturn and Jupiter (kendra + trikona lords) in mutual placement - authority, career success and high status"
},
{
"name": "Raja Yoga",
"type": "power",
"strength": "strong",
"planets": [
"venus",
"jupiter"
],
"rule": "Venus and Jupiter (kendra + trikona lords) in conjunction - authority, career success and high status"
},
{
"name": "Chandra-Mangala Yoga",
"type": "wealth",
"strength": "moderate",
"planets": [
"moon",
"mars"
],
"rule": "Moon and Mars in conjunction - wealth through courage, real estate and enterprise"
},
{
"name": "Vipareeta Raja Yoga",
"type": "power",
"strength": "strong",
"planets": [
"jupiter"
],
"rule": "Jupiter (8th lord) in dusthana - surprising rise after adversity, enemies become allies"
}
]
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Bhinna and Sarva Ashtakavarga, the bindus of the signs being transited, each planet's best and worst signs
POST/v1/kundli/ashtakavarga
2 credits · Secret key (test or live) · getAshtakavarga · Page for this operation
Needs a birth time. transits: the sign each of the seven planets occupies at at (default now; as_of says which) and that sign's bindus in the planet's own bhinna. best_signs: each planet's three highest and three lowest signs by its bindus. Every chart's bhinna totals are the classical 48, 49, 39, 54, 56, 52, 39 (Sarva 337).
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.
atstring (date-time)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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
bhinnamap of array of integer requiredsarvaarray of integer requiredas_ofstring (date-time) requiredtransitsmap of object requiredsignstring requiredbindusinteger required≥ 0 · ≤ 8
best_signsmap of object requiredbestarray of object requiredFields
signstring requiredbindusinteger required
worstarray of object requiredFields
signstring requiredbindusinteger required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/ashtakavarga' \
-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}},"at":"2026-10-02T06:30:00Z"}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/ashtakavarga", {
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
}
},
"at": "2026-10-02T06:30:00Z"
}),
});
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,
},
},
"at": "2026-10-02T06:30:00Z",
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/ashtakavarga",
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/kundli/ashtakavarga');
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}},"at":"2026-10-02T06:30:00Z"}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 6,155 characters
{
"data": {
"bhinna": {
"sun": [
3,
5,
5,
5,
2,
2,
5,
3,
5,
7,
3,
3
],
"moon": [
5,
7,
5,
1,
2,
4,
6,
2,
3,
6,
6,
2
],
"mars": [
3,
5,
6,
2,
2,
3,
4,
2,
5,
3,
3,
1
],
"mercury": [
2,
7,
5,
5,
4,
4,
4,
5,
5,
5,
4,
4
],
"jupiter": [
7,
8,
2,
3,
6,
4,
4,
5,
4,
5,
6,
2
],
"venus": [
6,
4,
5,
4,
4,
4,
4,
4,
4,
1,
6,
6
],
"saturn": [
3,
6,
6,
2,
3,
2,
3,
2,
2,
4,
4,
2
]
},
"sarva": [
29,
42,
34,
22,
23,
23,
30,
23,
28,
31,
32,
20
],
"as_of": "2026-10-02T06:30:00.000Z",
"transits": {
"sun": {
"sign": "virgo",
"bindus": 2
},
"moon": {
"sign": "taurus",
"bindus": 7
},
"mars": {
"sign": "cancer",
"bindus": 2
},
"mercury": {
"sign": "libra",
"bindus": 4
},
"jupiter": {
"sign": "cancer",
"bindus": 3
},
"venus": {
"sign": "libra",
"bindus": 4
},
"saturn": {
"sign": "pisces",
"bindus": 2
}
},
"best_signs": {
"sun": {
"best": [
{
"sign": "capricorn",
"bindus": 7
},
{
"sign": "taurus",
"bindus": 5
},
{
"sign": "gemini",
"bindus": 5
}
],
"worst": [
{
"sign": "virgo",
"bindus": 2
},
{
"sign": "leo",
"bindus": 2
},
{
"sign": "pisces",
"bindus": 3
}
]
},
"moon": {
"best": [
{
"sign": "taurus",
"bindus": 7
},
{
"sign": "libra",
"bindus": 6
},
{
"sign": "capricorn",
"bindus": 6
}
],
"worst": [
{
"sign": "cancer",
"bindus": 1
},
{
"sign": "pisces",
"bindus": 2
},
{
"sign": "scorpio",
"bindus": 2
}
]
},
"mars": {
"best": [
{
"sign": "gemini",
"bindus": 6
},
{
"sign": "taurus",
"bindus": 5
},
{
"sign": "sagittarius",
"bindus": 5
}
],
"worst": [
{
"sign": "pisces",
"bindus": 1
},
{
"sign": "scorpio",
"bindus": 2
},
{
"sign": "leo",
"bindus": 2
}
]
},
"mercury": {
"best": [
{
"sign": "taurus",
"bindus": 7
},
{
"sign": "gemini",
"bindus": 5
},
{
"sign": "cancer",
"bindus": 5
}
],
"worst": [
{
"sign": "aries",
"bindus": 2
},
{
"sign": "pisces",
"bindus": 4
},
{
"sign": "aquarius",
"bindus": 4
}
]
},
"jupiter": {
"best": [
{
"sign": "taurus",
"bindus": 8
},
{
"sign": "aries",
"bindus": 7
},
{
"sign": "leo",
"bindus": 6
}
],
"worst": [
{
"sign": "pisces",
"bindus": 2
},
{
"sign": "gemini",
"bindus": 2
},
{
"sign": "cancer",
"bindus": 3
}
]
},
"venus": {
"best": [
{
"sign": "aries",
"bindus": 6
},
{
"sign": "aquarius",
"bindus": 6
},
{
"sign": "pisces",
"bindus": 6
}
],
"worst": [
{
"sign": "capricorn",
"bindus": 1
},
{
"sign": "sagittarius",
"bindus": 4
},
{
"sign": "scorpio",
"bindus": 4
}
]
},
"saturn": {
"best": [
{
"sign": "taurus",
"bindus": 6
},
{
"sign": "gemini",
"bindus": 6
},
{
"sign": "capricorn",
"bindus": 4
}
],
"worst": [
{
"sign": "pisces",
"bindus": 2
},
{
"sign": "sagittarius",
"bindus": 2
},
{
"sign": "scorpio",
"bindus": 2
}
]
}
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Wealth reading from D1, D2, D9 and D10: hora placements, the D10 lagna and 10th lord, vargottama, scores 0–10
POST/v1/kundli/wealth
2 credits · Secret key (test or live) · getWealth · Page for this operation
Ids and numbers only. d2: the planets in the Sun and Moon horas and their benefic-minus-malefic scores, the hora of the 2nd lord. d10: the D10 lagna and its lord (archetype), the 10th lord's house, own/exalted or debilitated placements. scores: D1 from wealth and power yogas, D9 from vargottama and the 2nd lord, D2 and D10 from the analyses above; overall is their weighted mean on 0–10, rated developing, moderate, strong or exceptional. Needs a birth time.
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
d2object requiredsun_horaobject requiredFields
planetsarray of string requiredscorenumber required
moon_horaobject requiredFields
planetsarray of string requiredscorenumber required
primary_sourcestring requiredone of
career_authority,business_inheritancelord2_horastring requiredone of
sun,moon,balancedlagna_vargottamaboolean requiredstrengthnumber required
d10object requiredlagnastring requiredlagna_lordstring requiredarchetypestring requiredtenth_occupantsarray of string requiredlord10string requiredlord10_houseinteger or null requiredOne of:
- integer
- null
scorenumber requiredstrengthnumber requiredplacementsarray of object requiredFields
planetstring requiredsignstring requiredkindstring requiredone of
own_or_exalted,debilitated
vargottamaarray of string requiredscoresobject requiredd1number requiredd2number requiredd9number requiredd10number required
overallnumber required≥ 0 · ≤ 10
ratingstring requiredone of
developing,moderate,strong,exceptionalfactorsarray of object requiredidstring requiredone of
wealth_yoga,power_yoga,vargottama,d2_lagna_vargottamayogastringplanetstring
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/wealth' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/wealth", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/wealth",
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/kundli/wealth');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 2,020 characters
{
"data": {
"d2": {
"sun_hora": {
"planets": [
"sun"
],
"score": -1
},
"moon_hora": {
"planets": [
"moon",
"mercury",
"venus",
"mars",
"jupiter",
"saturn",
"rahu",
"ketu"
],
"score": 4
},
"primary_source": "business_inheritance",
"lord2_hora": "moon",
"lagna_vargottama": true,
"strength": 0.6
},
"d10": {
"lagna": "virgo",
"lagna_lord": "mercury",
"archetype": "business_communication",
"tenth_occupants": [],
"lord10": "mercury",
"lord10_house": 7,
"score": -3,
"strength": 0.3,
"placements": [
{
"planet": "mercury",
"sign": "pisces",
"kind": "debilitated"
}
]
},
"vargottama": [],
"scores": {
"d1": 10,
"d2": 7.5,
"d9": 0,
"d10": 0
},
"overall": 5.1,
"rating": "moderate",
"factors": [
{
"id": "wealth_yoga",
"yoga": "gajakesari_yoga"
},
{
"id": "wealth_yoga",
"yoga": "dhana_yoga"
},
{
"id": "power_yoga",
"yoga": "raja_yoga"
},
{
"id": "power_yoga",
"yoga": "raja_yoga"
},
{
"id": "power_yoga",
"yoga": "raja_yoga"
},
{
"id": "wealth_yoga",
"yoga": "chandra_mangala_yoga"
},
{
"id": "power_yoga",
"yoga": "vipareeta_raja_yoga"
},
{
"id": "d2_lagna_vargottama"
}
]
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Gemstones by functional lordship: the lagna lord's, the 9th (or 5th) lord's, the mahadasha lord's, and those to avoid
POST/v1/kundli/gemstones
2 credits · Secret key (test or live) · getGemstones · Page for this operation
Functional benefics are the lords of the 1st, 5th and 9th from the lagna; functional malefics the lords of the 6th, 8th and 12th with no trikona lordship, and their stones are listed in avoid. dasha_stone only when the running mahadasha lord is not a functional malefic. Not the same rule as classical.lucky.gem (the rashi lord's stone). Needs a birth time.
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
lagna_signstring requiredprimaryGemstoneChoice or null requiredOne of:
- GemstoneChoice
Fields
planetstring requiredstonestring requiredalternativesarray of string requiredfingerstring requiredone of
thumb,index,middle,ring,littlemetalstring requiredbasisstring requiredone of
lagna_lord,ninth_lord,fifth_lord,mahadasha_lord
- null
- GemstoneChoice
secondaryGemstoneChoice or null requiredOne of:
- GemstoneChoice
Fields
planetstring requiredstonestring requiredalternativesarray of string requiredfingerstring requiredone of
thumb,index,middle,ring,littlemetalstring requiredbasisstring requiredone of
lagna_lord,ninth_lord,fifth_lord,mahadasha_lord
- null
- GemstoneChoice
dasha_stoneGemstoneChoice or null requiredOne of:
- GemstoneChoice
Fields
planetstring requiredstonestring requiredalternativesarray of string requiredfingerstring requiredone of
thumb,index,middle,ring,littlemetalstring requiredbasisstring requiredone of
lagna_lord,ninth_lord,fifth_lord,mahadasha_lord
- null
- GemstoneChoice
avoidarray of string requiredhealing_stonesarray of string requiredfunctional_beneficsarray of string requiredfunctional_maleficsarray of string requiredyoga_specificarray of object requiredstonestring requiredyogastring or null requiredOne of:
- string
- null
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/gemstones' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/gemstones", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/gemstones",
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/kundli/gemstones');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 1,796 characters
{
"data": {
"lagna_sign": "leo",
"primary": {
"planet": "sun",
"stone": "ruby",
"alternatives": [
"red_garnet",
"sunstone",
"red_spinel"
],
"finger": "ring",
"metal": "gold",
"basis": "lagna_lord"
},
"secondary": {
"planet": "mars",
"stone": "red_coral",
"alternatives": [
"red_jasper",
"carnelian",
"garnet"
],
"finger": "ring",
"metal": "copper_or_gold",
"basis": "ninth_lord"
},
"dasha_stone": {
"planet": "rahu",
"stone": "hessonite",
"alternatives": [
"orange_zircon",
"garnet",
"spessartite"
],
"finger": "middle",
"metal": "silver",
"basis": "mahadasha_lord"
},
"avoid": [
"blue_sapphire",
"pearl"
],
"healing_stones": [
"pyrite",
"sunstone",
"citrine",
"amber",
"bloodstone",
"carnelian"
],
"functional_benefics": [
"sun",
"jupiter",
"mars"
],
"functional_malefics": [
"saturn",
"moon"
],
"yoga_specific": [
{
"stone": "yellow_sapphire",
"yoga": "gajakesari_yoga"
},
{
"stone": "yellow_sapphire",
"yoga": "dhana_yoga"
},
{
"stone": "yellow_sapphire",
"yoga": "chandra_mangala_yoga"
}
]
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Shadbala: the six-fold strength of the seven grahas
POST/v1/kundli/shadbala
2 credits · Secret key (test or live) · getShadbala · Page for this operation
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
planetsarray of object requiredidstring requiredcomponentsobject requiredFields
sthananumber requireddignumber requiredkalanumber requiredchestanumber requirednaisargikanumber requireddriknumber required
totalnumber requiredrupasnumber requiredstrengthstring required
rankingarray of string required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/shadbala' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/shadbala", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/shadbala",
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/kundli/shadbala');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 2,532 characters
{
"data": {
"planets": [
{
"id": "sun",
"components": {
"sthana": 20,
"dig": 17,
"kala": 18,
"chesta": 10,
"naisargika": 21,
"drik": -5
},
"total": 81,
"rupas": 6.8,
"strength": "good"
},
{
"id": "moon",
"components": {
"sthana": 20,
"dig": 4,
"kala": 13,
"chesta": 10,
"naisargika": 18,
"drik": 0
},
"total": 65,
"rupas": 5.4,
"strength": "good"
},
{
"id": "mars",
"components": {
"sthana": 30,
"dig": 17,
"kala": 13,
"chesta": 15,
"naisargika": 7,
"drik": 0
},
"total": 82,
"rupas": 6.8,
"strength": "good"
},
{
"id": "mercury",
"components": {
"sthana": 12,
"dig": 25,
"kala": 13,
"chesta": 10,
"naisargika": 5,
"drik": 0
},
"total": 65,
"rupas": 5.4,
"strength": "good"
},
{
"id": "jupiter",
"components": {
"sthana": 30,
"dig": 17,
"kala": 18,
"chesta": 20,
"naisargika": 11,
"drik": -5
},
"total": 91,
"rupas": 7.6,
"strength": "excellent"
},
{
"id": "venus",
"components": {
"sthana": 12,
"dig": 8,
"kala": 18,
"chesta": 10,
"naisargika": 14,
"drik": -5
},
"total": 57,
"rupas": 4.8,
"strength": "average"
},
{
"id": "saturn",
"components": {
"sthana": 12,
"dig": 17,
"kala": 13,
"chesta": 25,
"naisargika": 4,
"drik": 0
},
"total": 71,
"rupas": 5.9,
"strength": "good"
}
],
"ranking": [
"jupiter",
"mars",
"sun",
"saturn",
"moon",
"mercury",
"venus"
]
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
The classical layer: house cusps, bhava bala, prastara ashtakavarga, graha avasthas, sthira karakas, lucky points
POST/v1/kundli/classical
2 credits · Secret key (test or live) · getClassicalChart · Page for this operation
What astrologics.in's full report calls its classical layer. cusps: Placidus (what KP uses; null at latitudes where it is undefined) beside the Sripati bhava arambh and madhya, sidereal degrees. Needs a birth time.
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
cuspsobject requiredsystemstring requiredplacidusarray of number or null requiredOne of:
- array of number
- null
bhava_arambharray of number requiredbhava_madhyaarray of number required
bhava_balaarray of object requiredhouseinteger required≥ 1 · ≤ 12
signstring requiredlordstring requiredadhipati_balanumber requireddig_balanumber requireddrishti_balanumber requiredtotalnumber requiredrupasnumber requiredrankinteger required≥ 1 · ≤ 12
prastaraobject requiredcontributorsarray of string requiredsignsarray of string requiredplanetsmap of object requiredFields
gridmap of array of integer requiredtotalsarray of integer requiredsuminteger required
avasthamap of object requiredjagratstring requiredbaladistring requireddeeptadistring requireddignitystring required
sthira_karakasarray of object requiredkarakastring requiredplanetstring required
luckyobject requirednumbersarray of integer requiredunlucky_numbersarray of integer requiredyearsarray of array of integer requireddaysarray of string requiredplanetsarray of string requiredfriendly_signsarray of string requiredlagnasarray of string requiredmetalstring requiredgemstring requiredlagna_lordstring requiredrashi_lordstring required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/classical' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/classical", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/classical",
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/kundli/classical');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 22,722 characters
{
"data": {
"cusps": {
"system": "Placidus (KP) + Sripati (chalit)",
"placidus": [
124.27,
150.0796,
179.7678,
212.022,
244.4165,
275.3319,
304.27,
330.0796,
359.7678,
32.022,
64.4165,
95.3319
],
"bhava_arambh": [
108.8953,
138.8953,
168.146,
197.3967,
227.3967,
258.146,
288.8953,
318.8953,
348.146,
17.3967,
47.3967,
78.146
],
"bhava_madhya": [
124.27,
153.5207,
182.7713,
212.022,
242.7713,
273.5207,
304.27,
333.5207,
2.7713,
32.022,
62.7713,
93.5207
]
},
"bhava_bala": [
{
"house": 1,
"sign": "leo",
"lord": "sun",
"adhipati_bala": 81,
"dig_bala": 30,
"drishti_bala": 0,
"total": 111,
"rupas": 1.85,
"rank": 5
},
{
"house": 2,
"sign": "virgo",
"lord": "mercury",
"adhipati_bala": 65,
"dig_bala": 15,
"drishti_bala": -11.3,
"total": 68.8,
"rupas": 1.15,
"rank": 10
},
{
"house": 3,
"sign": "libra",
"lord": "venus",
"adhipati_bala": 57,
"dig_bala": 15,
"drishti_bala": -11.3,
"total": 60.8,
"rupas": 1.01,
"rank": 12
},
{
"house": 4,
"sign": "scorpio",
"lord": "mars",
"adhipati_bala": 82,
"dig_bala": 30,
"drishti_bala": 0,
"total": 112,
"rupas": 1.87,
"rank": 4
},
{
"house": 5,
"sign": "sagittarius",
"lord": "jupiter",
"adhipati_bala": 91,
"dig_bala": 15,
"drishti_bala": 0,
"total": 106,
"rupas": 1.77,
"rank": 6
},
{
"house": 6,
"sign": "capricorn",
"lord": "saturn",
"adhipati_bala": 71,
"dig_bala": 15,
"drishti_bala": 30,
"total": 116,
"rupas": 1.93,
"rank": 3
},
{
"house": 7,
"sign": "aquarius",
"lord": "saturn",
"adhipati_bala": 71,
"dig_bala": 30,
"drishti_bala": -15,
"total": 86,
"rupas": 1.43,
"rank": 8
},
{
"house": 8,
"sign": "pisces",
"lord": "jupiter",
"adhipati_bala": 91,
"dig_bala": 15,
"drishti_bala": 15,
"total": 121,
"rupas": 2.02,
"rank": 1
},
{
"house": 9,
"sign": "aries",
"lord": "mars",
"adhipati_bala": 82,
"dig_bala": 15,
"drishti_bala": 0,
"total": 97,
"rupas": 1.62,
"rank": 7
},
{
"house": 10,
"sign": "taurus",
"lord": "venus",
"adhipati_bala": 57,
"dig_bala": 60,
"drishti_bala": 0,
"total": 117,
"rupas": 1.95,
"rank": 2
},
{
"house": 11,
"sign": "gemini",
"lord": "mercury",
"adhipati_bala": 65,
"dig_bala": 15,
"drishti_bala": 0,
"total": 80,
"rupas": 1.33,
"rank": 9
},
{
"house": 12,
"sign": "cancer",
"lord": "moon",
"adhipati_bala": 65,
"dig_bala": 15,
"drishti_bala": -15,
"total": 65,
"rupas": 1.08,
"rank": 11
}
],
"prastara": {
"contributors": [
"sun",
"moon",
"mars",
"mercury",
"jupiter",
"venus",
"saturn",
"lagna"
],
"signs": [
"aries",
"taurus",
"gemini",
"cancer",
"leo",
"virgo",
"libra",
"scorpio",
"sagittarius",
"capricorn",
"aquarius",
"pisces"
],
"planets": {
"sun": {
"grid": {
"sun": [
1,
1,
0,
1,
1,
0,
1,
0,
0,
1,
1,
1
],
"moon": [
0,
0,
1,
0,
0,
1,
0,
0,
0,
1,
1,
0
],
"mars": [
1,
1,
0,
1,
0,
0,
1,
1,
1,
1,
1,
0
],
"mercury": [
1,
1,
1,
1,
0,
0,
1,
0,
1,
1,
0,
0
],
"jupiter": [
0,
1,
0,
0,
0,
0,
0,
1,
1,
0,
0,
1
],
"venus": [
0,
0,
1,
0,
0,
0,
0,
0,
1,
1,
0,
0
],
"saturn": [
0,
0,
1,
1,
1,
1,
1,
0,
1,
1,
0,
1
],
"lagna": [
0,
1,
1,
1,
0,
0,
1,
1,
0,
1,
0,
0
]
},
"totals": [
3,
5,
5,
5,
2,
2,
5,
3,
5,
7,
3,
3
],
"sum": 48
},
"moon": {
"grid": {
"sun": [
1,
1,
0,
0,
0,
1,
0,
0,
1,
1,
1,
0
],
"moon": [
1,
0,
1,
0,
0,
1,
1,
0,
0,
1,
1,
0
],
"mars": [
0,
1,
1,
0,
1,
1,
0,
0,
1,
1,
1,
0
],
"mercury": [
0,
1,
1,
0,
1,
0,
1,
1,
1,
0,
1,
1
],
"jupiter": [
1,
1,
1,
1,
0,
0,
1,
0,
0,
1,
1,
0
],
"venus": [
1,
1,
0,
0,
0,
1,
1,
1,
0,
1,
0,
1
],
"saturn": [
1,
1,
0,
0,
0,
0,
1,
0,
0,
0,
1,
0
],
"lagna": [
0,
1,
1,
0,
0,
0,
1,
0,
0,
1,
0,
0
]
},
"totals": [
5,
7,
5,
1,
2,
4,
6,
2,
3,
6,
6,
2
],
"sum": 49
},
"mars": {
"grid": {
"sun": [
1,
1,
0,
0,
0,
1,
0,
1,
1,
0,
0,
0
],
"moon": [
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
1,
0
],
"mars": [
1,
1,
0,
1,
0,
0,
1,
1,
0,
1,
1,
0
],
"mercury": [
0,
0,
1,
0,
0,
0,
1,
0,
1,
1,
0,
0
],
"jupiter": [
1,
1,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0
],
"venus": [
0,
1,
1,
0,
0,
0,
0,
0,
1,
0,
1,
0
],
"saturn": [
0,
0,
1,
1,
1,
1,
1,
0,
1,
0,
0,
1
],
"lagna": [
0,
1,
1,
0,
1,
0,
1,
0,
0,
1,
0,
0
]
},
"totals": [
3,
5,
6,
2,
2,
3,
4,
2,
5,
3,
3,
1
],
"sum": 39
},
"mercury": {
"grid": {
"sun": [
0,
1,
1,
0,
0,
0,
0,
1,
1,
0,
0,
1
],
"moon": [
0,
1,
0,
1,
0,
1,
0,
1,
0,
1,
1,
0
],
"mars": [
1,
1,
0,
1,
0,
0,
1,
1,
1,
1,
1,
0
],
"mercury": [
1,
1,
1,
1,
1,
0,
1,
0,
1,
1,
0,
0
],
"jupiter": [
0,
1,
1,
0,
0,
0,
0,
0,
1,
0,
1,
0
],
"venus": [
0,
1,
0,
1,
1,
1,
1,
1,
0,
0,
1,
1
],
"saturn": [
0,
0,
1,
1,
1,
1,
1,
0,
1,
1,
0,
1
],
"lagna": [
0,
1,
1,
0,
1,
1,
0,
1,
0,
1,
0,
1
]
},
"totals": [
2,
7,
5,
5,
4,
4,
4,
5,
5,
5,
4,
4
],
"sum": 54
},
"jupiter": {
"grid": {
"sun": [
1,
1,
0,
1,
1,
1,
1,
0,
0,
1,
1,
1
],
"moon": [
0,
1,
0,
0,
1,
0,
1,
0,
1,
0,
1,
0
],
"mars": [
1,
1,
0,
1,
0,
0,
1,
1,
0,
1,
1,
0
],
"mercury": [
1,
1,
1,
0,
1,
1,
0,
1,
1,
1,
0,
0
],
"jupiter": [
1,
1,
0,
1,
1,
1,
1,
0,
0,
1,
1,
0
],
"venus": [
1,
1,
0,
0,
1,
0,
0,
1,
1,
0,
0,
1
],
"saturn": [
1,
1,
0,
0,
0,
0,
0,
1,
0,
0,
1,
0
],
"lagna": [
1,
1,
1,
0,
1,
1,
0,
1,
1,
1,
1,
0
]
},
"totals": [
7,
8,
2,
3,
6,
4,
4,
5,
4,
5,
6,
2
],
"sum": 56
},
"venus": {
"grid": {
"sun": [
0,
1,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0
],
"moon": [
1,
1,
1,
1,
1,
0,
0,
1,
1,
0,
1,
1
],
"mars": [
0,
0,
1,
1,
0,
1,
0,
0,
1,
0,
1,
1
],
"mercury": [
1,
0,
1,
0,
0,
0,
1,
0,
1,
1,
0,
0
],
"jupiter": [
1,
1,
0,
0,
0,
0,
0,
1,
0,
0,
1,
1
],
"venus": [
1,
1,
0,
1,
1,
1,
1,
1,
0,
0,
1,
1
],
"saturn": [
1,
0,
0,
1,
1,
1,
1,
0,
0,
0,
1,
1
],
"lagna": [
1,
0,
1,
0,
1,
1,
1,
1,
1,
0,
0,
1
]
},
"totals": [
6,
4,
5,
4,
4,
4,
4,
4,
4,
1,
6,
6
],
"sum": 52
},
"saturn": {
"grid": {
"sun": [
1,
1,
0,
1,
1,
0,
1,
0,
0,
1,
1,
0
],
"moon": [
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
1,
0
],
"mars": [
0,
0,
1,
0,
1,
1,
0,
0,
0,
1,
1,
1
],
"mercury": [
1,
1,
1,
1,
0,
0,
0,
0,
0,
1,
0,
1
],
"jupiter": [
0,
1,
1,
0,
0,
0,
0,
1,
1,
0,
0,
0
],
"venus": [
0,
1,
1,
0,
0,
0,
0,
0,
1,
0,
0,
0
],
"saturn": [
1,
1,
0,
0,
0,
0,
1,
0,
0,
0,
1,
0
],
"lagna": [
0,
1,
1,
0,
1,
0,
1,
1,
0,
1,
0,
0
]
},
"totals": [
3,
6,
6,
2,
3,
2,
3,
2,
2,
4,
4,
2
],
"sum": 39
}
}
},
"avastha": {
"sun": {
"jagrat": "Swapna (dreaming)",
"baladi": "Bala (infant)",
"deeptadi": "Mudita (delighted)",
"dignity": "Friend's sign"
},
"moon": {
"jagrat": "Swapna (dreaming)",
"baladi": "Vriddha (old)",
"deeptadi": "Shanta (quiet)",
"dignity": "Neutral sign"
},
"mars": {
"jagrat": "Jagrat (awake)",
"baladi": "Mrita (dead)",
"deeptadi": "Swastha (at home)",
"dignity": "Own sign"
},
"mercury": {
"jagrat": "Swapna (dreaming)",
"baladi": "Vriddha (old)",
"deeptadi": "Mudita (delighted)",
"dignity": "Friend's sign"
},
"jupiter": {
"jagrat": "Jagrat (awake)",
"baladi": "Mrita (dead)",
"deeptadi": "Deepta (blazing)",
"dignity": "Exalted"
},
"venus": {
"jagrat": "Sushupta (asleep)",
"baladi": "Mrita (dead)",
"deeptadi": "Dina (distressed)",
"dignity": "Enemy's sign"
},
"saturn": {
"jagrat": "Swapna (dreaming)",
"baladi": "Mrita (dead)",
"deeptadi": "Shanta (quiet)",
"dignity": "Neutral sign"
}
},
"sthira_karakas": [
{
"karaka": "Atma (soul)",
"planet": "sun"
},
{
"karaka": "Amatya (career)",
"planet": "mercury"
},
{
"karaka": "Bhratri (siblings)",
"planet": "mars"
},
{
"karaka": "Matri (mother)",
"planet": "moon"
},
{
"karaka": "Pitri (father)",
"planet": "jupiter"
},
{
"karaka": "Gnati (kin, rivals)",
"planet": "saturn"
},
{
"karaka": "Dara (spouse)",
"planet": "venus"
}
],
"lucky": {
"numbers": [
1,
3,
9
],
"unlucky_numbers": [
2,
4,
6,
8
],
"years": [
[
1,
10,
19,
28
],
[
3,
12,
21,
30
]
],
"days": [
"sunday",
"thursday",
"tuesday"
],
"planets": [
"sun",
"jupiter",
"mars"
],
"friendly_signs": [
"cancer",
"aries",
"scorpio",
"sagittarius",
"pisces"
],
"lagnas": [
"leo",
"scorpio",
"sagittarius",
"aquarius",
"aries",
"taurus"
],
"metal": "Copper",
"gem": "Red coral",
"lagna_lord": "sun",
"rashi_lord": "mars"
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Uranus, Neptune and Pluto: sidereal position, house from the lagna, and the house reading in English and Hindi
POST/v1/kundli/outer-planets
2 credits · Secret key (test or live) · getOuterPlanets · Page for this operation
Positions are sidereal, consistent with the rest of the chart; the reading is by house only (a sidereal sign carries no Western sign text). Needs a birth time.
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
planetsarray of object requiredidstring requiredone of
uranus,neptune,plutolongitudenumber required≥ 0 · < 360
signstring requiredsign_degreenumber requirednakshatrastring requiredretrogradeboolean requiredhouseinteger or null requiredOne of:
- integer
- null
label_histring requiredintroobject or null requiredOne of:
- object
Fields
enstring requiredhistring or null requiredOne of:
- string
- null
- null
- object
readingobject or null requiredOne of:
- object
Fields
enstring requiredhistring or null requiredOne of:
- string
- null
- null
- object
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/outer-planets' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/outer-planets", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/outer-planets",
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/kundli/outer-planets');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 4,746 characters
{
"data": {
"planets": [
{
"id": "uranus",
"longitude": 252.2998,
"sign": "sagittarius",
"sign_degree": 12.3,
"nakshatra": "mula",
"retrograde": true,
"house": 5,
"label_hi": "यूरेनस",
"intro": {
"en": "Uranus takes about 84 years to circle the Sun, so it sits in one sign for roughly seven years and describes an age group rather than a person. What is personal is the house it falls in: the area of life where you resist being told what to do, where change tends to arrive suddenly rather than gradually, and where you are least willing to live by someone else’s timetable.",
"hi": "यूरेनस को सूर्य की एक परिक्रमा में लगभग 84 वर्ष लगते हैं, इसलिए यह एक राशि में करीब सात वर्ष रहता है और किसी व्यक्ति से अधिक एक पूरी पीढ़ी को दर्शाता है। व्यक्तिगत बात इसका भाव है — जीवन का वह क्षेत्र जहाँ आप बंधन सहज स्वीकार नहीं करते, जहाँ परिवर्तन धीरे-धीरे नहीं बल्कि अचानक आता है, और जहाँ किसी और की गति से चलना आपको सबसे कठिन लगता है।"
},
"reading": {
"en": "Uranus in the 5th brings originality to whatever you make and unpredictability to romance. Attractions can be sudden, and creative work matters most when nobody has told you what it should look like.",
"hi": "पंचम भाव में यूरेनस आपकी रचना में मौलिकता और प्रेम-संबंधों में अनिश्चितता लाता है। आकर्षण अचानक हो सकता है, और सृजन तभी सबसे सार्थक लगता है जब उसका स्वरूप किसी और ने तय न किया हो।"
}
},
{
"id": "neptune",
"longitude": 258.5107,
"sign": "sagittarius",
"sign_degree": 18.51,
"nakshatra": "purva_ashadha",
"retrograde": true,
"house": 5,
"label_hi": "नेपच्यून",
"intro": {
"en": "Neptune takes about 165 years to circle the Sun and stays in one sign for around fourteen, so its sign belongs to a generation rather than to you. The house is where the outline goes soft: where you see what could be rather than what is, where sympathy comes easily, and where it is worth checking the facts a second time.",
"hi": "नेपच्यून को सूर्य की परिक्रमा में लगभग 165 वर्ष लगते हैं और यह एक राशि में करीब चौदह वर्ष रहता है, इसलिए इसकी राशि आपकी नहीं, एक पीढ़ी की पहचान है। इसका भाव वह क्षेत्र है जहाँ रेखाएँ धुँधली पड़ जाती हैं — जहाँ आप वह देखते हैं जो हो सकता है, न कि जो है; जहाँ करुणा सहज आती है; और जहाँ तथ्यों को दोबारा जाँच लेना उचित रहता है।"
},
"reading": {
"en": "Neptune in the 5th brings imagination to creative work and idealism to romance. Art of some kind is a real outlet, and it helps to see a person as they are before deciding who they might become.",
"hi": "पंचम भाव में नेपच्यून सृजन में कल्पना और प्रेम में आदर्शवाद लाता है। किसी न किसी रूप में कला वास्तविक अभिव्यक्ति बनती है, और किसी को वह मान लेने से पहले जैसा वह हो सकता है, उसे जैसा वह है वैसा देख लेना हितकर होता है।"
}
},
{
"id": "pluto",
"longitude": 201.3313,
"sign": "libra",
"sign_degree": 21.33,
"nakshatra": "vishakha",
"retrograde": false,
"house": 3,
"label_hi": "प्लूटो",
"intro": {
"en": "Pluto takes roughly 248 years to circle the Sun and can spend anywhere from twelve to thirty years in one sign, so its sign is generational. The house is where things end and begin again rather than simply improving — the area you keep returning to, and the one where you would least willingly be controlled by anyone.",
"hi": "प्लूटो को सूर्य की परिक्रमा में लगभग 248 वर्ष लगते हैं और यह एक राशि में बारह से तीस वर्ष तक रह सकता है, इसलिए इसकी राशि पीढ़ीगत होती है। इसका भाव वह क्षेत्र है जहाँ चीज़ें केवल सुधरती नहीं, बल्कि समाप्त होकर नए सिरे से आरंभ होती हैं — वह क्षेत्र जहाँ आप बार-बार लौटते हैं, और जहाँ किसी का नियंत्रण आपको सबसे कम स्वीकार्य है।"
},
"reading": {
"en": "Pluto in the 3rd gives a probing mind that is not satisfied by the surface answer. Your words carry weight, and early ties with siblings or neighbours may have marked you more than you say.",
"hi": "तृतीय भाव में प्लूटो ऐसी खोजी बुद्धि देता है जो ऊपरी उत्तर से संतुष्ट नहीं होती। आपके शब्दों में भार होता है, और भाई-बहनों या पड़ोस से जुड़े आरंभिक संबंधों ने आप पर उससे अधिक छाप छोड़ी हो सकती है जितना आप कहते हैं।"
}
}
]
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Dwadasamsa (D12) read for the lineage: father, mother, the 4th and 9th, strength 0–10
POST/v1/kundli/d12
2 credits · Secret key (test or live) · getD12Analysis · Page for this operation
Needs a birth time.
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
lagna_signstring requiredfatherstring requiredmotherstring requiredoccupantsobject requiredfourtharray of string requirednintharray of string required
strengthnumber required≥ 0 · ≤ 10
ratingstring requiredinsightsarray of string requiredinterpretationstring required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/d12' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/d12", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/d12",
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/kundli/d12');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 2,082 characters
{
"data": {
"lagna_sign": "virgo",
"father": "Sun in Taurus, 9th house",
"mother": "Moon in Scorpio, 3rd house",
"occupants": {
"fourth": [
"ketu"
],
"ninth": [
"sun",
"mercury"
]
},
"strength": 6.7,
"rating": "Balanced inheritance",
"insights": [
"Moon is debilitated in D12 Scorpio. What it carries here - the mother and emotional inheritance - is the weak link, and it is yours to repair.",
"Venus is debilitated in D12 Virgo. What it carries here - household comfort, the women of the family and inherited wealth - is the weak link, and it is yours to repair.",
"Saturn is dignified in D12 Libra. What it carries here - ancestral duty, debt and long obligation - supports you.",
"Rahu is dignified in D12 Gemini. What it carries here - migration, mixed lineage and breaks with tradition - supports you.",
"Ketu is dignified in D12 Sagittarius. What it carries here - unfinished ancestral karma (pitru rin) - supports you.",
"Sun (father) sits in the 9th house of D12 in Taurus - a workable, supportive line from the father.",
"Moon (mother) sits in the 3rd house of D12 in Scorpio - the bond with the mother matured late rather than early.",
"D12 4th house (roots, mother, family property): Ketu.",
"D12 9th house (father, dharma, ancestral blessing): Sun, Mercury."
],
"interpretation": "Your Dwadasamsa lagna is Virgo, and the chart reads 6.7/10 - balanced inheritance. What you received from your parents and lineage is largely usable capital. Honouring it - respect for elders, keeping family commitments, shraddh in Pitru Paksha - keeps that channel open."
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Upagrahas: the five from the Sun, and Kala, Mrityu, Ardhaprahara, Yamaghantaka and Gulika from the day's eight parts
POST/v1/kundli/upagrahas
1 credit · Secret key (test or live) · getUpagrahas · Page for this operation
Needs a birth time. The time-based points are the lagna at the end of each part, by sunrise and sunset at the birth place.
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
sun_basedarray of UpagrahaPoint requiredidstring requirednamestring requiredlongitudenumber requiredsignstring requireddegreenumber requirednakshatrastring requiredpadainteger required≥ 1 · ≤ 4
houseinteger required≥ 1 · ≤ 12
partintegerWhich of the eight parts. Time-based only.
planetstringWhose part. Time-based only.
atstring (date-time)The moment the lagna is taken: the end of the part. Time-based only.
time_basedarray of UpagrahaPoint requiredidstring requirednamestring requiredlongitudenumber requiredsignstring requireddegreenumber requirednakshatrastring requiredpadainteger required≥ 1 · ≤ 4
houseinteger required≥ 1 · ≤ 12
partintegerWhich of the eight parts. Time-based only.
planetstringWhose part. Time-based only.
atstring (date-time)The moment the lagna is taken: the end of the part. Time-based only.
frameobject requiredperiodstring requiredone of
day,nightweekdaystring requiredstartstring (date-time) requiredendstring (date-time) required
sourceobject requiredtextstring requiredbasisstring requiredone of
convention
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/upagrahas' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/upagrahas", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/upagrahas",
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/kundli/upagrahas');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 3,471 characters
{
"data": {
"sun_based": [
{
"id": "dhuma",
"name": "Dhuma",
"longitude": 249.6472,
"sign": "sagittarius",
"degree": 9.6472,
"nakshatra": "mula",
"pada": 3,
"house": 5
},
{
"id": "vyatipata",
"name": "Vyatipata",
"longitude": 342.9806,
"sign": "pisces",
"degree": 12.9806,
"nakshatra": "uttara_bhadrapada",
"pada": 3,
"house": 8
},
{
"id": "parivesha",
"name": "Parivesha",
"longitude": 162.9806,
"sign": "virgo",
"degree": 12.9806,
"nakshatra": "hasta",
"pada": 1,
"house": 2
},
{
"id": "indrachapa",
"name": "Indrachapa",
"longitude": 69.6472,
"sign": "gemini",
"degree": 9.6472,
"nakshatra": "ardra",
"pada": 1,
"house": 11
},
{
"id": "upaketu",
"name": "Upaketu",
"longitude": 86.3139,
"sign": "gemini",
"degree": 26.3139,
"nakshatra": "punarvasu",
"pada": 2,
"house": 11
}
],
"time_based": [
{
"id": "kala",
"name": "Kala",
"longitude": 297.83,
"sign": "capricorn",
"degree": 27.83,
"nakshatra": "dhanishta",
"pada": 2,
"house": 6,
"part": 8,
"planet": "sun",
"at": "1990-08-13T13:32:44.973Z"
},
{
"id": "mrityu",
"name": "Mrityu",
"longitude": 158.72,
"sign": "virgo",
"degree": 8.72,
"nakshatra": "uttara_phalguni",
"pada": 4,
"house": 2,
"part": 2,
"planet": "mars",
"at": "1990-08-13T03:37:26.533Z"
},
{
"id": "ardhaprahara",
"name": "Ardhaprahara",
"longitude": 180.48,
"sign": "libra",
"degree": 0.48,
"nakshatra": "chitra",
"pada": 3,
"house": 3,
"part": 3,
"planet": "mercury",
"at": "1990-08-13T05:16:39.606Z"
},
{
"id": "yamaghantaka",
"name": "Yamaghantaka",
"longitude": 201.85,
"sign": "libra",
"degree": 21.85,
"nakshatra": "vishakha",
"pada": 1,
"house": 3,
"part": 4,
"planet": "jupiter",
"at": "1990-08-13T06:55:52.680Z"
},
{
"id": "gulika",
"name": "Gulika",
"longitude": 245.01,
"sign": "sagittarius",
"degree": 5.01,
"nakshatra": "mula",
"pada": 2,
"house": 5,
"part": 6,
"planet": "saturn",
"at": "1990-08-13T10:14:18.826Z"
}
],
"frame": {
"period": "day",
"weekday": "monday",
"start": "1990-08-13T00:19:00.387Z",
"end": "1990-08-13T13:32:44.973Z"
},
"source": {
"text": "Wikipedia's Upagraha page: its formulas and tables. The Sanskrit text has not been read. Gulika is also called Mandi there.",
"basis": "convention"
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Arudha padas of the twelve houses, with Arudha Lagna and Upapada
POST/v1/kundli/arudha
1 credit · Secret key (test or live) · getArudhaPadas · Page for this operation
Needs a birth time. Choose the lord of Scorpio and of Aquarius: rules for choosing between the two lords differ, and the API does not pick by strength.
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
scorpio_lordstringone of
mars,ketu· default"mars"aquarius_lordstringone of
saturn,rahu· default"saturn"
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
padasarray of object requiredidstring requiredhouseinteger requirednamestring requiredlordstring requiredlord_houseinteger requiredsignstring requiredpada_houseinteger requiredexception_appliedboolean requiredThe count landed on the sign or its 7th, so the 10th from there was taken.
planetsarray of string required
arudha_lagnastring requiredupapadastring requiredscorpio_lordstring requiredaquarius_lordstring requiredsourceobject requiredtextstring requiredbasisstring requiredone of
convention
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/arudha' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/arudha", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/arudha",
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/kundli/arudha');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 3,823 characters
{
"data": {
"padas": [
{
"id": "a1",
"house": 1,
"name": "Arudha Lagna",
"lord": "sun",
"lord_house": 12,
"sign": "gemini",
"pada_house": 11,
"exception_applied": false,
"planets": []
},
{
"id": "a2",
"house": 2,
"name": "Dhana Pada",
"lord": "mercury",
"lord_house": 1,
"sign": "cancer",
"pada_house": 12,
"exception_applied": false,
"planets": [
"sun",
"venus",
"jupiter",
"ketu"
]
},
{
"id": "a3",
"house": 3,
"name": "Bhratri Pada",
"lord": "venus",
"lord_house": 12,
"sign": "capricorn",
"pada_house": 6,
"exception_applied": true,
"planets": [
"rahu"
]
},
{
"id": "a4",
"house": 4,
"name": "Matri Pada",
"lord": "mars",
"lord_house": 9,
"sign": "virgo",
"pada_house": 2,
"exception_applied": false,
"planets": []
},
{
"id": "a5",
"house": 5,
"name": "Mantra Pada",
"lord": "jupiter",
"lord_house": 12,
"sign": "aquarius",
"pada_house": 7,
"exception_applied": false,
"planets": []
},
{
"id": "a6",
"house": 6,
"name": "Shatru Pada",
"lord": "saturn",
"lord_house": 5,
"sign": "scorpio",
"pada_house": 4,
"exception_applied": false,
"planets": []
},
{
"id": "a7",
"house": 7,
"name": "Dara Pada",
"lord": "saturn",
"lord_house": 5,
"sign": "libra",
"pada_house": 3,
"exception_applied": false,
"planets": []
},
{
"id": "a8",
"house": 8,
"name": "Roga Pada",
"lord": "jupiter",
"lord_house": 12,
"sign": "scorpio",
"pada_house": 4,
"exception_applied": false,
"planets": []
},
{
"id": "a9",
"house": 9,
"name": "Bhagya Pada",
"lord": "mars",
"lord_house": 9,
"sign": "capricorn",
"pada_house": 6,
"exception_applied": true,
"planets": [
"rahu"
]
},
{
"id": "a10",
"house": 10,
"name": "Rajya Pada",
"lord": "venus",
"lord_house": 12,
"sign": "virgo",
"pada_house": 2,
"exception_applied": false,
"planets": []
},
{
"id": "a11",
"house": 11,
"name": "Labha Pada",
"lord": "mercury",
"lord_house": 1,
"sign": "libra",
"pada_house": 3,
"exception_applied": false,
"planets": []
},
{
"id": "a12",
"house": 12,
"name": "Upapada",
"lord": "moon",
"lord_house": 9,
"sign": "libra",
"pada_house": 3,
"exception_applied": true,
"planets": []
}
],
"arudha_lagna": "gemini",
"upapada": "libra",
"scorpio_lord": "mars",
"aquarius_lord": "saturn",
"source": {
"text": "Wikipedia's Lagna page, which states the rule; the Sanskrit text has not been read. The Upapada is the pada of the 12th house.",
"basis": "convention"
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Jaimini chara karakas on the seven-planet scheme, with the karakamsha
POST/v1/kundli/chara-karakas
1 credit · Secret key (test or live) · getCharaKarakas · Page for this operation
Needs a birth time. The seven planets ranked by degrees in their sign, highest first. Rahu is not counted; schemes with eight karakas exist and give different roles.
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
schemestring requiredone of
sevenkarakasarray of object requiredrankinteger requiredrolestring requiredabbreviationstring requirednamestring requiredplanetstring requireddegree_in_signnumber required
atmakarakastring requiredkarakamshastring requiredbasisstring requiredone of
convention
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/chara-karakas' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/chara-karakas", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/chara-karakas",
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/kundli/chara-karakas');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 1,822 characters
{
"data": {
"scheme": "seven",
"karakas": [
{
"rank": 1,
"role": "atmakaraka",
"abbreviation": "AK",
"name": "Atmakaraka",
"planet": "sun",
"degree_in_sign": 26.31
},
{
"rank": 2,
"role": "amatyakaraka",
"abbreviation": "AmK",
"name": "Amatyakaraka",
"planet": "saturn",
"degree_in_sign": 26.27
},
{
"rank": 3,
"role": "bhratrikaraka",
"abbreviation": "BK",
"name": "Bhratrikaraka",
"planet": "mars",
"degree_in_sign": 26.23
},
{
"rank": 4,
"role": "matrikaraka",
"abbreviation": "MK",
"name": "Matrikaraka",
"planet": "mercury",
"degree_in_sign": 23.64
},
{
"rank": 5,
"role": "putrakaraka",
"abbreviation": "PK",
"name": "Putrakaraka",
"planet": "moon",
"degree_in_sign": 18.1
},
{
"rank": 6,
"role": "gnatikaraka",
"abbreviation": "GK",
"name": "Gnatikaraka",
"planet": "venus",
"degree_in_sign": 5.2
},
{
"rank": 7,
"role": "darakaraka",
"abbreviation": "DK",
"name": "Darakaraka",
"planet": "jupiter",
"degree_in_sign": 5.14
}
],
"atmakaraka": "sun",
"karakamsha": "aquarius",
"basis": "convention"
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Bhav chalit: the Sripati bhavas, and which planets shift from their rashi house
POST/v1/kundli/bhav-chalit
1 credit · Secret key (test or live) · getBhavChalit · Page for this operation
Needs a birth time. Madhya of the 1st is the lagna and of the 10th the midheaven; each arambh is halfway between two madhyas.
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.
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
systemstring requiredone of
sripatibhavasarray of object requiredbhavainteger requiredarambhnumber requiredmadhyanumber required
planetsarray of object requiredplanetstring requiredlongitudenumber requiredrashi_houseinteger requiredbhavainteger requiredshiftedboolean required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/bhav-chalit' \
-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}}}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/bhav-chalit", {
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
}
}
}),
});
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,
},
},
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/bhav-chalit",
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/kundli/bhav-chalit');
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}}}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 2,855 characters
{
"data": {
"system": "sripati",
"bhavas": [
{
"bhava": 1,
"arambh": 108.8953,
"madhya": 124.27
},
{
"bhava": 2,
"arambh": 138.8953,
"madhya": 153.5207
},
{
"bhava": 3,
"arambh": 168.146,
"madhya": 182.7713
},
{
"bhava": 4,
"arambh": 197.3967,
"madhya": 212.022
},
{
"bhava": 5,
"arambh": 227.3967,
"madhya": 242.7713
},
{
"bhava": 6,
"arambh": 258.146,
"madhya": 273.5207
},
{
"bhava": 7,
"arambh": 288.8953,
"madhya": 304.27
},
{
"bhava": 8,
"arambh": 318.8953,
"madhya": 333.5207
},
{
"bhava": 9,
"arambh": 348.146,
"madhya": 2.7713
},
{
"bhava": 10,
"arambh": 17.3967,
"madhya": 32.022
},
{
"bhava": 11,
"arambh": 47.3967,
"madhya": 62.7713
},
{
"bhava": 12,
"arambh": 78.146,
"madhya": 93.5207
}
],
"planets": [
{
"planet": "sun",
"longitude": 116.3139,
"rashi_house": 12,
"bhava": 1,
"shifted": true
},
{
"planet": "moon",
"longitude": 18.0955,
"rashi_house": 9,
"bhava": 10,
"shifted": true
},
{
"planet": "mercury",
"longitude": 143.6373,
"rashi_house": 1,
"bhava": 2,
"shifted": true
},
{
"planet": "venus",
"longitude": 95.1983,
"rashi_house": 12,
"bhava": 12,
"shifted": false
},
{
"planet": "mars",
"longitude": 26.2271,
"rashi_house": 9,
"bhava": 10,
"shifted": true
},
{
"planet": "jupiter",
"longitude": 95.14,
"rashi_house": 12,
"bhava": 12,
"shifted": false
},
{
"planet": "saturn",
"longitude": 266.2724,
"rashi_house": 5,
"bhava": 6,
"shifted": true
},
{
"planet": "rahu",
"longitude": 283.4929,
"rashi_house": 6,
"bhava": 6,
"shifted": false
},
{
"planet": "ketu",
"longitude": 103.4929,
"rashi_house": 12,
"bhava": 12,
"shifted": false
}
]
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
Asta and Uday: when each planet sets and rises near the Sun, for a place
POST/v1/planets/asta
2 credits · Secret key (test or live) · getAstaUday · Page for this operation
A daily test in time-degrees at sunrise and sunset. Published panchangs use their own models, so dates can differ by days: see Vedic additions in the docs.
Request body
fromstring (date) requirede.g.
"1990-08-13"tostring (date) requiredAt most 366 days after from.
e.g.
"1990-08-13"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
planetsarray of string
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
fromstring (date) requirede.g.
"1990-08-13"tostring (date) requirede.g.
"1990-08-13"periodsarray of object requiredplanetstring requiredastastring (date-time) requiredudaystring (date-time) requireddaysnumber requiredsets_instring requiredone of
morning,eveningrises_instring requiredone of
morning,eveningdegrees_at_astanumber required
sourceobject requiredtextstring requiredbasisstring requiredone of
convention
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/planets/asta' \
-H 'Authorization: Bearer al_test_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"from":"2026-07-01","to":"2026-08-20","place":{"latitude":28.6139,"longitude":77.209},"planets":["jupiter"]}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/planets/asta", {
method: "POST",
headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"from": "2026-07-01",
"to": "2026-08-20",
"place": {
"latitude": 28.6139,
"longitude": 77.209
},
"planets": [
"jupiter"
]
}),
});
console.log(JSON.stringify(await res.json(), null, 2));Python
import json
import urllib.error
import urllib.request
body = {
"from": "2026-07-01",
"to": "2026-08-20",
"place": {
"latitude": 28.6139,
"longitude": 77.209,
},
"planets": [
"jupiter",
],
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/planets/asta",
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/planets/asta');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"from":"2026-07-01","to":"2026-08-20","place":{"latitude":28.6139,"longitude":77.209},"planets":["jupiter"]}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 798 characters
{
"data": {
"from": "2026-07-01",
"to": "2026-08-20",
"periods": [
{
"planet": "jupiter",
"asta": "2026-07-13T13:51:27.411Z",
"uday": "2026-08-12T00:18:41.021Z",
"days": 29.4,
"sets_in": "evening",
"rises_in": "morning",
"degrees_at_asta": 11
}
],
"source": {
"text": "When the planet stops and starts rising or setting far enough from the Sun, in time-degrees, tested at sunrise and sunset. Published panchangs use their own models and can differ by days. Not a forecast of a sighting.",
"basis": "convention"
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2
},
"warnings": []
}Try it
A series of sidereal positions over a range, at up to 400 steps
POST/v1/planets/series
2 credits · Secret key (test or live) · getPlanetSeries · Page for this operation
Request body
fromstring (date) requirede.g.
"1990-08-13"tostring (date) requirede.g.
"1990-08-13"stepstringone of
hour,6h,day,week· default"day"planetsarray of string
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
stepstring requiredcountinteger requiredatarray of string (date-time) requiredplanetsarray of object requiredplanetstring requiredpointsarray of object requiredFields
longitudenumber requiredspeednumber requiredretrogradeboolean requiredsignstring requirednakshatrastring required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/planets/series' \
-H 'Authorization: Bearer al_test_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"from":"2026-01-01","to":"2026-01-03","step":"day","planets":["moon"]}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/planets/series", {
method: "POST",
headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"from": "2026-01-01",
"to": "2026-01-03",
"step": "day",
"planets": [
"moon"
]
}),
});
console.log(JSON.stringify(await res.json(), null, 2));Python
import json
import urllib.error
import urllib.request
body = {
"from": "2026-01-01",
"to": "2026-01-03",
"step": "day",
"planets": [
"moon",
],
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/planets/series",
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/planets/series');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"from":"2026-01-01","to":"2026-01-03","step":"day","planets":["moon"]}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 1,029 characters
{
"data": {
"step": "day",
"count": 3,
"at": [
"2026-01-01T00:00:00.000Z",
"2026-01-02T00:00:00.000Z",
"2026-01-03T00:00:00.000Z"
],
"planets": [
{
"planet": "moon",
"points": [
{
"longitude": 42.4949,
"speed": 14.9863,
"retrograde": false,
"sign": "taurus",
"nakshatra": "rohini"
},
{
"longitude": 57.5326,
"speed": 15.0594,
"retrograde": false,
"sign": "taurus",
"nakshatra": "mrigashira"
},
{
"longitude": 72.5616,
"speed": 14.9676,
"retrograde": false,
"sign": "gemini",
"nakshatra": "ardra"
}
]
}
]
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2,
"ayanamsa": "lahiri"
},
"warnings": []
}Try it
The 12 rashis: span, lord, element, modality, varna, vashya and nakshatras
GET/v1/reference/rashis
1 credit · Secret key (test or live) · getRashiReference · Page for this operation
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
lang | query | string | one of en, hi · default "en" |
Response
JSON { data, meta, warnings }, where data is:
rashisarray of object requiredidstring requirednumberinteger requirednamestring requiredstartnumber requiredendnumber requiredlordstring requiredelementstring requiredmodalitystring requiredone of
movable,fixed,dualvarnastring requiredvashyastring requirednakshatrasarray of string required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl 'https://api.astrologics.in/v1/reference/rashis' \
-H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/reference/rashis", {
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/reference/rashis",
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/reference/rashis');
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 · 4,692 characters
{
"data": {
"rashis": [
{
"id": "aries",
"number": 1,
"name": "Aries",
"start": 0,
"end": 30,
"lord": "mars",
"element": "fire",
"modality": "movable",
"varna": "kshatriya",
"vashya": "chatushpada",
"nakshatras": [
"ashwini",
"bharani",
"krittika"
]
},
{
"id": "taurus",
"number": 2,
"name": "Taurus",
"start": 30,
"end": 60,
"lord": "venus",
"element": "earth",
"modality": "fixed",
"varna": "vaishya",
"vashya": "chatushpada",
"nakshatras": [
"krittika",
"rohini",
"mrigashira"
]
},
{
"id": "gemini",
"number": 3,
"name": "Gemini",
"start": 60,
"end": 90,
"lord": "mercury",
"element": "air",
"modality": "dual",
"varna": "shudra",
"vashya": "manava",
"nakshatras": [
"mrigashira",
"ardra",
"punarvasu"
]
},
{
"id": "cancer",
"number": 4,
"name": "Cancer",
"start": 90,
"end": 120,
"lord": "moon",
"element": "water",
"modality": "movable",
"varna": "brahmin",
"vashya": "jalachara",
"nakshatras": [
"punarvasu",
"pushya",
"ashlesha"
]
},
{
"id": "leo",
"number": 5,
"name": "Leo",
"start": 120,
"end": 150,
"lord": "sun",
"element": "fire",
"modality": "fixed",
"varna": "kshatriya",
"vashya": "vanachara",
"nakshatras": [
"magha",
"purva_phalguni",
"uttara_phalguni"
]
},
{
"id": "virgo",
"number": 6,
"name": "Virgo",
"start": 150,
"end": 180,
"lord": "mercury",
"element": "earth",
"modality": "dual",
"varna": "vaishya",
"vashya": "manava",
"nakshatras": [
"uttara_phalguni",
"hasta",
"chitra"
]
},
{
"id": "libra",
"number": 7,
"name": "Libra",
"start": 180,
"end": 210,
"lord": "venus",
"element": "air",
"modality": "movable",
"varna": "shudra",
"vashya": "manava",
"nakshatras": [
"chitra",
"swati",
"vishakha"
]
},
{
"id": "scorpio",
"number": 8,
"name": "Scorpio",
"start": 210,
"end": 240,
"lord": "mars",
"element": "water",
"modality": "fixed",
"varna": "brahmin",
"vashya": "keeta",
"nakshatras": [
"vishakha",
"anuradha",
"jyeshtha"
]
},
{
"id": "sagittarius",
"number": 9,
"name": "Sagittarius",
"start": 240,
"end": 270,
"lord": "jupiter",
"element": "fire",
"modality": "dual",
"varna": "kshatriya",
"vashya": "manava",
"nakshatras": [
"mula",
"purva_ashadha",
"uttara_ashadha"
]
},
{
"id": "capricorn",
"number": 10,
"name": "Capricorn",
"start": 270,
"end": 300,
"lord": "saturn",
"element": "earth",
"modality": "movable",
"varna": "vaishya",
"vashya": "jalachara",
"nakshatras": [
"uttara_ashadha",
"shravana",
"dhanishta"
]
},
{
"id": "aquarius",
"number": 11,
"name": "Aquarius",
"start": 300,
"end": 330,
"lord": "saturn",
"element": "air",
"modality": "fixed",
"varna": "shudra",
"vashya": "manava",
"nakshatras": [
"dhanishta",
"shatabhisha",
"purva_bhadrapada"
]
},
{
"id": "pisces",
"number": 12,
"name": "Pisces",
"start": 330,
"end": 360,
"lord": "jupiter",
"element": "water",
"modality": "dual",
"varna": "brahmin",
"vashya": "jalachara",
"nakshatras": [
"purva_bhadrapada",
"uttara_bhadrapada",
"revati"
]
}
]
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1
},
"warnings": []
}Try it
The 27 nakshatras: span, lord, gana, yoni, nadi, deity and symbol
GET/v1/reference/nakshatras
1 credit · Secret key (test or live) · getNakshatraReference · Page for this operation
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
lang | query | string | one of en, hi · default "en" |
Response
JSON { data, meta, warnings }, where data is:
nakshatrasarray of object requiredidstring requirednumberinteger requirednamestring requiredstartnumber requiredendnumber requiredlordstring requiredganastring requiredyonistring requirednadistring requireddeitystring requiredsymbolstring required
sourceobject requireddeity_and_symbolstring required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl 'https://api.astrologics.in/v1/reference/nakshatras' \
-H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/reference/nakshatras", {
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/reference/nakshatras",
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/reference/nakshatras');
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 · 9,207 characters
{
"data": {
"nakshatras": [
{
"id": "ashwini",
"number": 1,
"name": "Ashwini",
"start": 0,
"end": 13.3333,
"lord": "ketu",
"gana": "deva",
"yoni": "horse",
"nadi": "aadi (vata)",
"deity": "Ashvins",
"symbol": "Horse's head"
},
{
"id": "bharani",
"number": 2,
"name": "Bharani",
"start": 13.3333,
"end": 26.6667,
"lord": "venus",
"gana": "manushya",
"yoni": "elephant",
"nadi": "madhya (pitta)",
"deity": "Yama",
"symbol": "Yoni"
},
{
"id": "krittika",
"number": 3,
"name": "Krittika",
"start": 26.6667,
"end": 40,
"lord": "sun",
"gana": "rakshasa",
"yoni": "goat",
"nadi": "antya (kapha)",
"deity": "Agni",
"symbol": "Knife or spear"
},
{
"id": "rohini",
"number": 4,
"name": "Rohini",
"start": 40,
"end": 53.3333,
"lord": "moon",
"gana": "manushya",
"yoni": "serpent",
"nadi": "antya (kapha)",
"deity": "Brahma or Prajapati",
"symbol": "Cart or chariot, temple, banyan tree"
},
{
"id": "mrigashira",
"number": 5,
"name": "Mrigashira",
"start": 53.3333,
"end": 66.6667,
"lord": "mars",
"gana": "deva",
"yoni": "serpent",
"nadi": "madhya (pitta)",
"deity": "Soma",
"symbol": "Deer's head"
},
{
"id": "ardra",
"number": 6,
"name": "Ardra",
"start": 66.6667,
"end": 80,
"lord": "rahu",
"gana": "manushya",
"yoni": "dog",
"nadi": "aadi (vata)",
"deity": "Rudra",
"symbol": "Teardrop, diamond, a human head"
},
{
"id": "punarvasu",
"number": 7,
"name": "Punarvasu",
"start": 80,
"end": 93.3333,
"lord": "jupiter",
"gana": "deva",
"yoni": "cat",
"nadi": "aadi (vata)",
"deity": "Aditi",
"symbol": "Bow and quiver"
},
{
"id": "pushya",
"number": 8,
"name": "Pushya",
"start": 93.3333,
"end": 106.6667,
"lord": "saturn",
"gana": "deva",
"yoni": "goat",
"nadi": "madhya (pitta)",
"deity": "Brihaspati",
"symbol": "Cow's udder, lotus, arrow and circle"
},
{
"id": "ashlesha",
"number": 9,
"name": "Ashlesha",
"start": 106.6667,
"end": 120,
"lord": "mercury",
"gana": "rakshasa",
"yoni": "cat",
"nadi": "antya (kapha)",
"deity": "Sarpas or Nagas",
"symbol": "Serpent"
},
{
"id": "magha",
"number": 10,
"name": "Magha",
"start": 120,
"end": 133.3333,
"lord": "ketu",
"gana": "rakshasa",
"yoni": "rat",
"nadi": "antya (kapha)",
"deity": "Pitrs",
"symbol": "Royal throne"
},
{
"id": "purva_phalguni",
"number": 11,
"name": "Purva Phalguni",
"start": 133.3333,
"end": 146.6667,
"lord": "venus",
"gana": "manushya",
"yoni": "rat",
"nadi": "madhya (pitta)",
"deity": "Bhaga",
"symbol": "Front legs of bed, hammock, fig tree"
},
{
"id": "uttara_phalguni",
"number": 12,
"name": "Uttara Phalguni",
"start": 146.6667,
"end": 160,
"lord": "sun",
"gana": "manushya",
"yoni": "cow",
"nadi": "aadi (vata)",
"deity": "Aryaman",
"symbol": "Four legs of bed, hammock"
},
{
"id": "hasta",
"number": 13,
"name": "Hasta",
"start": 160,
"end": 173.3333,
"lord": "moon",
"gana": "deva",
"yoni": "buffalo",
"nadi": "aadi (vata)",
"deity": "Savitri or Surya",
"symbol": "Hand or fist"
},
{
"id": "chitra",
"number": 14,
"name": "Chitra",
"start": 173.3333,
"end": 186.6667,
"lord": "mars",
"gana": "rakshasa",
"yoni": "tiger",
"nadi": "madhya (pitta)",
"deity": "Tvastar or Vishvakarman",
"symbol": "Bright jewel or pearl"
},
{
"id": "swati",
"number": 15,
"name": "Swati",
"start": 186.6667,
"end": 200,
"lord": "rahu",
"gana": "deva",
"yoni": "buffalo",
"nadi": "antya (kapha)",
"deity": "Vayu",
"symbol": "Shoot of plant, coral"
},
{
"id": "vishakha",
"number": 16,
"name": "Vishakha",
"start": 200,
"end": 213.3333,
"lord": "jupiter",
"gana": "rakshasa",
"yoni": "tiger",
"nadi": "antya (kapha)",
"deity": "Indra and Agni",
"symbol": "Triumphal arch, potter's wheel"
},
{
"id": "anuradha",
"number": 17,
"name": "Anuradha",
"start": 213.3333,
"end": 226.6667,
"lord": "saturn",
"gana": "deva",
"yoni": "deer",
"nadi": "madhya (pitta)",
"deity": "Mitra",
"symbol": "Triumphal archway, lotus"
},
{
"id": "jyeshtha",
"number": 18,
"name": "Jyeshtha",
"start": 226.6667,
"end": 240,
"lord": "mercury",
"gana": "rakshasa",
"yoni": "deer",
"nadi": "aadi (vata)",
"deity": "Indra",
"symbol": "Circular amulet, umbrella, earring"
},
{
"id": "mula",
"number": 19,
"name": "Mula",
"start": 240,
"end": 253.3333,
"lord": "ketu",
"gana": "rakshasa",
"yoni": "dog",
"nadi": "aadi (vata)",
"deity": "Nirrti",
"symbol": "Bunch of roots tied together, elephant goad"
},
{
"id": "purva_ashadha",
"number": 20,
"name": "Purva Ashadha",
"start": 253.3333,
"end": 266.6667,
"lord": "venus",
"gana": "manushya",
"yoni": "monkey",
"nadi": "madhya (pitta)",
"deity": "Apah",
"symbol": "Elephant tusk, fan, winnowing basket"
},
{
"id": "uttara_ashadha",
"number": 21,
"name": "Uttara Ashadha",
"start": 266.6667,
"end": 280,
"lord": "sun",
"gana": "manushya",
"yoni": "mongoose",
"nadi": "antya (kapha)",
"deity": "Visvedevas",
"symbol": "Elephant tusk, small bed"
},
{
"id": "shravana",
"number": 22,
"name": "Shravana",
"start": 280,
"end": 293.3333,
"lord": "moon",
"gana": "deva",
"yoni": "monkey",
"nadi": "antya (kapha)",
"deity": "Vishnu",
"symbol": "Ear or three footprints"
},
{
"id": "dhanishta",
"number": 23,
"name": "Dhanishta",
"start": 293.3333,
"end": 306.6667,
"lord": "mars",
"gana": "rakshasa",
"yoni": "lion",
"nadi": "madhya (pitta)",
"deity": "Eight Vasus",
"symbol": "Drum or flute"
},
{
"id": "shatabhisha",
"number": 24,
"name": "Shatabhisha",
"start": 306.6667,
"end": 320,
"lord": "rahu",
"gana": "rakshasa",
"yoni": "horse",
"nadi": "aadi (vata)",
"deity": "Varuna",
"symbol": "Empty circle, 1,000 flowers or stars"
},
{
"id": "purva_bhadrapada",
"number": 25,
"name": "Purva Bhadrapada",
"start": 320,
"end": 333.3333,
"lord": "jupiter",
"gana": "manushya",
"yoni": "lion",
"nadi": "aadi (vata)",
"deity": "Ajaikapada",
"symbol": "Swords or two front legs of funeral cot, man with two faces"
},
{
"id": "uttara_bhadrapada",
"number": 26,
"name": "Uttara Bhadrapada",
"start": 333.3333,
"end": 346.6667,
"lord": "saturn",
"gana": "manushya",
"yoni": "cow",
"nadi": "madhya (pitta)",
"deity": "Ahirbudhnya",
"symbol": "Twins, back legs of funeral cot, snake in the water"
},
{
"id": "revati",
"number": 27,
"name": "Revati",
"start": 346.6667,
"end": 360,
"lord": "mercury",
"gana": "deva",
"yoni": "elephant",
"nadi": "antya (kapha)",
"deity": "Pushan",
"symbol": "Fish or a pair of fish, drum"
}
],
"source": {
"deity_and_symbol": "Wikipedia's List of Nakshatras, in English. Abhijit, the 28th of some lists, is not included."
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1
},
"warnings": []
}Try it
Sidereal positions at any moment and place
POST/v1/planets/positions
1 credit · Secret key (test or live) · getPlanetPositions · Page for this operation
The lagna, the seven grahas, Uranus, Neptune and Pluto (include_outer), and Rahu/Ketu as both the mean and the true node, at an instant (datetime) or at a local date and time at the place. Each body: longitude, sign, degrees/minutes/seconds, nakshatra and pada, the nakshatra lord and KP sub lord, retrograde (the nodes always, by convention), combustion and the daily motion.
Request body
datetimestring (date-time)The instant (with its zone). Or send date and time instead.
datestring (date)With time: the local date at the place.
e.g.
"1990-08-13"timestringWith date: the local wall-clock time at the place, HH:MM or HH:MM:SS (its zone is looked up for that moment).
pattern
^([01]?\d|2[0-3]):[0-5]\d(:[0-5]\d)?$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
include_outerbooleandefault
falseoptionsOptionsayanamsastringEach 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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
atstring (date-time) requiredbodiesarray of object requiredidstring requiredlongitudenumber requiredsignstring requireddegree_in_signnumbernakshatrastringpadaintegerretrogradebooleannakshatra_lordstringsub_lordstringThe KP sub lord of the longitude.
combustbooleandmsobjectFields
degreesinteger requiredminutesinteger requiredsecondsinteger required
speednumber or nullOne of:
- number
- null
localobjectdatestring (date) requirede.g.
"1990-08-13"timestring requiredweekdaystring requiredtimezoneobject requiredFields
namestring requiredoffset_hoursnumber required
ayanamsanumberjulian_daynumber
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/planets/positions' \
-H 'Authorization: Bearer al_test_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"datetime":"2026-10-02T06:30:00Z","place":{"latitude":28.6139,"longitude":77.209},"include_outer":true}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/planets/positions", {
method: "POST",
headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
body: JSON.stringify({
"datetime": "2026-10-02T06:30:00Z",
"place": {
"latitude": 28.6139,
"longitude": 77.209
},
"include_outer": true
}),
});
console.log(JSON.stringify(await res.json(), null, 2));Python
import json
import urllib.error
import urllib.request
body = {
"datetime": "2026-10-02T06:30:00Z",
"place": {
"latitude": 28.6139,
"longitude": 77.209,
},
"include_outer": True,
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/planets/positions",
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/planets/positions');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"datetime":"2026-10-02T06:30:00Z","place":{"latitude":28.6139,"longitude":77.209},"include_outer":true}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 7,210 characters
{
"data": {
"at": "2026-10-02T06:30:00.000Z",
"bodies": [
{
"id": "lagna",
"longitude": 238.5647,
"sign": "scorpio",
"degree_in_sign": 28.5647,
"nakshatra": "jyeshtha",
"pada": 4,
"retrograde": false,
"nakshatra_lord": "mercury",
"sub_lord": "saturn",
"combust": false,
"dms": {
"degrees": 28,
"minutes": 33,
"seconds": 53
},
"speed": null
},
{
"id": "sun",
"longitude": 164.8547,
"sign": "virgo",
"degree_in_sign": 14.8547,
"nakshatra": "hasta",
"pada": 2,
"retrograde": false,
"nakshatra_lord": "moon",
"sub_lord": "jupiter",
"combust": false,
"dms": {
"degrees": 14,
"minutes": 51,
"seconds": 17
},
"speed": 0.9834726223741654
},
{
"id": "moon",
"longitude": 57.817,
"sign": "taurus",
"degree_in_sign": 27.8169,
"nakshatra": "mrigashira",
"pada": 2,
"retrograde": false,
"nakshatra_lord": "mars",
"sub_lord": "jupiter",
"combust": false,
"dms": {
"degrees": 27,
"minutes": 49,
"seconds": 1
},
"speed": 14.25527678484707
},
{
"id": "mars",
"longitude": 98.1943,
"sign": "cancer",
"degree_in_sign": 8.1942,
"nakshatra": "pushya",
"pada": 2,
"retrograde": false,
"nakshatra_lord": "saturn",
"sub_lord": "venus",
"combust": false,
"dms": {
"degrees": 8,
"minutes": 11,
"seconds": 39
},
"speed": 0.5803397792059286
},
{
"id": "mercury",
"longitude": 188.1121,
"sign": "libra",
"degree_in_sign": 8.1122,
"nakshatra": "swati",
"pada": 1,
"retrograde": false,
"nakshatra_lord": "rahu",
"sub_lord": "rahu",
"combust": false,
"dms": {
"degrees": 8,
"minutes": 6,
"seconds": 44
},
"speed": 1.2973155208214848
},
{
"id": "jupiter",
"longitude": 115.5841,
"sign": "cancer",
"degree_in_sign": 25.5842,
"nakshatra": "ashlesha",
"pada": 3,
"retrograde": false,
"nakshatra_lord": "mercury",
"sub_lord": "rahu",
"combust": false,
"dms": {
"degrees": 25,
"minutes": 35,
"seconds": 3
},
"speed": 0.17730550456042238
},
{
"id": "venus",
"longitude": 194.2332,
"sign": "libra",
"degree_in_sign": 14.2333,
"nakshatra": "swati",
"pada": 3,
"retrograde": false,
"nakshatra_lord": "rahu",
"sub_lord": "mercury",
"combust": false,
"dms": {
"degrees": 14,
"minutes": 14,
"seconds": 0
},
"speed": 0.039513938701929874
},
{
"id": "saturn",
"longitude": 347.2428,
"sign": "pisces",
"degree_in_sign": 17.2428,
"nakshatra": "revati",
"pada": 1,
"retrograde": true,
"nakshatra_lord": "mercury",
"sub_lord": "mercury",
"combust": false,
"dms": {
"degrees": 17,
"minutes": 14,
"seconds": 34
},
"speed": -0.07849947106581112
},
{
"id": "uranus",
"longitude": 41.2708,
"sign": "taurus",
"degree_in_sign": 11.2708,
"nakshatra": "rohini",
"pada": 1,
"retrograde": true,
"nakshatra_lord": "moon",
"sub_lord": "mars",
"combust": false,
"dms": {
"degrees": 11,
"minutes": 16,
"seconds": 15
},
"speed": null
},
{
"id": "neptune",
"longitude": 338.5973,
"sign": "pisces",
"degree_in_sign": 8.5972,
"nakshatra": "uttara_bhadrapada",
"pada": 2,
"retrograde": true,
"nakshatra_lord": "saturn",
"sub_lord": "venus",
"combust": false,
"dms": {
"degrees": 8,
"minutes": 35,
"seconds": 50
},
"speed": null
},
{
"id": "pluto",
"longitude": 278.8804,
"sign": "capricorn",
"degree_in_sign": 8.8803,
"nakshatra": "uttara_ashadha",
"pada": 4,
"retrograde": true,
"nakshatra_lord": "sun",
"sub_lord": "venus",
"combust": false,
"dms": {
"degrees": 8,
"minutes": 52,
"seconds": 49
},
"speed": null
},
{
"id": "rahu",
"longitude": 303.4148,
"sign": "aquarius",
"degree_in_sign": 3.4147,
"nakshatra": "dhanishta",
"pada": 4,
"retrograde": true,
"nakshatra_lord": "mars",
"sub_lord": "venus",
"combust": false,
"dms": {
"degrees": 3,
"minutes": 24,
"seconds": 53
},
"speed": null
},
{
"id": "ketu",
"longitude": 123.4148,
"sign": "leo",
"degree_in_sign": 3.4147,
"nakshatra": "magha",
"pada": 2,
"retrograde": true,
"nakshatra_lord": "ketu",
"sub_lord": "sun",
"combust": false,
"dms": {
"degrees": 3,
"minutes": 24,
"seconds": 53
},
"speed": null
},
{
"id": "rahu_true",
"longitude": 304.8471,
"sign": "aquarius",
"degree_in_sign": 4.8472,
"nakshatra": "dhanishta",
"pada": 4,
"retrograde": true,
"nakshatra_lord": "mars",
"sub_lord": "venus",
"combust": false,
"dms": {
"degrees": 4,
"minutes": 50,
"seconds": 50
},
"speed": -0.035806089245738804
},
{
"id": "ketu_true",
"longitude": 124.8471,
"sign": "leo",
"degree_in_sign": 4.8472,
"nakshatra": "magha",
"pada": 2,
"retrograde": true,
"nakshatra_lord": "ketu",
"sub_lord": "mars",
"combust": false,
"dms": {
"degrees": 4,
"minutes": 50,
"seconds": 50
},
"speed": -0.035806089245738804
}
],
"local": {
"date": "2026-10-02",
"time": "12:00:00",
"weekday": "friday",
"timezone": {
"name": "Asia/Kolkata",
"offset_hours": 5.5
}
},
"ayanamsa": 24.2331,
"julian_day": 2461315.77083
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}Try it
The sky now: sidereal positions at the top of the current hour
GET/v1/planets/now
1 credit · Secret or publishable key · getPlanetsNow · Page for this operation
POST /v1/planets/positions at the first instant of the current UTC hour, for a "sky now" widget. Every call in the same hour and place gets the same answer; meta.valid_until says when it changes.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
lat required | query | number | ≥ -90 · ≤ 90 |
lon required | query | number | ≥ -180 · ≤ 180 |
include_outer | query | boolean | Add Uranus, Neptune and Pluto. default false |
Response
JSON { data, meta, warnings }, where data is:
atstring (date-time) requiredbodiesarray of object requiredidstring requiredlongitudenumber requiredsignstring requireddegree_in_signnumbernakshatrastringpadaintegerretrogradebooleannakshatra_lordstringsub_lordstringThe KP sub lord of the longitude.
combustbooleandmsobjectFields
degreesinteger requiredminutesinteger requiredsecondsinteger required
speednumber or nullOne of:
- number
- null
localobjectdatestring (date) requirede.g.
"1990-08-13"timestring requiredweekdaystring requiredtimezoneobject requiredFields
namestring requiredoffset_hoursnumber required
ayanamsanumberjulian_daynumber
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl 'https://api.astrologics.in/v1/planets/now?lat=28.6139&lon=77.209' \
-H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/planets/now?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/planets/now?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/planets/now?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,960 characters
{
"data": {
"at": "2026-11-03T02:00:00.000Z",
"bodies": [
{
"id": "lagna",
"longitude": 207.43,
"sign": "libra",
"degree_in_sign": 27.43,
"nakshatra": "vishakha",
"pada": 3,
"retrograde": false,
"nakshatra_lord": "jupiter",
"sub_lord": "venus",
"combust": false,
"dms": {
"degrees": 27,
"minutes": 25,
"seconds": 48
},
"speed": null
},
{
"id": "sun",
"longitude": 196.427,
"sign": "libra",
"degree_in_sign": 16.4269,
"nakshatra": "swati",
"pada": 3,
"retrograde": false,
"nakshatra_lord": "rahu",
"sub_lord": "venus",
"combust": false,
"dms": {
"degrees": 16,
"minutes": 25,
"seconds": 37
},
"speed": 1.0012120515234528
},
{
"id": "moon",
"longitude": 122.1136,
"sign": "leo",
"degree_in_sign": 2.1136,
"nakshatra": "magha",
"pada": 1,
"retrograde": false,
"nakshatra_lord": "ketu",
"sub_lord": "venus",
"combust": false,
"dms": {
"degrees": 2,
"minutes": 6,
"seconds": 49
},
"speed": 13.598587346100771
},
{
"id": "mars",
"longitude": 115.4295,
"sign": "cancer",
"degree_in_sign": 25.4294,
"nakshatra": "ashlesha",
"pada": 3,
"retrograde": false,
"nakshatra_lord": "mercury",
"sub_lord": "rahu",
"combust": false,
"dms": {
"degrees": 25,
"minutes": 25,
"seconds": 46
},
"speed": 0.49674536039890427
},
{
"id": "mercury",
"longitude": 199.921,
"sign": "libra",
"degree_in_sign": 19.9211,
"nakshatra": "swati",
"pada": 4,
"retrograde": true,
"nakshatra_lord": "rahu",
"sub_lord": "mars",
"combust": true,
"dms": {
"degrees": 19,
"minutes": 55,
"seconds": 16
},
"speed": -1.2782815325149386
},
{
"id": "jupiter",
"longitude": 120.3365,
"sign": "leo",
"degree_in_sign": 0.3364,
"nakshatra": "magha",
"pada": 1,
"retrograde": false,
"nakshatra_lord": "ketu",
"sub_lord": "ketu",
"combust": false,
"dms": {
"degrees": 0,
"minutes": 20,
"seconds": 11
},
"speed": 0.11664002424913633
},
{
"id": "venus",
"longitude": 181.0406,
"sign": "libra",
"degree_in_sign": 1.0406,
"nakshatra": "chitra",
"pada": 3,
"retrograde": true,
"nakshatra_lord": "mars",
"sub_lord": "mercury",
"combust": false,
"dms": {
"degrees": 1,
"minutes": 2,
"seconds": 26
},
"speed": -0.43089237112917544
},
{
"id": "saturn",
"longitude": 344.9205,
"sign": "pisces",
"degree_in_sign": 14.9206,
"nakshatra": "uttara_bhadrapada",
"pada": 4,
"retrograde": true,
"nakshatra_lord": "saturn",
"sub_lord": "jupiter",
"combust": false,
"dms": {
"degrees": 14,
"minutes": 55,
"seconds": 14
},
"speed": -0.06060120589654616
},
{
"id": "rahu",
"longitude": 301.729,
"sign": "aquarius",
"degree_in_sign": 1.7289,
"nakshatra": "dhanishta",
"pada": 3,
"retrograde": true,
"nakshatra_lord": "mars",
"sub_lord": "mercury",
"combust": false,
"dms": {
"degrees": 1,
"minutes": 43,
"seconds": 44
},
"speed": null
},
{
"id": "ketu",
"longitude": 121.729,
"sign": "leo",
"degree_in_sign": 1.7289,
"nakshatra": "magha",
"pada": 1,
"retrograde": true,
"nakshatra_lord": "ketu",
"sub_lord": "venus",
"combust": false,
"dms": {
"degrees": 1,
"minutes": 43,
"seconds": 44
},
"speed": null
},
{
"id": "rahu_true",
"longitude": 302.6986,
"sign": "aquarius",
"degree_in_sign": 2.6986,
"nakshatra": "dhanishta",
"pada": 3,
"retrograde": true,
"nakshatra_lord": "mars",
"sub_lord": "venus",
"combust": false,
"dms": {
"degrees": 2,
"minutes": 41,
"seconds": 55
},
"speed": 0.00040231041884908336
},
{
"id": "ketu_true",
"longitude": 122.6986,
"sign": "leo",
"degree_in_sign": 2.6986,
"nakshatra": "magha",
"pada": 1,
"retrograde": true,
"nakshatra_lord": "ketu",
"sub_lord": "venus",
"combust": false,
"dms": {
"degrees": 2,
"minutes": 41,
"seconds": 55
},
"speed": 0.00040231041884908336
}
],
"local": {
"date": "2026-11-03",
"time": "07:30:00",
"weekday": "tuesday",
"timezone": {
"name": "Asia/Kolkata",
"offset_hours": 5.5
}
},
"ayanamsa": 24.2343,
"julian_day": 2461347.58333
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
},
"valid_until": "2026-11-03T03:00:00.000Z"
},
"warnings": []
}Try it
The retrograde cycle of Saturn, Uranus, Neptune or Pluto: its stations and whether it is retrograde now
GET/v1/outer-planets/cycle
1 credit · Secret or publishable key · getOuterPlanetCycle · Page for this operation
Every station from from (12:00 IST) for window_days, each to the minute by bisection of the sidereal daily motion (astronomy-engine, Lahiri), with the sidereal longitude, sign and degree. current: retrograde at from, since the last station before from and until the next one (null past the window).
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
planet required | query | string | one of saturn, uranus, neptune, pluto |
from | query | string (date) | Default today (IST); read at 12:00 IST on that date. e.g. "1990-08-13" |
window_days | query | integer | ≥ 1 · ≤ 1100 · default 1100 |
Response
JSON { data, meta, warnings }, where data is:
planetstring requiredone of
saturn,uranus,neptune,plutofromstring (date-time) requiredwindow_daysinteger requiredstationsarray of object requiredkindstring requiredone of
retrograde,directdatestring (date) requiredThe IST date of the station.
e.g.
"1990-08-13"atstring (date-time) requiredThe station, to the minute (UTC).
longitudenumber requiredSidereal (Lahiri), 0–360.
signstring requireddegreenumber requiredWithin the sign.
currentobject requiredretrogradeboolean requiredsincestring (date) or null requiredOne of:
- string (date)
- null
untilstring (date) or null requiredOne of:
- string (date)
- null
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl 'https://api.astrologics.in/v1/outer-planets/cycle?planet=saturn&from=2026-10-01&window_days=400' \
-H 'Authorization: Bearer al_test_YOUR_KEY'
Node.js
const res = await fetch("https://api.astrologics.in/v1/outer-planets/cycle?planet=saturn&from=2026-10-01&window_days=400", {
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/outer-planets/cycle?planet=saturn&from=2026-10-01&window_days=400",
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/outer-planets/cycle?planet=saturn&from=2026-10-01&window_days=400');
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 · 799 characters
{
"data": {
"planet": "saturn",
"from": "2026-10-01T06:30:00.000Z",
"window_days": 400,
"stations": [
{
"kind": "direct",
"date": "2026-12-11",
"at": "2026-12-11T00:27:00.000Z",
"longitude": 343.69,
"sign": "pisces",
"degree": 13.69
},
{
"kind": "retrograde",
"date": "2027-08-09",
"at": "2027-08-09T17:19:00.000Z",
"longitude": 3.63,
"sign": "aries",
"degree": 3.63
}
],
"current": {
"retrograde": true,
"since": "2026-07-27",
"until": "2026-12-11"
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 1
},
"warnings": []
}Try it
Several chart operations in one call: one rate-limit slot, charged their sum less one credit
POST/v1/kundli/bundle
3 credits · Secret key (test or live) · getBundle · Page for this operation
Runs each include as its own operation would, with the same birth and options, and returns each one's data under its include name (divisional:D2,D9,D10 → divisional) with one meta. Credits: the members' sum less one (kundli + divisional + yogas = 5; the 3 above is the smallest bundle's price); X-Credits-Remaining and meta.credits_charged give the amount. If any member fails (for example yogas without a birth time), the whole request fails and nothing is charged.
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.
includearray of string requiredTwo or more of: kundli, divisional:<vargas> (e.g. divisional:D2,D9,D10), dasha or dasha:<depth 1–4>, current_dasha, yogas, ashtakavarga, outer, classical, wealth, gemstones, numerology, shadbala, natal_transits, year_outlook or year_outlook:<year> (default the current year in IST).
at least 2 items · at most 14 items · no repeats
atstring (date-time)The instant for current_dasha, ashtakavarga and natal_transits (default now), as each takes it on its own operation.
namestringFor numerology: the name to read (optional).
at least 1 characters · at most 120 characters
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"nodestringThe Rahu/Ketu the chart uses: the true (osculating) node, as Swiss Ephemeris and Drik Panchang define it, or the mean node. meta.node names the one used. POST /v1/planets/positions always returns both.
one 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"tonestringdescriptive: the prose fields (tithi.note, tara descriptions, the timing summary and insights, natal-transit descriptions, transit-event notes) carry reviewed descriptive sentences, attributed to the tradition and with no instructions, in options.lang. Ids, scores and every other value are unchanged. Applies to getPanchang, getFavourableDays, getPersonalTiming, getDashaTransitConfluence, getNatalTransits and listPlanetaryEvents (and those inside a bundle); elsewhere it changes nothing.
one of
default,descriptive· default"default"dasha_yearnumberDays in a Vimshottari year: 365.25 (Julian, the default), 365.2422 (tropical) or 360 (savana). Applies to /v1/dasha/vimshottari and /v1/dasha/vimshottari/current; data.basis.year_days names the one used.
one of
365.25,365.2422,360· default365.25
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
kundliKundlilagnaobjectFields
signstring requiredsign_labelstring requireddegreenumber requirednakshatraNakshatraId requiredThe 27 nakshatras, 1 Ashwini … 27 Revati. Spellings are fixed: mula (not moola), shatabhisha (not satabhisha), purva_ashadha, uttara_bhadrapada.
one of
ashwini,bharani,krittika,rohini,mrigashira,ardra,punarvasu,pushya,ashlesha,magha,purva_phalguni,uttara_phalguni,hasta,chitra,swati,vishakha,anuradha,jyeshtha,mula,purva_ashadha,uttara_ashadha,shravana,dhanishta,shatabhisha,purva_bhadrapada,uttara_bhadrapada,revatinakshatra_labelstring requiredpadainteger required≥ 1 · ≤ 4
planetsarray of object requiredFields
idstring requiredlabelstring requiredlongitudenumber required≥ 0 · < 360
signstring requireddegree_in_signnumber requirednakshatraNakshatraId requiredThe 27 nakshatras, 1 Ashwini … 27 Revati. Spellings are fixed: mula (not moola), shatabhisha (not satabhisha), purva_ashadha, uttara_bhadrapada.
one of
ashwini,bharani,krittika,rohini,mrigashira,ardra,punarvasu,pushya,ashlesha,magha,purva_phalguni,uttara_phalguni,hasta,chitra,swati,vishakha,anuradha,jyeshtha,mula,purva_ashadha,uttara_ashadha,shravana,dhanishta,shatabhisha,purva_bhadrapada,uttara_bhadrapada,revatipadainteger required≥ 1 · ≤ 4
nakshatra_lordstring requiredhouseinteger≥ 1 · ≤ 12
retrogradeboolean required
divisional_lagnasobjectFields
D2string requiredD9string requiredD10string required
divisionalDivisionalchartsmap of object requiredFields
lagnastringplanetsmap of string required
dashaDashaTimelineperiodsarray of object requiredFields
planetstring requiredstartstring (date-time) requiredendstring (date-time) requiredsubarray of object
basisDashaBasis requiredFields
moon_longitudenumber requiredThe sidereal Moon at the birth instant, full precision (degrees).
ayanamsanumber requiredThe ayanamsa at the birth instant (degrees), of the system in meta.ayanamsa (Lahiri unless options.ayanamsa).
nakshatraobject requiredFields
idstring requirednumberinteger required≥ 1 · ≤ 27
lordstring requiredstartnumber requiredendnumber required
elapsed_fractionnumber required≥ 0 · ≤ 1
remaining_fractionnumber required≥ 0 · ≤ 1
balanceobject requiredFields
planetstring requiredyearsnumber requireddaysnumber required
year_daysnumber requiredbirthstring (date-time) required
current_dashaDashaCurrentatstring (date-time) requiredmahadashaDashaPeriod requiredFields
planetstring requiredstartstring (date-time) requiredendstring (date-time) required
antardashaDashaPeriod requiredFields
planetstring requiredstartstring (date-time) requiredendstring (date-time) required
pratyantardashaDashaPeriod requiredFields
planetstring requiredstartstring (date-time) requiredendstring (date-time) required
sookshmaDashaPeriod requiredFields
planetstring requiredstartstring (date-time) requiredendstring (date-time) required
pranaDashaPeriod requiredFields
planetstring requiredstartstring (date-time) requiredendstring (date-time) required
basisDashaBasis requiredFields
moon_longitudenumber requiredThe sidereal Moon at the birth instant, full precision (degrees).
ayanamsanumber requiredThe ayanamsa at the birth instant (degrees), of the system in meta.ayanamsa (Lahiri unless options.ayanamsa).
nakshatraobject requiredFields
idstring requirednumberinteger required≥ 1 · ≤ 27
lordstring requiredstartnumber requiredendnumber required
elapsed_fractionnumber required≥ 0 · ≤ 1
remaining_fractionnumber required≥ 0 · ≤ 1
balanceobject requiredFields
planetstring requiredyearsnumber requireddaysnumber required
year_daysnumber requiredbirthstring (date-time) required
yogasYogasyogasarray of object requiredFields
namestring requiredtypestringstrengthstringplanetsarray of stringrulestring
ashtakavargaAshtakavargabhinnamap of array of integer requiredsarvaarray of integer requiredas_ofstring (date-time) requiredtransitsmap of object requiredFields
signstring requiredbindusinteger required≥ 0 · ≤ 8
best_signsmap of object requiredFields
bestarray of object requiredFields
signstring requiredbindusinteger required
worstarray of object requiredFields
signstring requiredbindusinteger required
outerOuterPlanetsplanetsarray of object requiredFields
idstring requiredone of
uranus,neptune,plutolongitudenumber required≥ 0 · < 360
signstring requiredsign_degreenumber requirednakshatrastring requiredretrogradeboolean requiredhouseinteger or null requiredOne of:
- integer
- null
label_histring requiredintroobject or null requiredOne of:
- object
Fields
enstring requiredhistring or null requiredOne of:
- string
- null
- null
- object
readingobject or null requiredOne of:
- object
Fields
enstring requiredhistring or null requiredOne of:
- string
- null
- null
- object
classicalClassicalChartcuspsobject requiredFields
systemstring requiredplacidusarray of number or null requiredOne of:
- array of number
- null
bhava_arambharray of number requiredbhava_madhyaarray of number required
bhava_balaarray of object requiredFields
houseinteger required≥ 1 · ≤ 12
signstring requiredlordstring requiredadhipati_balanumber requireddig_balanumber requireddrishti_balanumber requiredtotalnumber requiredrupasnumber requiredrankinteger required≥ 1 · ≤ 12
prastaraobject requiredFields
contributorsarray of string requiredsignsarray of string requiredplanetsmap of object requiredFields
gridmap of array of integer requiredtotalsarray of integer requiredsuminteger required
avasthamap of object requiredFields
jagratstring requiredbaladistring requireddeeptadistring requireddignitystring required
sthira_karakasarray of object requiredFields
karakastring requiredplanetstring required
luckyobject requiredFields
numbersarray of integer requiredunlucky_numbersarray of integer requiredyearsarray of array of integer requireddaysarray of string requiredplanetsarray of string requiredfriendly_signsarray of string requiredlagnasarray of string requiredmetalstring requiredgemstring requiredlagna_lordstring requiredrashi_lordstring required
wealthWealthd2object requiredFields
sun_horaobject requiredFields
planetsarray of string requiredscorenumber required
moon_horaobject requiredFields
planetsarray of string requiredscorenumber required
primary_sourcestring requiredone of
career_authority,business_inheritancelord2_horastring requiredone of
sun,moon,balancedlagna_vargottamaboolean requiredstrengthnumber required
d10object requiredFields
lagnastring requiredlagna_lordstring requiredarchetypestring requiredtenth_occupantsarray of string requiredlord10string requiredlord10_houseinteger or null requiredOne of:
- integer
- null
scorenumber requiredstrengthnumber requiredplacementsarray of object requiredFields
planetstring requiredsignstring requiredkindstring requiredone of
own_or_exalted,debilitated
vargottamaarray of string requiredscoresobject requiredFields
d1number requiredd2number requiredd9number requiredd10number required
overallnumber required≥ 0 · ≤ 10
ratingstring requiredone of
developing,moderate,strong,exceptionalfactorsarray of object requiredFields
idstring requiredone of
wealth_yoga,power_yoga,vargottama,d2_lagna_vargottamayogastringplanetstring
gemstonesGemstoneslagna_signstring requiredprimaryGemstoneChoice or null requiredOne of:
- GemstoneChoice
Fields
planetstring requiredstonestring requiredalternativesarray of string requiredfingerstring requiredone of
thumb,index,middle,ring,littlemetalstring requiredbasisstring requiredone of
lagna_lord,ninth_lord,fifth_lord,mahadasha_lord
- null
- GemstoneChoice
secondaryGemstoneChoice or null requiredOne of:
- GemstoneChoice
Fields
planetstring requiredstonestring requiredalternativesarray of string requiredfingerstring requiredone of
thumb,index,middle,ring,littlemetalstring requiredbasisstring requiredone of
lagna_lord,ninth_lord,fifth_lord,mahadasha_lord
- null
- GemstoneChoice
dasha_stoneGemstoneChoice or null requiredOne of:
- GemstoneChoice
Fields
planetstring requiredstonestring requiredalternativesarray of string requiredfingerstring requiredone of
thumb,index,middle,ring,littlemetalstring requiredbasisstring requiredone of
lagna_lord,ninth_lord,fifth_lord,mahadasha_lord
- null
- GemstoneChoice
avoidarray of string requiredhealing_stonesarray of string requiredfunctional_beneficsarray of string requiredfunctional_maleficsarray of string requiredyoga_specificarray of object requiredFields
stonestring requiredyogastring or null requiredOne of:
- string
- null
numerologyNumerologyCorelife_pathinteger requireddestinyinteger or null requiredOne of:
- integer
- null
soul_urgeinteger or null requiredOne of:
- integer
- null
personalityinteger or null requiredOne of:
- integer
- null
birth_numberinteger requiredruling_planetstring requiredlucky_numbersarray of integer requiredhidden_passioninteger or null requiredOne of:
- integer
- null
maturityinteger or null requiredOne of:
- integer
- null
personal_yearinteger requiredpersonal_monthinteger requiredpersonal_dayinteger requiredlife_path_meaningobject requiredFields
namestring requiredkeywordstring requiredtraitsstring required
soul_urge_meaningstring or null requiredOne of:
- string
- null
personality_meaningstring or null requiredOne of:
- string
- null
lucky_colorsarray of string requiredlucky_daysarray of string requiredlucky_gemstring requiredname_breakdownarray of LetterValue or null requiredOne of:
- array of LetterValue
Fields
letterstring requiredvalueinteger required≥ 0 · ≤ 8
typestring requiredone of
vowel,consonant
- null
- array of LetterValue
shadbalaShadbalaplanetsarray of object requiredFields
idstring requiredcomponentsobject requiredFields
sthananumber requireddignumber requiredkalanumber requiredchestanumber requirednaisargikanumber requireddriknumber required
totalnumber requiredrupasnumber requiredstrengthstring required
rankingarray of string required
natal_transitsNatalTransitsatstring (date-time) requiredtransitsarray of object requiredFields
planetstring requiredsignstring requiredhouse_from_mooninteger requiredThe sign it transits, counted from the natal Moon's sign (gochar); impact is judged from it.
≥ 1 · ≤ 12
natal_houseintegerThe same sign counted from the natal lagna (whole sign). Omitted without a birth time.
≥ 1 · ≤ 12
retrogradeboolean requiredimpactstring requiredone of
favourable,challenging,neutraldescriptionstring requireddescription_idstring requiredA stable id for description: the same sentence always has the same id (D3, 2026-10-29).
year_outlookYearOutlookyearinteger requiredmonthsarray of object requiredFields
monthinteger required≥ 1 · ≤ 12
scorenumber requiredclassstring requiredone of
favourable,neutral,challengingfavourablearray of OutlookTransit requiredFields
planetstring requiredone of
jupiter,saturn,rahu,ketu,marshouseinteger required≥ 1 · ≤ 12
kindstringone of
exalted,own_signyogastringone of
hamsa,ruchaka,sasha
challengingarray of OutlookTransit requiredFields
planetstring requiredone of
jupiter,saturn,rahu,ketu,marshouseinteger required≥ 1 · ≤ 12
kindstringone of
exalted,own_signyogastringone of
hamsa,ruchaka,sasha
flagsarray of object requiredFields
planetstring requiredkindstring requiredone of
exalted,own_signyogastringone of
hamsa,ruchaka,sasha
best_windowobject or null requiredOne of:
- object
Fields
fromstring requiredpattern
^\d{4}-\d{2}$tostring requiredpattern
^\d{4}-\d{2}$monthsinteger required≥ 1 · ≤ 12
- null
- object
worst_windowobject or null requiredOne of:
- object
Fields
fromstring requiredpattern
^\d{4}-\d{2}$tostring requiredpattern
^\d{4}-\d{2}$monthsinteger required≥ 1 · ≤ 12
- null
- object
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/kundli/bundle' \
-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}},"include":["kundli","divisional:D2,D9,D10","dasha:2","numerology"],"name":"Asha Verma"}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/kundli/bundle", {
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
}
},
"include": [
"kundli",
"divisional:D2,D9,D10",
"dasha:2",
"numerology"
],
"name": "Asha Verma"
}),
});
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,
},
},
"include": [
"kundli",
"divisional:D2,D9,D10",
"dasha:2",
"numerology",
],
"name": "Asha Verma",
}
req = urllib.request.Request(
"https://api.astrologics.in/v1/kundli/bundle",
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/kundli/bundle');
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}},"include":["kundli","divisional:D2,D9,D10","dasha:2","numerology"],"name":"Asha Verma"}',
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;Example response
200 OK · 35,899 characters
{
"data": {
"kundli": {
"lagna": {
"sign": "leo",
"sign_label": "Leo",
"degree": 4.27,
"nakshatra": "magha",
"nakshatra_label": "Magha",
"pada": 2
},
"planets": [
{
"id": "sun",
"label": "Sun",
"longitude": 116.3139,
"sign": "cancer",
"degree_in_sign": 26.3139,
"nakshatra": "ashlesha",
"pada": 3,
"nakshatra_lord": "mercury",
"house": 12,
"retrograde": false
},
{
"id": "moon",
"label": "Moon",
"longitude": 18.0955,
"sign": "aries",
"degree_in_sign": 18.0955,
"nakshatra": "bharani",
"pada": 2,
"nakshatra_lord": "venus",
"house": 9,
"retrograde": false
},
{
"id": "mars",
"label": "Mars",
"longitude": 26.2271,
"sign": "aries",
"degree_in_sign": 26.2271,
"nakshatra": "bharani",
"pada": 4,
"nakshatra_lord": "venus",
"house": 9,
"retrograde": false
},
{
"id": "mercury",
"label": "Mercury",
"longitude": 143.6373,
"sign": "leo",
"degree_in_sign": 23.6373,
"nakshatra": "purva_phalguni",
"pada": 4,
"nakshatra_lord": "venus",
"house": 1,
"retrograde": false
},
{
"id": "jupiter",
"label": "Jupiter",
"longitude": 95.14,
"sign": "cancer",
"degree_in_sign": 5.14,
"nakshatra": "pushya",
"pada": 1,
"nakshatra_lord": "saturn",
"house": 12,
"retrograde": false
},
{
"id": "venus",
"label": "Venus",
"longitude": 95.1983,
"sign": "cancer",
"degree_in_sign": 5.1983,
"nakshatra": "pushya",
"pada": 1,
"nakshatra_lord": "saturn",
"house": 12,
"retrograde": false
},
{
"id": "saturn",
"label": "Saturn",
"longitude": 266.2724,
"sign": "sagittarius",
"degree_in_sign": 26.2724,
"nakshatra": "purva_ashadha",
"pada": 4,
"nakshatra_lord": "venus",
"house": 5,
"retrograde": true
},
{
"id": "rahu",
"label": "Rahu",
"longitude": 283.4929,
"sign": "capricorn",
"degree_in_sign": 13.4929,
"nakshatra": "shravana",
"pada": 2,
"nakshatra_lord": "moon",
"house": 6,
"retrograde": true
},
{
"id": "ketu",
"label": "Ketu",
"longitude": 103.4929,
"sign": "cancer",
"degree_in_sign": 13.4929,
"nakshatra": "pushya",
"pada": 4,
"nakshatra_lord": "saturn",
"house": 12,
"retrograde": true
}
],
"divisional_lagnas": {
"D2": "leo",
"D9": "taurus",
"D10": "virgo"
}
},
"divisional": {
"charts": {
"D2": {
"lagna": "leo",
"planets": {
"sun": "leo",
"moon": "cancer",
"mars": "cancer",
"mercury": "cancer",
"jupiter": "cancer",
"venus": "cancer",
"saturn": "cancer",
"rahu": "cancer",
"ketu": "cancer"
}
},
"D9": {
"lagna": "taurus",
"planets": {
"sun": "aquarius",
"moon": "virgo",
"mars": "scorpio",
"mercury": "scorpio",
"jupiter": "leo",
"venus": "leo",
"saturn": "scorpio",
"rahu": "taurus",
"ketu": "scorpio"
}
},
"D10": {
"lagna": "virgo",
"planets": {
"sun": "scorpio",
"moon": "libra",
"mars": "sagittarius",
"mercury": "pisces",
"jupiter": "aries",
"venus": "aries",
"saturn": "leo",
"rahu": "capricorn",
"ketu": "cancer"
}
}
}
},
"dasha": {
"periods": [
{
"planet": "venus",
"start": "1990-08-13T01:00:00.000Z",
"end": "2003-06-21T22:53:13.747Z",
"sub": [
{
"planet": "mars",
"start": "1990-08-13T01:00:00.000Z",
"end": "1990-08-21T13:53:13.747Z"
},
{
"planet": "rahu",
"start": "1990-08-21T13:53:13.747Z",
"end": "1993-08-21T07:53:13.747Z"
},
{
"planet": "jupiter",
"start": "1993-08-21T07:53:13.747Z",
"end": "1996-04-21T07:53:13.747Z"
},
{
"planet": "saturn",
"start": "1996-04-21T07:53:13.747Z",
"end": "1999-06-21T22:53:13.747Z"
},
{
"planet": "mercury",
"start": "1999-06-21T22:53:13.747Z",
"end": "2002-04-21T19:53:13.747Z"
},
{
"planet": "ketu",
"start": "2002-04-21T19:53:13.747Z",
"end": "2003-06-21T22:53:13.747Z"
}
]
},
{
"planet": "sun",
"start": "2003-06-21T22:53:13.747Z",
"end": "2009-06-21T10:53:13.747Z",
"sub": [
{
"planet": "sun",
"start": "2003-06-21T22:53:13.747Z",
"end": "2003-10-09T12:41:13.747Z"
},
{
"planet": "moon",
"start": "2003-10-09T12:41:13.747Z",
"end": "2004-04-09T03:41:13.747Z"
},
{
"planet": "mars",
"start": "2004-04-09T03:41:13.747Z",
"end": "2004-08-14T23:47:13.747Z"
},
{
"planet": "rahu",
"start": "2004-08-14T23:47:13.747Z",
"end": "2005-07-09T17:11:13.747Z"
},
{
"planet": "jupiter",
"start": "2005-07-09T17:11:13.747Z",
"end": "2006-04-27T21:59:13.747Z"
},
{
"planet": "saturn",
"start": "2006-04-27T21:59:13.747Z",
"end": "2007-04-09T21:41:13.747Z"
},
{
"planet": "mercury",
"start": "2007-04-09T21:41:13.747Z",
"end": "2008-02-14T08:47:13.747Z"
},
{
"planet": "ketu",
"start": "2008-02-14T08:47:13.747Z",
"end": "2008-06-21T04:53:13.747Z"
},
{
"planet": "venus",
"start": "2008-06-21T04:53:13.747Z",
"end": "2009-06-21T10:53:13.747Z"
}
]
},
{
"planet": "moon",
"start": "2009-06-21T10:53:13.747Z",
"end": "2019-06-21T22:53:13.747Z",
"sub": [
{
"planet": "moon",
"start": "2009-06-21T10:53:13.747Z",
"end": "2010-04-21T19:53:13.747Z"
},
{
"planet": "mars",
"start": "2010-04-21T19:53:13.747Z",
"end": "2010-11-20T21:23:13.747Z"
},
{
"planet": "rahu",
"start": "2010-11-20T21:23:13.747Z",
"end": "2012-05-21T18:23:13.747Z"
},
{
"planet": "jupiter",
"start": "2012-05-21T18:23:13.747Z",
"end": "2013-09-20T18:23:13.747Z"
},
{
"planet": "saturn",
"start": "2013-09-20T18:23:13.747Z",
"end": "2015-04-22T01:53:13.747Z"
},
{
"planet": "mercury",
"start": "2015-04-22T01:53:13.747Z",
"end": "2016-09-20T12:23:13.747Z"
},
{
"planet": "ketu",
"start": "2016-09-20T12:23:13.747Z",
"end": "2017-04-21T13:53:13.747Z"
},
{
"planet": "venus",
"start": "2017-04-21T13:53:13.747Z",
"end": "2018-12-21T07:53:13.747Z"
},
{
"planet": "sun",
"start": "2018-12-21T07:53:13.747Z",
"end": "2019-06-21T22:53:13.747Z"
}
]
},
{
"planet": "mars",
"start": "2019-06-21T22:53:13.747Z",
"end": "2026-06-21T16:53:13.747Z",
"sub": [
{
"planet": "mars",
"start": "2019-06-21T22:53:13.747Z",
"end": "2019-11-18T02:20:13.747Z"
},
{
"planet": "rahu",
"start": "2019-11-18T02:20:13.747Z",
"end": "2020-12-05T14:38:13.747Z"
},
{
"planet": "jupiter",
"start": "2020-12-05T14:38:13.747Z",
"end": "2021-11-11T12:14:13.747Z"
},
{
"planet": "saturn",
"start": "2021-11-11T12:14:13.747Z",
"end": "2022-12-21T07:53:13.747Z"
},
{
"planet": "mercury",
"start": "2022-12-21T07:53:13.747Z",
"end": "2023-12-18T12:50:13.747Z"
},
{
"planet": "ketu",
"start": "2023-12-18T12:50:13.747Z",
"end": "2024-05-15T16:17:13.747Z"
},
{
"planet": "venus",
"start": "2024-05-15T16:17:13.747Z",
"end": "2025-07-15T19:17:13.747Z"
},
{
"planet": "sun",
"start": "2025-07-15T19:17:13.747Z",
"end": "2025-11-20T15:23:13.747Z"
},
{
"planet": "moon",
"start": "2025-11-20T15:23:13.747Z",
"end": "2026-06-21T16:53:13.747Z"
}
]
},
{
"planet": "rahu",
"start": "2026-06-21T16:53:13.747Z",
"end": "2044-06-21T04:53:13.747Z",
"sub": [
{
"planet": "rahu",
"start": "2026-06-21T16:53:13.747Z",
"end": "2029-03-03T21:05:13.747Z"
},
{
"planet": "jupiter",
"start": "2029-03-03T21:05:13.747Z",
"end": "2031-07-28T11:29:13.747Z"
},
{
"planet": "saturn",
"start": "2031-07-28T11:29:13.747Z",
"end": "2034-06-03T10:35:13.747Z"
},
{
"planet": "mercury",
"start": "2034-06-03T10:35:13.747Z",
"end": "2036-12-20T19:53:13.747Z"
},
{
"planet": "ketu",
"start": "2036-12-20T19:53:13.747Z",
"end": "2038-01-08T08:11:13.747Z"
},
{
"planet": "venus",
"start": "2038-01-08T08:11:13.747Z",
"end": "2041-01-08T02:11:13.747Z"
},
{
"planet": "sun",
"start": "2041-01-08T02:11:13.747Z",
"end": "2041-12-02T19:35:13.747Z"
},
{
"planet": "moon",
"start": "2041-12-02T19:35:13.747Z",
"end": "2043-06-03T16:35:13.747Z"
},
{
"planet": "mars",
"start": "2043-06-03T16:35:13.747Z",
"end": "2044-06-21T04:53:13.747Z"
}
]
},
{
"planet": "jupiter",
"start": "2044-06-21T04:53:13.747Z",
"end": "2060-06-21T04:53:13.747Z",
"sub": [
{
"planet": "jupiter",
"start": "2044-06-21T04:53:13.747Z",
"end": "2046-08-09T09:41:13.747Z"
},
{
"planet": "saturn",
"start": "2046-08-09T09:41:13.747Z",
"end": "2049-02-19T16:53:13.747Z"
},
{
"planet": "mercury",
"start": "2049-02-19T16:53:13.747Z",
"end": "2051-05-28T14:29:13.747Z"
},
{
"planet": "ketu",
"start": "2051-05-28T14:29:13.747Z",
"end": "2052-05-03T12:05:13.747Z"
},
{
"planet": "venus",
"start": "2052-05-03T12:05:13.747Z",
"end": "2055-01-02T12:05:13.747Z"
},
{
"planet": "sun",
"start": "2055-01-02T12:05:13.747Z",
"end": "2055-10-21T16:53:13.747Z"
},
{
"planet": "moon",
"start": "2055-10-21T16:53:13.747Z",
"end": "2057-02-19T16:53:13.747Z"
},
{
"planet": "mars",
"start": "2057-02-19T16:53:13.747Z",
"end": "2058-01-26T14:29:13.747Z"
},
{
"planet": "rahu",
"start": "2058-01-26T14:29:13.747Z",
"end": "2060-06-21T04:53:13.747Z"
}
]
},
{
"planet": "saturn",
"start": "2060-06-21T04:53:13.747Z",
"end": "2079-06-21T22:53:13.747Z",
"sub": [
{
"planet": "saturn",
"start": "2060-06-21T04:53:13.747Z",
"end": "2063-06-24T23:56:13.747Z"
},
{
"planet": "mercury",
"start": "2063-06-24T23:56:13.747Z",
"end": "2066-03-04T03:05:13.747Z"
},
{
"planet": "ketu",
"start": "2066-03-04T03:05:13.747Z",
"end": "2067-04-12T22:44:13.747Z"
},
{
"planet": "venus",
"start": "2067-04-12T22:44:13.747Z",
"end": "2070-06-12T13:44:13.747Z"
},
{
"planet": "sun",
"start": "2070-06-12T13:44:13.747Z",
"end": "2071-05-25T13:26:13.747Z"
},
{
"planet": "moon",
"start": "2071-05-25T13:26:13.747Z",
"end": "2072-12-23T20:56:13.747Z"
},
{
"planet": "mars",
"start": "2072-12-23T20:56:13.747Z",
"end": "2074-02-01T16:35:13.747Z"
},
{
"planet": "rahu",
"start": "2074-02-01T16:35:13.747Z",
"end": "2076-12-08T15:41:13.747Z"
},
{
"planet": "jupiter",
"start": "2076-12-08T15:41:13.747Z",
"end": "2079-06-21T22:53:13.747Z"
}
]
},
{
"planet": "mercury",
"start": "2079-06-21T22:53:13.747Z",
"end": "2096-06-21T04:53:13.747Z",
"sub": [
{
"planet": "mercury",
"start": "2079-06-21T22:53:13.747Z",
"end": "2081-11-17T14:20:13.747Z"
},
{
"planet": "ketu",
"start": "2081-11-17T14:20:13.747Z",
"end": "2082-11-14T19:17:13.747Z"
},
{
"planet": "venus",
"start": "2082-11-14T19:17:13.747Z",
"end": "2085-09-14T16:17:13.747Z"
},
{
"planet": "sun",
"start": "2085-09-14T16:17:13.747Z",
"end": "2086-07-22T03:23:13.747Z"
},
{
"planet": "moon",
"start": "2086-07-22T03:23:13.747Z",
"end": "2087-12-21T13:53:13.747Z"
},
{
"planet": "mars",
"start": "2087-12-21T13:53:13.747Z",
"end": "2088-12-17T18:50:13.747Z"
},
{
"planet": "rahu",
"start": "2088-12-17T18:50:13.747Z",
"end": "2091-07-07T04:08:13.747Z"
},
{
"planet": "jupiter",
"start": "2091-07-07T04:08:13.747Z",
"end": "2093-10-12T01:44:13.747Z"
},
{
"planet": "saturn",
"start": "2093-10-12T01:44:13.747Z",
"end": "2096-06-21T04:53:13.747Z"
}
]
},
{
"planet": "ketu",
"start": "2096-06-21T04:53:13.747Z",
"end": "2103-06-22T22:53:13.747Z",
"sub": [
{
"planet": "ketu",
"start": "2096-06-21T04:53:13.747Z",
"end": "2096-11-17T08:20:13.747Z"
},
{
"planet": "venus",
"start": "2096-11-17T08:20:13.747Z",
"end": "2098-01-17T11:20:13.747Z"
},
{
"planet": "sun",
"start": "2098-01-17T11:20:13.747Z",
"end": "2098-05-25T07:26:13.747Z"
},
{
"planet": "moon",
"start": "2098-05-25T07:26:13.747Z",
"end": "2098-12-24T08:56:13.747Z"
},
{
"planet": "mars",
"start": "2098-12-24T08:56:13.747Z",
"end": "2099-05-22T12:23:13.747Z"
},
{
"planet": "rahu",
"start": "2099-05-22T12:23:13.747Z",
"end": "2100-06-10T00:41:13.747Z"
},
{
"planet": "jupiter",
"start": "2100-06-10T00:41:13.747Z",
"end": "2101-05-16T22:17:13.747Z"
},
{
"planet": "saturn",
"start": "2101-05-16T22:17:13.747Z",
"end": "2102-06-25T17:56:13.747Z"
},
{
"planet": "mercury",
"start": "2102-06-25T17:56:13.747Z",
"end": "2103-06-22T22:53:13.747Z"
}
]
},
{
"planet": "venus",
"start": "2103-06-22T22:53:13.747Z",
"end": "2123-06-22T22:53:13.747Z",
"sub": [
{
"planet": "venus",
"start": "2103-06-22T22:53:13.747Z",
"end": "2106-10-22T10:53:13.747Z"
},
{
"planet": "sun",
"start": "2106-10-22T10:53:13.747Z",
"end": "2107-10-22T16:53:13.747Z"
},
{
"planet": "moon",
"start": "2107-10-22T16:53:13.747Z",
"end": "2109-06-22T10:53:13.747Z"
},
{
"planet": "mars",
"start": "2109-06-22T10:53:13.747Z",
"end": "2110-08-22T13:53:13.747Z"
},
{
"planet": "rahu",
"start": "2110-08-22T13:53:13.747Z",
"end": "2113-08-22T07:53:13.747Z"
},
{
"planet": "jupiter",
"start": "2113-08-22T07:53:13.747Z",
"end": "2116-04-22T07:53:13.747Z"
},
{
"planet": "saturn",
"start": "2116-04-22T07:53:13.747Z",
"end": "2119-06-22T22:53:13.747Z"
},
{
"planet": "mercury",
"start": "2119-06-22T22:53:13.747Z",
"end": "2122-04-22T19:53:13.747Z"
},
{
"planet": "ketu",
"start": "2122-04-22T19:53:13.747Z",
"end": "2123-06-22T22:53:13.747Z"
}
]
},
{
"planet": "sun",
"start": "2123-06-22T22:53:13.747Z",
"end": "2129-06-22T10:53:13.747Z",
"sub": [
{
"planet": "sun",
"start": "2123-06-22T22:53:13.747Z",
"end": "2123-10-10T12:41:13.747Z"
},
{
"planet": "moon",
"start": "2123-10-10T12:41:13.747Z",
"end": "2124-04-10T03:41:13.747Z"
},
{
"planet": "mars",
"start": "2124-04-10T03:41:13.747Z",
"end": "2124-08-15T23:47:13.747Z"
},
{
"planet": "rahu",
"start": "2124-08-15T23:47:13.747Z",
"end": "2125-07-10T17:11:13.747Z"
},
{
"planet": "jupiter",
"start": "2125-07-10T17:11:13.747Z",
"end": "2126-04-28T21:59:13.747Z"
},
{
"planet": "saturn",
"start": "2126-04-28T21:59:13.747Z",
"end": "2127-04-10T21:41:13.747Z"
},
{
"planet": "mercury",
"start": "2127-04-10T21:41:13.747Z",
"end": "2128-02-15T08:47:13.747Z"
},
{
"planet": "ketu",
"start": "2128-02-15T08:47:13.747Z",
"end": "2128-06-22T04:53:13.747Z"
},
{
"planet": "venus",
"start": "2128-06-22T04:53:13.747Z",
"end": "2129-06-22T10:53:13.747Z"
}
]
},
{
"planet": "moon",
"start": "2129-06-22T10:53:13.747Z",
"end": "2139-06-22T22:53:13.747Z",
"sub": [
{
"planet": "moon",
"start": "2129-06-22T10:53:13.747Z",
"end": "2130-04-22T19:53:13.747Z"
},
{
"planet": "mars",
"start": "2130-04-22T19:53:13.747Z",
"end": "2130-11-21T21:23:13.747Z"
},
{
"planet": "rahu",
"start": "2130-11-21T21:23:13.747Z",
"end": "2132-05-22T18:23:13.747Z"
},
{
"planet": "jupiter",
"start": "2132-05-22T18:23:13.747Z",
"end": "2133-09-21T18:23:13.747Z"
},
{
"planet": "saturn",
"start": "2133-09-21T18:23:13.747Z",
"end": "2135-04-23T01:53:13.747Z"
},
{
"planet": "mercury",
"start": "2135-04-23T01:53:13.747Z",
"end": "2136-09-21T12:23:13.747Z"
},
{
"planet": "ketu",
"start": "2136-09-21T12:23:13.747Z",
"end": "2137-04-22T13:53:13.747Z"
},
{
"planet": "venus",
"start": "2137-04-22T13:53:13.747Z",
"end": "2138-12-22T07:53:13.747Z"
},
{
"planet": "sun",
"start": "2138-12-22T07:53:13.747Z",
"end": "2139-06-22T22:53:13.747Z"
}
]
},
{
"planet": "mars",
"start": "2139-06-22T22:53:13.747Z",
"end": "2146-06-22T16:53:13.747Z",
"sub": [
{
"planet": "mars",
"start": "2139-06-22T22:53:13.747Z",
"end": "2139-11-19T02:20:13.747Z"
},
{
"planet": "rahu",
"start": "2139-11-19T02:20:13.747Z",
"end": "2140-12-06T14:38:13.747Z"
},
{
"planet": "jupiter",
"start": "2140-12-06T14:38:13.747Z",
"end": "2141-11-12T12:14:13.747Z"
},
{
"planet": "saturn",
"start": "2141-11-12T12:14:13.747Z",
"end": "2142-12-22T07:53:13.747Z"
},
{
"planet": "mercury",
"start": "2142-12-22T07:53:13.747Z",
"end": "2143-12-19T12:50:13.747Z"
},
{
"planet": "ketu",
"start": "2143-12-19T12:50:13.747Z",
"end": "2144-05-16T16:17:13.747Z"
},
{
"planet": "venus",
"start": "2144-05-16T16:17:13.747Z",
"end": "2145-07-16T19:17:13.747Z"
},
{
"planet": "sun",
"start": "2145-07-16T19:17:13.747Z",
"end": "2145-11-21T15:23:13.747Z"
},
{
"planet": "moon",
"start": "2145-11-21T15:23:13.747Z",
"end": "2146-06-22T16:53:13.747Z"
}
]
},
{
"planet": "rahu",
"start": "2146-06-22T16:53:13.747Z",
"end": "2164-06-22T04:53:13.747Z",
"sub": [
{
"planet": "rahu",
"start": "2146-06-22T16:53:13.747Z",
"end": "2149-03-04T21:05:13.747Z"
},
{
"planet": "jupiter",
"start": "2149-03-04T21:05:13.747Z",
"end": "2151-07-29T11:29:13.747Z"
},
{
"planet": "saturn",
"start": "2151-07-29T11:29:13.747Z",
"end": "2154-06-04T10:35:13.747Z"
},
{
"planet": "mercury",
"start": "2154-06-04T10:35:13.747Z",
"end": "2156-12-21T19:53:13.747Z"
},
{
"planet": "ketu",
"start": "2156-12-21T19:53:13.747Z",
"end": "2158-01-09T08:11:13.747Z"
},
{
"planet": "venus",
"start": "2158-01-09T08:11:13.747Z",
"end": "2161-01-09T02:11:13.747Z"
},
{
"planet": "sun",
"start": "2161-01-09T02:11:13.747Z",
"end": "2161-12-03T19:35:13.747Z"
},
{
"planet": "moon",
"start": "2161-12-03T19:35:13.747Z",
"end": "2163-06-04T16:35:13.747Z"
},
{
"planet": "mars",
"start": "2163-06-04T16:35:13.747Z",
"end": "2164-06-22T04:53:13.747Z"
}
]
},
{
"planet": "jupiter",
"start": "2164-06-22T04:53:13.747Z",
"end": "2180-06-22T04:53:13.747Z",
"sub": [
{
"planet": "jupiter",
"start": "2164-06-22T04:53:13.747Z",
"end": "2166-08-10T09:41:13.747Z"
},
{
"planet": "saturn",
"start": "2166-08-10T09:41:13.747Z",
"end": "2169-02-20T16:53:13.747Z"
},
{
"planet": "mercury",
"start": "2169-02-20T16:53:13.747Z",
"end": "2171-05-29T14:29:13.747Z"
},
{
"planet": "ketu",
"start": "2171-05-29T14:29:13.747Z",
"end": "2172-05-04T12:05:13.747Z"
},
{
"planet": "venus",
"start": "2172-05-04T12:05:13.747Z",
"end": "2175-01-03T12:05:13.747Z"
},
{
"planet": "sun",
"start": "2175-01-03T12:05:13.747Z",
"end": "2175-10-22T16:53:13.747Z"
},
{
"planet": "moon",
"start": "2175-10-22T16:53:13.747Z",
"end": "2177-02-20T16:53:13.747Z"
},
{
"planet": "mars",
"start": "2177-02-20T16:53:13.747Z",
"end": "2178-01-27T14:29:13.747Z"
},
{
"planet": "rahu",
"start": "2178-01-27T14:29:13.747Z",
"end": "2180-06-22T04:53:13.747Z"
}
]
},
{
"planet": "saturn",
"start": "2180-06-22T04:53:13.747Z",
"end": "2199-06-22T22:53:13.747Z",
"sub": [
{
"planet": "saturn",
"start": "2180-06-22T04:53:13.747Z",
"end": "2183-06-25T23:56:13.747Z"
},
{
"planet": "mercury",
"start": "2183-06-25T23:56:13.747Z",
"end": "2186-03-05T03:05:13.747Z"
},
{
"planet": "ketu",
"start": "2186-03-05T03:05:13.747Z",
"end": "2187-04-13T22:44:13.747Z"
},
{
"planet": "venus",
"start": "2187-04-13T22:44:13.747Z",
"end": "2190-06-13T13:44:13.747Z"
},
{
"planet": "sun",
"start": "2190-06-13T13:44:13.747Z",
"end": "2191-05-26T13:26:13.747Z"
},
{
"planet": "moon",
"start": "2191-05-26T13:26:13.747Z",
"end": "2192-12-24T20:56:13.747Z"
},
{
"planet": "mars",
"start": "2192-12-24T20:56:13.747Z",
"end": "2194-02-02T16:35:13.747Z"
},
{
"planet": "rahu",
"start": "2194-02-02T16:35:13.747Z",
"end": "2196-12-09T15:41:13.747Z"
},
{
"planet": "jupiter",
"start": "2196-12-09T15:41:13.747Z",
"end": "2199-06-22T22:53:13.747Z"
}
]
},
{
"planet": "mercury",
"start": "2199-06-22T22:53:13.747Z",
"end": "2216-06-23T04:53:13.747Z",
"sub": [
{
"planet": "mercury",
"start": "2199-06-22T22:53:13.747Z",
"end": "2201-11-19T14:20:13.747Z"
},
{
"planet": "ketu",
"start": "2201-11-19T14:20:13.747Z",
"end": "2202-11-16T19:17:13.747Z"
},
{
"planet": "venus",
"start": "2202-11-16T19:17:13.747Z",
"end": "2205-09-16T16:17:13.747Z"
},
{
"planet": "sun",
"start": "2205-09-16T16:17:13.747Z",
"end": "2206-07-24T03:23:13.747Z"
},
{
"planet": "moon",
"start": "2206-07-24T03:23:13.747Z",
"end": "2207-12-23T13:53:13.747Z"
},
{
"planet": "mars",
"start": "2207-12-23T13:53:13.747Z",
"end": "2208-12-19T18:50:13.747Z"
},
{
"planet": "rahu",
"start": "2208-12-19T18:50:13.747Z",
"end": "2211-07-09T04:08:13.747Z"
},
{
"planet": "jupiter",
"start": "2211-07-09T04:08:13.747Z",
"end": "2213-10-14T01:44:13.747Z"
},
{
"planet": "saturn",
"start": "2213-10-14T01:44:13.747Z",
"end": "2216-06-23T04:53:13.747Z"
}
]
},
{
"planet": "ketu",
"start": "2216-06-23T04:53:13.747Z",
"end": "2223-06-23T22:53:13.747Z",
"sub": [
{
"planet": "ketu",
"start": "2216-06-23T04:53:13.747Z",
"end": "2216-11-19T08:20:13.747Z"
},
{
"planet": "venus",
"start": "2216-11-19T08:20:13.747Z",
"end": "2218-01-19T11:20:13.747Z"
},
{
"planet": "sun",
"start": "2218-01-19T11:20:13.747Z",
"end": "2218-05-27T07:26:13.747Z"
},
{
"planet": "moon",
"start": "2218-05-27T07:26:13.747Z",
"end": "2218-12-26T08:56:13.747Z"
},
{
"planet": "mars",
"start": "2218-12-26T08:56:13.747Z",
"end": "2219-05-24T12:23:13.747Z"
},
{
"planet": "rahu",
"start": "2219-05-24T12:23:13.747Z",
"end": "2220-06-11T00:41:13.747Z"
},
{
"planet": "jupiter",
"start": "2220-06-11T00:41:13.747Z",
"end": "2221-05-17T22:17:13.747Z"
},
{
"planet": "saturn",
"start": "2221-05-17T22:17:13.747Z",
"end": "2222-06-26T17:56:13.747Z"
},
{
"planet": "mercury",
"start": "2222-06-26T17:56:13.747Z",
"end": "2223-06-23T22:53:13.747Z"
}
]
}
],
"basis": {
"moon_longitude": 18.09552915,
"ayanamsa": 23.73020048,
"nakshatra": {
"id": "bharani",
"number": 2,
"lord": "venus",
"start": 13.33333333,
"end": 26.66666667
},
"elapsed_fraction": 0.3571646866,
"remaining_fraction": 0.6428353134,
"balance": {
"planet": "venus",
"years": 12.8567062688,
"days": 4695.91196467
},
"year_days": 365.25,
"birth": "1990-08-13T01:00:00.000Z"
}
},
"numerology": {
"life_path": 4,
"destiny": 1,
"soul_urge": 8,
"personality": 2,
"birth_number": 4,
"ruling_planet": "rahu",
"lucky_numbers": [
4,
13,
22,
31
],
"hidden_passion": 1,
"maturity": 5,
"personal_year": 4,
"personal_month": 6,
"personal_day": 9,
"life_path_meaning": {
"name": "The Builder",
"keyword": "Stability & discipline",
"traits": "Practical, disciplined, loyal and hardworking. Builds lasting foundations through patience."
},
"soul_urge_meaning": "Inside you desire success, recognition, influence and material mastery.",
"personality_meaning": "Others see you as gentle, warm, tactful and easy to approach.",
"lucky_colors": [
"Blue",
"Grey",
"Khaki"
],
"lucky_days": [
"Saturday",
"Sunday"
],
"lucky_gem": "Hessonite (Gomed)",
"name_breakdown": [
{
"letter": "A",
"value": 1,
"type": "vowel"
},
{
"letter": "S",
"value": 3,
"type": "consonant"
},
{
"letter": "H",
"value": 5,
"type": "consonant"
},
{
"letter": "A",
"value": 1,
"type": "vowel"
},
{
"letter": "V",
"value": 6,
"type": "consonant"
},
{
"letter": "E",
"value": 5,
"type": "vowel"
},
{
"letter": "R",
"value": 2,
"type": "consonant"
},
{
"letter": "M",
"value": 4,
"type": "consonant"
},
{
"letter": "A",
"value": 1,
"type": "vowel"
}
]
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 6,
"ayanamsa": "lahiri",
"house_system": "whole_sign",
"node": "true",
"timezone_used": {
"name": "Asia/Kolkata",
"utc_offset": "+05:30",
"source": "auto"
}
},
"warnings": []
}