---
title: "Western Aspect Grid"
method: POST
path: "/v1/western/aspects"
tags: ["Western Astrology"]
---

# Western Aspect Grid

`POST /v1/western/aspects`

## Request

- Base URL: `https://api.asterwise.com`
- URL: `https://api.asterwise.com/v1/western/aspects`
- Auth: HTTP bearer

Calculate all active aspects between any set of planetary positions. Provide a dictionary of body names to tropical ecliptic longitudes. Uses standard modern Western orbs by default: major aspects 5°, sextile 3°, minor aspects 1.5°. Custom orbs can be provided per aspect type.

## Request body

- WesternAspectsRequest
  - `positions` object, required: Dictionary of body name to tropical ecliptic longitude (0-360). Example: {"Sun": 229.6, "Moon": 221.8, "Mars": 189.6}
  - `orbs` object, nullable: Custom orbs per aspect type. If omitted, uses standard modern Western orbs: major=5°, sextile=3°, minor=1.5°

## Response `200`

Successful Response

- ApiResponseWesternAspectsResponse
  - `success` boolean: True if the request succeeded
  - `message` string: Human-readable status message
  - `data` WesternAspectsResponse, required
    - `aspects` WesternAspect[], required: All active aspects between the provided bodies
      - `planet_a` string, required
      - `planet_b` string, required
      - `type` string, required: Aspect type: conjunction | opposition | trine | square | sextile | semisextile | semisquare | sesquiquadrate | quincunx
      - `exact_angle` number, required: Actual angular distance between planets
      - `orb` number, required: Difference from exact aspect angle (always positive)
      - `is_applying` boolean, required: True if the aspect is applying at this instant: the planets' relative motion (instantaneous speeds) is closing the orb toward exactness. False if separating or exact.
    - `orbs_used` object, required: Orb values used for this calculation
    - `body_count` integer, required: Number of bodies provided
    - `aspect_count` integer, required: Number of aspects found

## Other responses

- `401`: Authentication failed
- `403`: Authorization failed
- `404`: Resource not found
- `413`: Payload too large
- `422`: Validation error
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream provider error
- `503`: Service unavailable

---

[API](https://skmtc.dev/asterwise/apis/asterwise-api.md) · [All operations](https://skmtc.dev/asterwise/apis/asterwise-api/llms.txt) · [OpenAPI document](https://skmtc.dev/asterwise/apis/asterwise-api/revisions/3c4bbb1194e2?raw)
