/api/astro/chart/1 кредитНатальна карта
Основний ендпоінт карти: положення планет, поділ на доми й асцендент для заданого моменту й місця. Для звичайної натальної карти запитуйте карту раші (D-1); будь-яку з понад тридцяти дробових карт — Навамшу, Дасамшу, Двадасамшу, Шаштьямшу та інші — теж можна запитати за назвою. Передайте масив назв, і отримаєте кілька карт одним викликом; ключами в такій відповіді будуть назви карт. Кожна карта повертає три блоки. У `celestial` ключі — назви тіл (sun, moon, … northtruenode), і для кожного вказано довготу, широту, накшатру й паду, какшью, назву знака та номер дому. У `houses` ключі від 1 до 12, для кожного дому — `start`, `cusp` і `end`. `ascendant` містить градус асцендента та його знак. `notation` задає одиниці для всієї відповіді: 'degree' — десяткові градуси, 'astrological' — знак плюс градуси, хвилини й секунди. Точність налаштовується необов’язковими полями. `ayanamsa` обирає сидеричне визначення, а `apply_correction` разом із `correction_deg`, `correction_min`, `correction_sec` і `correction_direction` дає змогу зсунути його вручну. `rahu` обирає істинні вузли, середні або обидва. `extended_bodies` додає астероїди, фіктивні тіла уранічної школи або супутники планет і мовчки пропускає ті, для яких немає файлів ефемерид. `ascendant_pos` визначає, де брати асцендент — на куспіді дому, на його початку чи в кінці. Зверніть увагу: будь-яке значення, крім 'start' або 'end', навіть одрук, без жодного попередження замінюється на куспід. Поле дати на цьому ендпоінті називається `datetime`, а не `date_time`. SVG-ВІДОБРАЖЕННЯ ЗА ЗАПИТОМ. Встановіть render у 'svg', і у відповіді з’являться ще два поля — на додачу до чотирьох описаних вище, а не замість них. `layout` — це геометрія (вершини багатокутника кожної клітинки дому чи знака, позиція підпису й тіла, що в ній стоять), за якою можна намалювати власну діаграму в React, Canvas, Flutter чи SwiftUI. `svg` — готова до вставлення розмітка, побудована за тією самою геометрією. chart_style обирає північноіндійський стиль (ромб, доми фіксовані, знаки змінюють положення) або південноіндійський (фіксована сітка знаків, доми змінюють положення); svg_size, theme, label_style, show_degrees і чотири поля *_color керують відображенням. Усі ці поля за замовчуванням вимкнено, тож запит без render працює як і раніше: відповідь точно така сама, як завжди.
https://api.occultapi.com/api/astro/chart/
Автентифікація
Передавайте ключ у заголовку X-API-Key. Ключ — це серверні облікові дані: ніколи не вставляйте його в JavaScript, що виконується в браузері, чи в мобільний застосунок.
X-API-Key: yt_live_a1b2c3d4_…
Content-Type: application/jsonПоля запиту
| Поле | Тип | Обов’язкове | Примітки |
|---|---|---|---|
| ascendant_pos | string | обов’язковий | cuspstartend'start' бере початок дому, 'end' — кінець дому; БУДЬ-ЯКЕ інше значення, зокрема саме 'cusp' і будь-який одрук, потрапляє в гілку else, і використовується куспід дому. Тож фактично за замовчуванням діє 'cusp', а одруки мовчки проходять без помилки. З урахуванням регістру. |
| ayanamsa | string | обов’язковий | FAGAN_BRADLEYLAHIRIDELUCERAMANUSHASHASHIKRISHNAMURTIDJWHAL_KHULYUKTESHWARJN_BHASINBABYL_KUGLER1BABYL_KUGLER2BABYL_KUGLER3БЕЗ урахування регістру: для пошуку використовується name.upper. На відміну від /api/astro/ayanamsa_value/, тут 'USER' НЕ відхиляється. Невідоме значення повертає 400 "Undefined ayanamsa: <name>". Зверніть увагу: apply_correction=true скасовує цей вибір і перемикає внутрішній режим на USER. |
| chart_name | string | обов’язковий | BhavaChartRashiChartHoraChartJagannathHoraChartParivrittidwayaHoraChartParivrittitrayaDrekkanaChartDrekkanaChartSomnathDrekkanaChartJagannathDrekkanaChartChaturthamsaChartPanchamsaChartShashthamsaChartЗ урахуванням регістру; пишіть точно як у переліку. Передайте одну назву або масив назв, щоб отримати кілька карт одним викликом, — тоді ключами відповіді будуть назви карт. Невідома назва повертає 400. |
| datetime | string (date-time) | обов’язковий | Момент, для якого виконується розрахунок, у форматі ISO 8601. ЗАВЖДИ вказуйте зміщення або Z у кінці: значення без часового поясу читається як Asia/Kolkata (UTC+05:30), а не UTC. Те саме значення, що й date_time, — інші ендпоінти називають це поле інакше. Обмеження ФОРМАТУ, а не перелік значень. DRF DateTimeField: лише ISO-8601 (типові формати введення DRF), напр. "2026-09-01T06:00:00+05:30", "2026-09-01T06:00:00Z" або "2026-09-01 06:00:00" (без часового поясу вважається UTC). Зверніть увагу: на цьому ендпоінті поле називається `datetime`, а не `date_time`. |
| latitude | number (double) | обов’язковий | Широта місця в десяткових градусах. Додатні значення — північ, від’ємні — південь. Приклад: 26.9124 для Джайпура, 40.7128 для Нью-Йорка. Хвилини й секунди не приймаються — спершу переведіть їх у градуси. min -180 · max 180 |
| longitude | number (double) | обов’язковий | Довгота місця в десяткових градусах. Додатні значення — схід, від’ємні — захід. Приклад: 75.7873 для Джайпура, -74.0060 для Нью-Йорка. Зверніть увагу на знак: без мінуса Нью-Йорк опиниться в Китаї. min -180 · max 180 |
| notation | string | обов’язковий | astrologicaldegreeЗ урахуванням регістру, у нижньому регістрі. 'astrological' повертає окремо знак, градуси, хвилини й секунди; 'degree' — сирі десяткові градуси. Будь-яке інше значення повертає 400 "Invalid notation: <x>". |
| aberration | boolean | необов’язковий | |
| apply_correction | boolean | необов’язковий | |
| background_color | string | необов’язковий | Колір фону SVG у форматі hex. |
| chart_style | string | необов’язковий | Стиль діаграми, коли render='svg'. 'north' — ромбоподібний макет із фіксованими домами та змінним розташуванням знаків; 'south' — сітка з фіксованими знаками та змінним розташуванням домів. northsouth |
| correction_deg | integer | необов’язковий | min 0 |
| correction_direction | string | необов’язковий | addsubtractЗа замовчуванням 'add'. Діє лише тоді, коли apply_correction=true і хоча б одне з correction_deg/min/sec не дорівнює нулю. |
| correction_min | integer | необов’язковий | min 0 · max 59 |
| correction_sec | integer | необов’язковий | min 0 · max 59 |
| extended_bodies | array | необов’язковий | Які групи тіл додати: 'asteroids', 'planetary_moons', 'fictitious_bodies'. asteroidsplanetary_moonsfictitious_bodiesМасив рядків, за замовчуванням []. 'asteroids' додає chiron, pholus, ceres, pallas, juno, vesta; 'fictitious_bodies' додає cupido, hades, zeus, kronos, apollon, admetos, vulkanus, poseidon, selena; 'planetary_moons' додає phobos, deimos, io, europa, ganymede, callisto, titan, triton, charon. Тіла, для яких немає файлів ефемерид, мовчки не потрапляють у відповідь. |
| label_style | string | необов’язковий | Як підписуються планети: 'english' (Su, Mo, ...), 'sanskrit' (Surya, Chandra, ...) або 'symbol' (☉, ☽, ...). englishsanskritsymbol |
| line_color | string | необов’язковий | Колір ліній сітки карти у форматі hex. |
| nutation | boolean | необов’язковий | |
| planet_color | string | необов’язковий | Колір підписів планет у форматі hex, напр. '#111827'. За замовчуванням — власний колір теми. |
| rahu | string | необов’язковий | Які вузли додати: 'true' — лише істинні, 'mean' — лише середні, 'both' — обидва типи. truemeanbothЗа замовчуванням 'true'. 'true' повертає лише істинні вузли, 'mean' — лише середні, 'both' — усі чотири. |
| refraction | boolean | необов’язковий | |
| render | string | необов’язковий | Передайте 'svg', щоб разом із даними отримати готову діаграму карти (див. chart_style) і геометрію, за якою її побудовано. Якщо параметр не передавати зовсім, відповідь не зміниться. nonesvg |
| show_degrees | boolean | необов’язковий | Показувати біля підпису кожного тіла його градус у знаку. |
| sign_color | string | необов’язковий | Колір номерів і скорочень знаків у форматі hex. |
| svg_size | integer | необов’язковий | Ширина й висота квадратного SVG viewBox у пікселях. min 100 · max 2000 |
| theme | string | необов’язковий | lightdark |
| true_mean | string | необов’язковий | TrueMeanЗ УРАХУВАННЯМ регістру, з великої літери. За замовчуванням 'Mean'. Вибір між істинними й середніми положеннями планет (саме істинними, а не видимими). |
| use_28_nakshatras | boolean | необов’язковий |
Приклад запиту
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}'Відповідь
{
"data": {
"NavamsaChart": {
"celestial": {
"sun": {
"longitude": 318.0675,
"latitude": 0,
"nakshatra": "Satabhishak",
"pada": 4,
"kakshya": "venus",
"zodiac_name": "Aquarius",
"house": 8
},
"moon": {
"longitude": 150.3425,
"latitude": -4.343,
"nakshatra": "Uttara Phalguni",
"pada": 2,
"kakshya": "saturn",
"zodiac_name": "Virgo",
"house": 3
},
"mercury": {
"longitude": 74.3125,
"latitude": -2.291,
"nakshatra": "Aardra",
"pada": 3,
"kakshya": "sun",
"zodiac_name": "Gemini",
"house": 12
},
"venus": {
"longitude": 159.8475,
"latitude": -0.081,
"nakshatra": "Uttara Phalguni",
"pada": 4,
"kakshya": "mars",
"zodiac_name": "Virgo",
"house": 3
},
"mars": {
"longitude": 139.1825,
"latitude": -1.01,
"nakshatra": "Poorva Phalguni",
"pada": 2,
"kakshya": "Mercury",
"zodiac_name": "Leo",
"house": 2
},
"jupiter": {
"longitude": 19.82499999999999,
"latitude": 0.377,
"nakshatra": "Bharani",
"pada": 2,
"kakshya": "Mercury",
"zodiac_name": "Aries",
"house": 10
},
"saturn": {
"longitude": 201.275,
"latitude": -2.136,
"nakshatra": "Visaakha",
"pada": 1,
"kakshya": "Mercury",
"zodiac_name": "Libra",
"house": 4
},
"uranus": {
"longitude": 314.28,
"latitude": -0.169,
"nakshatra": "Satabhishak",
"pada": 3,
"kakshya": "sun",
"zodiac_name": "Aquarius",
"house": 8
},
"neptune": {
"longitude": 164.6175,
"latitude": -1.31,
"nakshatra": "Hasta",
"pada": 2,
"kakshya": "sun",
"zodiac_name": "Virgo",
"house": 3
},
"pluto": {
"longitude": 10.007499999999991,
"latitude": -3.973,
"nakshatra": "Ashwini",
"pada": 4,
"kakshya": "mars",
"zodiac_name": "Aries",
"house": 10
},
"northtruenode": {
"longitude": 304.65,
"latitude": 0,
"nakshatra": "Dhanishtha",
"pada": 4,
"kakshya": "jupiter",
"zodiac_name": "Aquarius",
"house": 8
},
"southtruenode": {
"longitude": 124.65,
"latitude": 0,
"nakshatra": "Makha",
"pada": 2,
"kakshya": "jupiter",
"zodiac_name": "Leo",
"house": 2
}
},
"houses": {
"1": {
"start": 118.24667529991994,
"cusp": 133.24667529991996,
"end": 148.24667529991996
},
"2": {
"start": 148.24667529991996,
"cusp": 163.24667529991996,
"end": 178.24667529991996
},
"3": {
"start": 178.24667529991996,
"cusp": 193.24667529991996,
"end": 208.24667529991996
},
"4": {
"start": 208.24667529991996,
"cusp": 223.24667529991993,
"end": 238.24667529991993
},
"5": {
"start": 238.24667529991993,
"cusp": 253.24667529991993,
"end": 268.2466752999199
},
"6": {
"start": 268.2466752999199,
"cusp": 283.2466752999199,
"end": 298.2466752999199
},
"7": {
"start": 298.2466752999199,
"cusp": 313.2466752999199,
"end": 328.2466752999199
},
"8": {
"start": 328.2466752999199,
"cusp": 343.2466752999199,
"end": 358.2466752999199
},
"9": {
"start": 358.2466752999199,
"cusp": 13.246675299919922,
"end": 28.24667529991992
},
"10": {
"start": 28.24667529991992,
"cusp": 43.24667529991992,
"end": 58.24667529991993
},
"11": {
"start": 58.24667529991993,
"cusp": 73.24667529991993,
"end": 88.24667529991993
},
"12": {
"start": 88.24667529991993,
"cusp": 103.24667529991991,
"end": 118.24667529991994
}
},
"ascendant": {
"longitude": 133.24667529991996,
"zodiac_name": "Cancer",
"nakshatra": "Makha",
"pada": 4
},
"ayanamsa_used": {
"name": "LAHIRI",
"corrected": false,
"value_degrees": 24.224068,
"formatted": "24°13'27\""
}
}
},
"message": "successful",
"is_error": false
}Записано з реального виклику з точно таким запитом, як вище. Результати лежать у data.
Помилки
Помилки обліку кредитів мають вигляд { "error": "…", "message": "<code>", "is_error": true }. Людям показуйте error, а логіку будуйте на message. Детальніше — у довіднику помилок.