---
title: "8-Phase Lunar Classification + Next Principal Phases"
method: GET
path: "/calendar/astrology/moon-phases"
tags: ["calendar"]
---

# 8-Phase Lunar Classification + Next Principal Phases

`GET /calendar/astrology/moon-phases`

## Request

- Base URL: `https://api.openephemeris.com`
- URL: `https://api.openephemeris.com/calendar/astrology/moon-phases`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-OpenEphemeris-API-Key`
  - API key in header `X-API-Key`
  - API key in header `X-Service-Key`

Returns the current 8-phase lunar phase classification (not just 4), illumination fraction, Moon age in hours, and the next 4 principal phase moments (New, First Quarter, Full, Third Quarter). 🤖 AI-optimized output available — add `format=llm` to reduce payload ~45%. **Pricing:** 2 credits — one 30-day lunar cycle (at most 4 exact phase events): the cheapest way to get the exact time of the next New, First Quarter, Full or Third Quarter Moon.

## Query parameters

- `date` string, nullable
- `jd` number, double, nullable
- `format` string, nullable

## Response `200`

Current phase and upcoming principal phases

- MoonPhasesResponse: Moon phases over a date range.
  - `_meta` object, required: Calculation metadata
  - `data` LunarPhaseResult, required
    - `current_phase` string: The eight-bucket lunar phase the Moon is in at the query instant (new_moon, waxing_crescent, first_quarter, waxing_gibbous, full_moon, waning_gibbous, third_quarter, waning_crescent). This is a state at the requested date/jd, not a phase event, and it is never included in events.
    - `events` MoonPhaseEvent[], required: Principal phase events (new_moon, first_quarter, full_moon, third_quarter) occurring in the requested range, each timed to the exact moment the phase is reached. Sorted chronologically.
      - `phase` string, required: One of new_moon, first_quarter, full_moon, third_quarter
      - `time` string, required: ISO 8601 UTC timestamp of exactly when the phase occurs
  - `range` object, required: Start and end dates of the search

## Other responses

- `400`: Bad Request
- `422`: Validation Error
- `500`: Internal Server Error

---

[API](https://skmtc.dev/openephemeris/apis/open-ephemeris-api.md) · [All operations](https://skmtc.dev/openephemeris/apis/open-ephemeris-api/llms.txt) · [OpenAPI document](https://skmtc.dev/openephemeris/apis/open-ephemeris-api/revisions/d195a769cb89?raw)
