curl -X POST https://api.occultapi.com/api/astro/chart/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"chart_name":"NavamsaChart","datetime":"2026-04-09T15:35:00+05:30","longitude":75.76861133842026,"latitude":26.849874414615,"notation":"degree","ayanamsa":"lahiri","ascendant_pos":"cusp","rahu":"true","true_mean":"Mean","refraction":false,"apply_correction":false,"correction_direction":"add","correction_deg":0,"correction_min":0,"correction_sec":0}'L’endpoint central des thèmes : positions planétaires, divisions des maisons et ascendant pour un moment et un lieu. Demandez le thème Rashi (D-1) pour un thème natal ordinaire, ou l’un des quelque trente thèmes divisionnaires — Navamsa, Dasamsa, Dwadasamsa, Shashtyamsa, etc. — par son nom. Passez un tableau de noms pour en obtenir plusieurs en un seul appel, indexés par nom de thème. Chaque thème renvoie trois blocs. `celestial` est indexé par nom de corps (sun, moon, … northtruenode) et donne pour chacun la longitude, la latitude, le nakshatra et le pada, le kakshya, le nom du signe et le numéro de maison. `houses` a pour clés 1 à 12, avec les valeurs `start`, `cusp` et `end` de chaque maison. `ascendant` donne le degré ascendant et son signe. `notation` détermine les unités de toute la réponse : 'degree' pour des degrés décimaux, 'astrological' pour le signe suivi des degrés, minutes et secondes. La précision se règle dans les champs facultatifs. `ayanamsa` choisit la définition sidérale, et `apply_correction`, avec `correction_deg`, `correction_min`, `correction_sec` et `correction_direction`, permet de la décaler à la main. `rahu` choisit les nœuds vrais, les nœuds moyens ou les deux. `extended_bodies` ajoute des astéroïdes, des corps fictifs uraniens ou des lunes planétaires, en omettant sans avertissement ceux dont les fichiers d’éphémérides sont absents. `ascendant_pos` indique si l’ascendant est pris à la cuspide, au début ou à la fin de la maison — attention, toute valeur autre que 'start' ou 'end', faute de frappe comprise, se rabat sans erreur sur la cuspide. Sur cet endpoint, le champ de date s’écrit `datetime`, et non `date_time`. RENDU SVG SUR DEMANDE. Mettez render à 'svg' : la réponse reçoit deux champs supplémentaires, qui s’ajoutent aux quatre ci-dessus sans les remplacer. `layout` est la géométrie — pour chaque case de maison ou de signe, les sommets du polygone, la position du libellé et les corps qu’elle contient — pour dessiner votre propre diagramme en React, Canvas, Flutter ou SwiftUI. `svg` est un balisage prêt à l’emploi construit sur cette même géométrie. chart_style choisit le style nord-indien (losange, maisons fixes, signes tournants) ou sud-indien (grille de signes fixes, maisons tournantes) ; svg_size, theme, label_style, show_degrees et les quatre champs *_color règlent le rendu. Tous ces champs sont désactivés par défaut : une requête qui ne mentionne pas render n’est en rien modifiée, et la réponse reste exactement la même qu’avant.
| Champ | Type | Obligatoire | Remarques |
|---|---|---|---|
| ascendant_pos | string | obligatoire | cuspstartend'start' prend le début de la maison et 'end' sa fin ; TOUTE autre valeur - y compris 'cusp' et n’importe quelle faute de frappe - passe dans la branche else et prend la cuspide. 'cusp' est donc la valeur par défaut effective, et une faute de frappe passe inaperçue au lieu de provoquer une erreur. Sensible à la casse. |
| ayanamsa | string | obligatoire | FAGAN_BRADLEYLAHIRIDELUCERAMANUSHASHASHIKRISHNAMURTIDJWHAL_KHULYUKTESHWARJN_BHASINBABYL_KUGLER1BABYL_KUGLER2BABYL_KUGLER3INSENSIBLE à la casse - la consultation se fait avec name.upper. Contrairement à /api/astro/ayanamsa_value/, 'USER' n’est PAS refusé ici. Une valeur inconnue renvoie une erreur 400 "Undefined ayanamsa: <name>". Notez que apply_correction=true prend le pas sur ce choix et fait passer le mode interne à USER. |
| chart_name | string | obligatoire | BhavaChartRashiChartHoraChartJagannathHoraChartParivrittidwayaHoraChartParivrittitrayaDrekkanaChartDrekkanaChartSomnathDrekkanaChartJagannathDrekkanaChartChaturthamsaChartPanchamsaChartShashthamsaChartSensible à la casse : écrivez le nom exactement comme dans la liste. Passez un seul nom, ou un tableau pour obtenir plusieurs thèmes en un seul appel - la réponse est alors indexée par nom de thème. Un nom inconnu renvoie une erreur 400. |
| datetime | 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. Même signification que date_time, que d’autres endpoints désignent sous un autre nom. Contrainte de FORMAT, pas une énumération. DateTimeField DRF : ISO-8601 uniquement (formats d’entrée par défaut de DRF), p. ex. "2026-09-01T06:00:00+05:30", "2026-09-01T06:00:00Z" ou "2026-09-01 06:00:00" (sans fuseau = UTC supposé). Notez que cet endpoint nomme le champ `datetime`, et non `date_time`. |
| latitude | number (double) | obligatoire | 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 -180 · max 180 |
| longitude | number (double) | obligatoire | 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 |
| notation | string | obligatoire | astrologicaldegreeSensible à la casse, en minuscules. 'astrological' renvoie les composantes signe/degré/minute/seconde ; 'degree' renvoie des degrés décimaux bruts. Toute autre valeur renvoie une erreur 400 "Invalid notation: <x>". |
| aberration | boolean | facultatif | |
| apply_correction | boolean | facultatif | |
| background_color | string | facultatif | Couleur hexadécimale de l’arrière-plan SVG. |
| chart_style | string | facultatif | Style de diagramme lorsque render='svg'. 'north' est la disposition en losange, avec maisons fixes et signes tournants ; 'south' est la grille à signes fixes, avec maisons tournantes. northsouth |
| correction_deg | integer | facultatif | min 0 |
| correction_direction | string | facultatif | addsubtractPar défaut : 'add'. Ne joue que lorsque apply_correction=true et qu’au moins une des valeurs correction_deg/min/sec est non nulle. |
| correction_min | integer | facultatif | min 0 · max 59 |
| correction_sec | integer | facultatif | min 0 · max 59 |
| extended_bodies | array | facultatif | Groupes de corps à inclure : 'asteroids', 'planetary_moons', 'fictitious_bodies'. asteroidsplanetary_moonsfictitious_bodiesTableau de chaînes, par défaut []. 'asteroids' ajoute chiron, pholus, ceres, pallas, juno, vesta ; 'fictitious_bodies' ajoute cupido, hades, zeus, kronos, apollon, admetos, vulkanus, poseidon, selena ; 'planetary_moons' ajoute phobos, deimos, io, europa, ganymede, callisto, titan, triton, charon. Les corps dont les fichiers d’éphémérides manquent sont omis de la réponse sans avertissement. |
| label_style | string | facultatif | Manière de libeller les planètes : 'english' (Su, Mo, ...), 'sanskrit' (Surya, Chandra, ...) ou 'symbol' (☉, ☽, ...). englishsanskritsymbol |
| line_color | string | facultatif | Couleur hexadécimale des lignes de la grille du thème. |
| nutation | boolean | facultatif | |
| planet_color | string | facultatif | Couleur hexadécimale des libellés des planètes, p. ex. '#111827'. Par défaut : la couleur propre au thème visuel. |
| rahu | string | facultatif | Type de nœud à inclure. 'true' ne renvoie que les nœuds vrais, 'mean' que les nœuds moyens, 'both' renvoie les deux. truemeanbothPar défaut : 'true'. 'true' ne renvoie que les nœuds vrais, 'mean' que les nœuds moyens, 'both' renvoie les quatre. |
| refraction | boolean | facultatif | |
| render | string | facultatif | Mettre à 'svg' pour renvoyer aussi un diagramme du thème rendu (voir chart_style) et la géométrie qui le sous-tend. Si vous l’omettez entièrement, la réponse reste inchangée. nonesvg |
| show_degrees | boolean | facultatif | Afficher, à côté du libellé de chaque corps, son degré dans le signe. |
| sign_color | string | facultatif | Couleur hexadécimale des numéros et abréviations des signes. |
| svg_size | integer | facultatif | Largeur et hauteur du viewBox SVG carré, en pixels. min 100 · max 2000 |
| theme | string | facultatif | lightdark |
| true_mean | string | facultatif | TrueMeanSENSIBLE à la casse, avec une majuscule initiale. Par défaut : 'Mean'. Choisit entre positions planétaires vraies et moyennes (positions vraies plutôt qu’apparentes). |
| use_28_nakshatras | boolean | facultatif |