Sidereal Birth Chart API

AstroAPI uses Western (tropical), geocentric astrology by default. Sidereal calculations are applied only when explicitly enabled using "zodiac": "sidereal" and an ayanamsa selection. This endpoint provides sidereal coordinate transforms only and does not implement full Vedic astrology systems.

Generate sidereal natal astrology charts using API key authentication. Designed for passive, server-to-server usage.

Endpoint

POST https://api.astroapi.io/api/astro/birth-chart

Include Authorization: Bearer <API_KEY>.

Required Request Fields

  • date — ISO date (YYYY-MM-DD)
  • time — 24-hour time (HH:MM)
  • lat — latitude (decimal)
  • lon — longitude (decimal)
  • zodiac — must be "sidereal"
  • ayanamsa — optional; lahiri (default), raman, or krishnamurti

Add an IANA timezone for local birth time; omission means UTC. Public chart dates are limited to 1900-01-01 through 2050-12-31.

Returns

  • Planetary positions (Sun through Pluto) in sidereal zodiac
  • Ascendant and Midheaven (mc)
  • Whole Sign (whole_sign) and Equal (equal) house systems
  • Aspects, lunar nodes, and metadata

All calculation results are returned inside the chart object.

Example Response

This verified Lahiri response is abbreviated and numerically rounded.

{
  "type": "birth-chart",
  "input": {
    "date": "1995-11-08",
    "time": "14:22",
    "timezone": "UTC",
    "lat": 34.05,
    "lon": -118.24,
    "zodiac": "sidereal",
    "ayanamsa": "lahiri"
  },
  "chart": {
    "status": "ok",
    "planets": {
      "Sun": { "lon": 201.9022, "tropical_lon": 225.7013, "sign": "Libra" },
      "Moon": { "lon": 36.4327, "tropical_lon": 60.2319, "sign": "Taurus" }
    },
    "houses": {
      "ascendant": 201.6954,
      "mc": 118.4005,
      "systems": {
        "whole_sign": {
          "houses": {
            "1": 180.0,
            "2": 210.0,
            "3": 240.0,
            "4": 270.0,
            "5": 300.0,
            "6": 330.0,
            "7": 0.0,
            "8": 30.0,
            "9": 60.0,
            "10": 90.0,
            "11": 120.0,
            "12": 150.0
          }
        },
        "equal": {
          "houses": {
            "1": 201.6954,
            "2": 231.6954,
            "3": 261.6954,
            "4": 291.6954,
            "5": 321.6954,
            "6": 351.6954,
            "7": 21.6954,
            "8": 51.6954,
            "9": 81.6954,
            "10": 111.6954,
            "11": 141.6954,
            "12": 171.6954
          }
        }
      }
    }
  }
}

Quick Test / curl

Use this curl command to quickly test the Sidereal Birth Chart API endpoint with your API key:

curl -i https://api.astroapi.io/api/astro/birth-chart \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${ASTROAPI_KEY}" \
  -d '{
    "date": "2000-01-01",
    "time": "12:00",
    "timezone": "America/New_York",
    "lat": 33.7488,
    "lon": -84.3877,
    "zodiac": "sidereal",
    "ayanamsa": "lahiri"
  }'

Common Uses

  • Sidereal chart visualization
  • Coordinate-system comparison tools
  • Research and analytics pipelines
  • Advanced astrology dashboards

All calculation results are returned as raw data. Interpretation, weighting, and scoring are the responsibility of the client application or downstream services.

// Node.js 22+ — server-side only
fetch("https://api.astroapi.io/api/astro/birth-chart", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": `Bearer ${process.env.ASTROAPI_KEY}`
  },
  body: JSON.stringify({
    date: "1995-11-08",
    time: "14:22",
    timezone: "UTC",
    lat: 34.05,
    lon: -118.24,
    zodiac: "sidereal",
    ayanamsa: "lahiri"
  })
})
  .then(res => res.json())
  .then(data => console.log(data));
# Python — Sidereal Birth Chart API
import os
import requests

url = "https://api.astroapi.io/api/astro/birth-chart"

payload = {
  "date": "1995-11-08",
  "time": "14:22",
  "timezone": "UTC",
  "lat": 34.05,
  "lon": -118.24,
  "zodiac": "sidereal",
  "ayanamsa": "lahiri"
}

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {os.environ['ASTROAPI_KEY']}"
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())