Sidereal Astrology API Documentation

Optional sidereal coordinate system support for AstroAPI.

AstroAPI supports sidereal astrology as an explicit opt-in mode. When enabled, planetary longitudes are adjusted using a date-aware ayanamsa offset. Western (tropical) astrology remains the default behavior for all endpoints.

Sidereal mode provides coordinate transforms only. It does not implement full Vedic astrology systems or Panchanga logic.

Sidereal Mode: Capabilities & Limitations

What Sidereal Mode CAN Do

  • Convert tropical planetary longitudes to sidereal using date-aware ayanamsa offsets
  • Support explicit opt-in via "zodiac": "sidereal"
  • Apply Lahiri, Raman, or Krishnamurti ayanamsa for sidereal longitude calculations
  • Generate sidereal planetary positions using JPL DE421 ephemeris data
  • Calculate sidereal birth charts, aspects, houses, transits, and synastry
  • Compute Moon Nakshatra and pada from sidereal longitude
  • Preserve deterministic, interpretation-free calculation output
  • Return raw data suitable for research, analytics, and custom logic

What Sidereal Mode CANNOT Do

  • Does not implement full Vedic astrology systems
  • No Panchanga, tithi, yoga, karana, or muhurta calculations
  • No Vedic sunrise/sunset day-boundary rules
  • No dashas, yogas, or predictive timing frameworks
  • No interpretive or religious astrology logic
  • No regional or tradition-specific calendar alignment
  • Does not attempt to match every third-party Vedic API output

Differences between AstroAPI sidereal results and Vedic-only astrology platforms are expected. Those systems often embed additional cultural, calendrical, or interpretive rules that AstroAPI intentionally does not apply.

All sidereal requests require "zodiac": "sidereal". Supported ayanamsas are lahiri, raman, and krishnamurti; omitted ayanamsa defaults to lahiri. The public date window is 1900-01-01 through 2050-12-31.

// 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: "2000-01-01",
    time: "12:00",
    timezone: "UTC",
    lat: 0.0,
    lon: 0.0,
    zodiac: "sidereal",
    ayanamsa: "lahiri"
  })
})
  .then(res => res.json())
  .then(data => console.log(data));
# Python — Sidereal Birth Chart Example
import os
import requests

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

payload = {
    "date": "2000-01-01",
    "time": "12:00",
    "timezone": "UTC",
    "lat": 0.0,
    "lon": 0.0,
    "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())