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"}'Cet endpoint recherche des moments plutôt que de décrire un thème à un instant fixe. Il répond aux questions du type : quand le Soleil atteindra-t-il de nouveau 0 degré du Bélier, quand Mars franchira-t-il un degré donné entre deux dates, quand Saturne et le Soleil partageront-ils de nouveau une même longitude écliptique, et où se trouve exactement un corps à un instant donné. Deux des clés sont des commutateurs de mode plutôt que des calculs. `set_default_transit` sélectionne les éphémérides tropicales simples et `set_sidereal_transit` les éphémérides sidérales, et les deux renvoient null. Les clés d’une requête sont évaluées dans l’ordre où vous les listez : placez donc le commutateur en premier si vous voulez que les recherches suivantes soient sidérales. Les champs `planet`, `celestial`, `celestial1` et `celestial2` utilisent des noms d’éphémérides en majuscules (`SUN`, `MOON`, `MEAN_NODE`, `TRUE_NODE`, `CHIRON`, les points uraniens et plusieurs lunes planétaires), un vocabulaire différent des noms `Sun`/`Moon` utilisés sur la plupart des autres endpoints proposés ici. `tz` est un simple décalage en heures appliqué à chaque horodatage renvoyé, `when` détermine s’il faut chercher 'after' ou 'before' le moment de référence, et `datetime_start`/`datetime_end` bornent la plage pour `planet_transit`.
| Champ | Type | Obligatoire | Remarques |
|---|---|---|---|
| date_time | string (date-time) | obligatoire | Le moment du calcul, en ISO 8601. Incluez TOUJOURS un décalage ou un Z final - une valeur sans fuseau est lue comme Asia/Kolkata (UTC+05:30), et non comme UTC, et peut renvoyer le résultat de la veille avec un statut 200. '2026-09-01T06:00:00Z' et '2026-09-01 06:00:00' sont des instants différents et donnent des réponses différentes. |
| datetime_end | string (date-time) | obligatoire | |
| datetime_start | string (date-time) | obligatoire | |
| keys | array | obligatoire | Les calculs à renvoyer, sous forme de liste de noms. Consultez le tableau des clés de cet endpoint ; un nom non reconnu fait rejeter toute la requête. Un appel coûte un crédit quel que soit le nombre de clés demandées : demandez donc tout ce dont vous avez besoin en une seule fois plutôt que de faire plusieurs appels. |
| planet | string | obligatoire | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 valeurs acceptées, qui couvrent les 10 planètes, les deux nœuds lunaires, 6 astéroïdes, 9 corps uraniens/fictifs et 9 lunes planétaires. Un nom non reconnu est converti sans avertissement en None au lieu de provoquer une erreur, ce qui fait ensuite échouer le calcul plus loin dans le moteur d’éphémérides. Notez que les nœuds s’écrivent avec un tiret bas, MEAN_NODE / TRUE_NODE (il n’existe pas d’alias 'RAHU'/'KETU'). |
| tz | number (double) | obligatoire | min -12 · max 14 |
| celestial | string | facultatif | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 valeurs acceptées, qui couvrent les 10 planètes, les deux nœuds lunaires, 6 astéroïdes, 9 corps uraniens/fictifs et 9 lunes planétaires. Un nom non reconnu est converti sans avertissement en None au lieu de provoquer une erreur, ce qui fait ensuite échouer le calcul plus loin dans le moteur d’éphémérides. Notez que les nœuds s’écrivent avec un tiret bas, MEAN_NODE / TRUE_NODE (il n’existe pas d’alias 'RAHU'/'KETU'). |
| celestial1 | string | facultatif | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 valeurs acceptées, qui couvrent les 10 planètes, les deux nœuds lunaires, 6 astéroïdes, 9 corps uraniens/fictifs et 9 lunes planétaires. Un nom non reconnu est converti sans avertissement en None au lieu de provoquer une erreur, ce qui fait ensuite échouer le calcul plus loin dans le moteur d’éphémérides. Notez que les nœuds s’écrivent avec un tiret bas, MEAN_NODE / TRUE_NODE (il n’existe pas d’alias 'RAHU'/'KETU'). |
| celestial2 | string | facultatif | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 valeurs acceptées, qui couvrent les 10 planètes, les deux nœuds lunaires, 6 astéroïdes, 9 corps uraniens/fictifs et 9 lunes planétaires. Un nom non reconnu est converti sans avertissement en None au lieu de provoquer une erreur, ce qui fait ensuite échouer le calcul plus loin dans le moteur d’éphémérides. Notez que les nœuds s’écrivent avec un tiret bas, MEAN_NODE / TRUE_NODE (il n’existe pas d’alias 'RAHU'/'KETU'). |
| degr | number (double) | facultatif | |
| latitude | number (double) | facultatif | Latitude du lieu, en degrés décimaux. Positive au nord, négative au sud. Exemple : 26.9124 pour Jaipur, 40.7128 pour New York. Les minutes et les secondes ne sont pas acceptées - convertissez d’abord. min -89.9 · max 89.9 |
| longitude | number (double) | facultatif | Longitude du lieu, en degrés décimaux. Positive à l’est, négative à l’ouest. Exemple : 75.7873 pour Jaipur, -74.0060 pour New York. Attention au signe : sans le moins, New York se retrouve en Chine. min -180 · max 180 |
| nakshatras | string | facultatif | specialPARAMÈTRE SANS EFFET au niveau HTTP : TransitView ne le transmet jamais, si bien que l’envoyer n’a aucun effet. Dans le moteur, la seule valeur significative est le littéral 'special', qui sélectionne la table nakshatras_special de 28 entrées au lieu de celle de 27 entrées par défaut. |
| when | string | facultatif | afterbeforeLa valeur par défaut du moteur est 'after'. Utilisé par les clés 'solar_crossing', 'find_moon_crossing', 'moon_node_crossing' et 'celestial_conjunction'. |
| x2cross | number (double) | facultatif |
Listez dans keys exactement les calculs voulus. Une clé inconnue fait rejeter toute la requête. Vous payez 1 crédit, quel que soit le nombre de clés demandées : regroupez-les donc.
| Clé | Champs supplémentaires requis | Description | |
|---|---|---|---|
| celestial_conjunction | celestial1, celestial2, datetime_start, when | Le premier moment après `datetime_start` où `celestial1` et `celestial2` ont la même longitude écliptique. Renvoie un objet avec `long1` et `long2`, les deux longitudes au moment trouvé — proches mais pas exactement égales, puisque la recherche s’arrête à une tolérance donnée — et `date`, l’horodatage ISO. | |
| find_moon_crossing | x2cross, date_time, tz, when | L’instant où la Lune atteint la longitude écliptique indiquée dans `x2cross`, en cherchant vers l’avant ou vers l’arrière à partir de `date_time` selon `when`. Renvoie un seul horodatage ISO décalé de `tz`. Comme la Lune avance d’environ 13 degrés par jour, la réponse se situe normalement à moins d’un mois du moment de référence. | |
| moon_node_crossing | date_time, tz, when | Le passage suivant ou précédent par le nœud lunaire, en cherchant à partir de `date_time` dans la direction indiquée par `when`. Renvoie un objet avec `date`, l’horodatage ISO décalé de `tz`, ainsi que `long` et `lat`, la longitude et la latitude écliptiques à ce moment. Utile pour repérer les saisons d’éclipses. | |
| planet_transit | degr, planet, datetime_start, datetime_end, tz | Le moment où le corps indiqué dans `planet` franchit la longitude écliptique indiquée dans `degr`, recherché entre `datetime_start` et `datetime_end`. Renvoie un seul horodatage ISO décalé de `tz`, ou null lorsque le corps n’atteint jamais ce degré dans la plage. Contrairement aux passages du Soleil et de la Lune, celui-ci est borné : donnez-lui donc une plage assez large pour contenir l’événement. | |
| set_default_transit | — | Un commutateur de mode, pas un calcul : règle les éphémérides en tropical (aucun ayanamsa appliqué) pour le reste de la requête. Renvoie null. Les clés sont évaluées dans l’ordre où vous les listez : placez-le donc avant les clés de passage qu’il doit affecter. | |
| set_sidereal_transit | — | Un commutateur de mode, pas un calcul : règle les éphémérides en sidéral, de sorte que les passages et positions suivants de la même requête sont mesurés par rapport à l’ayanamsa plutôt qu’au point zéro tropical. Renvoie null, et doit être listé avant les clés qu’il doit affecter. | |
| solar_crossing | x2cross, date_time, tz, when | L’instant où le Soleil atteint la longitude écliptique indiquée dans `x2cross`, en cherchant vers l’avant ou vers l’arrière à partir de `date_time` selon `when`. Renvoie un seul horodatage ISO décalé de `tz` heures. Passez 0 pour trouver un nouvel an sidéral, ou une longitude solaire natale pour trouver un anniversaire à la minute près. | |
| transit_details | celestial, date_time, tz | Un relevé de position complet pour le corps indiqué dans `celestial` à `date_time`. Renvoie un objet avec `longitude` sous forme de chaîne d’affichage préformatée, `nakshatra` et son `nakshatra_lord`, `padam` (le quart du nakshatra, 1-4), `full_degree` (la longitude sidérale divisée par 30, soit le numéro du signe plus la fraction parcourue), `latitude_shara` sous la forme `{degrees, minutes, seconds}`, `speed` en degrés par jour sous forme de chaîne, `right_ascension` au format 'hh.mm.ss.ss' et `declination_kranti` en degrés sous forme de chaîne. |