---
title: "Get Primary Directions"
method: POST
path: "/api/v1/western/directions/primary"
tags: ["Western", "Western Synastry"]
---

# Get Primary Directions

`POST /api/v1/western/directions/primary`

## Request

- Base URL: `https://api.freeastroapi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.freeastroapi.com/api/v1/western/directions/primary`
- Auth: none declared

Compute primary directions for a natal chart over a date range.

The default method is Regiomontanus in-mundo. Symbolic zodiacal directions
remain available by setting settings.method=zodiacal.

## Request body

- PrimaryDirectionsRequest
  - `natal` SecondaryProgressionsNatalInput, required
    - `name` string
    - `datetime` string, required
    - `time_known` boolean
    - `location` SolarReturnLocation, required
      - `city` string, required
      - `lat` number, nullable
      - `lng` number, nullable
      - `tz_str` string, nullable
  - `settings` PrimaryDirectionsSettings
    - `method` 'regiomontanus_in_mundo' | 'campanus_in_mundo' | 'topocentric_in_mundo' | 'placidus_semiarc_in_mundo' | 'placidus_under_pole_zodiacal' | 'placidus' | 'placidus_in_mundo' | 'zodiacal'
    - `zodiac_type` 'tropical' | 'sidereal'
    - `sidereal_ayanamsa` string, nullable
    - `direction` 'direct' | 'converse' | 'both'
    - `key` 'naibod' | 'ptolemy' | 'custom'
    - `custom_key_deg_per_year` number, nullable
    - `promissors` string[], nullable
    - `significators` string[], nullable
    - `aspects` string[], nullable
    - `orb_years` number
    - `search_step_deg` number
    - `secondary_motion` union
      - 'none' | 'moon' | 'all_planets'
      - boolean
    - `latitude_doctrine` 'none' | 'promissor' | 'significator' | 'both' | 'bianchini', nullable
    - `bounds_system` 'egyptian' | 'ptolemaic'
    - `include_bounds` boolean
    - `include_bound_promissors` boolean
    - `include_antiscia` boolean
    - `include_contra_antiscia` boolean
    - `include_mundane_parallels` boolean
    - `include_natal_reference` boolean
  - `range` PrimaryDirectionsRange, required
    - `start_date` string, required
    - `end_date` string, required
    - `limit` integer
    - `order` 'asc' | 'desc'

## Response `200`

Successful Response

- PrimaryDirectionsResponse
  - `meta` PrimaryDirectionsMeta, required
    - `endpoint` 'primary_directions'
    - `version` string
    - `provider` string
    - `swisseph_version` string, required
    - `method` 'regiomontanus_in_mundo' | 'campanus_in_mundo' | 'topocentric_in_mundo' | 'placidus_semiarc_in_mundo' | 'placidus_under_pole_zodiacal' | 'placidus' | 'placidus_in_mundo' | 'zodiacal', required
    - `calculation_method` string, required
    - `zodiac_type` 'tropical' | 'sidereal', required
    - `ayanamsa` string, nullable
    - `direction` 'direct' | 'converse' | 'both', required
    - `key` 'naibod' | 'ptolemy' | 'custom', required
    - `key_deg_per_year` number, required
    - `range_start` string, required
    - `range_end` string, required
    - `generated_at` string, required
    - `warnings` string[]
  - `input` PrimaryDirectionsInput, required
    - `birth_datetime` string, required
    - `birth_location` object, required
    - `time_known` boolean, required
    - `promissors` string[], required
    - `significators` string[], required
    - `aspects` string[], required
    - `orb_years` number, required
    - `search_step_deg` number, required
    - `secondary_motion` 'none' | 'moon' | 'all_planets', required
    - `latitude_doctrine` 'none' | 'promissor' | 'significator' | 'both' | 'bianchini', required
    - `bounds_system` 'egyptian' | 'ptolemaic', required
    - `include_bounds` boolean
    - `include_bound_promissors` boolean
    - `include_antiscia` boolean
    - `include_contra_antiscia` boolean
    - `include_mundane_parallels` boolean
  - `natal_reference` object, nullable
  - `directions` PrimaryDirectionEvent[], required
    - `id` string, required
    - `date` string, required
    - `exact_datetime_utc` string, required
    - `exact_datetime_local` string, nullable
    - `age_years` number, required
    - `direction` 'direct' | 'converse', required
    - `promissor` string, required
    - `significator` string, required
    - `aspect` AspectDescriptor, required
      - `name` string, required
      - `angle_deg` number, required
    - `arc_deg` number, required
    - `arc_group_id` string, required
    - `key` 'naibod' | 'ptolemy' | 'custom', required
    - `key_deg_per_year` number, required
    - `promissor_natal_longitude_deg` number, required
    - `directed_longitude_deg` number, required
    - `significator_longitude_deg` number, required
    - `measurement` 'mundane' | 'zodiacal'
    - `house_system` string, nullable
    - `promissor_natal_mundane_position` number, nullable
    - `directed_mundane_position` number, nullable
    - `significator_mundane_position` number, nullable
    - `promissor_bound` object, nullable
    - `significator_bound` object, nullable
    - `directed_bound` object, nullable
    - `parallel_axis` 'asc' | 'mc' | 'dc' | 'ic', nullable
    - `orb_years` number, required
    - `active_window` PrimaryDirectionActiveWindow, required
      - `from` string, required
      - `exact` string, required
      - `to` string, required
      - `from_datetime_utc` string, nullable
      - `exact_datetime_utc` string, nullable
      - `to_datetime_utc` string, nullable
      - `from_datetime_local` string, nullable
      - `exact_datetime_local` string, nullable
      - `to_datetime_local` string, nullable
    - `interpretation_key` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/freeastroapi/apis/astroservice-api.md) · [All operations](https://skmtc.dev/freeastroapi/apis/astroservice-api/llms.txt) · [OpenAPI document](https://skmtc.dev/freeastroapi/apis/astroservice-api/revisions/0c9b4a759522?raw)
