/api/astro/moonrise/1 créditoSalida y puesta de la luna
Salida y puesta de la luna para una fecha y un lugar, con el tiempo que pasa la luna sobre el horizonte, en segundos. Para el sol, usa /api/astro/sunrise/. Envía una fecha, una latitud, una longitud y la diferencia con UTC. Igual que con la salida del sol, los mismos instantes también se pueden obtener con /api/astro/celestial/, pero solo si sabes que hay que pasar planet_names=["MOON"], poner el modificador de salida el primero del array keys y desenvolver un array anidado. La puesta de la luna que se devuelve es siempre la que SIGUE a la salida, así que el par forma un intervalo utilizable. Esto importa más con la luna que con el sol: sale unos cincuenta minutos más tarde cada día, de modo que en muchas fechas la puesta que cae dentro de tu día del calendario corresponde a la salida anterior. Los dos campos pueden ser null. Por encima de unos 61 grados de latitud, la luna puede pasar más de un día por encima o por debajo del horizonte (en Reikiavik, en diciembre, ocurre), y entonces no hay salida ni puesta que indicar. Eso es lo que significa null; /api/astro/celestial/ devuelve en cambio "2000-11-24T12:00:00Z", que es el día juliano cero de una búsqueda fallida y no un instante real, y es fácil tomarlo por una respuesta. Para la fase de la luna y el paksha, consulta /api/astro/panchang/.
https://api.occultapi.com/api/astro/moonrise/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/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}'Respuesta
{
"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"
}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.