Data
Moon data as JSON
Every number on this site, as plain JSON — free to use in code, spreadsheets, research, and AI agents. No API key, no rate limit, no JavaScript.
Figures computed 22 October 2026 · rebuilt daily
Files
Two files cover the same range as the full moon calendar. Both are regenerated on the daily rebuild; the values for any given date are physical constants and never change once published.
| File | Contents | Size |
|---|---|---|
principal-phases.json | Every new moon, first quarter, full moon and last quarter, with exact UTC times; full moons carry their name, geocentric distance and a supermoon flag. | 792 events |
eclipses.json | Every solar and lunar eclipse, with the exact UTC time of greatest eclipse, the type, and the fraction of the disc obscured. | 71 events |
Format
Each file is a single JSON object: a short envelope (title, range,generated_at, license, attribution) and an events array, sorted by time. Dates are exact UTC instants in ISO 8601 —"2026-09-26T16:49:00Z" — not calendar days.
A principal phase looks like {"date":"2020-01-10T19:21:53.633Z","phase":"full-moon","name":"Wolf Moon","distance_km":371531.2,"supermoon":false}— the name, distance and supermoon fields appear on full moons only. An eclipse looks like {"date":"2020-12-14T16:13:26.404Z","type":"solar","kind":"total","obscuration":1}.
Accuracy and provenance
The feed is produced by the same functions that render every page on this site — no separate table, no copy-paste that could drift. Positions come from VSOP87 planetary theory and E. W. Brown’s lunar theory viaastronomy-engine, validated against JPL Horizons to roughly one arcminute; full moons are named by the same rules the calendar uses, including the Harvest Moon’s proximity to the September equinox. The full statement of method is atMethodology.
License
The data is released under CC0 1.0 — public domain, free for any use, commercial or otherwise, including training AI and language models. No attribution is required; a link back tomoonphases.com is appreciated, because it is how an unknown site gets found.
Fetching it
The files are static and cache-friendly. From a shell:curl -s https://moonphases.com/data/principal-phases.json | jq '.events[:3]'. From any language that can read a URL, fetch and parse. If you build something on this data and would like it mentioned on the methodology page, the owner reads every email and pull request.