/api/astro/transit/1 кредитТранзитные пересечения
Эндпоинт ищет моменты, а не описывает карту на заданное время. Он отвечает на вопросы вроде: когда Солнце в следующий раз достигнет 0 градусов Овна, когда Марс в следующий раз пересечёт заданный градус между двумя датами, когда Сатурн и Солнце в следующий раз окажутся на одной эклиптической долготе и где именно находится тело в данный момент. Два ключа — не расчёты, а переключатели режима: `set_default_transit` включает обычные тропические эфемериды, `set_sidereal_transit` — сидерические; оба возвращают null. Ключи запроса выполняются в указанном вами порядке, поэтому, если последующие поиски должны быть сидерическими, поставьте переключатель первым. В полях `planet`, `celestial`, `celestial1` и `celestial2` используются названия эфемерид в верхнем регистре (`SUN`, `MOON`, `MEAN_NODE`, `TRUE_NODE`, `CHIRON`, уранианские точки и несколько спутников планет) — это другой набор названий, не `Sun`/`Moon`, как на большинстве других эндпоинтов. `tz` — простое смещение в часах, которое применяется ко всем возвращаемым меткам времени; `when` задаёт направление поиска — 'after' или 'before' опорного момента; `datetime_start`/`datetime_end` ограничивают окно для `planet_transit`.
https://api.occultapi.com/api/astro/transit/
Аутентификация
Передавайте ключ в заголовке X-API-Key. Ключ — это серверные учётные данные: никогда не вставляйте его в JavaScript на стороне браузера или в мобильное приложение.
X-API-Key: yt_live_a1b2c3d4_…
Content-Type: application/jsonПоля запроса
| Поле | Тип | Обязательно | Примечания |
|---|---|---|---|
| date_time | string (date-time) | обязательный | Момент расчёта в формате ISO 8601. ВСЕГДА указывайте смещение или суффикс Z: значение без часового пояса интерпретируется как Asia/Kolkata (UTC+05:30), а не UTC, и может вернуть результат за предыдущий день со статусом 200. '2026-09-01T06:00:00Z' и '2026-09-01 06:00:00' — разные моменты, и ответы для них будут разными. |
| datetime_end | string (date-time) | обязательный | |
| datetime_start | string (date-time) | обязательный | |
| keys | array | обязательный | Какие расчёты вернуть — списком названий. См. таблицу ключей этого эндпоинта; нераспознанное название отклоняет весь запрос. Один вызов стоит один кредит, сколько бы ключей вы ни запросили, поэтому запрашивайте всё нужное сразу, а не несколькими вызовами. |
| planet | string | обязательный | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 допустимых значений: 10 планет, два лунных узла, 6 астероидов, 9 уранианских/фиктивных тел и 9 спутников планет. Нераспознанное название не вызывает ошибку, а молча превращается в None, и сбой происходит уже глубже, в движке эфемерид. Обратите внимание: узлы записываются с подчёркиванием — MEAN_NODE / TRUE_NODE (псевдонимов 'RAHU'/'KETU' нет). |
| tz | number (double) | обязательный | min -12 · max 14 |
| celestial | string | необязательный | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 допустимых значений: 10 планет, два лунных узла, 6 астероидов, 9 уранианских/фиктивных тел и 9 спутников планет. Нераспознанное название не вызывает ошибку, а молча превращается в None, и сбой происходит уже глубже, в движке эфемерид. Обратите внимание: узлы записываются с подчёркиванием — MEAN_NODE / TRUE_NODE (псевдонимов 'RAHU'/'KETU' нет). |
| celestial1 | string | необязательный | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 допустимых значений: 10 планет, два лунных узла, 6 астероидов, 9 уранианских/фиктивных тел и 9 спутников планет. Нераспознанное название не вызывает ошибку, а молча превращается в None, и сбой происходит уже глубже, в движке эфемерид. Обратите внимание: узлы записываются с подчёркиванием — MEAN_NODE / TRUE_NODE (псевдонимов 'RAHU'/'KETU' нет). |
| celestial2 | string | необязательный | SUNMOONMERCURYVENUSMARSJUPITERSATURNURANUSNEPTUNEPLUTOMEAN_NODETRUE_NODE36 допустимых значений: 10 планет, два лунных узла, 6 астероидов, 9 уранианских/фиктивных тел и 9 спутников планет. Нераспознанное название не вызывает ошибку, а молча превращается в None, и сбой происходит уже глубже, в движке эфемерид. Обратите внимание: узлы записываются с подчёркиванием — MEAN_NODE / TRUE_NODE (псевдонимов 'RAHU'/'KETU' нет). |
| degr | number (double) | необязательный | |
| latitude | number (double) | необязательный | Широта места в десятичных градусах. Положительные значения — север, отрицательные — юг. Пример: 26.9124 для Джайпура, 40.7128 для Нью-Йорка. Минуты и секунды не принимаются — сначала переведите значение в десятичные градусы. min -89.9 · max 89.9 |
| longitude | number (double) | необязательный | Долгота места в десятичных градусах. Положительные значения — восток, отрицательные — запад. Пример: 75.7873 для Джайпура, -74.0060 для Нью-Йорка. Следите за знаком: без минуса Нью-Йорк окажется в Китае. min -180 · max 180 |
| nakshatras | string | необязательный | specialМЁРТВЫЙ ПАРАМЕТР на уровне HTTP: TransitView никогда не передаёт его дальше, поэтому параметр ни на что не влияет. В движке осмысленно только значение 'special': оно выбирает таблицу nakshatras_special из 28 записей вместо стандартной таблицы из 27. |
| when | string | необязательный | afterbeforeВ движке по умолчанию — 'after'. Используется ключами 'solar_crossing', 'find_moon_crossing', 'moon_node_crossing' и 'celestial_conjunction'. |
| x2cross | number (double) | необязательный |
Доступные ключи (8)
Перечислите в keys ровно те расчёты, которые вам нужны. Один неизвестный ключ — и отклоняется весь запрос. Сколько бы ключей вы ни запросили, спишется 1 кредит, так что собирайте их в один вызов.
| Ключ | Доп. поля | Описание |
|---|---|---|
| celestial_conjunction | celestial1, celestial2, datetime_start, when | Первый момент после `datetime_start`, когда `celestial1` и `celestial2` находятся на одной эклиптической долготе. Возвращает объект с `long1` и `long2` — долготами двух тел в найденный момент (близкими, но не строго равными, так как поиск останавливается при достижении допуска), — и `date`, меткой времени ISO. |
| find_moon_crossing | x2cross, date_time, tz, when | Момент, когда Луна достигает эклиптической долготы, заданной в `x2cross`, с поиском вперёд или назад от `date_time` в зависимости от `when`. Возвращает одну метку времени ISO, сдвинутую на `tz`. Поскольку Луна проходит около 13 градусов в сутки, ответ обычно находится в пределах месяца от опорного момента. |
| moon_node_crossing | date_time, tz, when | Следующее или предыдущее пересечение лунного узла с поиском от `date_time` в направлении, заданном `when`. Возвращает объект с `date` — меткой времени ISO, сдвинутой на `tz`, — а также `long` и `lat`, эклиптическими долготой и широтой в этот момент. Полезно для определения сезонов затмений. |
| planet_transit | degr, planet, datetime_start, datetime_end, tz | Момент, когда тело, указанное в `planet`, пересекает эклиптическую долготу из `degr`; поиск идёт между `datetime_start` и `datetime_end`. Возвращает одну метку времени ISO, сдвинутую на `tz`, или null, если внутри окна тело этого градуса не достигает. В отличие от пересечений Солнца и Луны, у этого поиска есть границы, поэтому задайте диапазон с запасом, чтобы событие в него попало. |
| set_default_transit | — | Переключатель режима, а не расчёт: переключает эфемериды на тропические (без аянамши) до конца запроса. Возвращает null. Ключи выполняются в указанном вами порядке, поэтому ставьте его перед ключами пересечений, на которые он должен действовать. |
| set_sidereal_transit | — | Переключатель режима, а не расчёт: переключает эфемериды на сидерические, поэтому последующие пересечения и положения в том же запросе отсчитываются с учётом аянамши, а не от тропической нулевой точки. Возвращает null; указывайте его перед ключами, на которые он должен действовать. |
| solar_crossing | x2cross, date_time, tz, when | Момент, когда Солнце достигает эклиптической долготы, заданной в `x2cross`, с поиском вперёд или назад от `date_time` в зависимости от `when`. Возвращает одну метку времени ISO, сдвинутую на смещение `tz` в часах. Передайте 0, чтобы найти сидерический новый год, или натальную долготу Солнца, чтобы найти день рождения с точностью до минуты. |
| transit_details | celestial, date_time, tz | Полная сводка положения для тела, указанного в `celestial`, на момент `date_time`. Возвращает объект с `longitude` в виде заранее отформатированной строки для отображения, `nakshatra` и её `nakshatra_lord`, `padam` (четверть накшатры, 1-4), `full_degree` (сидерическая долгота, делённая на 30, т. е. номер знака плюс пройденная доля), `latitude_shara` в виде `{degrees, minutes, seconds}`, `speed` в градусах в сутки в виде строки, `right_ascension` в формате 'hh.mm.ss.ss' и `declination_kranti` в градусах в виде строки. |
Пример запроса
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"}'Ответ
{
"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"
}Записано с реального вызова ровно с этим запросом. Результаты лежат в data под теми ключами, которые вы запросили.
Ошибки
Ошибки списания кредитов приходят в виде { "error": "…", "message": "<code>", "is_error": true }. Людям показывайте error, а логику стройте на message. Подробнее — в справочнике ошибок.