Moon phase
The Moon on any date from 1900 to 2100: how much of it is lit, what the phase is called, when the next full moon is and what it is called, and a drawing of exactly that phase. Worked out from the orbits on every request, within a minute of the published tables.
Bucharest, now: 馃寯 Waxing gibbous, 60% lit
Next full moon: Mon 26 Oct 2026, 06:12, the Hunter's Moon
Worked out, not looked up
Every answer is computed when you ask, from Jean Meeus's Astronomical Algorithms: the Moon's position from the full series of chapter 47, the Sun's from chapter 25, the lit fraction from chapter 48 and the moments of the phases from chapter 49, with NASA's polynomials for 螖T, the gap between clock time and the time the orbits run on. No feeds, no tables, nothing fetched.
Checked against NASA's phase tables for 2025 and 2026, every new moon, quarter and full moon lands within a minute of the published time, and the lit fraction matches NASA's Dial-A-Moon to a tenth of a percent. The tests run those checks on every change.
Endpoints
| Method | Path | What you get |
|---|---|---|
| GET | /v1/moon | The Moon at a moment: phase, lit fraction, age, distance, the next four main phases, the full moon's name, and a link to its drawing. Takes format=text. |
| GET | /v1/moon/calendar | Every day of a month at local noon, plus the exact main phases that fall in it. format=text gives one line of emoji. |
| GET | /v1/moon/next | The next main phases from a moment: one kind or all four in order, up to 12. |
| GET | /v1/moon/image | The drawing of the Moon at that moment, SVG or PNG. |
Parameters
| Name | Example | Does |
|---|---|---|
date | 2026-10-26 | The moment, on /v1/moon and /image. A day means local noon; a time like 2026-10-26T21:30 is local time, and one with an offset (+03:00, sent as %2B03:00) is that exact instant. 1900 to 2100. Default: now. |
tz | America/New_York | The time zone for days, noons and every time in the answer. Any IANA name. Default Europe/Bucharest. |
month | 2026-10 | Calendar only. Default: this month. |
phase | full | Next only: new, first_quarter, full or last_quarter. Default: all four, in order. |
count | 12 | Next only. 1 to 12, default 4. |
from | 2027-01-01 | Next only: start here instead of now. A bare day starts at local midnight, so its own phases count. |
hemisphere | south | north (default) or south. The south sees the Moon upside down, so its emoji and drawings are turned round. |
size | 256 | Image only: the side in pixels, 64 to 2048, default 512. |
style | plain | Image only: pop (default: halftone night, ink outline, hard shadow, the percentage on a sticker and the name underneath) or plain (just the Moon, on transparent). |
format | text | json or text on /v1/moon and /calendar; svg (default) or png on /image. |
Calls
$ curl https://api.tasta.space/v1/moon
$ curl "https://api.tasta.space/v1/moon?format=text"
$ curl "https://api.tasta.space/v1/moon/next?phase=full&count=12"
$ curl "https://api.tasta.space/v1/moon/calendar?month=2026-12&format=text"
$ curl "https://api.tasta.space/v1/moon?date=1969-07-20&tz=UTC"
$ curl -o moon.png "https://api.tasta.space/v1/moon/image?format=png&size=1024"
The Moon right now looks like this
{
"data": {
"date": "2026-10-19T19:47:21+03:00",
"timezone": "Europe/Bucharest",
"phase": "waxing_gibbous",
"phase_name": "Waxing gibbous",
"emoji": "馃寯",
"illumination": 0.599,
"waxing": true,
"age_days": 9.04,
"cycle": 0.281,
"phase_angle": 78.6,
"distance_km": 399857,
"next": {
"new": "2026-11-09T09:02:00+02:00",
"first_quarter": "2026-11-17T13:48:00+02:00",
"full": "2026-10-26T06:12:00+02:00",
"last_quarter": "2026-11-01T22:28:00+02:00"
},
"full_moon_name": null,
"blue_moon": false,
"supermoon": false,
"werewolf_risk": "low",
"hemisphere": "north",
"image": "https://api.tasta.space/v1/moon/image"
}
}
What the numbers mean
| Field | Means |
|---|---|
illumination | The lit fraction of the disc you see, 0 to 1. |
age_days | Days since the last new moon. A lunation lasts 29.53 days on average. |
cycle | How far through the lunation, by angle: 0 new, 0.25 first quarter, 0.5 full, 0.75 last quarter. |
phase_angle | The angle Sun, Moon, Earth in degrees: 0 at full, 180 at new. The drawing's terminator comes straight from it. |
distance_km | Centre of the Earth to centre of the Moon. It swings between about 356,000 and 407,000 km. |
next | The next new moon, first quarter, full moon and last quarter, to the minute, in your time zone. |
full_moon_name, blue_moon, supermoon | Set on the day of a full moon. See below. |
werewolf_risk | negligible under 40% lit, low from 40%, moderate from 70%, high from 90%, extreme on the day of the full moon. Not medical advice. Not zoological advice either. |
Which phase is it?
New moon, first quarter, full moon and last quarter are moments, not days. A day takes the name of one when its moment falls on that day, in the time zone you ask for, so a calendar shows each exactly once. Every other moment gets one of the four names in between, from where the Moon is in its cycle.
| Moon | phase | When |
|---|---|---|
new_moonNew moon |
The day of the exact new moon. The Moon sits between us and the Sun, its lit side facing away. | |
waxing_crescentWaxing crescent |
From the day after new moon to the day before first quarter. Under half lit, growing. | |
first_quarterFirst quarter |
The day the Moon is exactly 90 degrees east of the Sun. Half lit. | |
waxing_gibbousWaxing gibbous |
Between first quarter and full. Over half lit, growing. | |
full_moonFull moon |
The day of the exact full moon, opposite the Sun. | |
waning_gibbousWaning gibbous |
Between full and last quarter. Over half lit, shrinking. | |
last_quarterLast quarter |
The day the Moon is exactly 90 degrees west of the Sun. Half lit, the other half. | |
waning_crescentWaning crescent |
From the day after last quarter to the day before new moon. Under half lit, shrinking. |
Full moon names
Each full moon gets the traditional name the Old Farmer's Almanac gives its month. Two follow the season instead: the Harvest Moon is the full moon closest to the September equinox, so it falls in September or October, and the Hunter's Moon is the one after it. When the Harvest Moon is in October, September's full moon is the Corn Moon.
A second full moon in one calendar month (in your time zone) is a Blue Moon, and blue_moon is true; a Harvest or Hunter's Moon that is also blue keeps its name. A supermoon here is a full moon less than 360,000 km away, centre to centre, the threshold timeanddate.com uses. Nobody official sets one, so other sites count a few more.
Wolf Moon
Snow Moon
Worm Moon
Pink Moon
Flower Moon
Strawberry Moon
Buck Moon
Sturgeon Moon
Corn Moon
Hunter's Moon
Beaver Moon
Cold Moon
The next twelve full moons, Bucharest time
| When | Name | Distance | Extras |
|---|---|---|---|
| Mon 26 Oct 2026, 06:12 | Hunter's Moon | 368,871 km | |
| Tue 24 Nov 2026, 16:53 | Beaver Moon | 360,768 km | |
| Thu 24 Dec 2026, 03:28 | Cold Moon | 356,740 km | Supermoon |
| Fri 22 Jan 2027, 14:17 | Wolf Moon | 357,644 km | Supermoon |
| Sun 21 Feb 2027, 01:23 | Snow Moon | 363,306 km | |
| Mon 22 Mar 2027, 12:44 | Worm Moon | 372,525 km | |
| Wed 21 Apr 2027, 01:27 | Pink Moon | 383,426 km | |
| Thu 20 May 2027, 13:59 | Flower Moon | 393,901 km | |
| Sat 19 Jun 2027, 03:44 | Strawberry Moon | 401,951 km | |
| Sun 18 Jul 2027, 18:45 | Buck Moon | 405,973 km | |
| Tue 17 Aug 2027, 10:29 | Sturgeon Moon | 405,078 km | |
| Thu 16 Sep 2027, 02:04 | Harvest Moon | 399,356 km |
October 2026
What /v1/moon/calendar says about this month in Bucharest: the Moon at noon each day, with the main phases on the days they happen.
馃寳 Last quarter Sat 3 Oct 2026, 16:25 路 馃寫 New moon Sat 10 Oct 2026, 18:50 路 馃寭 First quarter Sun 18 Oct 2026, 19:13 路 馃寱 Full moon Mon 26 Oct 2026, 06:12
The drawing
/v1/moon/image draws the disc with the real terminator for that moment: the lit edge is half the circle, the line between day and night is half an ellipse whose width follows the phase angle. As the northern hemisphere sees it, a waxing Moon is lit on the right; ask for hemisphere=south and it is turned upside down, as it looks from Sydney or Buenos Aires.
The seas sit roughly where they are on the near side, as a sketch: round and oval patches placed from their listed coordinates and sizes. The terminator is always drawn upright and the Moon's wobble (libration) is left out.
A drawing of a fixed date is cached for 30 days; one without a date means now, and is cached for 10 minutes. Point an <img> at it and it keeps itself up to date.
<img src="https://api.tasta.space/v1/moon/image?size=256&style=plain" width="128" height="128" alt="Tonight's Moon">
Errors of its own
On top of the hub's errors.
| Status | Code | When |
|---|---|---|
| 422 | invalid_parameter | A date that is not a date or is outside 1900 to 2100, a time zone that does not exist, a month like 2026-13, a phase the Moon does not have, a count, size, style or hemisphere out of range. The message says which and how to fix it. |
Try it
Sources
The method is Jean Meeus, Astronomical Algorithms, 2nd edition (Willmann-Bell, 1998), chapters 25 and 47 to 49, written out in our own code. 螖T comes from the polynomials of Fred Espenak and Jean Meeus on NASA's eclipse site.
The results are checked against NASA's phases of the Moon, 2001 to 2100, the Royal Observatory of Belgium's tables and NASA's Dial-A-Moon. Full moon names follow the Old Farmer's Almanac, the Hunter's Moon StarDate, the supermoon threshold timeanddate.com, and the seas in the drawing Wikipedia's list of maria.
Found a phase that is off by more than a minute? Write to hello@tasta.space.