Astrology API Documentation

Western (tropical), geocentric astrology is the default and primary calculation system used by AstroAPI.

AstroAPI uses NASA JPL DE421 ephemeris data for astronomical calculations. All planetary positions are computed deterministically using geocentric, tropical zodiac coordinates unless explicitly overridden.

AstroAPI is a developer-first astrology API designed for passive, server-to-server usage. It exposes raw, verifiable calculation results without interpretation or tradition-specific opinion.

Western (Tropical) Mode: Capabilities & Limitations

What Western / Tropical Mode CAN Do

  • Calculate planetary positions using tropical zodiac coordinates
  • Use NASA JPL DE421 ephemeris as the astronomical source
  • Generate complete natal (birth) charts
  • Compute ascendant, midheaven (MC), and chart angles
  • Support multiple house systems (Placidus, Whole Sign, Equal, Koch, Campanus, Porphyry)
  • Calculate planetary aspects with precise angular geometry
  • Generate synastry (chart comparison) data
  • Compute transits for any supported date range
  • Return raw calculation output suitable for analytics and visualization
  • Preserve deterministic, reproducible results across requests

What Western / Tropical Mode CANNOT Do

  • Does not perform interpretive astrology or psychological analysis
  • No horoscope text generation or narrative output
  • No cultural, religious, or tradition-specific overlays
  • No Vedic astrology logic unless sidereal mode is explicitly enabled
  • No predictive scoring, compatibility scoring, or weighting systems
  • No calendar ritual logic or event forecasting frameworks

AstroAPI intentionally separates astronomical calculation from interpretation. All meaning, scoring, and presentation decisions are delegated to the client application.

// JavaScript — Birth Chart Example (Tropical Default)
fetch("https://api.astroapi.io/api/astro/birth-chart", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
  },
  body: JSON.stringify({
    date: "2000-01-01",
    time: "12:00",
    lat: 0.0,
    lon: 0.0
  })
})
  .then(res => res.json())
  .then(data => console.log(data));
# Python — Birth Chart Example (Tropical Default)
import requests

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

payload = {
    "date": "2000-01-01",
    "time": "12:00",
    "lat": 0.0,
    "lon": 0.0
}

headers = {
  "Content-Type": "application/json",
  "Authorization": "Bearer YOUR_API_KEY"
}

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