/api/astro/sunrise/1 créditoSalida y puesta del sol
Salida y puesta del sol para una fecha y un lugar, con la duración del día en segundos. Para la luna, usa /api/astro/moonrise/. Envía una fecha, una latitud, una longitud y la diferencia con UTC. Nada más. Las mismas cifras se pueden obtener con /api/astro/celestial/, pero solo si sabes que hay que pedir el SOL (SUN) por su nombre, poner primero en el array keys el modificador de convención de salida y leer el elemento cero de un array de dos elementos cuyo segundo elemento es una tupla de efemérides de diez números de coma flotante. Usa la convención hindú para la salida (limbo superior, sin refracción), la misma con la que /api/astro/panchanga/ construye su día, así que aquí la puesta menos la salida del sol coincide al segundo con el day_length de ese endpoint. La puesta del sol devuelta es siempre la que sigue a la salida. Cualquiera de los dos campos puede ser null: durante un día o una noche polar el sol no sale ni se pone, y null lo indica. /api/astro/celestial/ devuelve "2000-11-24T12:00:00Z" en ese caso, que es el día juliano cero y no un instante. Conviene tener en cuenta un límite: este endpoint responde para el día CIVIL que indicaste, mientras que el día del panchanga va de una salida del sol a la siguiente. Si pides un momento anterior a la salida del sol, el panchanga sigue describiendo el día anterior, así que su day_length no coincidirá con el intervalo de aquí. Los dos son correctos, cada uno para su propia pregunta.
https://api.occultapi.com/api/astro/sunrise/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. |
| latitude | number (double) | obligatorio | 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) | obligatorio | 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 |
| timezone_as_float | number (double) | obligatorio | 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 |
| 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. |
Ejemplo de solicitud
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}'Respuesta
{
"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"
}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.