Direkt zum Inhalt
POST/api/astro/moonrise/1 Credit

Mondauf- und -untergang

Mondaufgang und Monduntergang für ein Datum und einen Ort, dazu die Zeit in Sekunden, die der Mond über dem Horizont steht. Für die Sonne nutze /api/astro/sunrise/. Sende ein Datum, einen Breitengrad, einen Längengrad und den UTC-Offset. Wie beim Sonnenaufgang kommst du über /api/astro/celestial/ nur dann an dieselben Zeitpunkte, wenn du weißt, dass du planet_names=["MOON"] übergeben, den Aufgangs-Schalter an den Anfang des Arrays keys setzen und ein verschachteltes Array auspacken musst. Der gelieferte Monduntergang ist immer der, der auf den Mondaufgang FOLGT; das Paar ergibt also ein brauchbares Intervall. Beim Mond ist das wichtiger als bei der Sonne: Er geht jeden Tag etwa fünfzig Minuten später auf, deshalb gehört an vielen Tagen der Monduntergang innerhalb deines Kalendertags zum vorherigen Mondaufgang. Beide Felder können null sein. Oberhalb von etwa 61 Grad Breite kann der Mond länger als einen Tag über oder unter dem Horizont bleiben – in Reykjavik im Dezember ist das so –, und dann gibt es keinen Auf- oder Untergang. Genau das bedeutet null. /api/astro/celestial/ liefert in diesem Fall "2000-11-24T12:00:00Z", den julianischen Tag null aus einer fehlgeschlagenen Suche und keinen echten Zeitpunkt – leicht mit einem echten Ergebnis zu verwechseln. Mondphase und Paksha findest du unter /api/astro/panchang/.

https://api.occultapi.com/api/astro/moonrise/
Anfrage testen

Authentifizierung

Schick deinen Schlüssel im Header X-API-Key mit. API-Schlüssel sind Zugangsdaten für den Server: Sie gehören nie in Browser-JavaScript oder in eine mobile App.

X-API-Key: yt_live_a1b2c3d4_…
Content-Type: application/json

Felder der Anfrage

FeldTypPflichtHinweise
date_timestring (date-time)Pflicht

Der Zeitpunkt, für den gerechnet wird, im Format ISO 8601. Gib IMMER einen Offset oder ein abschließendes Z an – ein Wert ohne Zone wird als Asia/Kolkata (UTC+05:30) gelesen, nicht als UTC, und kann mit Status 200 das Ergebnis des Vortags liefern. '2026-09-01T06:00:00Z' und '2026-09-01 06:00:00' sind verschiedene Zeitpunkte und ergeben verschiedene Antworten.

latitudenumber (double)Pflicht

Breitengrad des Ortes in Dezimalgrad. Positiv ist Nord, negativ ist Süd. Beispiel: 26.9124 für Jaipur, 40.7128 für New York. Minuten und Sekunden werden nicht akzeptiert – vorher umrechnen.

min -89.9 · max 89.9

longitudenumber (double)Pflicht

Längengrad des Ortes in Dezimalgrad. Positiv ist Ost, negativ ist West. Beispiel: 75.7873 für Jaipur, -74.0060 für New York. Achte auf das Vorzeichen: Ein fehlendes Minus verlegt New York nach China.

min -180 · max 180

timezone_as_floatnumber (double)Pflicht

UTC-Offset des Ortes in Stunden, als Dezimalzahl. Beispiel: 5.5 für Indien (UTC+05:30), -5 für New York im Winter, 5.75 für Nepal. Wird NICHT gegen date_time validiert – stimmen beide nicht überein, erhältst du eine erfolgreiche Antwort für den falschen Zeitpunkt; leite daher beide aus derselben Quelle ab. Nutze den an diesem Datum gültigen Offset, nicht den heutigen: Eine Sommergeburt in einem Land mit Sommerzeit braucht den Sommer-Offset.

min -12 · max 14

keysarrayoptional

Welche Berechnungen zurückgegeben werden, als Liste von Namen. Siehe die Key-Tabelle dieses Endpoints; ein unbekannter Name lässt die ganze Anfrage scheitern. Ein Aufruf kostet einen Credit, egal wie viele Keys du anforderst – fordere also alles, was du brauchst, auf einmal an, statt mehrere Aufrufe zu machen.

Beispielanfrage

curl -X POST https://api.occultapi.com/api/astro/moonrise/ \
  -H "X-API-Key: $OCCULT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date_time":"2026-09-01T06:00:00+05:30","timezone_as_float":5.5,"latitude":26.9124,"longitude":75.7873}'

Antwort

{
  "data": {
    "moonrise": "2026-09-01T21:09:00+05:30",
    "moonset": "2026-09-02T10:57:09+05:30",
    "moon_above_horizon_seconds": 49689
  },
  "status": 200,
  "is_error": false,
  "message": "successful"
}

Aus einem echten Aufruf mit genau dieser Anfrage. Die Ergebnisse stehen unter data.

Fehler

Abrechnungsfehler liefern { "error": "…", "message": "<code>", "is_error": true }. Zeig deinen Nutzern error an und verzweige im Code anhand von message. Details in der Fehlerreferenz.