/api/astro/planet-horizon/1 CreditHorizontkoordinaten der Planeten
Wo ein Himmelskörper gerade am Himmel steht: Azimut, Höhe und ob er überhaupt über dem Horizont ist. Horizontkoordinaten brauchst du, um auf etwas zu zeigen – mit einer Kamera, einem Teleskop oder dem Finger. Der Azimut wird in Grad im Uhrzeigersinn ab genau Nord gemessen, die Höhe in Grad über dem Horizont; sie wird negativ, sobald der Himmelskörper untergegangen ist. `above_horizon` und eine Himmelsrichtung auf der sechzehnteiligen Kompassrose werden hier bereits berechnet, statt dir überlassen zu werden. Denn „Steht er über dem Horizont?“ ist die eigentliche Frage, und eine negative Höhe sieht in der Darstellung wie eine völlig gültige Position aus. Akzeptiert den UTC-Offset entweder als `timezone_as_float` oder als `time_zone`; der übergeordnete Endpoint akzeptiert nur Letzteres.
https://api.occultapi.com/api/astro/planet-horizon/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. |
| altitude | number (double) | optional | Höhe des BEOBACHTERS über dem Meeresspiegel in Metern, nicht die Höhe eines Himmelskörpers. |
| 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. |
| latitude | number (double) | optional | 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) | optional | 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 |
| planet_names | array | optional | Himmelskörper, die geliefert werden sollen, z. B. ["SUN", "MOON", "MARS"]. |
| time_zone | number (double) | optional | UTC-Offset. Entweder dieses Feld oder timezone_as_float; beide bedeuten dasselbe. min -12 · max 14 |
| timezone_as_float | number (double) | optional | 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 |
Beispielanfrage
curl -X POST https://api.occultapi.com/api/astro/planet-horizon/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date_time":"2026-09-09T12:00:00+00:00","latitude":26.9124,"longitude":75.7873,"timezone_as_float":0,"planet_names":["SUN","MOON","MARS"]}'Antwort
{
"data": {
"observer": {
"latitude": 26.9124,
"longitude": 75.7873,
"elevation_m": 0
},
"bodies": {
"SUN": {
"azimuth": 268.533017,
"compass": "W",
"altitude": 14.482392,
"above_horizon": true
},
"MOON": {
"azimuth": 284.783473,
"compass": "WNW",
"altitude": 0.890481,
"above_horizon": true
},
"MARS": {
"azimuth": 313.736218,
"compass": "NW",
"altitude": -22.802352,
"above_horizon": false
}
}
},
"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.