Astrology Aspects API (Natal & Synastry)

The Aspects API computes angular relationships between planets within a single chart (natal) or between two charts (synastry). This endpoint returns structured aspect objects including aspect type, orb, exact degree, and planet-to-planet relationships.

Aspects API Endpoint

POST https://api.astroapi.io/v1/aspects

What Are Astrology Aspects?

Aspects describe specific angular relationships between planets. They represent harmony, tension, flow, friction, or emphasis between planetary energies.

Major supported aspects include:

  • conjunction (0°)
  • sextile (60°)
  • square (90°)
  • trine (120°)
  • opposition (180°)

Aspects API Request Body

Send one or two charts using birth data or precomputed planetary positions.

Field Type Required Description
chart object Yes Main chart using birth data or positions.
chart2 object No Second chart for synastry comparison.
orb number No Maximum allowed deviation in degrees (default: 5°).
include_minor boolean No Enable minor aspects based on plan tier.

Example Aspects API Response

{
  "chart_type": "natal",
  "aspects": [
    {
      "from_body": "Sun",
      "to_body": "Moon",
      "aspect": "square",
      "orb": 2.1,
      "exact_degree": 90.8
    },
    {
      "from_body": "Venus",
      "to_body": "Mars",
      "aspect": "trine",
      "orb": 0.7,
      "exact_degree": 120.4
    }
  ]
}

Common Uses for Aspect Data

  • Automated chart readings and AI interpretations
  • Synastry and relationship compatibility scoring
  • Personality, purpose, and energy summaries
  • Predictive systems using transit-to-natal triggers
  • Chart wheels with dynamic aspect lines
  • Daily, weekly, and monthly horoscope engines

AstroAPI delivers precise, normalized JSON. Your application controls interpretation, scoring, and presentation.

// JavaScript — Natal Aspects API Example
fetch("https://api.astroapi.io/v1/aspects", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
  },
  body: JSON.stringify({
    chart: {
      date: "1995-11-08",
      time: "14:22",
      lat: 34.05,
      lon: -118.24,
      tz: "America/Los_Angeles"
    },
    orb: 5
  })
})
  .then(res => res.json())
  .then(data => console.log("Aspects:", data.aspects));
# Python — Synastry Aspects API Example
import requests

url = "https://api.astroapi.io/v1/aspects"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}

payload = {
    "chart": {
        "date": "1995-11-08",
        "time": "14:22",
        "lat": 34.05,
        "lon": -118.24,
        "tz": "America/Los_Angeles"
    },
    "chart2": {
        "date": "1992-04-15",
        "time": "09:10",
        "lat": 40.71,
        "lon": -74.00,
        "tz": "America/New_York"
    },
    "orb": 4
}

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