/api/astro/sunrise/1 CreditSonnenauf- und -untergang
Sonnenaufgang und Sonnenuntergang für ein Datum und einen Ort, dazu die Tageslänge in Sekunden. Für den Mond nutze /api/astro/moonrise/. Sende Datum, Breitengrad, Längengrad und UTC-Offset – sonst nichts. Dieselben Werte bekommst du auch über /api/astro/celestial/, aber nur, wenn du weißt, dass du die SONNE (SUN) beim Namen anfordern, den Schalter für die Aufgangskonvention an die erste Stelle im Array keys setzen und Element null eines Arrays mit zwei Elementen auslesen musst, dessen zweites Element ein Ephemeriden-Tupel aus zehn Gleitkommazahlen ist. Verwendet wird der hinduistische Aufgang – oberer Rand, keine Refraktion –, also dieselbe Konvention, nach der /api/astro/panchanga/ seinen Tag aufbaut. Sonnenuntergang minus Sonnenaufgang ergibt hier daher sekundengenau den day_length jenes Endpoints. Der gelieferte Sonnenuntergang ist immer der, der auf den Sonnenaufgang folgt. Beide Felder können null sein: Während eines Polartags oder einer Polarnacht geht die Sonne nicht auf oder unter, und null zeigt genau das an. /api/astro/celestial/ liefert in diesem Fall "2000-11-24T12:00:00Z", also den julianischen Tag null und keinen Zeitpunkt. Eine Grenze solltest du kennen: Dieser Endpoint antwortet für den angegebenen BÜRGERLICHEN Tag, der Panchanga-Tag läuft dagegen von Sonnenaufgang zu Sonnenaufgang. Fragst du nach einem Zeitpunkt vor Sonnenaufgang, beschreibt das Panchanga noch den Vortag, und sein day_length weicht vom Intervall hier ab. Beide Werte sind für ihre jeweilige Frage korrekt.
https://api.occultapi.com/api/astro/sunrise/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/jsonFelder der Anfrage
| Feld | Typ | Pflicht | Hinweise |
|---|---|---|---|
| date_time | string (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. |
| latitude | number (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 |
| longitude | number (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_float | number (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 |
| keys | array | optional | 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/sunrise/ \
-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": {
"sunrise": "2026-09-01T06:09:56+05:30",
"sunset": "2026-09-01T18:43:30+05:30",
"day_length_seconds": 45214
},
"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.