Morphemeris DocsBeta

Lunar Eclipses

GET /v1/eclipses/lunar — Find upcoming or past lunar eclipses, with optional location-based visibility.

Lunar Eclipses

Search for lunar eclipses from a given start date. Returns eclipse phase times (penumbral, partial, total). When observer coordinates are provided, includes a visible flag indicating whether the eclipse is visible from that location.

Text
GET  /v1/eclipses/lunar
POST /v1/eclipses/lunar

Credit cost: 2

Parameters

ParameterTypeRequiredDefaultDescription
datetimestringOne of datetime or jdISO 8601 UTC datetime
jdnumberOne of datetime or jdJulian Day in UT1
latnumberNoObserver latitude (enables visibility check)
lonnumberNoObserver longitude
altnumberNo0Observer altitude in meters
typestringNoallFilter: total, partial, penumbral (comma-separated)
backwardbooleanNofalseSearch backward in time
countintegerNo1Number of results (1–10)

Response

JSON
{
  "data": [
    {
      "eclipse_type": "total",
      "maximum": { "jd": 2460386.458, "datetime": "2025-03-14T06:59:00.000Z" },
      "penumbral_begin": { "jd": 2460386.327, "datetime": "2025-03-14T03:51:00.000Z" },
      "partial_begin": { "jd": 2460386.389, "datetime": "2025-03-14T05:20:00.000Z" },
      "total_begin": { "jd": 2460386.436, "datetime": "2025-03-14T06:27:00.000Z" },
      "total_end": { "jd": 2460386.480, "datetime": "2025-03-14T07:31:00.000Z" },
      "partial_end": { "jd": 2460386.527, "datetime": "2025-03-14T08:38:00.000Z" },
      "penumbral_end": { "jd": 2460386.589, "datetime": "2025-03-14T10:07:00.000Z" }
    }
  ],
  "meta": { "..." }
}

When observer coordinates are provided, each result includes "visible": true/false.

FieldTypeDescription
eclipse_typestringtotal, partial, or penumbral
maximumobjectTime of greatest eclipse (jd and datetime)
penumbral_beginobjectPenumbral phase begins
penumbral_endobjectPenumbral phase ends
partial_beginobjectPartial phase begins (null for penumbral-only eclipses)
partial_endobjectPartial phase ends
total_beginobjectTotal phase begins (null for non-total eclipses)
total_endobjectTotal phase ends
visiblebooleanWhether visible from the given location (local mode only)

Examples

Next lunar eclipse

Bash
curl "https://api.morphemeris.com/v1/eclipses/lunar?datetime=2024-01-01T00:00:00Z" \
  -H "Authorization: Bearer morphemeris_live_YOUR_KEY"
javascript
const res = await fetch(
  "https://api.morphemeris.com/v1/eclipses/lunar?datetime=2024-01-01T00:00:00Z",
  { headers: { Authorization: "Bearer morphemeris_live_YOUR_KEY" } }
);
const data = await res.json();
Python
import requests

res = requests.get(
    "https://api.morphemeris.com/v1/eclipses/lunar",
    params={"datetime": "2024-01-01T00:00:00Z"},
    headers={"Authorization": "Bearer morphemeris_live_YOUR_KEY"},
)
data = res.json()

Visible from London

Bash
curl "https://api.morphemeris.com/v1/eclipses/lunar?datetime=2024-01-01T00:00:00Z&lat=51.5074&lon=-0.1278" \
  -H "Authorization: Bearer morphemeris_live_YOUR_KEY"