---
title: "Calculate a selected house system"
method: POST
path: "/api/astro/houses"
tags: ["Calculations"]
---

# Calculate a selected house system

`POST /api/astro/houses`

## Request

- Base URL: `https://api.cosmicephemeris.com`
- URL: `https://api.cosmicephemeris.com/api/astro/houses`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`

Current unversioned gateway response. Equal and Whole Sign are stable; Placidus, Porphyry, Meridian, Campanus, Regiomontanus, Alcabitius, Koch, Morinus, Topocentric, Sripati, and Vehlow are current opt-in systems that reject undefined geometry without fallback. Regiomontanus, Alcabitius, Koch, Morinus, Topocentric, Sripati, and Vehlow are calculation-only and are not admitted by saved profiles or other chart routes.

Each admitted request reserves one monthly usage unit before route validation or engine work; failed or timed-out admitted attempts are not refunded. Do not automatically retry.
Historical mode uses an explicit BCE/CE date object and UT1 conventions. Its response is the versioned historical envelope, not the modern UTC envelope. Read result for calculation fields and metadata for limits and uncertainty.

## Request body

- union
  - unknown
  - unknown

## Response `200`

Successful calculation. Field nesting is specific to this route.

- union
  - HousesResponse
    - `type` 'houses', required
    - `house_system` 'equal' | 'whole_sign' | 'placidus' | 'porphyry' | 'meridian' | 'campanus' | 'regiomontanus' | 'alcabitius' | 'koch' | 'morinus' | 'topocentric' | 'sripati' | 'vehlow' | 'horizon' | 'krusinski' | 'sunshine' | 'sunshine_alt' | 'savard' | 'pullen_sd' | 'pullen_sr' | 'carter' | 'apc' | 'equal_mc' | 'natural' | 'gauquelin', required
    - `status` 'ok', required
    - `zodiac` 'tropical' | 'sidereal', required
    - `ayanamsa` 'lahiri' | 'raman' | 'krishnamurti' | 'fagan_bradley' | 'yukteshwar' | 'sassanian' | 'true_chitra' | 'true_revati' | 'true_pushya' | 'galactic_center_0_sagittarius' | 'galactic_alignment_mardyks', required
    - `planets` Planets, required
      - `Sun` PlanetPosition, required: Apparent geocentric JPL DE440 ecliptic position. sidereal_lon is present in sidereal mode; nakshatra is present only on the sidereal Moon.
        - `lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
        - `speed_deg_per_day` number, required: Signed tropical longitude difference over the preceding one TT day, rounded to four decimals; not an instantaneous derivative.
        - `retrograde` boolean, required
        - `tropical_lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sidereal_lon` number: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `nakshatra` Nakshatra
          - `index` integer, required
          - `name` string, required
          - `ruler` string, required
          - `pada` integer, required
          - `deg_into_nakshatra` number, required
      - `Moon` PlanetPosition, required: Apparent geocentric JPL DE440 ecliptic position. sidereal_lon is present in sidereal mode; nakshatra is present only on the sidereal Moon.
        - `lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
        - `speed_deg_per_day` number, required: Signed tropical longitude difference over the preceding one TT day, rounded to four decimals; not an instantaneous derivative.
        - `retrograde` boolean, required
        - `tropical_lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sidereal_lon` number: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `nakshatra` Nakshatra
          - `index` integer, required
          - `name` string, required
          - `ruler` string, required
          - `pada` integer, required
          - `deg_into_nakshatra` number, required
      - `Mercury` PlanetPosition, required: Apparent geocentric JPL DE440 ecliptic position. sidereal_lon is present in sidereal mode; nakshatra is present only on the sidereal Moon.
        - `lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
        - `speed_deg_per_day` number, required: Signed tropical longitude difference over the preceding one TT day, rounded to four decimals; not an instantaneous derivative.
        - `retrograde` boolean, required
        - `tropical_lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sidereal_lon` number: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `nakshatra` Nakshatra
          - `index` integer, required
          - `name` string, required
          - `ruler` string, required
          - `pada` integer, required
          - `deg_into_nakshatra` number, required
      - `Venus` PlanetPosition, required: Apparent geocentric JPL DE440 ecliptic position. sidereal_lon is present in sidereal mode; nakshatra is present only on the sidereal Moon.
        - `lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
        - `speed_deg_per_day` number, required: Signed tropical longitude difference over the preceding one TT day, rounded to four decimals; not an instantaneous derivative.
        - `retrograde` boolean, required
        - `tropical_lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sidereal_lon` number: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `nakshatra` Nakshatra
          - `index` integer, required
          - `name` string, required
          - `ruler` string, required
          - `pada` integer, required
          - `deg_into_nakshatra` number, required
      - `Mars` PlanetPosition, required: Apparent geocentric JPL DE440 ecliptic position. sidereal_lon is present in sidereal mode; nakshatra is present only on the sidereal Moon.
        - `lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
        - `speed_deg_per_day` number, required: Signed tropical longitude difference over the preceding one TT day, rounded to four decimals; not an instantaneous derivative.
        - `retrograde` boolean, required
        - `tropical_lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sidereal_lon` number: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `nakshatra` Nakshatra
          - `index` integer, required
          - `name` string, required
          - `ruler` string, required
          - `pada` integer, required
          - `deg_into_nakshatra` number, required
      - `Jupiter` PlanetPosition, required: Apparent geocentric JPL DE440 ecliptic position. sidereal_lon is present in sidereal mode; nakshatra is present only on the sidereal Moon.
        - `lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
        - `speed_deg_per_day` number, required: Signed tropical longitude difference over the preceding one TT day, rounded to four decimals; not an instantaneous derivative.
        - `retrograde` boolean, required
        - `tropical_lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sidereal_lon` number: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `nakshatra` Nakshatra
          - `index` integer, required
          - `name` string, required
          - `ruler` string, required
          - `pada` integer, required
          - `deg_into_nakshatra` number, required
      - `Saturn` PlanetPosition, required: Apparent geocentric JPL DE440 ecliptic position. sidereal_lon is present in sidereal mode; nakshatra is present only on the sidereal Moon.
        - `lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
        - `speed_deg_per_day` number, required: Signed tropical longitude difference over the preceding one TT day, rounded to four decimals; not an instantaneous derivative.
        - `retrograde` boolean, required
        - `tropical_lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sidereal_lon` number: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `nakshatra` Nakshatra
          - `index` integer, required
          - `name` string, required
          - `ruler` string, required
          - `pada` integer, required
          - `deg_into_nakshatra` number, required
      - `Uranus` PlanetPosition, required: Apparent geocentric JPL DE440 ecliptic position. sidereal_lon is present in sidereal mode; nakshatra is present only on the sidereal Moon.
        - `lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
        - `speed_deg_per_day` number, required: Signed tropical longitude difference over the preceding one TT day, rounded to four decimals; not an instantaneous derivative.
        - `retrograde` boolean, required
        - `tropical_lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sidereal_lon` number: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `nakshatra` Nakshatra
          - `index` integer, required
          - `name` string, required
          - `ruler` string, required
          - `pada` integer, required
          - `deg_into_nakshatra` number, required
      - `Neptune` PlanetPosition, required: Apparent geocentric JPL DE440 ecliptic position. sidereal_lon is present in sidereal mode; nakshatra is present only on the sidereal Moon.
        - `lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
        - `speed_deg_per_day` number, required: Signed tropical longitude difference over the preceding one TT day, rounded to four decimals; not an instantaneous derivative.
        - `retrograde` boolean, required
        - `tropical_lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sidereal_lon` number: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `nakshatra` Nakshatra
          - `index` integer, required
          - `name` string, required
          - `ruler` string, required
          - `pada` integer, required
          - `deg_into_nakshatra` number, required
      - `Pluto` PlanetPosition, required: Apparent geocentric JPL DE440 ecliptic position. sidereal_lon is present in sidereal mode; nakshatra is present only on the sidereal Moon.
        - `lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
        - `speed_deg_per_day` number, required: Signed tropical longitude difference over the preceding one TT day, rounded to four decimals; not an instantaneous derivative.
        - `retrograde` boolean, required
        - `tropical_lon` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sidereal_lon` number: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `nakshatra` Nakshatra
          - `index` integer, required
          - `name` string, required
          - `ruler` string, required
          - `pada` integer, required
          - `deg_into_nakshatra` number, required
    - `houses` SelectedHouses, required: Exactly the selected house system. Supported metadata is present only for explicit Placidus, Porphyry, Meridian, Campanus, Regiomontanus, Alcabitius, Koch, Morinus, Topocentric, Sripati, Vehlow, Horizon/Azimuth, Krusinski-Pisa-Goelzer, Sunshine (Treindl), Sunshine alternative (Makransky), Savard-A, Pullen SD, Pullen SR, Carter Poli-Equatorial, APC, Equal MC, Natural, or Gauquelin sectors; undefined geometry is rejected without another-system fallback.
      - `ascendant` number, required
      - `mc` number, required
      - `systems` SelectedHouseSystems, required
        - `equal` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `whole_sign` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `placidus` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `porphyry` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `meridian` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `campanus` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `regiomontanus` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `alcabitius` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `koch` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `morinus` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `topocentric` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `sripati` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `vehlow` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `horizon` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `krusinski` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `sunshine` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `sunshine_alt` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `savard` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `pullen_sd` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `pullen_sr` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `carter` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `apc` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `equal_mc` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `natural` SelectedHouseSystem
          - `name` 'Equal' | 'Whole sign' | 'Placidus' | 'Porphyry' | 'Meridian' | 'Campanus' | 'Regiomontanus' | 'Alcabitius' | 'Koch' | 'Morinus' | 'Topocentric' | 'Sripati' | 'Vehlow' | 'Horizon/Azimuth' | 'Krusinski-Pisa-Goelzer' | 'Sunshine' | 'Sunshine alternative' | 'Savard-A' | 'Pullen SD' | 'Pullen SR' | 'Carter Poli-Equatorial' | 'APC' | 'Equal MC' | 'Natural', required
          - `houses` Cusps, required
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
        - `gauquelin` SelectedGauquelinSystem
          - `name` 'Gauquelin sectors', required
          - `houses` GauquelinSectors, required: All 36 clockwise Gauquelin sector boundaries; 1 is the Ascendant, 10 the Midheaven, 19 the Descendant, and 28 the Imum Coeli.
            - `1` number, required
            - `2` number, required
            - `3` number, required
            - `4` number, required
            - `5` number, required
            - `6` number, required
            - `7` number, required
            - `8` number, required
            - `9` number, required
            - `10` number, required
            - `11` number, required
            - `12` number, required
            - `13` number, required
            - `14` number, required
            - `15` number, required
            - `16` number, required
            - `17` number, required
            - `18` number, required
            - `19` number, required
            - `20` number, required
            - `21` number, required
            - `22` number, required
            - `23` number, required
            - `24` number, required
            - `25` number, required
            - `26` number, required
            - `27` number, required
            - `28` number, required
            - `29` number, required
            - `30` number, required
            - `31` number, required
            - `32` number, required
            - `33` number, required
            - `34` number, required
            - `35` number, required
            - `36` number, required
      - `metadata` SelectedHouseMetadata, required
        - `zodiac` 'tropical' | 'sidereal', required
        - `ayanamsa` 'lahiri' | 'raman' | 'krishnamurti' | 'fagan_bradley' | 'yukteshwar' | 'sassanian' | 'true_chitra' | 'true_revati' | 'true_pushya' | 'galactic_center_0_sagittarius' | 'galactic_alignment_mardyks', required
        - `status` 'current'
        - `fallback` unknown
        - `convention` 'apparent-tropical-cusps-minus-selected-mean-ayanamsa' | 'ecliptic-quadrants-between-ascendant-midheaven-descendant-and-imum-coeli' | 'twelve_equal_right_ascension_divisions_from_ramc_projected_to_ecliptic' | 'twelve_equal_prime_vertical_divisions_projected_through_horizon_north_south_points' | 'twelve_equal_equatorial_divisions_projected_through_horizon_north_south_points' | 'ascendant_upper_and_lower_right_ascension_semi_arcs_trisected_and_projected_by_hour_circles' | 'natal_midheaven_rising_semiarc_trisected_by_intermediate_birthplace_ascendants' | 'twelve_equal_equatorial_points_from_ramc_transformed_to_ecliptic' | 'polich_page_trisected_tangent_pole_heights_on_30_degree_equatorial_offsets' | 'forward_midpoints_of_porphyry_house_sectors' | 'twelve_equal_ecliptic_divisions_with_ascendant_at_center_of_house_1' | 'twelve_equal_local_horizon_azimuth_divisions_projected_by_vertical_circles_to_ecliptic' | 'twelve_equal_ascendant_zenith_great_circle_divisions_projected_by_meridian_circles_to_ecliptic' | 'solar-diurnal-and-nocturnal-semi-arcs-trisected-by-house-circles' | 'makransky_solar_semiarc_points_projected_by_prime_vertical_geometry' | 'savard_a_one_third_two_thirds_latitude_circles_projected_from_prime_vertical_to_ecliptic' | 'pullen_sd_sinusoidal_delta_ecliptic_quadrants' | 'pullen_sr_sinusoidal_ratio_ecliptic_quadrants' | 'carter_equal_right_ascension_from_ascendant_projected_to_ecliptic' | 'ascendant_parallel_circle_divided_above_and_below_horizon_projected_to_ecliptic' | 'twelve_equal_ecliptic_divisions_with_midheaven_as_cusp_10' | 'twelve_equal_zodiacal_divisions_with_cusp_1_at_zero_degrees_aries' | 'thirty_six_clockwise_diurnal_and_nocturnal_semiarc_sectors'
        - `variant` 'treindl-uppercase-I' | 'makransky-lowercase-i'
        - `sun_declination_frame` 'apparent-geocentric-true-equator-of-date'
        - `polar_policy` 'reject-without-fallback' | 'reject-geographic-poles-and-degenerate-quadrants'
    - `aspects` NatalAspect[], required
      - `p1` 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto', required
      - `p2` 'Sun' | 'Moon' | 'Mercury' | 'Venus' | 'Mars' | 'Jupiter' | 'Saturn' | 'Uranus' | 'Neptune' | 'Pluto', required
      - `type` 'conjunction' | 'opposition' | 'trine' | 'square' | 'sextile' | 'semisextile' | 'semisquare' | 'quintile' | 'sesquiquadrate' | 'biquintile', required
      - `exact_angle` 0 | 180 | 120 | 90 | 60 | 30 | 45 | 72 | 135 | 144, required
      - `distance` number, required
      - `orb` number, required
    - `nodes` Nodes, required
      - `mean` NodePosition, required
        - `longitude` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
      - `true` NodePosition, required
        - `longitude` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
      - `south` NodePosition, required
        - `longitude` number, required: Ecliptic longitude in degrees, displayed to four decimals. Rounding of a value just below 360 can produce 360.0; do not recompute sign/pada from rounded display values.
        - `sign` 'Aries' | 'Taurus' | 'Gemini' | 'Cancer' | 'Leo' | 'Virgo' | 'Libra' | 'Scorpio' | 'Sagittarius' | 'Capricorn' | 'Aquarius' | 'Pisces', required
        - `deg_in_sign` number, required: Displayed to four decimals; rounding near the next sign can produce 30.0.
      - `note` string, required
    - `metadata` object, required
      - `note` string, required
  - HistoricalHousesResponse
    - `schema` 'cosmicephemeris-historical-calculation-v1', required
    - `status` 'historical', required
    - `type` 'houses', required
    - `input` unknown, required
    - `result` object, required: Complete historical calculation adapter result. Times are explicit UT1 date records, never UTC strings; derived times may include fractional seconds and years outside the input range.
    - `metadata` object, required
      - `time_standard` 'UT1', required
      - `historical_accuracy_certified` unknown, required
      - `warnings` string[], required

## Other responses

- `400`: Invalid request, malformed JSON, out-of-range date/location, unknown model, invalid timezone or ambiguous/nonexistent clock-change time. Invalid attempts reaching quota reservation consume one unit.
- `401`: Missing, invalid, revoked API key or unavailable activated key owner. Dashboard cookies do not authenticate calculation routes.
- `403`: Origin not allowed by production CORS policy. Server-to-server requests can omit Origin.
- `404`: Wrong/case-variant/noncanonical or trailing-slash route; public paths have no version prefix.
- `413`: Request exceeds the body limit; gateway JSON is capped at 128 KiB. Edge failures may be HTML.
- `429`: Monthly quota exhausted, per-user two-request concurrency reached, or nginx rate/connection admission refused. Retry-After: 2 is sent for application per-user concurrency only, not a promise that monthly quota resets in two seconds.
- `500`: Bounded gateway/database/internal failure. An admitted attempt can still consume quota.
- `502`: Engine unavailable, unsuccessful internal server response or invalid upstream JSON. No engine internals are exposed.
- `503`: Four-request global calculation pool full (Retry-After: 2), maintenance or upstream service unavailable.
- `504`: Application engine timeout: 15 seconds normally; planetary events, house ingresses, aspect windows, event calendar, eclipse geometry, electional search, and event-rule search use 30 seconds; Nakshatra Timeline plus the explicitly enumerated readiness, robustness, location, uncertainty, and electional-audit family use 60 seconds. Timer includes response-body parsing; an admitted timeout consumes quota.

---

[API](https://skmtc.dev/cosmicephemeris/apis/cosmic-ephemeris-calculation-api.md) · [All operations](https://skmtc.dev/cosmicephemeris/apis/cosmic-ephemeris-calculation-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cosmicephemeris/apis/cosmic-ephemeris-calculation-api/revisions/f041e924cea3?raw)
