/api/astro/transit/1 créditoCruces en tránsito
Este endpoint busca momentos en lugar de describir una carta en un instante fijo. Responde a preguntas como: cuándo vuelve el Sol a los 0 grados de Aries, cuándo cruza Marte un grado concreto entre dos fechas, cuándo vuelven Saturno y el Sol a compartir longitud eclíptica, y dónde está exactamente un cuerpo en un instante dado. Dos de las claves son modificadores de modo, no cálculos. `set_default_transit` selecciona las efemérides tropicales simples y `set_sidereal_transit`, las siderales; ambas devuelven null. Las claves de una solicitud se evalúan en el orden en que las enumeras, así que pon el modificador en primer lugar si quieres que las búsquedas siguientes sean siderales. Los campos `planet`, `celestial`, `celestial1` y `celestial2` usan nombres de efemérides en mayúsculas (`SUN`, `MOON`, `MEAN_NODE`, `TRUE_NODE`, `CHIRON`, los puntos uranianos y varias lunas planetarias), un vocabulario distinto de los nombres `Sun`/`Moon` que usan la mayoría de los demás endpoints de esta API. `tz` es una diferencia horaria simple, en horas, que se aplica a todas las marcas de tiempo devueltas; `when` indica si se busca después ('after') o antes ('before') del momento de referencia, y `datetime_start`/`datetime_end` delimitan el intervalo de `planet_transit`.
https://api.occultapi.com/api/astro/transit/
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. |
| datetime_end | string (date-time) | obligatorio | |
| datetime_start | string (date-time) | obligatorio | |
| keys | array | obligatorio | 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. |
| planet | string | obligatorio | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 valores aceptados que cubren los 10 planetas, los dos nodos lunares, 6 asteroides, 9 cuerpos uranianos/ficticios y 9 lunas planetarias. Un nombre no reconocido se convierte sin aviso en None en lugar de dar error, y luego falla más adentro, en el motor de efemérides. Ten en cuenta que los nodos usan las formas con guion bajo MEAN_NODE / TRUE_NODE (no existe el alias 'RAHU'/'KETU'). |
| tz | number (double) | obligatorio | min -12 · max 14 |
| celestial | string | opcional | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 valores aceptados que cubren los 10 planetas, los dos nodos lunares, 6 asteroides, 9 cuerpos uranianos/ficticios y 9 lunas planetarias. Un nombre no reconocido se convierte sin aviso en None en lugar de dar error, y luego falla más adentro, en el motor de efemérides. Ten en cuenta que los nodos usan las formas con guion bajo MEAN_NODE / TRUE_NODE (no existe el alias 'RAHU'/'KETU'). |
| celestial1 | string | opcional | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 valores aceptados que cubren los 10 planetas, los dos nodos lunares, 6 asteroides, 9 cuerpos uranianos/ficticios y 9 lunas planetarias. Un nombre no reconocido se convierte sin aviso en None en lugar de dar error, y luego falla más adentro, en el motor de efemérides. Ten en cuenta que los nodos usan las formas con guion bajo MEAN_NODE / TRUE_NODE (no existe el alias 'RAHU'/'KETU'). |
| celestial2 | string | opcional | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 valores aceptados que cubren los 10 planetas, los dos nodos lunares, 6 asteroides, 9 cuerpos uranianos/ficticios y 9 lunas planetarias. Un nombre no reconocido se convierte sin aviso en None en lugar de dar error, y luego falla más adentro, en el motor de efemérides. Ten en cuenta que los nodos usan las formas con guion bajo MEAN_NODE / TRUE_NODE (no existe el alias 'RAHU'/'KETU'). |
| degr | number (double) | opcional | |
| 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 |
| nakshatras | string | opcional | specialPARÁMETRO SIN EFECTO en la capa HTTP: TransitView nunca lo reenvía, así que enviarlo no tiene efecto. En el motor, el único valor con sentido es el literal 'special', que selecciona la tabla nakshatras_special de 28 entradas en lugar de la de 27 entradas por defecto. |
| when | string | opcional | afterbeforeEl valor por defecto del motor es 'after'. Lo usan las claves 'solar_crossing', 'find_moon_crossing', 'moon_node_crossing' y 'celestial_conjunction'. |
| x2cross | number (double) | opcional |
Claves disponibles (8)
Indica en keys exactamente los cálculos que quieres. Si una clave no existe, se rechaza toda la solicitud. Pidas las que pidas, se cobra 1 crédito, así que agrúpalas en una sola llamada.
| Clave | Campos adicionales | Descripción |
|---|---|---|
| celestial_conjunction | celestial1, celestial2, datetime_start, when | El primer momento después de `datetime_start` en que `celestial1` y `celestial2` comparten una longitud eclíptica. Devuelve un objeto con `long1` y `long2`, las dos longitudes en el momento hallado (cercanas pero no exactamente iguales, ya que la búsqueda se detiene al alcanzar una tolerancia), y `date`, la marca de tiempo ISO. |
| find_moon_crossing | x2cross, date_time, tz, when | El instante en que la Luna alcanza la longitud eclíptica indicada en `x2cross`, buscando hacia delante o hacia atrás desde `date_time` según `when`. Devuelve una única marca de tiempo ISO desplazada por `tz`. Como la Luna se mueve unos 13 grados al día, la respuesta suele estar a menos de un mes del momento de referencia. |
| moon_node_crossing | date_time, tz, when | El cruce siguiente o anterior del nodo lunar, buscando desde `date_time` en la dirección indicada por `when`. Devuelve un objeto con `date`, la marca de tiempo ISO desplazada por `tz`, junto con `long` y `lat`, la longitud y la latitud eclípticas en ese momento. Útil para localizar las temporadas de eclipses. |
| planet_transit | degr, planet, datetime_start, datetime_end, tz | El momento en que el cuerpo indicado en `planet` cruza la longitud eclíptica dada en `degr`, buscado entre `datetime_start` y `datetime_end`. Devuelve una única marca de tiempo ISO desplazada por `tz`, o null cuando el cuerpo nunca alcanza ese grado dentro del intervalo. A diferencia de los cruces del Sol y la Luna, esta búsqueda está acotada, así que dale un intervalo lo bastante amplio para que incluya el evento. |
| set_default_transit | — | Un modificador de modo, no un cálculo: pone las efemérides en modo tropical (sin aplicar ayanamsa) para el resto de la solicitud. Devuelve null. Las claves se evalúan en el orden en que las enumeras, así que coloca este modificador antes de las claves de cruce a las que deba afectar. |
| set_sidereal_transit | — | Un modificador de modo, no un cálculo: pone las efemérides en modo sideral, de modo que los cruces y posiciones posteriores de la misma solicitud se miden respecto al ayanamsa y no respecto al punto cero tropical. Devuelve null y debe aparecer antes de las claves a las que deba afectar. |
| solar_crossing | x2cross, date_time, tz, when | El instante en que el Sol alcanza la longitud eclíptica indicada en `x2cross`, buscando hacia delante o hacia atrás desde `date_time` según `when`. Devuelve una única marca de tiempo ISO desplazada según la diferencia horaria `tz`. Pasa 0 para hallar un año nuevo sideral, o una longitud solar natal para hallar un cumpleaños al minuto. |
| transit_details | celestial, date_time, tz | Una lectura posicional completa del cuerpo indicado en `celestial` en `date_time`. Devuelve un objeto con `longitude` como cadena ya formateada para mostrar, `nakshatra` y su `nakshatra_lord`, `padam` (el cuarto del nakshatra, 1-4), `full_degree` (la longitud sideral dividida entre 30, es decir, el número de signo más la fracción recorrida), `latitude_shara` como `{degrees, minutes, seconds}`, `speed` en grados por día como cadena, `right_ascension` con formato 'hh.mm.ss.ss' y `declination_kranti` en grados como cadena. |
Ejemplo de solicitud
curl -X POST https://api.occultapi.com/api/astro/transit/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"date_time":"2024-11-20T06:52:42.466Z","keys":["set_sidereal_transit","planet_transit","solar_crossing","celestial_conjunction","transit_details"],"latitude":26.1046,"longitude":75.7873,"tz":5.5,"planet":"MARS","datetime_start":"2024-11-20T06:52:42.466Z","datetime_end":"2040-11-20T06:52:42.466Z","degr":0,"x2cross":0,"celestial1":"SATURN","celestial2":"SUN","celestial":"MARS","when":"after"}'Respuesta
{
"data": {
"set_sidereal_transit": null,
"planet_transit": "2026-05-11T12:38:41+05:30",
"solar_crossing": "2025-04-14T03:21:25+05:30",
"celestial_conjunction": {
"long1": 327.886,
"long2": 327.877,
"date": "2025-03-12T10:13:52.466000Z"
},
"transit_details": {
"longitude": "4° Mesh 4'° 25\"",
"nakshatra": "Makha",
"padam": 2,
"nakshatra_lord": "Ketu",
"full_degree": 4.15,
"latitude_shara": {
"degrees": 2,
"minutes": 5,
"seconds": 52.8
},
"speed": "0.2",
"right_ascension": "08.29.10.92",
"declination_kranti": "21.19"
}
},
"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, cada uno bajo la clave que pediste.
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.