Live Computed, not fetched 1900 to 2100 SVG + PNG

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.

Live, right now! Today's Moon in Bucharest: Waxing gibbous, 60% lit

Bucharest, now: 馃寯 Waxing gibbous, 60% lit
Next full moon: Mon 26 Oct 2026, 06:12, the Hunter's Moon

How it knows

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.

Base URL: https://api.tasta.space/v1/moon

Endpoints

MethodPathWhat you get
GET/v1/moonThe 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/calendarEvery 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/nextThe next main phases from a moment: one kind or all four in order, up to 12.
GET/v1/moon/imageThe drawing of the Moon at that moment, SVG or PNG.

Parameters

NameExampleDoes
date2026-10-26The 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.
tzAmerica/New_YorkThe time zone for days, noons and every time in the answer. Any IANA name. Default Europe/Bucharest.
month2026-10Calendar only. Default: this month.
phasefullNext only: new, first_quarter, full or last_quarter. Default: all four, in order.
count12Next only. 1 to 12, default 4.
from2027-01-01Next only: start here instead of now. A bare day starts at local midnight, so its own phases count.
hemispheresouthnorth (default) or south. The south sees the Moon upside down, so its emoji and drawings are turned round.
size256Image only: the side in pixels, 64 to 2048, default 512.
styleplainImage 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).
formattextjson 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

FieldMeans
illuminationThe lit fraction of the disc you see, 0 to 1.
age_daysDays since the last new moon. A lunation lasts 29.53 days on average.
cycleHow far through the lunation, by angle: 0 new, 0.25 first quarter, 0.5 full, 0.75 last quarter.
phase_angleThe angle Sun, Moon, Earth in degrees: 0 at full, 180 at new. The drawing's terminator comes straight from it.
distance_kmCentre of the Earth to centre of the Moon. It swings between about 356,000 and 407,000 km.
nextThe next new moon, first quarter, full moon and last quarter, to the minute, in your time zone.
full_moon_name, blue_moon, supermoonSet on the day of a full moon. See below.
werewolf_risknegligible 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.
Eight names

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.

MoonphaseWhen
New moon new_moon
New moon
The day of the exact new moon. The Moon sits between us and the Sun, its lit side facing away.
Waxing crescent waxing_crescent
Waxing crescent
From the day after new moon to the day before first quarter. Under half lit, growing.
First quarter first_quarter
First quarter
The day the Moon is exactly 90 degrees east of the Sun. Half lit.
Waxing gibbous waxing_gibbous
Waxing gibbous
Between first quarter and full. Over half lit, growing.
Full moon full_moon
Full moon
The day of the exact full moon, opposite the Sun.
Waning gibbous waning_gibbous
Waning gibbous
Between full and last quarter. Over half lit, shrinking.
Last quarter last_quarter
Last quarter
The day the Moon is exactly 90 degrees west of the Sun. Half lit, the other half.
Waning crescent waning_crescent
Waning crescent
From the day after last quarter to the day before new moon. Under half lit, shrinking.
Wolf to Cold

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.

January
Wolf Moon
February
Snow Moon
March
Worm Moon
April
Pink Moon
May
Flower Moon
June
Strawberry Moon
July
Buck Moon
August
Sturgeon Moon
September
Corn Moon
October
Hunter's Moon
November
Beaver Moon
December
Cold Moon

The next twelve full moons, Bucharest time

WhenNameDistanceExtras
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
Calendar

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.

1
74%
2
64%
3
52%
4
41%
5
30%
6
20%
7
12%
8
6%
9
2%
10
0%
11
1%
12
3%
13
8%
14
14%
15
21%
16
29%
17
38%
18
47%
19
57%
20
66%
21
75%
22
83%
23
90%
24
96%
25
99%
26
100%
27
98%
28
93%
29
86%
30
77%
31
66%

馃寳 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

SVG or PNG

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.

StatusCodeWhen
422invalid_parameterA 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.
Live, counts against your limit

Try it

https://api.tasta.space/v1/moon
Press send. The response shows up here, headers included.

            
Credits

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.