---
title: "Aspect Matrix"
method: POST
path: "/aspects"
tags: ["Calendar & Cycles"]
---

# Aspect Matrix

`POST /aspects`

Standalone aspect calculation: full inter-planetary aspect list with type / exactAngle / orb / isApplying. Uses per-pair astro.com orb matrix. Same calcAspects() as /chart but without planet positions / houses / midpoints overhead.

## Request body

- ChartInput — Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC. city is a display label only: nothing here geocodes it, so it never stands in for coordinates.
  - `date` string, required
  - `time` string, required
  - `timezoneOffset` number, nullable — Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC.
  - `latitude` number, required
  - `longitude` number, required
  - `houseSystem` string
  - `name` string
  - `city` string
  - `zodiacType` 'tropical' | 'sidereal'
  - `ayanamsaId` number, nullable
  - `ayanamsa` 'fagan-bradley' | 'lahiri' | 'de-luce' | 'raman' | 'krishnamurti' | 'kp' | 'yukteshwar' | 'jn-bhasin' | 'true-citra' | 'djwhal-khul' — Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either.
  - `cosmogram` boolean

## Response `200`

Successful calculation

- object
  - `ok` boolean
  - `data` object
    - `aspects` object[], nullable
      - `planet1` string, nullable
      - `planet2` string, nullable
      - `planet1Id` number, nullable
      - `planet2Id` number, nullable
      - `type` object, nullable
        - `name` string, nullable
        - `i18nKey` string, nullable
        - `angle` number, nullable
        - `orb` number, nullable
        - `symbol` string, nullable
        - `isMajor` boolean, nullable
        - `color` string, nullable
      - `exactAngle` number, nullable
      - `orb` number, nullable
      - `isApplying` boolean, nullable
    - `count` number, nullable

## Other responses

- `400` — Validation error
- `401` — Missing or invalid API key

## Changes

- **2026-08-24** `8ab5a768b521` — 5 info
  - added the optional property `data/aspects/items/planet1Id` to the response with the `200` status
  - added the optional property `data/aspects/items/planet2Id` to the response with the `200` status
  - added the optional property `data/aspects/items/type/color` to the response with the `200` status
  - added the optional property `data/aspects/items/type/i18nKey` to the response with the `200` status
  - …1 more
- **2026-08-22** `5a17388652f3` — 4 breaking, 8 info
  - added the new required request property `date`
  - added the new required request property `latitude`
  - added the new required request property `longitude`
  - added the new required request property `time`
  - …8 more

[Change history](https://skmtc.dev/astroway/apis/astroway-calculation-api/changes/aspects/post.md)

---

[API](https://skmtc.dev/astroway/apis/astroway-calculation-api.md) · [All operations](https://skmtc.dev/astroway/apis/astroway-calculation-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/astroway/astroway-calculation-api/revisions/8ab5a768b521/schema)
