/api/astro/planet-horizon/1 créditoCoordenadas horizontales de los planetas
Dónde está un cuerpo en el cielo en este momento: acimut, altura y si está sobre el horizonte o no. Las coordenadas horizontales son lo que necesitas para apuntar a algo: una cámara, un telescopio o un dedo. El acimut son los grados en sentido horario desde el norte; la altura, los grados sobre el horizonte, y pasa a ser negativa cuando el cuerpo se ha puesto. `above_horizon` y un rumbo de brújula de dieciséis puntos se calculan aquí para que no tengas que hacerlo tú, porque la pregunta real es «¿está sobre el horizonte?» y una altura negativa se muestra como una posición de apariencia perfectamente válida. Acepta la diferencia con UTC en `timezone_as_float` o en `time_zone`; el endpoint padre solo acepta el segundo.
https://api.occultapi.com/api/astro/planet-horizon/Autenticación
Envía tu clave en la cabecera X-API-Key. La clave es una credencial de servidor: nunca la pongas en el JavaScript del navegador ni en una app móvil.
X-API-Key: yt_live_a1b2c3d4_…
Content-Type: application/jsonCampos de la solicitud
| Campo | Tipo | Obligatorio | Notas |
|---|---|---|---|
| date_time | string (date-time) | obligatorio | El momento del cálculo, en ISO 8601. Incluye SIEMPRE la diferencia con UTC o una Z final: un valor sin zona horaria se interpreta como Asia/Kolkata (UTC+05:30), no como UTC, y puede devolver con un 200 el resultado del día anterior. '2026-09-01T06:00:00Z' y '2026-09-01 06:00:00' son instantes distintos y dan respuestas distintas. |
| altitude | number (double) | opcional | Elevación del OBSERVADOR en metros, no la altura de un cuerpo. |
| keys | array | opcional | Los cálculos que quieres recibir, como lista de nombres. Consulta la tabla de claves de este endpoint; un nombre que no se reconoce invalida toda la solicitud. Cada llamada cuesta un crédito, pidas las claves que pidas, así que pide todo lo que necesites de una vez en lugar de hacer varias llamadas. |
| latitude | number (double) | opcional | Latitud del lugar, en grados decimales. Los valores positivos indican el norte y los negativos, el sur. Ejemplo: 26.9124 para Jaipur, 40.7128 para Nueva York. No se aceptan minutos ni segundos: conviértelos antes. min -89.9 · max 89.9 |
| longitude | number (double) | opcional | Longitud del lugar, en grados decimales. Los valores positivos indican el este y los negativos, el oeste. Ejemplo: 75.7873 para Jaipur, -74.0060 para Nueva York. Cuidado con el signo: si falta el menos, Nueva York acaba en China. min -180 · max 180 |
| planet_names | array | opcional | Cuerpos que se devuelven, p. ej., ["SUN", "MOON", "MARS"]. |
| time_zone | number (double) | opcional | Diferencia con UTC. Usa este campo o timezone_as_float; son equivalentes. min -12 · max 14 |
| timezone_as_float | number (double) | opcional | Diferencia horaria del lugar con UTC, en horas y con decimales. Ejemplo: 5.5 para la India (UTC+05:30), -5 para Nueva York en invierno, 5.75 para Nepal. NO se contrasta con date_time: si los dos no coinciden, recibes una respuesta correcta para un momento equivocado, así que toma ambos valores de la misma fuente. Usa la diferencia vigente en esa fecha, no la de hoy: para un nacimiento en verano en un país con horario de verano, hace falta la diferencia de verano. min -12 · max 14 |
Ejemplo de solicitud
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"]}'Respuesta
{
"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"
}Obtenida de una llamada real con la solicitud de arriba, tal cual. Los resultados van dentro de data.
Errores
Los errores de control de uso devuelven { "error": "…", "message": "<code>", "is_error": true }. Muestra error al usuario y usa message para decidir qué hace tu código. Consulta la referencia de errores.