Western Natal Chart API
A tropical birth chart: planets, angles, Placidus or other houses, dignities and element balance
POST/v1/western/chart
2 credits · Secret key (test or live) · getWesternChart
Sun to Pluto and the true node, as apparent longitudes of date. With an unknown birth time, angles, houses and each planet's house are null, and the Moon can be up to about 6° off.
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.
house_systemstringone of
placidus,equal,whole_sign,porphyry· default"placidus"optionsobjectlangstring requiredone of
en,hi· default"en"
No other fields are accepted.
No other fields are accepted.
Response
JSON { data, meta, warnings }, where data is:
momentstring (date-time) requiredframestring requiredone of
tropicalhouse_systemstring or null requiredOne of:
- string
- null
planetsarray of object requiredidstring requirednamestring requiredlongitudenumber requiredsignstring requiredsign_namestring requireddegreenumber requiredformattedstring requiredspeednumber requiredDegrees a day.
retrogradeboolean requiredhouseinteger or null requiredOne of:
- integer
- null
dignitystring or null requiredOne of:
- string
- null
anglesobject or null requiredOne of:
- object
Fields
ascendantobject requiredFields
longitudenumber requiredsignstring requiredsign_namestring requireddegreenumber requiredformattedstring required
midheavenobject requiredFields
longitudenumber requiredsignstring requiredsign_namestring requireddegreenumber requiredformattedstring required
descendantobject requiredFields
longitudenumber requiredsignstring requiredsign_namestring requireddegreenumber requiredformattedstring required
imum_coeliobject requiredFields
longitudenumber requiredsignstring requiredsign_namestring requireddegreenumber requiredformattedstring required
- null
- object
housesarray of object or null requiredOne of:
- array of object
Fields
houseinteger requiredlongitudenumber requiredsignstring requiredsign_namestring requireddegreenumber requiredformattedstring required
- null
- array of object
balanceobject requiredelementsobject requiredFields
fireinteger requiredearthinteger requiredairinteger requiredwaterinteger required
modalitiesobject requiredFields
cardinalinteger requiredfixedinteger requiredmutableinteger required
Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.
Example request
curl -X POST 'https://api.astrologics.in/v1/western/chart' \
-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/western/chart", {
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/western/chart",
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/western/chart');
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 · 7,459 characters
{
"data": {
"moment": "1990-08-13T01:00:00.000Z",
"frame": "tropical",
"house_system": "placidus",
"planets": [
{
"id": "sun",
"name": "Sun",
"longitude": 140.0441,
"sign": "leo",
"sign_name": "Leo",
"degree": 20.0441,
"formatted": "20°02′ Leo",
"speed": 0.96,
"retrograde": false,
"house": 12,
"dignity": "domicile"
},
{
"id": "moon",
"name": "Moon",
"longitude": 41.8257,
"sign": "taurus",
"sign_name": "Taurus",
"degree": 11.8257,
"formatted": "11°49′ Taurus",
"speed": 14.1674,
"retrograde": false,
"house": 9,
"dignity": "exaltation"
},
{
"id": "mercury",
"name": "Mercury",
"longitude": 167.3675,
"sign": "virgo",
"sign_name": "Virgo",
"degree": 17.3675,
"formatted": "17°22′ Virgo",
"speed": 0.891,
"retrograde": false,
"house": 1,
"dignity": "domicile"
},
{
"id": "venus",
"name": "Venus",
"longitude": 118.9285,
"sign": "cancer",
"sign_name": "Cancer",
"degree": 28.9285,
"formatted": "28°55′ Cancer",
"speed": 1.2195,
"retrograde": false,
"house": 11,
"dignity": null
},
{
"id": "mars",
"name": "Mars",
"longitude": 49.9573,
"sign": "taurus",
"sign_name": "Taurus",
"degree": 19.9573,
"formatted": "19°57′ Taurus",
"speed": 0.5855,
"retrograde": false,
"house": 9,
"dignity": "detriment"
},
{
"id": "jupiter",
"name": "Jupiter",
"longitude": 118.8702,
"sign": "cancer",
"sign_name": "Cancer",
"degree": 28.8702,
"formatted": "28°52′ Cancer",
"speed": 0.2159,
"retrograde": false,
"house": 11,
"dignity": "exaltation"
},
{
"id": "saturn",
"name": "Saturn",
"longitude": 290.0026,
"sign": "capricorn",
"sign_name": "Capricorn",
"degree": 20.0026,
"formatted": "20°00′ Capricorn",
"speed": -0.0587,
"retrograde": true,
"house": 5,
"dignity": "domicile"
},
{
"id": "uranus",
"name": "Uranus",
"longitude": 276.03,
"sign": "capricorn",
"sign_name": "Capricorn",
"degree": 6.03,
"formatted": "6°01′ Capricorn",
"speed": -0.0252,
"retrograde": true,
"house": 5,
"dignity": null
},
{
"id": "neptune",
"name": "Neptune",
"longitude": 282.2409,
"sign": "capricorn",
"sign_name": "Capricorn",
"degree": 12.2409,
"formatted": "12°14′ Capricorn",
"speed": -0.0199,
"retrograde": true,
"house": 5,
"dignity": null
},
{
"id": "pluto",
"name": "Pluto",
"longitude": 225.0615,
"sign": "scorpio",
"sign_name": "Scorpio",
"degree": 15.0615,
"formatted": "15°03′ Scorpio",
"speed": 0.0102,
"retrograde": false,
"house": 3,
"dignity": null
},
{
"id": "north_node",
"name": "North Node",
"longitude": 307.2231,
"sign": "aquarius",
"sign_name": "Aquarius",
"degree": 7.2231,
"formatted": "7°13′ Aquarius",
"speed": -0.0061,
"retrograde": true,
"house": 6,
"dignity": null
},
{
"id": "south_node",
"name": "South Node",
"longitude": 127.2231,
"sign": "leo",
"sign_name": "Leo",
"degree": 7.2231,
"formatted": "7°13′ Leo",
"speed": -0.0061,
"retrograde": true,
"house": 12,
"dignity": null
}
],
"angles": {
"ascendant": {
"longitude": 148.0037,
"sign": "leo",
"sign_name": "Leo",
"degree": 28.0037,
"formatted": "28°00′ Leo"
},
"midheaven": {
"longitude": 55.7525,
"sign": "taurus",
"sign_name": "Taurus",
"degree": 25.7525,
"formatted": "25°45′ Taurus"
},
"descendant": {
"longitude": 328.0037,
"sign": "aquarius",
"sign_name": "Aquarius",
"degree": 28.0037,
"formatted": "28°00′ Aquarius"
},
"imum_coeli": {
"longitude": 235.7525,
"sign": "scorpio",
"sign_name": "Scorpio",
"degree": 25.7525,
"formatted": "25°45′ Scorpio"
}
},
"houses": [
{
"house": 1,
"longitude": 148.0037,
"sign": "leo",
"sign_name": "Leo",
"degree": 28.0037,
"formatted": "28°00′ Leo"
},
{
"house": 2,
"longitude": 173.8098,
"sign": "virgo",
"sign_name": "Virgo",
"degree": 23.8098,
"formatted": "23°48′ Virgo"
},
{
"house": 3,
"longitude": 203.4981,
"sign": "libra",
"sign_name": "Libra",
"degree": 23.4981,
"formatted": "23°29′ Libra"
},
{
"house": 4,
"longitude": 235.7525,
"sign": "scorpio",
"sign_name": "Scorpio",
"degree": 25.7525,
"formatted": "25°45′ Scorpio"
},
{
"house": 5,
"longitude": 268.1471,
"sign": "sagittarius",
"sign_name": "Sagittarius",
"degree": 28.1471,
"formatted": "28°08′ Sagittarius"
},
{
"house": 6,
"longitude": 299.0623,
"sign": "capricorn",
"sign_name": "Capricorn",
"degree": 29.0623,
"formatted": "29°03′ Capricorn"
},
{
"house": 7,
"longitude": 328.0037,
"sign": "aquarius",
"sign_name": "Aquarius",
"degree": 28.0037,
"formatted": "28°00′ Aquarius"
},
{
"house": 8,
"longitude": 353.8098,
"sign": "pisces",
"sign_name": "Pisces",
"degree": 23.8098,
"formatted": "23°48′ Pisces"
},
{
"house": 9,
"longitude": 23.4981,
"sign": "aries",
"sign_name": "Aries",
"degree": 23.4981,
"formatted": "23°29′ Aries"
},
{
"house": 10,
"longitude": 55.7525,
"sign": "taurus",
"sign_name": "Taurus",
"degree": 25.7525,
"formatted": "25°45′ Taurus"
},
{
"house": 11,
"longitude": 88.1471,
"sign": "gemini",
"sign_name": "Gemini",
"degree": 28.1471,
"formatted": "28°08′ Gemini"
},
{
"house": 12,
"longitude": 119.0623,
"sign": "cancer",
"sign_name": "Cancer",
"degree": 29.0623,
"formatted": "29°03′ Cancer"
}
],
"balance": {
"elements": {
"fire": 1,
"earth": 6,
"air": 0,
"water": 3
},
"modalities": {
"cardinal": 5,
"fixed": 4,
"mutable": 1
}
}
},
"meta": {
"request_id": "req_example",
"api_version": "v1",
"engine_version": "2026.10.10",
"mode": "live",
"credits_charged": 2
},
"warnings": []
}Try it
More in Western
- Natal Chart Wheel SVG API: The chart drawn as a wheel in SVG, with the ascendant on the left
- Natal Aspects API: Natal aspects with their orbs, and whether each is applying
- Synastry API: Aspects between two charts, and each person's planets in the other's houses
- Composite Chart API: A midpoint composite chart for two people
- Western Transits API: Exact transits to a birth chart, sign ingresses and stations over a range
- Secondary Progressions API: A secondary progressed chart for a date, with solar arc angles
- Western Solar Return API: The tropical solar return chart for a year, at the birth place or another
- Lunar Return API: The next tropical lunar return chart after a date