/api/astro/pdf/yearbook/25 кредитовPDF-отчёт «Книга года»
Ближайшие двенадцать месяцев в виде готового PDF с разбивкой по периодам даш. Тело ответа И ЕСТЬ PDF (`application/pdf`): один вызов, ничего не хранится. /api/astro/pdf/horoscope/ описывает натальную карту, а этот отчёт — один год жизни по ней. Гороскоп остаётся тем же документом, сгенерируете вы его сегодня или через десять лет; этот же отчёт привязан к дате и устаревает — запустите его через год, и все страницы будут другими. ГОД ДЕЛИТСЯ НЕ НА КАЛЕНДАРНЫЕ МЕСЯЦЫ, а по пратьянтардашам Вимшоттари — третьему уровню дерева даш. Поэтому каждый раздел начинается и заканчивается в даты, которые задаёт именно эта карта. Период может длиться три недели или два месяца, а первый и последний обычно выходят за границы двенадцатимесячного окна: период печатается целиком или не печатается вовсе. Каждый период разбирается по финансам, карьере, семейной жизни, любви и браку и здоровью: что делать, чего избегать и какие традиционные ремедии подходят для грахи этого периода. Будет ли период поддерживающим или потребует усилий, решается по достоинству, дому и функциональной природе управляющей грахи В ЭТОЙ КАРТЕ, и основания печатаются рядом с выводом. Поэтому два человека в одном и том же периоде Венеры получат разные страницы. ДЕТЕРМИНИРОВАННОСТЬ. Каждый абзац берётся из справочника, а не генерируется: одни и те же данные рождения и один и тот же `start_date` дают побайтно одинаковую книгу, поэтому на любой вопрос в поддержку можно ответить. `start_date` по умолчанию — сегодня. Передайте ближайший день рождения натива, чтобы получить книгу от дня рождения до дня рождения, а не со скользящим началом. Принимает те же данные рождения и тот же необязательный блок `branding`, что и отчёт с гороскопом. Стоит смотреть два заголовка ответа: `X-Report-Periods` показывает, на сколько периодов даш разделён год, так что полную книгу можно отличить от неполной, не открывая её, а `X-Report-Sections-Failed` считает расчёты, которые не удалось выполнить.
https://api.occultapi.com/api/astro/pdf/yearbook/Аутентификация
Передавайте ключ в заголовке X-API-Key. Ключ — это серверные учётные данные: никогда не вставляйте его в JavaScript на стороне браузера или в мобильное приложение.
X-API-Key: yt_live_a1b2c3d4_…
Content-Type: application/jsonПоля запроса
| Поле | Тип | Обязательно | Примечания |
|---|---|---|---|
| latitude | number (double) | обязательный | Широта места в десятичных градусах. Положительные значения — север, отрицательные — юг. Пример: 26.9124 для Джайпура, 40.7128 для Нью-Йорка. Минуты и секунды не принимаются — сначала переведите значение в десятичные градусы. min -90 · max 90 |
| longitude | number (double) | обязательный | Долгота места в десятичных градусах. Положительные значения — восток, отрицательные — запад. Пример: 75.7873 для Джайпура, -74.0060 для Нью-Йорка. Следите за знаком: без минуса Нью-Йорк окажется в Китае. min -180 · max 180 |
| ayanamsa | string | необязательный | |
| branding | object | необязательный | Данные реселлера для обложки, верхнего и нижнего колонтитулов. |
| 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' — разные моменты, и ответы для них будут разными. |
| day | integer | необязательный | День месяца числом, 1-31. min 1 · max 31 |
| gender | string | необязательный | |
| hour | integer | необязательный | Час рождения в 24-часовом формате, 0-23. Местное время в месте рождения. min 0 · max 23 |
| minute | integer | необязательный | min 0 · max 59 |
| month | integer | необязательный | Месяц рождения числом, 1-12. Январь — 1. min 1 · max 12 |
| name | string | необязательный | |
| place | string | необязательный | |
| start_date | string (date) | необязательный | Первый день двенадцатимесячного периода, YYYY-MM-DD. По умолчанию — сегодня. Передайте ближайший день рождения натива, чтобы получить книгу от дня рождения до дня рождения, а не со скользящим началом. |
| timezone_as_float | number (double) | необязательный | Смещение UTC для места, в часах, десятичным числом. Пример: 5.5 для Индии (UTC+05:30), -5 для Нью-Йорка зимой, 5.75 для Непала. Оно НЕ сверяется с date_time: если значения расходятся, вы получите успешный ответ для неверного момента, поэтому берите оба из одного источника. Используйте смещение, действовавшее на эту дату, а не сегодняшнее: для рождения летом в стране с летним временем нужно летнее смещение. min -12 · max 14 |
| year | integer | необязательный | Год рождения числом, например 1990. Четыре цифры. min 1800 · max 2200 |
Пример запроса
curl -X POST https://api.occultapi.com/api/astro/pdf/yearbook/ \
-H "X-API-Key: $OCCULT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Ajeet Kanojia","gender":"male","date_time":"1985-02-23T05:45:00+05:30","latitude":20.8833,"longitude":76.2,"timezone_as_float":5.5,"place":"Malkapur, Maharashtra, India","start_date":"2026-01-01","branding":{"company_name":"Acme Astrology","company_info":"Vedic reports since 2011.","company_email":"hello@acme.example","domain_url":"https://acme.example","footer_link":"acme.example"}}'Ответ
Ошибки
Ошибки списания кредитов приходят в виде { "error": "…", "message": "<code>", "is_error": true }. Людям показывайте error, а логику стройте на message. Подробнее — в справочнике ошибок.