/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` — готовая 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 | необязательный | Hex-цвет фона SVG. |
| 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. Подробнее — в справочнике ошибок.