Natal Chart (Western)
POST
/api/v1/natal/calculateGenerate a professional Western Natal Chart with support for multiple house systems, precise planetary speeds, station detection, and extra bodies (Asteroids & Nodes).
Full URL
https://astro-api-1qnc.onrender.com/api/v1/natal/calculateRequest Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | No | Subject name (for display purposes) |
| year | integer | Yes | Birth year (e.g., 1990) |
| month | integer | Yes | Birth month (1-12) |
| day | integer | Yes | Birth day (1-31) |
| hour | integer | Yes | Birth hour (0-23, 24-hour format) |
| minute | integer | Yes | Birth minute (0-59) |
| city | string | Yes | City name (used for coordinate lookup via /geo/search) |
| lat | float | No | Latitude (-90 to 90). Optional: auto-resolved from city if not provided |
| lng | float | No | Longitude (-180 to 180). Optional: auto-resolved from city if not provided |
| tz_str | string | No | Timezone string (e.g. 'Europe/Paris' or 'AUTO'). Default: AUTO |
| house_system | string | No | placidus (default), whole_sign, equal, koch, regiomontanus, porphyry, campanus |
| zodiac_type | string | No | tropical (default) or sidereal. Sidereal uses the specified ayanamsa. |
| sidereal_ayanamsa | string | No | lahiri (default), raman, kp, fagan_bradley, yukteshwar. Only used when zodiac_type=sidereal. |
| include_speed | boolean | No | If true, returns daily speed (deg/day) and stationary flag. Default: false |
| include_features | array[str] | No | List of extra bodies: chiron, lilith, true_node, mean_node, etc. |
| orb_settings | object | No | Custom orb overrides, e.g. {'Conjunction': 10.0} |
Advanced Features v1.6
House Systems
- Placidus (default)
- Whole Sign
- Equal House
- Regiomontanus
- Koch
- Porphyry
- Campanus
- Topocentric
Extra Bodies
Pass name in include_features list:
chironlilithtrue_nodemean_nodepholuscerespallasjunovesta
Orbs & Settings
You can override default orb settings for any aspect. For example, to make square aspects strictly 2 degrees:
"orb_settings": { "Square": 2.0 }Default Aspects
Major Aspects
Conjunction
0°
Default Orb: 8°
Opposition
180°
Default Orb: 8°
Trine
120°
Default Orb: 8°
Square
90°
Default Orb: 8°
Sextile
60°
Default Orb: 6°
Minor Aspects
Quincunx
150°
Default Orb: 3°
Semi-sextile
30°
Default Orb: 2°
Semi-square
45°
Default Orb: 2°
Sesquiquadrate
135°
Default Orb: 2°
Quintile
72°
Default Orb: 2°
Sample Code
import requests
import json
url = "https://astro-api-1qnc.onrender.com/api/v1/natal/calculate"
payload = {
"name": "John Doe",
"year": 1990,
"month": 5,
"day": 15,
"hour": 14,
"minute": 30,
"city": "New York",
"lat": 40.7128,
"lng": -74.006,
"tz_str": "AUTO", # "AUTO" will resolve based on lat/lng and date
"house_system": "placidus", # "whole_sign", "equal", "koch", etc.
"zodiac_type": "tropical", # "tropical" (default) or "sidereal"
# "sidereal_ayanamsa": "lahiri", # Only used when zodiac_type="sidereal"
"include_speed": True, # Adds speed (deg/day) and stationary flag
"include_features": ["chiron", "lilith", "true_node"],
"orb_settings": {
"Conjunction": 8.0,
"Opposition": 8.0,
"Trine": 8.0,
"Square": 8.0,
"Sextile": 6.0
}
}
headers = {
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())Response Data
{
"subject": {
"name": "John Doe",
"city": "New York",
"...": "...",
"settings": {
"house_system": "placidus",
"julian_day": 2448032.27083,
"zodiac_type": "Tropical"
}
},
"planets": [
{
"id": "sun",
"name": "Sun",
"sign": "Tau",
"pos": 24.72,
"abs_pos": 54.72,
"house": 9,
"retrograde": false,
"speed": 0.96,
"is_stationary": false
},
{
"id": "moon",
"name": "Moon",
"sign": "Aqu",
"pos": 14.23,
"abs_pos": 314.23,
"house": 5,
"retrograde": false,
"speed": 12.45,
"is_stationary": false
},
{
"id": "chiron",
"name": "Chiron",
"sign": "Can",
"pos": 12.34,
"abs_pos": 102.34,
"house": 11,
"retrograde": false,
"speed": 0.05,
"is_stationary": false
},
{
"id": "asc",
"name": "Ascendant",
"sign": "Vir",
"pos": 18.5,
"abs_pos": 168.5,
"house": 1,
"retrograde": false
}
],
"houses": [
{ "house": 1, "name": "1", "sign": "Vir", "pos": 18.5, "abs_pos": 168.5 },
{ "house": 2, "name": "2", "sign": "Lib", "pos": 15.2, "abs_pos": 195.2 }
// ... 12 houses
],
"aspects": [
{
"p1": "Sun",
"p2": "Moon",
"type": "Square",
"orb": 5.51,
"deg": 90.0,
"is_major": true
}
]
}