---
title: "Western Moon Phase"
method: GET
path: "/v1/western/moon/phase"
tags: ["Western Astrology"]
---

# Western Moon Phase

`GET /v1/western/moon/phase`

## Request

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

Calculate the lunar phase for any date using the tropical zodiac, computed at 18:00 UTC on that date. Returns the phase name in Dane Rudhyar's eight 45-degree phases (New Moon, Waxing Crescent, First Quarter, Waxing Gibbous, Full Moon, Waning Gibbous, Last Quarter, Waning Crescent; each begins at its angle), phase angle, illumination percentage, moon age since the previous exact New Moon, the exact instant of the next principal phase, and principal_phase when a New Moon, First Quarter, Full Moon or Last Quarter falls on the UTC date. Defaults to today (UTC) if no date given.

## Query parameters

- `date` string, nullable: Date in YYYY-MM-DD format, years 1-3000. Defaults to today (UTC).

## Response `200`

Successful Response

- ApiResponseMoonPhaseResponse
  - `success` boolean: True if the request succeeded
  - `message` string: Human-readable status message
  - `data` MoonPhaseResponse, required
    - `date` string, required: Date in YYYY-MM-DD format
    - `phase_name` string, required: Phase at 18:00 UTC on the date, in Dane Rudhyar's eight 45-degree phases: each phase begins at its angle (New Moon 0-45, Waxing Crescent 45-90, First Quarter 90-135, Waxing Gibbous 135-180, Full Moon 180-225, Waning Gibbous 225-270, Last Quarter 270-315, Waning Crescent 315-360), so the day before a full moon reads Waxing Gibbous. Use principal_phase for the day of an exact phase.
    - `phase_angle` number, required: Sun-Moon elongation in degrees (0-360) at 18:00 UTC. 0=New Moon, 180=Full Moon
    - `illumination_pct` number, required: Percentage of Moon disk illuminated (0-100)
    - `moon_age_days` number, required: Days from the previous exact New Moon to 18:00 UTC on the date (0 to about 29.8)
    - `moon_longitude` number, required: Tropical ecliptic longitude of Moon (0-360)
    - `sun_longitude` number, required: Tropical ecliptic longitude of Sun (0-360)
    - `is_waxing` boolean, required: True if Moon is waxing (phase_angle < 180)
    - `next_phase_name` string, required: Name of the next principal phase (New Moon, First Quarter, Full Moon, Last Quarter) after 18:00 UTC on the date
    - `next_phase_date` string, nullable: UTC date (YYYY-MM-DD) of the exact instant of the next principal phase
    - `next_phase_at` string, nullable: Exact instant of the next principal phase, ISO 8601 UTC (e.g. 2026-10-26T04:11:49Z)
    - `computed_at` string, nullable: Instant the phase, angle, illumination and longitudes are computed for: 18:00 UTC on the date
    - `principal_phase` string, nullable: The principal phase (New Moon, First Quarter, Full Moon or Last Quarter) whose exact instant falls on this UTC date, or null. Marks the one day of each phase, as in published phase tables.
    - `principal_phase_at` string, nullable: Exact instant of principal_phase, ISO 8601 UTC

## 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)
