apyhub
GEOLOCATION · STANDARD DATA

Get Moon Phases & Void-of-Course Windows

What it does

Moon Phases & Void-of-Course gives you the upcoming lunar schedule in one call — no input required. It returns the next 12 upcoming Moon phases (new, first quarter, full, last quarter) and the next upcoming void-of-course windows, starting from right now.

The response includes two top-level sections: phases (with its own count) and voc_windows (with its own count). Each phase item gives you phase and exact_utc. Each void-of-course window gives you start_utc, end_utc, leaving_sign, and entering_sign — marking exactly when the Moon makes its last aspect before going void, and when it ingresses into the next sign to end the void period.

Use this endpoint when you need lunar-timing awareness for scheduling, publishing, or ritual-planning logic — for example, showing the upcoming phase calendar while also flagging void periods to avoid for launches, signings, or important decisions. Because both datasets are forward-looking from "now" with zero setup, it's a drop-in feed for dashboards, astrology apps, and calendar integrations that need the full near-term lunar picture without stitching together two separate calls.

▣ ENDPOINT 01 / 02
GET
Get Moon Phases
http://localhost:8080/creightonnick0/get-phases/v1/lunar/phases

QUICKSTART

GUIDE

Quickstart

Get the next 12 upcoming Moon phases — no parameters needed.

curl -X GET "http://localhost:8080/creightonnick0/get-phases/v1/lunar/phases" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

{
  "count": 12,
  "phases": [
    {
      "phase": "full",
      "exact_utc": "2026-07-29T14:35:44.201661+00:00"
    }
  ]
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns the next 12 upcoming Moon phases from today (UTC). No parameters needed.

Query Parameter(s)

None.

Response

Returns a JSON object with a count integer field and a phases array field. Each item in phases is an object containing a phase string enum and an exact_utc date-time string.

ParameterTypeMandatoryDescription
countIntegerYesTotal number of phase records returned (12).
phasesObject ArrayYesArray of phase objects.
phases[].phaseENUMYesOne of: new, first_quarter, full, last_quarter.
phases[].exact_utcStringYesExact UTC date and time in date-time format.

Parameters

No parameters.
▣ ENDPOINT 02 / 02
GET
Get Void-of-Course Windows
http://localhost:8080/creightonnick0/get-phases/v1/lunar/voc

QUICKSTART

GUIDE

Quickstart

Get the next upcoming void-of-course window(s) — no parameters needed.

curl -X GET "http://localhost:8080/creightonnick0/get-phases/v1/lunar/voc" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

{
  "count": 1,
  "windows": [
    {
      "start_utc": "2026-07-27T10:12:00+00:00",
      "end_utc": "2026-07-27T18:44:00+00:00",
      "leaving_sign": "Capricorn",
      "entering_sign": "Aquarius"
    }
  ]
}
TRY ITLIVE · 10 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Returns the next upcoming void-of-course Moon window(s) starting from now. No parameters required.

Query Parameter(s)

None.

Response

Returns a JSON object with a count integer field and a windows array field. Each item in windows describes one void-of-course window.

AttributeTypeMandatoryDescription
countIntegerYesNumber of void-of-course windows returned.
windowsObject ArrayYesArray of void-of-course window objects.
windows[].start_utcStringYesTime of the Moon's last applying aspect before going void.
windows[].end_utcStringYesTime the Moon ingresses into the next sign, ending the void period.
windows[].leaving_signENUMYesSign the Moon is leaving.
windows[].entering_signENUMYesSign the Moon is entering.

Parameters

No parameters.
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.