curl -X POST https://api.occultapi.com/api/astro/festival/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keys":["calculate_festivals"],"moon_option":"amavas","year":2025,"date_time":"2025-02-12T08:35:00.795Z","latitude":26.9124,"longitude":75.7873,"timezone_as_float":5.5}'Все индуистские праздники календарного года, рассчитанные напрямую по астрономическим данным для указанного места, а также экадаши и джайнские, сикхские и христианские обрядовые дни, которые отслеживает движок. В отличие от эндпоинтов региональных календарей, которые возвращают отобранный список для каждой традиции, здесь полный общеиндийский набор, и у каждой записи указано точное окно титхи. Год проходится по титхи, а не по дням, поэтому титхи короче двадцати четырёх часов не проскользнёт незамеченной, а длинная не будет учтена дважды. `moon_option` определяет, как называются лунные месяцы: 'poornima' берёт месяц пурниманта напрямую, а любое другое значение, включая само 'amavas', берёт месяц аманта и преобразует его — так печатает большинство североиндийских панчанг. Передайте `year`, `date_time` и место. У каждой записи указаны начало и конец определяющей титхи, а не одна дата, поэтому вы сами решаете, на какой календарный день её поставить. Если хотите, чтобы это решили за вас, используйте один из эндпоинтов региональных календарей: они сами определяют для каждого обрядового дня правильную дату соблюдения.
| Поле | Тип | Обязательно | Примечания |
|---|---|---|---|
| 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' — разные моменты, и ответы для них будут разными. Ограничение ФОРМАТА. DRF DateTimeField: только ISO-8601 (входные форматы DRF по умолчанию), например "2026-09-01T06:00:00+05:30", "2026-09-01T06:00:00Z" или "2026-09-01 06:00:00" (без часового пояса подразумевается UTC). |
| keys | array | обязательный | Какие расчёты вернуть — списком названий. См. таблицу ключей этого эндпоинта; нераспознанное название отклоняет весь запрос. Один вызов стоит один кредит, сколько бы ключей вы ни запросили, поэтому запрашивайте всё нужное сразу, а не несколькими вызовами. calculate_festivalsМассив строк; ключ здесь всего один. |
| latitude | number (double) | обязательный | Широта места в десятичных градусах. Положительные значения — север, отрицательные — юг. Пример: 26.9124 для Джайпура, 40.7128 для Нью-Йорка. Минуты и секунды не принимаются — сначала переведите значение в десятичные градусы. min -89.9 · max 89.9 |
| longitude | number (double) | обязательный | Долгота места в десятичных градусах. Положительные значения — восток, отрицательные — запад. Пример: 75.7873 для Джайпура, -74.0060 для Нью-Йорка. Следите за знаком: без минуса Нью-Йорк окажется в Китае. min -180 · max 180 |
| moon_option | string | обязательный | amavaspoornimaС учётом регистра, в нижнем регистре. 'poornima' использует лунный месяц пурниманта напрямую; ЛЮБОЕ другое значение — включая само 'amavas' и любую опечатку — уходит в ветку else (месяц аманта преобразуется в пурниманта), поэтому опечатки молча ведут себя как 'amavas'. Передаётся дальше. |
| timezone_as_float | number (double) | обязательный | Смещение UTC для места, в часах, десятичным числом. Пример: 5.5 для Индии (UTC+05:30), -5 для Нью-Йорка зимой, 5.75 для Непала. Оно НЕ сверяется с date_time: если значения расходятся, вы получите успешный ответ для неверного момента, поэтому берите оба из одного источника. Используйте смещение, действовавшее на эту дату, а не сегодняшнее: для рождения летом в стране с летним временем нужно летнее смещение. min -12 · max 14 |
| year | integer | обязательный | Год рождения числом, например 1990. Четыре цифры. |
Перечислите в keys ровно те расчёты, которые вам нужны. Один неизвестный ключ — и отклоняется весь запрос. Сколько бы ключей вы ни запросили, спишется 1 кредит, так что собирайте их в один вызов.
| Ключ | Доп. поля | Описание | |
|---|---|---|---|
| calculate_festivals | year | Обрядовые дни всего года — объект с пятью списками: `festivals`, `ekadashis`, `jain_festivals`, `sikh_festivals` и `christian_festivals`. У каждой записи есть название праздника, `start` и `end` определяющей титхи (строки с метками времени UTC) и лунный месяц `month`; у записей экадаши также есть `paksha`. Принимает `year`. |