AstroWay/api v2.158.7 · changelog
усі системи в нормі

// product · release notes

Changelog що нового

Лише зміни, що впливають на код інтегратора: нові ендпоінти, оновлення SDK, зміни в /openapi.json, правки цін у кредитах, deprecation, breaking changes. Найновіші згори. Внутрішні правки сайту сюди не потрапляють.

Latest · v2.158.7 Endpoints · 748 CI tests · 873 API contract · v1 stable · 12-mo deprecation

Усі зміни, що впливають на код інтегратора: нові ендпоінти, оновлення SDK, зміни в /openapi.json, правки цін у кредитах, deprecation, breaking changes. Найновіші - згори. Внутрішні зміни сайту тут не фіксуються.

API-контракт стабільний у межах /v1/* - будь-яке breaking-зміна виходить під /v2/*, а /v1/* продовжує працювати щонайменше 12 місяців.

2026-08-28 · Параметри запиту, які раніше не перевірялися, тепер описані й валідуються

Шість ендпоінтів читали поле, якого не було в їхній схемі. Таке поле не перевірялося й не потрапляло до /openapi.json, тож ішло в розрахунок як є і ламало відповідь трьома різними способами, і завжди під статусом 200.

Що робити з вашим кодом. Якщо ви надсилали коректні значення, не робіть нічого: поведінка не змінилася, числові рядки так само приводяться до чисел. Якщо ви надсилали щось некоректне, тепер прийде 400 з INVALID_INPUT замість тихо зіпсованої відповіді. Нові параметри тепер описані у /openapi.json, тож вони з’являться у SDK і MCP після наступної регенерації.

orb у /v1/parallel-aspects і /v1/midpoint-trees був найнебезпечнішим: нечислове значення робило хибним кожне порівняння, і замість шести аспектів чи десяти дерев поверталася порожня відповідь. Порожній масив читається як «нічого не знайдено», а не як «поганий запит», тож помітити це на своєму боці було неможливо.

targetDate у /v1/vedic/jaimini/dasha-summary і /v1/vedic/doshas/kp/sade-sati повертав усі даші як null. key і maxAge у /v1/primary-directions тихо псували вибірку: key тут це швидкість у градусах на рік, а не назва режиму, і тепер це число з межами.

Друга хвиля закрила клас повністю. parts у /v1/arabic-parts і maxYears у /v1/firdaria так само віддавали порожній результат замість 20 жеребів і 63 періодів. termsData і decansData у /v1/almuten, /v1/essential-dignities, /v1/hyleg і /v1/receptions роняли обробник у 500. /v1/hd/incarnation-cross узагалі не перевіряв номери воріт, а /v1/human-design/transits брав натальну дату, якої не було в схемі, і накладав транзити на хибну карту, і відповідь при цьому виглядала звичайною.

2026-08-27 · Специфікація тепер описує кожне тіло запиту й відповіді публічних роутів

/v1/openapi.json віддавав для 246 шляхів порожнє тіло запиту: {"type": "object"} без жодного поля. Ендпоінти працювали й перевіряли вхід як завжди, але специфікація про цей вхід не казала нічого, тому згенерований із неї клієнт не мав типу для запиту, а агент, який читає схему, не бачив назв полів. Тепер таких шляхів нуль.

Найбільші групи: нумерологія (50 шляхів), таро (47), китайський блок (14), тварини (14), варги (16), дзи-вей (13), бізнес (11), базі (11), фінанси (10), велнес (9), майя (8). Двадцять шість шляхів, чиї обробники не читають тіло взагалі (16 фігур геомантії, 5 ліній хіромантії, чотири стріми, каталог рун), тепер посилаються на EmptyBody: раніше специфікація казала «тіло може бути будь-яким», тепер каже правду - його немає.

PATCH і PUT не мали тіла в специфікації взагалі. Генератор описував його тільки для POST, тому PATCH /v1/whitelabel/config не публікував нічого, хоча роут перевіряє кожен виклик. Тепер у нього є схема.

Вісім публічних роутів не мали схеми відповіді. По всій специфікації її мали 733 операції з 758, а без неї лишалися саме ті, які читають server-side без ключа: POST /v1/public/chart, POST /v1/public/human-design, три гороскопи, GET /v1/public/tarot/daily, /moon-phase і /planet-of-day. Тепер кожна віддає ok, data і _footer з полями всередині; обидва POST беруть схему в свого автентифікованого двійника, тож поле, додане в /v1/chart, не може зникнути з /v1/public/chart.

Заразом виправлені надруковані приклади, які були неправильні: у публічному таро position і card показувалися рядками, хоча це об’єкти, а /public/moon-phase і /public/planet-of-day не показували localized взагалі. Приклади /v1/chart і /v1/human-design не містили семи й шести полів верхнього рівня відповідно, а channels був надрукований у формі, якої рушій ніколи не повертав.

Що зробити з вашим кодом. Нічого, якщо ви пишете запити руками: жодне поле не перейменоване, не додане й не прибране, валідація та сама. Якщо ви генеруєте клієнт зі специфікації, перегенеруйте його: там, де раніше було unknown, тепер тип із полями, і публічні відповіді теж типізовані.

2026-08-24 · Документація ведичної сумісності виправлена, тіло запиту це chart1/chart2

Сторінка /vedic/compatibility/ показувала тіло запиту з полями person1 і person2. Жоден із шести ендпоінтів ніколи їх не приймав: схема весь час вимагала chart1 і chart2, тому кожен приклад із тієї сторінки повертав 400 INVALID_INPUT. Сама схема не змінювалась, змінилась документація.

Що ще було неточним на тій сторінці і тепер відповідає реальності:

  • /vedic/compatibility/full повертає data.manglik.partner1, partner2 і verdict. Ключів person1.present, cancelled і bhrigu там немає, Bhrigu-Bindu це окремий ендпоінт /bhrigu-match.
  • Відповідь /ashtakoot має вигляд data.{method, school, boy, girl, total, max, threshold, points{}, doshas[], recommendation}. Полів passing_threshold, verdict, breakdown[] і warnings[] не існує.
  • Вартість: mangal-match, bhrigu-match і full це 50 кредитів кожен, а не 20, 30 і 100. Ціни не змінювались, у таблиці були неправильні числа.

Приклади на сторінці тепер запущені проти продакшна, а відповідь у JSON це дослівний захват для тієї самої пари, що в запиті вище.

2026-08-22 · Повтор запиту з кешу більше не списує кредити

Ми пишемо на сторінці вартості і в конвенціях, що відповідь із заголовком X-Cache: HIT не коштує кредитів. Насправді вона коштувала повну ціну: списання відбувається до кешу, і нічого його не скасовувало. Перевірено трьома однаковими викликами /v1/acg/by-category: два з них повернули X-Cache: HIT, і баланс щоразу зменшувався на 50.

Тепер повтор ідентичного запиту протягом 5 хвилин коштує 0, а X-Credits-Used і X-Credits-Remaining у відповіді показують це чесно.

Той самий запит іншою мовою міг повернути чужу мову. Ключ кешу враховував ?lang=, бо той їде в query, але не враховував заголовок Accept-Language. Два клієнти на одному тарифі з однаковим тілом і різними мовами ділили один запис. Запит із Accept-Language: de повертав українську відповідь, у якій ще й було написано requestedLanguage: "uk". Мова тепер входить у ключ.

/v1/interpret/* більше не проходить через цей кеш. У нього є власний AI-кеш із годинним TTL і 50% знижкою на повтор, і саме він мав відповідати, але список винятків містив interpret замість interpret/*, тому першим завжди спрацьовував загальний. /v1/horoscope/* навпаки залишається тут: його обробник звертається до моделі на кожен запит, і цей кеш - єдине, що стоїть між повтором і другою генерацією.

Що зробити з вашим кодом. Нічого. Якщо ви обходили кеш, додаючи в тіло щось випадкове, щоб не платити двічі за ту саму відповідь, тепер це не потрібно.

2026-08-22 · Ціни в кредитах на кількох сторінках були надруковані неправильно

Таблиці «Кредити» в документації називали одні числа, а списувалися інші. Жодна ціна не змінилася: неправильним був друкований бік. Точна вартість завжди була і залишається в X-Credits-Used кожної відповіді та на сторінці Вартість ендпоінта, яка будується прямо з тарифної таблиці.

Де було дорожче, ніж написано. Це той бік, який б’є по бюджету:

ЕндпоінтБуло в докахСписується
/v1/horoscope/daily, /weekly, /monthly2050
/v1/horoscope/yearly50100
/v1/interpret/natal, /synastry, /transits50100
/v1/interpret/element, /placement20100
/v1/eclipses20100
/v1/vedic/panchang/tithi, /karana, /yoga1020
/v1/vedic/panchang/rahu-kaal, /choghadia, /hora10 і 2050
/v1/vedic/doshas/parashara/*2050

Зворотний бік теж є: доші Лал Кітаб і КП, йоги Джайміні та частина дашів коштують 10, а не 20-100, як було написано.

Що зробити з вашим кодом. Перерахувати бюджет кредитів, якщо ви планували його за цими сторінками, і звірити з X-Credits-Used у власних логах. Викликів міняти не треба.

Вісімнадцять шляхів у тих самих таблицях ніколи не існували. Якщо у вашому коді є хоч один із них, він повертає 404 сьогодні і повертав завжди: усі /v1/vedic/doshas/jaimini/*, /v1/vedic/doshas/all, /v1/vedic/muhurat/engagement, /griha-pravesh, /court-case, /v1/vedic/yogas/jaimini/atmakaraka, /badhaka. Три були опискою в назві і тепер виправлені: /v1/vedic/doshas/kp/mangal це kp/manglik, /v1/vedic/doshas/lal-kitab/kaal-sarp це lal-kitab/kalsarpa, /v1/vedic/panchang/nakshatra це panchang/nakshatra-of-day.

Варги ніколи не приймали levels. Сторінка обіцяла один виклик /v1/vedic/vargas з масивом рівнів; такого шляху немає. Кожна ділена карта це свій шлях, /v1/vedic/varga/D9 і решта, по 20 кредитів за карту.

Кожна цифра в документації тепер звіряється з тарифною таблицею механічно, на кожен коміт.

2026-08-21 · Символічні дирекції: ключ дуги тепер перевіряється, solar arc рахує

POST /v1/symbolic-directions приймає параметр key із трьома значеннями: one_degree (за замовчуванням, 1° на рік), naibod (59’08.3” на рік) і solar_arc (дуга прогресованого Сонця). Раніше параметр не був описаний у схемі й потрапляв у розрахунок як є, тому будь-яке значення, окрім naibod, давало null у всіх довготах, куспідах, асценденті та в самій дузі, і все це під статусом 200.

Що робити з вашим кодом. Якщо ви надсилали key: "solar_arc" чи key: "one_degree" і отримували null, тепер приходять числа: нічого міняти не треба, відповідь просто стала осмисленою. Якщо ви надсилали будь-яке інше значення, тепер повертається 400 з INVALID_INPUT замість тихого null. У відповідь додано поле key, яке повертає застосований ключ.

solar_arc рахується як дуга, пройдена прогресованим Сонцем (день за рік), тож для народженого в травні вона трохи менша за градус на рік: 34.51° проти 36.00° за 36 років. Конверсні дирекції (converse: true) обертають знак дуги один раз.

2026-08-17 · Планетарні години й час сходу виправлені для половини часових поясів

POST /v1/planetary-hours і POST /v1/sun-times повертали неправильні значення скрізь, де місцева доба не збігається з добою UT. Година сходу бралася всередині доби UT і до неї додавався зсув без приведення до доби, тому Сеул віддавав riseHour 29.81, а Лос-Анджелес setHour -4.36. Тривалість денної години рахується як (setHour - riseHour) / 12, тож вона виходила відʼємною, і таблиця з 24 годин ішла назад у часі.

Кого це зачепило. Уся Східна Азія й Океанія, Делі біля сонцестояння, вечір обох Америк. Київ і Європа рахувалися правильно і до, і після.

Що зробити з вашим кодом. Нічого міняти не треба, контракт той самий. Але якщо ви кешували відповіді /planetary-hours або /sun-times для цих регіонів, заберіть їх заново: збережене значення неправильне.

Перевірено проти api.sunrise-sunset.org на Сеулі, Токіо, Лос-Анджелесі й Окленді: розбіжність 1-2 хвилини, вона систематична й була там і до виправлення.

Разом з цим: tzOffset у тілі запиту тепер відхиляється з 400 INVALID_FIELD і підказкою. Раніше таке поле мовчки ігнорувалося, зсув ставав нулем, і карта рахувалася для UTC без жодної ознаки, що щось не так. Правильна назва поля залишається timezoneOffset.

2026-08-14 · Астрокартографія: сфери життя та інтерпретації ліній

Три нових ендпоінти перетворюють геометрію /v1/acg на відповідь про місце. GET /v1/acg/categories віддає таксономію з 19 сфер життя (кар’єра, кохання, гроші, здоров’я, дім, навчання, вплив, подорожі та інші): кожна називає свої лінії планета-кут із вагою 1-3 і полярністю. Безкоштовно, кешуйте на своєму боці.

POST /v1/acg/by-category повертає лінії однієї сфери, відранжовані за вагою, а якщо передати point, то й за близькістю до нього (strength = вага × близькість, плюс distanceDeg). Tier 3. POST /v1/acg/line-report віддає одну лінію повністю: геометрію, всі сфери, яких вона торкається, і текст інтерпретації. Tier 2. Геометрія приходить як segments, масив полілиній: крива сходу чи заходу складається з кількох роз’єднаних відрізків, і повертаються всі.

Текст подається з кураторської бази знань 11 мовами (language, відкіт en → uk, реально віддана мова повертається в полі lang), а не з мовної моделі: відповіді детерміновані. Складні лінії повертаються поруч зі сприятливими; фільтруйте через polarity, якщо потрібні лише одні. Деталі: Інтерпретації астрокартографії.

Разом із цим виправлено довідник: описи /parans, /local-space, /solar-acg, /acg-zones і /zenith розходилися з фактичними відповідями. Самі ендпоінти не змінювалися, змінилася лише документація до них.

2026-08-13 · POST /v1/reports/relocation, до п’яти місць в одному PDF

Що робити з вашим кодом. Нічого, якщо ви не будували релокаційний документ самі. Якщо будували, склеюючи /v1/relocation з /v1/acg-zones для кожного міста, тепер це один виклик, і він повертає готовий PDF або HTML з ?format=html. Тариф Tier 7, 5000 кредитів.

У тілі: chart, масив locations від одного до п’яти елементів, кожен із координатами, і необов’язкові categories, orbKm, language, whitelabel. Координати обов’язкові для кожного місця й нулями не підставляються: звіт, збудований на 0N 0E, це впевнений документ про Гвінейську затоку, а PDF, на відміну від поля в JSON, залишається у клієнта.

Для кожного місця документ дає релокаційні асцендент і середину неба зі знаковим зсувом від народження, перелік планет, які змінили дім (це і є суть релокації, зведена різницею, а не двома таблицями), кожну астрокартографічну лінію в межах 300 км разом із текстом тлумачення, і бали по сферах життя. Коли місць більше одного, документ відкривається таблицею порівняння.

Свідомо без AI-розповіді й без колеса карти. Колесо релокаційної карти показує ті самі планети в повернутій рамці й читається як друга карта, а це якраз те непорозуміння, яке звіт знімає першим абзацом; розповідь про місце була б порадою, де жити.

2026-08-12 · Горизонтні лінії астрокартографії виправлено, приберіть обхід

Що робити з вашим кодом. Якщо за записом нижче ви поміняли ASC і DSC місцями у себе, приберіть цей обхід: інакше ви знову читаєте не ту половину. Якщо ви читали поле knownDefect, його більше немає у відповідях /v1/acg, /v1/acg-zones, /v1/acg/by-category, /v1/acg/line-report, /v1/parans і /v1/solar-acg. Якщо ви не встигли нічого змінити, робити нічого не треба.

Змінились не лише мітки, а й координати. Стара формула розв’язувала горизонтну криву через екліптичну довготу і не враховувала екліптичну широту тіла, тому лінія відхилялась приблизно на 103 км за кожен градус цієї широти. Для Сонця і вузлів це нуль, для Місяця сотні кілометрів, а для тіла, що стоїть високо над екліптикою, понад 1500 км. Тепер обидві половини рахуються з рівняння горизонту в екваторіальних координатах, як і MC з IC.

Практичний наслідок: кешовані карти й збережені координати ліній варто перебудувати, інакше вони розійдуться з новими відповідями. Парани (/v1/parans) зсунулись услід за лініями. POST /v1/acg/best-places і POST /v1/parans/star не змінились: вони від початку рахували власну геометрію з прямого сходження і схилення, і саме розбіжність із ними виявила помилку.

Перевірка, яку тепер видно на сторінці точності: береться кожна точка кожної горизонтної кривої і рахується висота тіла над горизонтом у ній. На 8419 точках максимальне відхилення нульове.

2026-08-12 · На горизонтних лініях астрокартографії мітки ASC і DSC поміняні місцями

Що робити з вашим кодом. Якщо ви розрізняєте ASC і DSC у відповідях астрокартографічних ендпоінтів, поміняйте їх місцями у себе: те, що ми позначаємо ASC, це захід, а DSC це схід. Перераховувати нічого не треба, переставлені саме мітки, а не геометрія. Якщо ви працюєте лише з MC та IC або взагалі не дивитесь на тип лінії, робити нічого не треба.

Зачеплені /v1/acg, /v1/acg-zones, /v1/acg/by-category, /v1/acg/line-report, /v1/parans і /v1/solar-acg. Кожен із них із цього дня повертає у тілі відповіді поле knownDefect зі стабільним id acg-horizon-labels-inverted, описом і способом обійти. Поле лежить усередині data, а не поруч із ним, тому воно переживає розпакування конверта, яке роблять наші SDK. Воно зникне разом із дефектом, тож не покладайтесь на його присутність назавжди.

MC та IC коректні: вони рахуються з прямого сходження окремо. POST /v1/acg/best-places теж коректний, він рахує власну геометрію з годинного кута і схилення. Там, де best-places розходиться з /acg/by-category на горизонтних лініях, має рацію best-places.

Окремо попереджаємо про тлумачення: текст у /acg/by-category і /acg/line-report обирається за парою (планета, кут), тому разом із міткою він теж стосується протилежної половини кривої.

Знайдено 2026-08-05 під час звірки двох наших власних ендпоінтів між собою. Виправлення належить спільному ядру розрахунків і готується; цей запис оновиться, коли воно приїде.

2026-08-10 · @astroway/sdk 1.5.1, приклад зі швидкого старту тепер працює

Що робити з вашим кодом. Нічого, якщо ви не копіювали швидкий старт із README. Якщо копіювали, виправте: chart.angles.asc не існує.

У відповіді /chart немає ключа angles. Асцендент лежить у chart.houses.ascendant і є екліптичною довготою в градусах, а не назвою знака: /chart взагалі не повертає готових підписів. Тобто перший же виклик, який копіював новий інтегратор, падав із TypeError. У README тепер робочий приклад із виведенням знака з довготи (Math.floor(longitude / 30)), і кожен приклад із змінених розділів прогнано проти продакшена перед тим, як його записали.

Заодно в розділі про помилки описано 400 INVALID_FIELD: короткі імена координат у тілі відхиляються, а details називає всі проблемні поля за раз.

2026-08-10 · astroway 1.4.1 (Python), приклад зі швидкого старту тепер працює

Що робити з вашим кодом. Нічого, якщо ви не копіювали швидкий старт із README. Якщо копіювали, виправте: chart["angles"]["asc"] кидає KeyError.

Ключа angles у відповіді /chart немає. Асцендент це chart["houses"]["ascendant"], екліптична довгота в градусах, а не назва знака. Той самий рядок був і в асинхронному прикладі, виправлено обидва. Розділ про помилки отримав опис 400 INVALID_FIELD із масивом details.

2026-08-10 · astroway/sdk 1.4.1 (PHP), приклад зі швидкого старту тепер працює

Що робити з вашим кодом. Нічого, якщо ви не копіювали швидкий старт із README. Якщо копіювали, виправте: $chart['angles']['asc'] це неіснуючий ключ.

Асцендент лежить у $chart['houses']['ascendant'] і є екліптичною довготою в градусах. Розділ про помилки отримав опис 400 INVALID_FIELD; зверніть увагу, що код помилки читається як $e->errorCode, бо $e->code зайнятий базовим \Exception.

2026-08-10 · Короткі імена координат відхиляються, і тепер помилка називає всі поля одразу

Що робити з вашим кодом. Якщо ви надсилаєте lat, lon, lng, long, tz, timezone, timeZone чи time_zone у тілі chart-запиту, перейменуйте їх на latitude, longitude і timezoneOffset. Якщо ви вже надсилаєте повні імена, робити нічого не треба. Швидка перевірка: grep по вашому коду на "lat" і "tz" у тілах запитів.

Відхилення діє з 2026-08-01, і це не депрекація. Короткі імена ніколи не були в контракті й не фігурували в /openapi.json як поля тіла. Вони не працювали, а мовчки ігнорувалися: координати мають типовий нуль, тому карта рахувалася для 0°N 0°E за UTC. Асцендент, доми і все похідне від них поверталися неправильними, і у відповіді не було нічого, що б на це вказувало. Ми не приймаємо ці форми назад: це два імені на одне поле назавжди, а tz до того ж неоднозначний, бо ним шлють і число, і назву зони.

Сьогодні виправлено сам формат відмови. Раніше відповідь називала лише одне поле за раз, тож тіло з трьома короткими іменами вимагало трьох підходів. Тепер 400 INVALID_FIELD перелічує всі знайдені поля за один раз у порядку тіла, додає details з { path, expected, message } по кожному (той самий масив, що вже є в INVALID_INPUT) і посилання на розділ документації. path містить повний шлях, тому в synastry видно, чия саме карта: chart1.lat. Код розписано в Помилки.

Вкладений point: { lat, lng } у /v1/acg-zones, /v1/acg/by-category, /v1/ccg-analysis і /v1/eclipse-analysis не зачеплено: там це задекларовані імена полів.

Заразом виправлено опис ChartInput у /openapi.json, який називав короткі імена й описував нульові координати як прийнятний типовий варіант. Це зачіпає 31 схему, а разом з ними згенеровані типи в SDK і описи інструментів MCP. Якщо ваш код або ваш агент будувалися за старим описом, звіртеся з новим.

latitude і longitude стають обов’язковими з 2026-11-09

Та сама пастка з іншого боку. Координати мали типовий нуль, тому тіло без них теж отримувало 200 з картою для 0°N 0°E: доми, кути й усе похідне рахувалися там, і у відповіді не було нічого, що б на це вказувало.

Що робити з вашим кодом. Якщо ви надсилаєте latitude і longitude, нічого. Якщо не надсилаєте, додайте їх до 2026-11-09.

До 2026-11-09 нічого не ламається. Запит без координат далі працює, але перестає бути тихим: відповідь несе заголовки Deprecation, Sunset, Warning і поле _warning у тілі, яке прямо каже, що місце вигадане. З 2026-11-09 таке тіло отримає 400 з назвою відсутнього поля. Ми дали 90 днів, а не звичні 12 місяців стабільності /v1: тут не знімається робоча можливість, тут припиняється видача неправильної відповіді.

Явні latitude: 0, longitude: 0 лишаються валідними. Питання у відсутньому полі, а не в значенні: хто справді має на увазі Гвінейську затоку, той так і пише.

timezoneOffset типовий нуль зберігає: там нуль означає UTC, реальне значення. І врахуйте, що city це підпис, а не вхідні дані: жоден ендпоінт його не геокодує, тому він ніколи не замінює координати.

Заодно широта поза ±90 і довгота поза ±180 тепер відхиляються. Раніше проходили.

2026-08-09 · POST /v1/ziwei/four-transformations, 四化 за роками, з усіма версіями шкіл

Новий ендпоінт віддає чотири зірки, які активує небесний стовбур року народження: 化禄 (достаток), 化权 (влада), 化科 (визнання), 化忌 (перешкода). Це єдина частина Цзи Вей, яку можна порахувати без розміщення зірок по палацах, бо вона залежить лише від стовбура року.

Стовбур береться з точної миті Лічуня, тож народження в день межі дає різні зірки залежно від години. 3 лютого 2025 опівдні це стовбур 甲 і 廉贞 у 化禄, а о 23:59 вже 乙 і 天机.

Головне: там, де традиції не згодні, ми віддаємо всі версії. Сім стовбурів із десяти читаються однаково в усіх переданнях, які ми звіряли. Три (戊, 庚, 壬) розходяться, і для них відповідь містить schoolVariants з читанням кожної школи, а поле disputed це позначає. Стовбур 庚 зсуває не лише 化科, а й 化忌, тобто ігнорування питання школи змінює зірку перешкоди, а не просто зірку визнання.

За замовчуванням ми йдемо за 中州派. Параметр school перемикає на quanji, quanshu або beipai. Якщо звіряєтеся зі звичайним онлайн-калькулятором, беріть quanji: більшість із них возять саме цю таблицю. Tier 1.

2026-08-08 · /v1/status приймає ключ у заголовку, параметр ?key= застарів

GET /v1/status тепер читає ключ із заголовка X-Api-Key. Параметр ?key= далі працює, але позначений застарілим: відповіді на нього несуть заголовки Deprecation і Warning.

Що робити з вашим кодом. Перенесіть ключ зі стрічки запиту в заголовок:

Terminal window
curl -H "X-Api-Key: aw_live_ваш_ключ" https://api.astroway.info/v1/status

Причина не косметична. URL потрапляє в журнали веб-сервера, у журнали CDN і в історію браузера, тому ключ, переданий у стрічці запиту, перестає бути таємницею. Значення ключів у наших журналах відтепер приховуються, але записане раніше вже записане.

Дату вимкнення параметра оголосимо окремо, не менш ніж за 90 днів наперед.

2026-08-07 · Stellaforge: постер натальної карти (/v1/reports/stellaforge)

Новий ендпоінт рендерить готовий до друку постер натальної карти - кольорове колесо (сектори стихій, градусні підписи, стрілка ASC, маркер MC, доми), велика трійка Сонце/Місяць/Асцендент, таблиця планет, баланс стихій і модальностей, ключові аспекти. Повністю детерміновано, 0 AI. Tier 7.

Три стилі через style: editorial (світлий), celestial (темний + золото), classic (мінімалістичний). PDF за замовчуванням, ?format=html віддає HTML. Підтримує white-label і багатомовність. NB: style читається з тіла запиту, не з query-string. Деталі - Stellaforge.

2026-07-31 · /v1/match/score, dating-сумісність одним викликом

Новий ендпоінт для застосунків знайомств: повертає сумісність одним запитом замість окремих synastry + attraction + власної логіки прапорців. Tier 3. Той самий вхід chart1 + chart2, що й /synastry.

Повертає score (0-100) + label + harmony/tension + attraction (окремий скор) + topAspectstone) + greenFlags/redFlags. Числа ідентичні /synastry + /synastry/attraction-score - це переформатований вивід того самого рушія, не нова модель скорингу. Деталі - Dating & Compatibility API.

2026-07-28 · Китайський календар рахується з ефемерид: точні цзєці, місячні місяці, локальний час для дня і години

Межі китайського сонячного року і місяця більше не беруться з таблиці календарних дат. Тепер це фактичні миті: сонячний термін це момент, коли видима довгота Сонця досягає кратної 15°, а місячний місяць починається пекінського дня, на який припадає молодик.

Це виправляє відповіді, а не лише формулювання. Лічунь (立春) припадає будь-коли на 3-5 лютого і о будь-якій годині: 2026 року о 04:02 за Пекіном, 2025 року взагалі 3 лютого. Старе правило «до 4 лютого» відносило всі народження того дня до одного відра. Народження 2025-02-03 тепер повертає Jia-Chen (Дракон) опівдні та Yi-Si (Змія) о 23:59, як і має бути. Те саме дванадцять разів на рік на межах місяців. Якщо ви кешували відповіді /bazi/* або /chinese/* для дат поблизу 3-5 лютого чи початку будь-якого місяця, перерахуйте їх.

Усі ендпоінти /bazi/* та /chinese/* тепер приймають необов’язкові time і timezoneOffset. Саме вони вирішують відповідь біля межі; без них календар припускає пекінський полудень. Межі завжди рахуються за китайським стандартним часом, незалежно від того, де народилася людина.

Заодно виправлено дві помилки. /v1/bazi/luck-pillars брав стовбур року з григоріанського року замість сонячного, через що для січневих народжень послідовність ішла у зворотний бік. /v1/chinese/zodiac/inner-animal зіставляв номер григоріанського місяця з гілкою напряму, тож кожна відповідь була зсунута на одну позицію: середина червня давала Козу там, де місяць Wu дає Коня.

Два нові ендпоінти. POST /v1/chinese/solar-terms віддає 24 терміни року як точні миті в UTC і за Пекіном, з позначкою, які з них відкривають стовп місяця. POST /v1/chinese/lunar-date перетворює григоріанську дату на місячну, включно з визначенням високосного місяця, і повертає дату Нового року. Обидва Tier 1.

День і година тепер рахуються за місцевим часом народження. Гілка години бралася від пекінського еквівалента години народження, тоді як дата лишалася місцевою. Через це /v1/bazi/hour-pillar і /v1/bazi/four-pillars віддавали різні стовпи години для одного народження, а день для timezoneOffset: 3 переходив на наступний о 18:00 замість 23:00. Тепер день і година йдуть за годинником місця народження (гілка Zi відкриває день о 23:00 місцевого), а рік і місяць залишаються прив’язаними до митей Лічуня і цзє. Якщо ви кешували /bazi/* для народжень поза UTC+8, перерахуйте їх. У відповіді /v1/bazi/hour-pillar з’явилося поле localHour; cstHour лишається на місці.

POST /v1/bazi/luck-pillars тепер рахує справжній вік початку (起運), а не рівні десять років. Відстань від народження до межового цзє переводиться у вік із розрахунку три дні на рік життя, тож ageStart першого стовпа більше не дорівнює 10. Додано поля startAge (роки і місяці) та startReference (який саме термін узято за межу).

Час у запитах до /bazi/*, /chinese/*, /ziwei/* тепер валідується. Значення на кшталт 99:99:99 чи 23:60:00 раніше переносилися на наступну добу, і відповідь описувала не ту дату, яку ви надіслали, а ту, куди її знесло. Тепер це 400. 24:00:00 як опівніч, що завершує добу, лишається дозволеним. Ті самі перевірки додано у /v1/compat/full, /v1/compat/astro-chinese, /v1/profile/spiritual-path і /v1/profile/multi-archetype, які вплітають китайський шар.

POST /v1/chinese/solar-terms приймає роки 2-2899 замість колишніх 1900-2100: це та сама межа, що й у решти китайських ендпоінтів.

Найважливіше: виправлено якір денного стовпа. Точка відліку шістдесятиденного циклу була зсунута на 29 позицій: код вважав, що 1990-01-01 це Yi-Wei, тоді як це Bing-Yin. Через це кожен денний стовп був неправильний, а разом із ним day master, стовбур години і всі десять божеств. Зачеплені /v1/bazi/four-pillars, /v1/bazi/day-master, /v1/bazi/hour-pillar, /v1/bazi/ten-gods, а також натальний day master у /v1/bazi/yearly і /v1/bazi/monthly. Рік, місяць і люк-пілари не зачеплені. Якщо ви зберігали будь-які відповіді /bazi/*, перерахуйте їх повністю. Перевірити просто: 1949-10-01 це 甲子, 2000-01-01 це 戊午, 2024-02-10 це 甲辰.

POST /v1/chinese/lunar-date віддавав неіснуючий тридцятий день у місяці з двадцяти дев’яти, з’їдаючи перший день одинадцятого місяця. Приблизно 72 дати між 1900 і 2100, кінець листопада і початок грудня: 2021-12-04 повертав «month 10, day 30», хоча той самий ендпоінт повідомляв, що одинадцятий місяць починається саме 2021-12-04. Виправлено, звірено день за днем на 73 414 датах.

До 1929 року календар тепер рахується за пекінським місцевим середнім часом (UTC+7:45:40), як це й було історично, а не за UTC+8. Це зсуває три місяці до 1929 року, зокрема Новий рік 1916 повертається на історичне 3 лютого. Молодик, що припадає на кілька хвилин від місцевої півночі, все одно може розійтися з друкованим альманахом того часу на добу: ті таблиці рахувалися з точністю свого століття. Застереження є у відповіді ендпоінта.

Чотири ендпоінти, що вплітають китайський шар (/v1/compat/full, /v1/compat/astro-chinese, /v1/profile/spiritual-path, /v1/profile/multi-archetype), тепер враховують годину і часовий пояс при визначенні тварини, а не лише дату.

2026-07-27 · Zi Wei Dou Shu: виправлено довідник 14 головних зірок

POST /v1/ziwei/main-stars віддавав 14 записів, з яких унікальних було 13: зірка 太阳 (Tai Yang) дублювалася під назвами «Sun» і «Sun God», а 巨门 (Ju Men, Giant Gate) була відсутня зовсім. Тепер у відповіді всі 14 канонічних зірок.

Виправлено назви та романізацію. 天府 має піньїнь Tian Fu (був Tian Hou, а це 天后, інше божество); 武曲 стала Martial Melody (був Big Dipper, тобто 北斗七星, сузір’я); 天梁 стала Heavenly Beam (був Heavenly Mansion, який належить 天府); 廉贞 стала Chastity (був Distinguished Stars); 天同 стала Heavenly Unity. У палацах: 疾厄宫 має піньїнь Ji'e (був Jie'e), а палац друзів тепер канонічний 仆役宫 з піньїнем Puyi (був розмовний 朋友宫 / Pengyou).

Порядок масиву змінено на канонічний: спершу шість зірок ряду 紫微, потім вісім ряду 天府. Додано поле series. Якщо ви зіставляли зірки за англійською назвою або за індексом у масиві, зіставлення зламається. Найстабільніший ключ це chinese: він не змінився в жодної зірки, крім доданої 巨门.

Поле disclaimer у відповідях /ziwei/* тепер прямо каже те, що раніше лишалося тільки в коментарі до коду: таблиці палаців і зірок статичні, вони не залежать від дати народження, з неї виводяться лише solarYear та animal. Розміщення зірок по палацах поки не реалізоване.

2026-07-24 · Muhurta API: каталог активностей + звіт сприятливих дат

Два нові ендпоінти поверх наявних /v1/vedic/muhurat/*:

  • GET /v1/muhurta/types: каталог 12 активностей (ключ + санскрит + опис), безкоштовно
  • POST /v1/reports/muhurta: готовий звіт сприятливих дат (PDF за замовчуванням, ?format=html), Tier 7

Що зробити: для підбору дати під подію - оберіть активність із /muhurta/types, скануйте вікно через /vedic/muhurat/{activity} (JSON) або одразу отримайте готовий звіт через /reports/muhurta. Деталі - Muhurta API.

2026-07-17 · Cosmic Notifications: вебхуки /webhooks/* тепер спрацьовують автоматично

Зареєстровані вебхуки на космічні події тепер доставляються автоматично - раніше підписка створювалась, але нічого не надсилала. Live-події (глобальні, без натальних даних): retrograde-start, retrograde-end, sign-ingress, void-of-course-start, eclipse-alert (за 7 днів до затемнення).

Що зробити: якщо ви реєстрували /v1/webhooks/<подія> - переконайтесь, що ваш endpoint приймає POST із заголовком X-AstroWay-Signature: sha256=<hmac> і звіряє підпис (HMAC-SHA256(signing_secret, raw_body)). Доставка події не тарифікується; підписка авто-відключається після 5 поспіль невдалих доставок. Деталі - Cosmic Notifications.

2026-07-11 · Vedic-ендпоінти: сидеричний лагна + локальний час у дашах

Всі ведичні ендпоінти, що спираються на лагну, рахували її від тропічного асценденту, хоча планети вже були сидеричними: дивізіональні карти (/vedic/varga/*), доші (/vedic/doshas/*), Джайміні (/vedic/jaimini/*), сумісність (/vedic/compatibility/*), KP (/vedic/kp/*, включно з куспідами домів), йоги (/vedic/yogas/*), Шадбала, Аштакаварга, раші-дашы (Чара/Стхіра/Шула) і Лал Кітаб, а також звіт Vedic Kundli. Тепер лагна (і куспіди для KP/Шадбали) сидерична, а ayanamsa у відповіді варги більше не дорівнює 0. Для народжень, де тропічний і сидеричний асцендент потрапляють у різні знаки, знак лагни та залежні від нього значення (доми, доші, арудхи, раші-дашы, KP sub-lords, сила домів) зміняться. Це виправлення, а не регресія.

Дати періодів у Вімшоттарі та інших дашах тепер у локальному поясі народження, а не UTC (народження 02:05 більше не показується як попередній день). Точний момент лишається у полях startJd/endJd. Fusion-ендпоінти (/forecast/multi-system, /forecast/yearly-fusion) тепер теж рахують махадашу від сидеричного Місяця (раніше брали тропічний, через що володар дашы міг бути неправильним) і показують дати локально.

Поле пояса приймає лише числовий timezoneOffset (години від UTC). Назва пояса ("timezone": "Asia/Kathmandu") тепер повертає 400 замість тихого розрахунку в UTC.

Що зробити: перерахуйте кешовані ведичні результати, бо знак лагни міг змінитися; для точного моменту періодів даш беріть startJd/endJd; замініть назви поясів на числовий timezoneOffset (напр. 5.75).

2026-07-10 · POST /v1/aspects, окремий ендпоінт для аспектів

Новий ендпоінт для одного лише розрахунку аспектів - без planets / houses / midpoints payload-у /chart. Tier 1: 10 кредитів за виклик.

Terminal window
curl -X POST https://api.astroway.info/v1/aspects \
-H "X-Api-Key: aw_live_..." \
-H "Content-Type: application/json" \
-d '{"date":"1926-06-01","time":"09:30:00","timezoneOffset":-8,"latitude":34.05,"longitude":-118.24}'

Повертає count + aspects[] де кожен аспект має planet1 / planet2 / type (object з name, angle, orb, symbol, isMajor, i18nKey, color) / exactAngle / orb / isApplying.

Per-pair орб-матриця як у astro.com (правило MIN з двох планет). Та сама calcAspects() що використовує /chart - числа ідентичні subtree /chart.aspects.

2026-07-03 · POST /v1/houses, окремий ендпоінт для будинків

Новий ендпоінт для одного лише розрахунку домів - без planets / aspects / midpoints / etc payload-у /chart. Tier 1: 10 кредитів за виклик.

Terminal window
curl -X POST https://api.astroway.info/v1/houses \
-H "X-Api-Key: aw_live_..." \
-H "Content-Type: application/json" \
-d '{"date":"1990-05-15","time":"14:30:00","timezoneOffset":3,"latitude":50.45,"longitude":30.52,"houseSystem":"P"}'

Повертає houses.cusps (12 longitudes) + ascendant + mc + armc + vertex + equatorialAsc + опціональні coAscWK / coAscMunkasey / polarAsc + warning якщо запитана quadrant-система впала на extreme latitude і SwEph підставив Porphyry (|lat|>66.5°).

Підтримка houseSystem: P (Placidus, default) / K (Koch) / R (Regiomontanus) / C (Campanus) / T (Topocentric) / M (Morinus) / W (Whole Sign) / E (Equal) / O (Porphyry) - та ще кілька варіантів через Swiss Ephemeris C-code.

Раніше за окремими cusps потрібно було робити POST /v1/chart (важчий payload). Тепер є legacy-compatible альтернатива для callers які хочуть лише дома без додаткового computed weight.

2026-06-26 · Onboarding wizard: AI endpoint discovery + sandbox first call

POST /v1/me/recommend-endpoints приймає текстовий опис use case, повертає top-5 endpoints з прикладами коду на curl/JS/Python.

Terminal window
curl -X POST https://api.astroway.info/v1/me/recommend-endpoints \
-H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
-d '{"description":"Dating app with compatibility scores"}'
# {
# "detected_use_case": "relationship-compatibility",
# "recommendations": [
# { "endpoint": "/v1/synastry", "title": "Couple synastry",
# "why": "Returns aspects between two charts", "credits_per_call": 50,
# "code_example": { "language": "curl", "snippet": "..." } },
# ...
# ]
# }

Powered by LLM gateway. Маршрут use case → endpoints живе як prompt у ai.astroway.info - оновлюється без redeploy API.

Dashboard integration. Step 3 в /dashboard/onboarding wizard тригерить цей endpoint. Same endpoint доступний як standalone /dashboard/discover для existing users.

2026-06-23 · API локалізації контенту: /v1/translate/*

Астро-орієнтований машинний переклад на 20 мов. Чотири ендпоінти:

  • POST /v1/translate/astro: один текст (до 3000 символів)
  • POST /v1/translate/batch: до 25 рядків зі спільною цільовою мовою
  • GET /v1/translate/languages: список підтримуваних мов (безкоштовно)
  • GET /v1/translate/glossary/{lang}: вивантаження доменного глосарія (безкоштовно)

Доменний глосарій зберігає спеціальні терміни (Dasha, Nakshatra, асцендент, …) - вони не калічаться буквальним перекладом. Числові поля не торкаються. Джерело за замовчуванням англійська; передайте source_lang для іншого.

Кредити: 15 + ⌈символи/40⌉ за виклик (батч - за сумою символів). Списується з кредитів вашого тарифу. Ліміти: astro ≤3000 симв; batch ≤25 рядків, ≤2000 симв/рядок, ≤20000 разом.

2026-06-19 · POST /v1/moon-phase, фаза Місяця на момент часу

Новий ендпоінт: поточна фаза Місяця для довільної дати/часу/локації. Tier 1: 10 кредитів за виклик.

Terminal window
curl -X POST https://api.astroway.info/v1/moon-phase \
-H "X-Api-Key: aw_live_..." \
-H "Content-Type: application/json" \
-d '{"date":"2024-01-25","time":"12:00:00","latitude":0,"longitude":0,"timezoneOffset":0}'

Повертає phase (0..1), phaseName (New Moon / Waxing Crescent / First Quarter / Waxing Gibbous / Full Moon / Waning Gibbous / Last Quarter / Waning Crescent), majorPhase (new_moon / quarter / full_moon / between), illuminationPercent, elongationDeg, ageDays (синодичний вік 0..29.53), waxing, moonSign, sunSign, moonLongitude, sunLongitude.

Геоцентрична Sun-Moon елонгація за Meeus Ch.48 - алгоритмічно еквівалентно RapidAPI Astrologer /moon-phase/context. Раніше радили POST /v1/render/moon-phase із format: json як обхідний шлях - він повертає той самий розрахунок поряд із SVG; новий /moon-phase віддає чисто розрахунок без SVG-payload (легший, дешевший на network).

2026-06-17 · Виправлено схеми відповідей (/openapi.json) + nullable-поля

Повний аудит схем виявив ~19 ендпоінтів, де опублікована схема 200-відповіді розходилася з фактичним виводом - наприклад, у /chart поле aspects[].type було описане як рядок, а повертається об’єкт; так само координати ACG, поля Human Design (/human-design, /hd/*), Vedic (/vedic-divisional, /vedic/lal-kitab/*), /almuten, /sabian-symbols, /midpoint-trees та ін. Через це MCP-клієнти відхиляли виклики цих інструментів з помилкою -32602 Output validation error, а SDK зі строгою типізацією могли падати на розборі. Усі схеми приведено у відповідність до реального виводу.

Додатково: поля у виведених схемах тепер позначені як nullable. Реальні відповіді повертають null для умовних полів, а строга валідація раніше це відхиляла - тепер null приймається коректно.

Розрахунки не змінювалися - виправлено лише опис схем. Якщо ви генерували типи зі старого /openapi.json, перегенеруйте їх. Користувачі MCP (@astroway/mcp та hosted) отримають виправлення автоматично.

2026-06-15 · Вартість стрімінгу та вебхуків у кредитах

Уточнено тарифікацію стрім- і вебхук-ендпоінтів. /stream/* (10 ендпоінтів) тарифікуються як Tier 1: 10 кредитів за виклик (окремої «дешевшої» ставки за тік немає). CRUD-операції /webhooks/* - теж Tier 1; сама доставка події на ваш URL не тарифікується.

Що зробити: якщо опитуєте стрім-ендпоінт у циклі - рахуйте бюджет як 10 кредитів × частота й використовуйте поля tickSeconds / nextEventAt з відповіді, щоб не опитувати частіше, ніж змінюється стан. Деталі - Кредити та ліміти.

2026-06-13 · API-відповіді у 20 мовах через Accept-Language

Усі ендпоінти, що повертають текстовий контент, тепер реагують на заголовок Accept-Language. Прикладом, Accept-Language: hi для /v1/horoscope/daily поверне гороскоп гінді; Accept-Language: de для /v1/interpret/planet-in-sign - німецьку інтерпретацію.

Підтримувані мови: uk · en · de · pl · es · pt · hi · fr · ko · it · ja · id · tr · nl · cs · ro · vi · ar · el · hu (20).

  • Альтернатива: ?lang=xx query-параметр для клієнтів, що не контролюють заголовки
  • Дефолт: джерельна мова uk, якщо Accept-Language не вказано або мова поза списком
  • Чисельні поля (longitude, latitude, speed, sign-id, house-id) не торкаються - клієнт сам форматує
  • Спеціальні терміни (Raj Yoga, Sade Sati, тощо) зберігаються в оригінальній формі через глосарій

Документація: /languages сторінка та OpenAPI specifications для кожного ендпоінту.

Підтримка у SDK (TS / Python / PHP) та MCP-сервері з’явиться у найближчих релізах кожного пакета - див. дорожні мапи.

2026-06-11 · Free-тариф обмежено до Tier 1-3 (важкі ендпоінти → Indie+)

Безкоштовний тариф тепер покриває лише ендпоінти Tier 1-3 (до 50 кредитів). Будь-який ендпоінт Tier 4+ на Free повертає 402 PLAN_UPGRADE_REQUIRED з upgrade_to: 'indie'. Зачеплені: важкі багатоденні скани (transit-calendar, forecast-calendar, eclipses, ingresses, planetary-cycles, solar-acg, phase-return, aspect-timeline тощо), ректифікація (rectification, rectification/trutine), мульти-персон HD (hd/penta, hd/group-overlay, human-design/compatibility), усі PDF-звіти (reports/*) і AI-наративи (reports/ai/*).

AI-інтерпретація лишається безкоштовною: interpret/* та horoscope/yearly доступні на Free, як і раніше.

Що зробити: якщо ваш Free-ключ звертається до Tier 4+ ендпоінта - перейдіть на Indie ($5/міс, 50K кредитів) на astroway.info/pricing або звіртеся з публічною таблицею вартості /credits/ (маркер доступності на Free у кожному рядку).

2026-06-09 · /iching deprecated → namespace /iching/*

Голий POST /v1/iching (legacy випадковий кид гексаграми) позначено deprecated. Уся робота з I Ching живе в namespace /v1/iching/*: throw-coins (із seed), by-question, with-changing-lines, daily, lookup/{n} - на наборі Wilhelm-Baynes. Старий ендпоінт працює до 2027-06-16 (sunset) і повертає Deprecation / Sunset / Link: rel="successor-version".

Що зробити: замість POST /v1/iching використовуйте POST /v1/iching/throw-coins (підтримує seed для відтворюваності) або інший ендпоінт /iching/*.

2026-06-08 · /vedic-divisional deprecated → /vedic/varga/{D1..D60}

Загальний POST /v1/vedic-divisional (де варга передавалася в тілі) позначено deprecated на користь окремих ендпоінтів POST /v1/vedic/varga/{D1..D60} - чистіша OpenAPI/SDK-сигнатура й багатший вивід (назва варги, lagna, ayanamsa). Старий ендпоінт продовжує повноцінно працювати до 2027-06-15 (sunset, у межах гарантії стабільності /v1 ≥12 міс) і повертає заголовки Deprecation: true, Sunset: Tue, 15 Jun 2027 00:00:00 GMT, Link: …; rel="successor-version". Після цієї дати його буде видалено.

Що зробити: перенесіть виклики POST /v1/vedic-divisional із тілом { "varga": "D9", … } на POST /v1/vedic/varga/D9 (варга у шляху, решта тіла без змін).

2026-06-06 · Публічні read-ендпоінти без ключа (легкі віджети)

Набір GET /v1/public/* ендпоінтів, які працюють без авторизації (IP-rate-limited 30/год, кожна відповідь несе _footer watermark). Зручно для copy-paste cURL у документації та легких інтеграцій без реєстрації:

  • GET /v1/public/horoscope/daily?sign=aries&date=YYYY-MM-DD: денний гороскоп за знаком
  • GET /v1/public/horoscope/weekly?sign=…: тижневий
  • GET /v1/public/horoscope/monthly?sign=…: місячний
  • GET /v1/public/tarot/daily?date=…: карта дня (RWS, детермінована на добу)
  • GET /v1/public/moon-phase?date=…: фаза Місяця (детермінований розрахунок)
  • GET /v1/public/planet-of-day?date=…: планета-управитель дня тижня

Усі 12 знаків Зодіаку; date необов’язковий (типово сьогодні), невалідний знак/дата → 400. Гороскопи AI-генеровані й кешуються per (знак, період, мова); тиждень/місяць рахуються від понеділка/першого числа. Решта - детермінований розрахунок. Мова через Accept-Language.

2026-06-05 · Self-service webhooks: /v1/me/webhooks CRUD + HMAC delivery worker

Subscriptions endpoint family для outgoing webhooks. Раніше webhook-таблиця (migration 017) існувала лише для admin-side - тепер відкриваємо CRUD юзерам через dashboard /webhooks сторінку.

Terminal window
# Create
curl -X POST https://api.astroway.info/v1/me/webhooks \
-H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://myapp.com/astroway-webhook",
"events": ["credits.threshold_crossed", "key.revoked", "request.failed"]
}'
# List
curl -H "Authorization: Bearer <jwt>" https://api.astroway.info/v1/me/webhooks
# Test ping (send sample event)
curl -X POST https://api.astroway.info/v1/me/webhooks/<id>/test \
-H "Authorization: Bearer <jwt>"

7 типів подій: credits.threshold_crossed, key.revoked, key.created, request.failed (5xx), billing.invoice_paid, billing.invoice_failed, plan.changed.

HMAC підпис. Кожна доставка несе X-AstroWay-Signature: t=<unix>,v1=<hex> де v1 - це HMAC-SHA256(secret, "t=<unix>.<body>"). Secret видається раз під час create і його можна ротувати (POST /me/webhooks/<id>/rotate-secret).

Delivery worker. Background process (новий astroway-webhook-worker в PM2) тягне queue, виставляє exponential backoff на 5xx відповіді клієнта: 1m / 5m / 30m / 2h / 12h. Після 5 fail-ів - webhook auto-suspend з email алертом.

Dashboard page. /dashboard/webhooks з list + create modal + test button + delivery history. Sidebar nav entry в Account section.

2026-06-03 · GET /v1/reports/history: список останніх згенерованих звітів

Новий ендпоінт повертає ваші нещодавно згенеровані PDF-звіти - тип, розмір, кількість сторінок, мову, час створення й закінчення та url. Зручно, щоб повторно отримати посилання на звіт у межах його 24-годинного терміну дії або показати останні експорти в дашборді. Виклик безкоштовний. Параметр ?limit= (1–50, типово 10).

2026-06-02 · Cache MISS/HIT instrumentation: X-Cache response header

Server logue cache outcome для кожного запиту (X-Cache: MISS | HIT | BYPASS). Це робить можливим cache hit % колонку в /dashboard/usage (зараз показує ).

Terminal window
curl -I -X POST https://api.astroway.info/v1/chart \
-H "X-Api-Key: aw_live_..." \
-H "Content-Type: application/json" \
-d '{...}' | grep -i x-cache
# X-Cache: MISS

Tracking. api_request_log.cache_status column (migration 030, enum). GET /v1/me/usage/endpoints починає повертати реальне cache_hit_pct замість null.

Pricing impact. Кешовані запити продовжують deduct credits на rendered tier - але показ показника в dashboard допомагає оптимізувати інтеграцію (на cache HIT треба, наприклад, не пересилати zustand-style chart payload).

2026-06-01 · GET /v1/version + Swagger/OpenAPI aliases + /v1/v1/* typo redirect

Дрібні зручності для SDK і поодиноких інтегрантів - серії «чому 404 на типовий запит» більше не має бути.

Новий ендпоінт GET /v1/version: безкоштовний, без auth. Повертає поточну версію API + commit + uptime:

Terminal window
curl https://api.astroway.info/v1/version
# {
# "version": "2.71.0",
# "build_commit": "abc1234",
# "started_at": "2026-06-02T08:00:00Z",
# "uptime_seconds": 12345,
# "docs_url": "https://api.astroway.info/docs/api/"
# }

SDK можуть викликати на старті для діагностики «чому раптом інша поведінка» - build_commit точно ідентифікує деплой.

OpenAPI-аліаси (301): щоб Postman / Insomnia / openapi-generator знайшли спеку з першої спроби:

АліасКуди
/v1/swagger.json/v1/openapi.json
/v1/api-docs/swagger.json/v1/openapi.json
/v1/v3/api-docs/v1/openapi.json
/v1/v2/api-docs/v1/openapi.json
/v1/swagger/v1/swagger.json/v1/openapi.json
/v1/swagger, /v1/swagger-ui*/v1/docs (302)

/v1/v1/<endpoint>/v1/<endpoint> (308): фіксить типовий SDK-баг коли baseUrl уже містить /v1 і клієнт додає /v1/X зверху. Метод і body зберігаються, ніщо не ламається мовчки.

/api/health/v1/health (301), інші /api/<endpoint> → JSON 404 з кодом WRONG_PREFIX: для розробників з wp-json muscle memory. Раніше це було generic-404 від nginx, тепер відповідь дає чітку підказку про правильний префікс.

Документація: нова сторінка URL-конвенції та безкоштовні ендпоінти - повний перелік безкоштовних системних ендпоінтів (/health, /health/deep, /version, /openapi.json, /docs, /reference/*, /i18n/*), безкоштовних обліково-залежних (/auth/*, /me, /keys, /admin/*, /embed/*, /books/*, /messages, /dev-assistant), та платних tier-розкладу.

2026-05-30 · Embed-віджети: опційний параметр ?disclaimer=1

Публічні embed-віджети (GET /v1/embed/*) тепер приймають опційний disclaimer=1 - додає у футер коротку оговорку про розважально-ознайомлювальний характер контенту (не медична, психологічна, фінансова чи юридична консультація). Вимкнено за замовчуванням - без параметра футер не змінюється. Увімкніть, якщо ваш комплаєнс вимагає видимої оговорки на стороні відображення.

<iframe src="https://api.astroway.info/v1/embed/wheel?date=1990-05-15&theme=dark&disclaimer=1"
width="460" height="560" style="border:0"></iframe>

2026-05-29 · Чотири нові embed-віджети (без ключа, для iframe)

Розширено набір публічних HTML-віджетів GET /v1/embed/* - тепер їх 14. Нові не потребують API-ключа, віддають готовий iframe-фрагмент, обмежені per-IP (30 запитів/год).

  • GET /v1/embed/transit?date=: позиції транзитних планет (знак + градус, ретроградність) на дату.
  • GET /v1/embed/numerology?name=&date=&system=: Число життєвого шляху / вираження / душі / особистості (system: pythagorean або chaldean).
  • GET /v1/embed/panchang?date=&lat=&lng=&tz=: тітхі / накшатра / йоґа / карана / вара + схід/захід Сонця + Раху-каал.
  • GET /v1/embed/synastry?date_a=&time_a=&lat_a=&lng_a=&tz_a=&date_b=…: оцінка сумісності + ключові міжкартові аспекти для двох субʼєктів.
<iframe src="https://api.astroway.info/v1/embed/transit?date=2026-05-29&theme=dark"
width="460" height="420" style="border:0"></iframe>

Усі віджети приймають theme (dark/light/console) та lang. Кешуються public, max-age=300.

2026-05-28 · Виправлено документацію кодів помилок

Довідник помилок тепер відповідає реальним відповідям API. Коди - UPPER_SNAKE_CASE (наприклад INVALID_INPUT, INVALID_API_KEY, CREDITS_EXHAUSTED), конверт - { ok: false, error: { code, message, details? } }, а помилки валідації (INVALID_INPUT, HTTP 400) містять details: [{ path, message }]. Якщо у вас switch (error.code) по раніше задокументованих lowercase-назвах - оновіть на реальні коди. Самі відповіді API не змінювались.

2026-05-26 · Новий ендпоінт POST /v1/reports/generate, V2 unified dispatcher

Замість 12 type-specific роутів (/reports/natal, /reports/synastry, …) - один ендпоінт із report_type enum, який диспатчить на відповідний рендерер. SDK-консументи отримують один метод замість дванадцяти; MCP-каталог - один інструмент замість дванадцяти.

Terminal window
curl -X POST https://api.astroway.info/v1/reports/generate \
-H "X-Api-Key: aw_live_..." \
-H "Content-Type: application/json" \
-d '{
"report_type": "natal",
"chart": {"date":"1990-05-15","time":"14:30:00","timezoneOffset":3,"latitude":50.45,"longitude":30.52,"name":"Test"},
"language": "uk",
"whitelabel": { "themeColor": "#ff5500", "reportName": "My Cosmic Map" }
}'

12 supported report_type values: natal, transit-yearly, synastry, business, career, love, money, child, lal-kitab, human-design, tarot, vedic-kundli.

Per-type required fields validated в handler: natal/business/career/etc - chart; synastry - chart1 + chart2; tarot - seed (optional). Missing required fields → 400 with MISSING_CHART / MISSING_CHARTS error code.

Зворотна сумісність. Всі 12 type-specific ендпоінтів залишаються - /v1/reports/generate додано як additive surface, не replacement. Можна вибрати або: direct (client.reports.natal({...})) або generic (client.reports.generate({ report_type: 'natal', ... })).

Pricing. Forwarded per-renderer (natal → TIER_7, transit-yearly → TIER_8, tarot → TIER_4, тощо). Сам dispatcher не додає окремої вартості.

OpenAPI 3.1. GenerateReport - окремий компонент в /v1/openapi.json. SDK regen у наступному релізі додасть метод client.reports.generate().

2026-05-25 · Jaimini-розширення (+5 ендпоінтів)

П’ять нових ендпоінтів для глибокого аналізу за школою Jaimini - раніше були відкладені, тепер у проді.

  • POST /vedic/yogas/jaimini/karaka-yoga: скан усіх 8 чара-карак (Atmakaraka..Darakaraka) з оцінкою сили розміщення в кендрі / тріні / душтхані та підказкою маніфестації для кожної.
  • POST /vedic/yogas/jaimini/karakamsa: повна 12-будинкова проекція з знаку Атмакараки в D9. Кожен будинок несе канонічні значення (іштадевата, мокша, духовний шлях) за коментарем Sanjay Rath.
  • POST /vedic/yogas/jaimini/shubha-graha: функціональна природа всіх 7 видимих грах (yogakaraka / functional-benefic / neutral / functional-malefic / maraka) залежно від володіння будинками від Лагни. Кендрадхіпаті- + мараку-правила за BPHS A.34.
  • POST /vedic/jaimini/atmakaraka-rotation: таймлайн зміни Атмакараки протягом життя через символічну прогресію 1°/рік. Повертає вік-події з ім’ям планети до/після переходу.
  • POST /vedic/jaimini/argala-analysis: повний скан Argala (2/4/11 первинна, 5 вторинна, 8 спеціальна) + Virodhargala (12/10/3 первинна, 9 вторинна, 6 спеціальна) для всіх 12 будинків з net-influence та dominant-over.

Усі п’ять - окремі вартісні групи (Tier 2: 20 кредитів, окрім atmakaraka-rotation Tier 3: 50 кредитів через time-series compute). Доступні на Vedic Pack add-on.

2026-05-19 · whitelabel приймає inline-об’єкт брендингу (15 полів)

Поле whitelabel у схемах усіх 12 ендпоінтів /v1/reports/* (natal, transit-yearly, synastry, business, career, love, money, child, lal-kitab, human-design, tarot, vedic-kundli) тепер приймає не лише boolean, а й об’єкт із брендингом - без необхідності прив’язки до WordPress-користувача через whitelabel_configs таблицю.

Terminal window
curl -X POST https://api.astroway.info/v1/reports/natal \
-H "X-Api-Key: aw_live_..." \
-H "Content-Type: application/json" \
-d '{
"chart": {"date":"1990-05-15","time":"14:30:00","timezoneOffset":3,"latitude":50.45,"longitude":30.52,"name":"Test"},
"whitelabel": {
"companyName": "Acme Astrology",
"companyUrl": "https://acme-astro.example.com",
"logoUrl": "https://cdn.example.com/logo.png",
"themeColor": "#ff5500",
"reportName": "My Personal Cosmic Map",
"footerText": "© 2026 Acme Astrology",
"fontPairing": "serif-sans"
}
}'

PDF/HTML рендериться з вашим лого в шапці, заміненою назвою звіту, відповідними кольорами теми та блоком контактів у футері.

15 полів об’єкта (усі опціональні): companyName, companyUrl, companyEmail, companyMobile, companyBio, logoUrl (https + .png/.jpg/.svg/.webp), frontImage, textPrimaryColor/textSecondaryColor/backgroundColor/themeColor/headingColor (всі #RGB або #RRGGBB), footerText, fontPairing (serif-sans/sans-serif/serif-only/sans-only/system), reportName.

Зворотна сумісність. whitelabel: true (читає DB-конфіг для прив’язаного WP-користувача) та whitelabel: false/відсутнє - поведінка незмінна. Поле тепер boolean | BrandingObject.

Resolution priority. Inline-об’єкт зливається поверх DB-конфігу (якщо ключ прив’язано до WP-користувача) або поверх дефолтів (для SDK-користувачів без WP). themeColor стає primaryColor після applyBrandingPreferences, fontPairing мапиться на CSS font-family.

OpenAPI 3.1 spec. BrandingObject - окремий компонент у /v1/openapi.json. SDK-кодген отримає типізований BrandingObject під час наступної регенерації (TS / Python / PHP).

2026-05-16 · Hosted MCP endpoint live at mcp.astroway.info/mcp

@astroway/mcp тепер доступний у двох транспортних режимах. Stdio (npm-пакет) залишається без змін; додано hosted Streamable HTTP endpoint для zero-install інтеграції в Claude Web (claude.ai у браузері), Claude Desktop, Cursor, Cline та інші MCP-сумісні клієнти.

Установка в один клік для Cursor - кнопка cursor://anysphere.cursor-deeplink/mcp/install?... на сторінці /examples/mcp/. Claude Desktop - через + → Add Connector → Custom (без редагування JSON).

// JSON-варіант для Cline / Continue / Windsurf
{
"mcpServers": {
"astroway-hosted": {
"url": "https://mcp.astroway.info/mcp",
"headers": {
"Authorization": "Bearer aw_live_..."
}
}
}
}

Той самий каталог 630 інструментів + 12 промптів + 14 ресурсів, та сама aw_test_* / aw_live_* авторизація (у hosted режимі через Authorization: Bearer … header замість env var), той самий credit pool. Multi-tenant by design - кожен запит несе свій ключ, кредити списуються з акаунта власника ключа. Канал у X-Astroway-Channel - mcp-http (hosted) vs mcp (stdio) для adoption tracking.

Чому два режими. Stdio (npx @astroway/mcp) залишається для Cursor power users / privacy-conscious інтеграторів - ключ ніколи не залишає машину, без мережевих хопів. Hosted закриває сегмент Claude Web (який підтримує тільки remote MCP) та zero-install scenarios. Той самий шаблон, що у Stripe / Resend / GitHub MCP.

Health endpoint: публічно reachable без авторизації:

Terminal window
curl https://mcp.astroway.info/health
# {"status":"ok","version":"…","uptime_sec":…,"mcp_protocol_version":"2024-11-05"}

Повна документація обох режимів - /examples/mcp/.

2026-05-15 · Новий ендпоінт GET /v1/auth/keys/me

Інтроспекція API-ключа. Передаєш X-Api-Key - отримуєш повний стан: план, кредити, статус, прив’язаний домен, час створення, джерело реєстрації. Корисно для SDK-консумерів (TS / Python / PHP / MCP) - “що в мене за ключ зараз” без read’у дашборду. Аналог Stripe /v1/account або GitHub /user.

Terminal window
curl -H "X-Api-Key: aw_live_..." https://api.astroway.info/v1/auth/keys/me
# →
# {
# "key_prefix": "aw_live_4ab...", # перші 11 символів, повний ключ ніколи не повертаємо
# "plan": "free",
# "credits_remaining": 9830,
# "credits_total_this_period": 10000,
# "period_end": "2026-06-01T00:00:00.000Z", # календарний кінець місяця
# "status": "active", # active | suspended | revoked
# "domain": null, # домен, до якого ключ прив'язано (wp-plugin keys)
# "domain_bound_at": null,
# "created_at": "2026-04-24T22:03:59.000Z",
# "referrer_source": "direct" # direct | wp_plugin | mcp | sdk | dashboard | other
# }

Без auth: 401 MISSING_API_KEY. Невалідний ключ: 401 INVALID_API_KEY.

OpenAPI 3.1 spec. /v1/openapi.json тепер декларує /v1/auth/keys/me. SDK-кодген пропише client.auth.keys.me() під час наступної регенерації.

Зворотна сумісність. Старий GET /v1/keys/usage (повертав тільки credits_today + ratelimit) продовжує працювати - це окремий ендпоінт для серверних cron-перевірок. /auth/keys/me повертає повний state plus domain binding для wp-plugin сценаріїв.

2026-05-14 · Локалізація /horoscope/* та /interpret/* (20 мов)

POST /v1/horoscope/{daily,weekly,monthly,yearly,compatibility} та POST /v1/interpret/{natal,synastry,transits,element,placement} - 10 ендпоінтів, що повертають текст інтерпретації - тепер віддають відповідь у мові клієнта.

Як підключити:

Terminal window
curl -X POST https://api.astroway.info/v1/horoscope/daily \
-H "X-Api-Key: aw_live_..." \
-H "Accept-Language: hi" \
-H "Content-Type: application/json" \
-d '{"sign": "leo"}'
# → відповідь у हिन्दी

Resolve-priority (server-side):

  1. body.language="de" - явний per-call параметр (вищий пріоритет)
  2. Accept-Language: de, en;q=0.7 - RFC 7231 q-weighted; перший код, що збігається з активною мовою, виграє
  3. ?lang=de - query-параметр для клієнтів, що не контролюють заголовки
  4. Fallback → uk (джерельна мова)

Підтримувані мови (20): uk, en, de, pl, es, pt, fr, it, nl, cs, ro, hu, el, tr, ar, hi, ja, ko, vi, id. Невідомі коди тихо падають у uk без помилок.

OpenAPI 3.1 spec. /v1/openapi.json тепер декларує Accept-Language (header) та lang (query) як параметри з enum 21 кодів на цих 10 ендпоінтах. SDK-кодген (openapi-typescript, openapi-generator-cli) автоматично пропише типізовані виклики .lang('hi') під час наступної регенерації.

Що перекладається: тільки текстові поля інтерпретації (horoscope, interpretation, disclaimer тощо). Числові поля (longitude, latitude, score, ID-знаків, ID-домів) залишаються канонічними - клієнт форматує локально. Сегментний стандарт (Vedika, DivineAPI, AstrologyAPI.com).

Скоуп: наразі локалізуються 10 ендпоінтів інтерпретаційної групи. Калькуляційні ендпоінти (/chart, /synastry, /transits, /vedic/*, /human-design/*, /tarot/*, /numerology/*, ~690 інших) повертають числа й канонічні ідентифікатори (name: "Aries", glyph: "♈") незмінно - клієнт локалізує їх через свої lookup-таблиці. Це сегментний стандарт.

Backwards compatible. Існуючий код без Accept-Language / ?lang= / body.language отримує uk за замовчуванням, як і раніше.

SDK-підтримка (@astroway/sdk, astroway, astroway/sdk, @astroway/mcp) додає lang опцію в конструкторі - окремі релізи приходять найближчими тижнями через cron-applier на staging-репозиторіях.

2026-05-09 · Three SDKs launched: TypeScript, Python, PHP

Три офіційних SDK живуть на public registries - обертки навколо тих самих 700+ ендпоінтів API. Один OpenAPI 3.1 spec → три language-idiomatic клієнти.

ПакетRegistryВерсія
@astroway/sdknpm0.1.0-alpha.1
astrowayPyPI0.1.0a1
astroway/sdkPackagistv0.1.0-alpha.1

Що це для інтегратора:

  • Type-safe alternative до raw HTTP. Path autocomplete + типи запитів і відповідей в IDE. Helper-методи aw.post('/chart', body=...) (Python/PHP) або aw.client.POST('/chart', { body }) (TS) - замість ручного fetch / requests / Guzzle.
  • Identical surface across languages. Constructor Astroway({apiKey, baseUrl, authScheme, timeout, retry}) працює однаково в TS / Python / PHP. Якщо проект мульти-мовний - менше cognitive overhead.
  • Built-in retry на 408/409/429/5xx з exponential backoff + full jitter. Honors Retry-After header. Default 2 retries, configurable через retry={maxRetries: 0}.
  • Stainless-template ієрархія помилок: той самий шаблон що в SDK Stripe / OpenAI / Cloudflare. Ловіть RateLimitErrorretryAfterSeconds), AuthenticationError (rotate key), BadRequestError (validation), ApiError (generic) - у такому порядку.
  • Two auth schemes. За замовчуванням X-Api-Key: aw_live_... (як у curl/Postman). Або Authorization: Bearer aw_live_... (як у Stripe/OpenAI/Anthropic SDK) - auth_scheme="bearer" в конструкторі.
  • Identification headers, no telemetry. Кожен запит несе User-Agent: astroway-sdk-<lang>/<version> + X-Astroway-Channel: sdk-<lang>. Жодного phone-home, жодного opt-in/opt-out перемикача.
  • OIDC + SLSA L3 provenance (TS + Python). Sigstore-attested record що пакет збудований з конкретного коміту в публічному репо. Без long-lived tokens у CI.
  • MIT, full source open на github.com/astroway/{astroway-typescript,astroway-python,astroway-php}.

Quick start:

// TypeScript / Node 20+
import { Astroway } from '@astroway/sdk';
const aw = new Astroway({ apiKey: process.env.ASTROWAY_API_KEY! });
const { data } = await aw.client.POST('/chart', { body: { date: '1990-07-14', /* ... */ } });
# Python 3.9+
from astroway import Astroway
aw = Astroway(api_key=os.environ['ASTROWAY_API_KEY'])
chart = aw.post('/chart', body={'date': '1990-07-14', ...})
// PHP 8.1+
use Astroway\Astroway;
$aw = new Astroway(['apiKey' => getenv('ASTROWAY_API_KEY')]);
$chart = $aw->post('/chart', body: ['date' => '1990-07-14', /* ... */]);

Async варіант для Python - AsyncAstroway з identical surface через async/await. У PHP - sync only (PHP не має unified async story). У TS - native promises на base of openapi-fetch.

Це alpha - public API може зміщуватися до 0.1.0 proper на основі feedback інтеграторів. Закріпіть точну версію (@astroway/sdk@0.1.0-alpha.1) під час alpha-вікна - або latest alpha на момент install.

@astroway/mcp - MCP-сервер для Claude / Cursor / GPT - продовжує жити поряд як окремий продукт.

2026-05-07 · MCP server refresh

@astroway/mcp оновився - auto-генерує tool catalog з поточного /openapi.json без ручного редагування. Все, що з’явилося в API за останні тижні (compat suite, reports endpoints), одразу видно Claude / Cursor / GPT.

Для інтегратора:

  • Tool catalog відображає живий стан API
  • Path-template ендпоінти (/v1/.../id) пропускаються поки що, щоб не плутати дискріб-парсер
  • Cost annotations в description tool: Claude бачить вартість виклику до execution
  • OIDC trusted publishing + SLSA L3 provenance: пакет attested до конкретного коміту в public repo astroway/astroway-mcp

Установка:

Terminal window
npm install -g @astroway/mcp

Або через Claude Desktop / Cursor MCP config:

{
"mcpServers": {
"astroway": {
"command": "npx",
"args": ["-y", "@astroway/mcp"]
}
}
}

Source: public astroway/astroway-mcp (MIT).

2026-04-11 · Cross-system compatibility (+10 ендпоінтів)

Нова група /v1/compat/* - composite compatibility score across western, vedic, chinese, numerology, tarot, human design. 6 систем дають unified метрику для UX-індикаторів у multi-traditional астрологічних застосунках.

ЕндпоінтЩо рахує
/compat/full6-system unified compatibility 0–100
/compat/astro-vedicWestern synastry × Vedic Ashtakoot
/compat/astro-chineseWestern × Bazi compatibility
/compat/astro-numerologySynastry-aspected numerology base
/compat/astro-tarotCross-archetype reading
/compat/astro-hdSynastry × HD electromagnetic / dominant gates
/forecast/multi-systemUnified yearly forecast across 6 систем
/forecast/yearly-fusionAnnual highlights weighted by system
/profile/spiritual-pathPath archetype з Pisces + Neptune + Vedic Moksha houses
/profile/multi-archetypeHero archetype detection across 5 систем

Кожен ендпоінт повертає JSON з полем disclaimer - це AstroWay scoring methodology, не клінічне або юридичне ствердження. Tier 4 (100 кредитів) per call - heavy cross-system compute.

Manifest на /openapi.json оновлено - SDK / MCP підхоплять автоматично.

2026-03-28 · Reports + Webhooks (+17 ендпоінтів)

Дві нові групи в production.

/v1/reports/* (12 ендпоінтів) - генерація HTML / PDF репортів через Puppeteer. Render на стороні api-calc, signed download URL (TTL 24h).

КатегоріяСлагВартість
Natal/reports/natal/*Tier 7 (5000 cr)
Synastry/reports/synastryTier 7
Vedic Kundli/reports/vedic-kundliTier 7
Lal Kitab/reports/lal-kitabTier 7
Human Design/reports/human-designTier 7
Tarot/reports/tarotTier 7
Career / Love / Money / Child / Business/reports/*Tier 7

/v1/webhooks/* (5 ендпоінтів) - subscription management, event delivery, HMAC signing. Підписка на події credits.low, key.created, usage.threshold, error.spike.

Terminal window
curl -X POST https://api.astroway.info/v1/webhooks \
-H "Authorization: Bearer aw_live_..." \
-d '{"url": "https://...", "events": ["credits.low"], "secret": "wh_secret_..."}'

Кожен delivery несе X-Astroway-Signature: sha256=<hmac> - verify через secret. Retry policy: exponential backoff на 5xx, до 5 спроб за 24 години.

2026-03-14 · Reference endpoints: public, без ключа, без кредитів

14 ендпоінтів /v1/reference/* (signs, planets, houses, aspects, elements, modalities, polarities, dignities, decans, nakshatras, lots, asteroids, zodiac-systems, glyphs) тепер працюють без X-Api-Key і коштують 0 кредитів. Це канонічні lookup-таблиці - гейтити їх через білінг було проектним недоглядом.

Що це для інтегратора:

  • Виклик без ключа: зовнішні MCP-агенти / SDK / прев’ю-сторінки можуть тягнути reference дані без авторизації. IP rate-limit як на /public (30 запитів / годину) залишається.
  • Cost manifest оновлено: 14 шляхів пере́йшли з TIER_HALF (5 кредитів) на 0. Якщо ваш бюджет-планер astroway_cost_estimate посилається на ці шляхи - нові виклики не торкають квоту.
  • Існуючі клієнти з ключем працюють без змін. X-Api-Key ігнорується для /reference/* (не прискіплюємось до зайвого header’а).

Backward-compatible: 200-відповіді й JSON-схема не змінюються, лише вимога авторизації знята.

2026-03-07 · Founders’ Lifetime Deal: $299 → тариф Indie на все життя

Запускаємо Founders’ Lifetime Deal - обмежений запуск. Перші 100 клієнтів платять $299 одноразово і отримують тариф Indie (50 000 кредитів/міс) назавжди, без рекурентних списань, із зафіксованою ціною.

Що це для інтеграторів:

  • Стандартний Indie = $5/міс. Founders’ = одноразово $299 → точка окупності на 5-му році, далі безмежний ROI. Якщо ваш проєкт хоча б 5 років в астрології / нумерології / Таро - Founders’ окупається.
  • Webhook payload на checkout SKU astroway-api-indie-lifetime: рядок api_keys отримує plan='indie', credits_limit=50000, is_lifetime=1, expires_at=NULL. Жодних щомісячних списань, жодних renewal-вебхуків.
  • Схема БД: додано колонки is_lifetime TINYINT(1) в api_keys і shared_user_quotas. TS-тип ApiKeyInfo розширено. Існуючі ключі = is_lifetime=0 (без зміни поведінки).
  • WP REST endpoint GET /wp-json/astroway/v1/founders-count повертає {sold, total: 100, remaining, available} - використовується site/components/founders/FoundersCounter.astro для лічильника в реальному часі на сторінці /founders/.
  • Авто-деактивація на 100/100: _stock_status товару WC автоматично переходить в outofstock через хук WC woocommerce_order_status_completed. Після цього посилання checkout перенаправляє на /pricing/#indie (стандартний Indie $5/міс).

Live pages: /founders/ (uk) + /en/founders/ (en). Sidebar entry “Founders’ Lifetime Deal” з 🚀 100 only badge.

WP product: astroway-api-indie-lifetime, ID 30618, $299 (13225 UAH), stock=100. Checkout: astroway.info/checkout/?add-to-cart=30618.

2026-03-05 · GDPR / EU residency landing page + Pro card EU badge

Запускаємо /eu/ - окрему сторінку для EU-розробників, чий продукт чутливий до GDPR. Інтегратору важливо знати:

  • Pro $59 = EU-резидентність за замовчуванням (Hetzner Nuremberg, потік даних тільки в межах ЄС, анонімізована аналітика - Plausible cookie-free у роадмапі).
  • Стандартний DPA доступний не тільки на Enterprise: підписується через email на стандартному тарифі Pro за 5 робочих днів.
  • DELETE /v1/me/account: ендпоінт для GDPR right-to-erasure (миттєво видаляє ваш wp_user_id з усіх таблиць).
  • Картка Pro на /pricing/ тепер має значок 🇪🇺 GDPR-ready: клік веде на /eu/ з повним FAQ.
  • DivineAPI / AstrologyAPI / Prokerala: хостинг US/Індія, DPA тільки на Enterprise. Якщо відповідність GDPR критична - Pro $59 найдешевший шлях.

Сторінки: /eu/ (uk) + /en/eu/ (en). Запис у боковій навігації «GDPR / EU residency» зі значком 🇪🇺.

2026-03-03 · Річна передоплата −25% + перенесення кредитів + публічні фічі Pro

Дві зміни, що впливають на код інтеграторів:

  • Річна знижка 17% → 25% (3 місяці безкоштовно замість 2). Нові USD-ціни на рік: Indie $45, Starter $171, Pro $531, Business $1791, HD/Esoteric Pack $81, Vedic Pack $171, Reports Pack $891. Існуючі річні підписники не зачіпаються - нова ціна застосовується лише до майбутніх поновлень підписки. Якщо ви парсили USD-ціни через /wp-json/astroway/v1/api-prices - оновлені значення тепер віддаються автоматично.
  • Перенесення кредитів для річних підписників: невикористані кредити переходять на наступний місячний цикл, обмежені 1× місячним лімітом тарифу. Активується автоматично при оформленні річного плану. Видно через нові заголовки відповіді:
    • X-Credits-Limit: <int>: ефективний місячний ліміт (включає перенесення)
    • X-Credits-Remaining: <int>: як було, але з урахуванням перенесення
    • X-Credits-Rollover: <int>: поточний баланс перенесених кредитів (тільки для річних)
  • Тариф Pro ($59) тепер відкрито рекламує: streaming-ендпоінти (в реальному часі), GDPR-сумісний ЄС-білінг, розширений MCP (multi-agent / debate / RAG), webhooks (10 типів). Це функції, що вже були в Pro - раніше були сховані в docs.

Схема БД: додано колонки credit_rollover_enabled TINYINT(1) + credits_rolled_over INT UNSIGNED в api_keys і shared_user_quotas. На початку - обидві = 0 для всіх існуючих ключів.

2026-03-01 · Прозора таблиця вартості кредитів за ендпоінт

Запускаємо публічну сторінку /credits/ з повною розбивкою кредитів по всіх 700+ ендпоінтах. Жоден конкурент (DivineAPI, AstrologyAPI, Prokerala) такої таблиці не публікує - вони беруть фіксований 1 кредит/виклик і приховують внутрішнє маршрутизацію.

Для інтегратора це дає три речі:

  • Прозора одиниця економіки: точна вартість $/виклик для кожного ендпоінта (місячні бюджети /pricing/ × вартість тарифу = реальна вартість за виклик).
  • Авто-синхронізація з кодом: таблиця генерується під час білду з endpoint-costs.ts. Якщо ми додаємо новий ендпоінт або міняємо тариф - сторінка оновлюється автоматично на наступному деплої.
  • Маркер Free-тарифу: колонка показує які ендпоінти потребують Indie+ (значок 🔒, 28 ендпоінтів зараз).

Доступно: /credits/ (uk) і /en/credits/ (en). Перехресні посилання з /rate-limits-credits/ і запис у боковій навігації Starlight (значок «Нове»).

2026-02-27 · Vedic-карти, cosmogram, eclipse-path, star-map (+6 ендпоінтів)

Закриває категорію Visualization на 14/14 ендпоінтів за роадмапом:

  • POST /v1/render/wheel-vedic-north: North Indian (diamond) layout. Houses fixed, signs rotate за лагною.
  • POST /v1/render/wheel-vedic-south: South Indian (4×4 grid). Signs fixed (Pisces top-left), houses плавають.
  • POST /v1/render/wheel-vedic-east: East Indian (Bengali). Квадрат із діагоналями + внутрішнім повернутим квадратом.
  • POST /v1/render/cosmogram: Hamburg School / Cosmobiology 90°-дайл (Ebertin 1940 + Witte 1928).
  • POST /v1/render/eclipse-path: equirectangular world map з caller-supplied lat/lon-треком; рендерить центральну лінію + смугу заданої ширини.
  • POST /v1/render/star-map: stereographic projection списку точок (RA/Dec) із magnitude-масштабуванням.

Усі рендери - pure SVG, без headless-Chrome.

2026-02-25 · Bi-/tri-wheel + composite + biorhythm (+4 ендпоінти)

Чотири нові ендпоінти-візуалізатори, що розширюють SVG-механіку:

  • POST /v1/render/bi-wheel: два концентричні кола: внутрішнє натальне + зовнішнє кільце з транзитними (або прогресивними) планетами.
  • POST /v1/render/tri-wheel: три кола: natal + progressed + transit.
  • POST /v1/render/composite: рендер композитної карти з двох натальних вхідних даних (midpoint composite).
  • POST /v1/render/biorhythm: синусоїдальний графік трьох циклів: фізичний (23 дні), емоційний (28), інтелектуальний (33).

Обчислення тут самі, лише рендер; для bi-wheel всі планети двох карт обчислюються паралельно (Promise.all).

2026-02-24 · Візуалізація: SVG-рендеринг (+4 ендпоінти)

Чотири нові ендпоінти повертають SVG-рендери натальних карт і пов’язаних візуалів. Pure server-side - без Puppeteer/headless-Chrome, тому затримка ~10 ms замість 1-2 с і безкоштовно для free-плану.

  • POST /v1/render/wheel-western: західне колесо (signs ring + houses ring + planets + aspect lines).
  • POST /v1/render/aspect-grid: трикутна матриця аспектів зі знаком + орбом у клітинках.
  • POST /v1/render/moon-phase: диск Місяця з освітленням; повертає SVG плюс illuminationFraction, phase, waxing.
  • POST /v1/render/timeline: Gantt-стиль для подій-транзитів за період (caller передає масив events).

Опції: size, theme (light / dark / console), format (json повертає { svg, byteLength }, svg віддає image/svg+xml напряму). Базовий tier - 2 кредити за виклик.

2026-02-23 · Типізовані схеми у /v1/openapi.json (612 ендпоінтів, 98%)

/v1/openapi.json тепер повноцінна машинно-читана специфікація і для request bodies, і для response data. Типізовано 612 з 624 POST-ендпоінтів через три послідовні етапи, що приземлились разом:

  • Request bodies: 386 ендпоінтів типізовано через components.schemas (128 reusable-компонентів). Серед них 5 спільних (ChartInput, TwoChart, MultiChart, NatalTarget, NatalWrapper) і 123 локальних (DashaInput, MuhuratWindow, ChartWithTnp, WheelWestern тощо). Композиція через allOf для inheritance (DashaInput extends ChartInput).
  • Response data: 612 ендпоінтів типізовано через inferrer, що ходить ep.response-прикладами в маніфесті: {type: 'object', properties: {...}} замість плоского {type: 'object'}. Натальна карта тепер декларує data.planets[], data.houses.{ascendant, mc, cusps}, data.aspects[] зі справжніми типами полів.
  • Залишок 12 ендпоінтів: dasha pratyantar/sookshma з нерозбірливими shorthand-прикладами в маніфесті - залишаються {type: object}. Backward-compatible, додаємо їх у наступних релізах.

Що це для інтегратора:

  • Перегенеруйте OpenAPI-клієнт: openapi-typescript, openapi-fetch, swagger-codegen створять інтерфейси з типизованими полями замість Record<string, unknown>. Code-completion на request bodies + response data працює нативно.
  • Postman-колекція на /postman/astroway-api.json оновилась з тих самих типів - імпортуйте, отримайте автозаповнення для всіх типизованих ендпоінтів.

Backward-compatible: попередня форма {"type": "object"} була permissive - всі існуючі клієнти продовжують працювати без змін.

2026-02-21 · Перерахунок цін: Reports об’єднано, Business +500K, Free посилено

Три зміни цін, що впливають на інтеграторів:

  • Reports уніфіковано на 5 000 кредитів: /v1/reports/transit-yearly, /v1/reports/vedic-kundli, /v1/reports/lal-kitab зменшено з 10 000 кр до 5 000 кр за виклик (вдвічі дешевше). Усі PDF-репорти тепер коштують однаково - простіша математика для пакетного бюджету.
  • План Business +500K кредитів/міс: тариф Business тепер дає 3 500 000 кредитів на місяць (було 3 000 000) за ту саму ціну $199. Існуючі підписники отримають збільшений ліміт автоматично з наступного циклу білінгу.
  • План Free: /v1/reports/* потребує платного тарифу: 12 PDF-ендпоінтів (reports/natal, synastry, child, business, career, love, money, transit-yearly, vedic-kundli, lal-kitab, human-design, tarot) тепер повертають 402 PLAN_UPGRADE_REQUIRED для Free-ключів. Решта функціональності - карти, синастрія, прогнози, гороскоп - залишається доступною на Free.

Якщо ваш Free-ключ викликав один з цих ендпоінтів - оновіться до Indie ($5/міс) або вище, або переключіться на JSON-еквіваленти (/v1/chart, /v1/synastry тощо) для аналогічного контенту без PDF-рендеру.

2026-02-19 · Авторизація через Google і GitHub (+2 ендпоінти)

Один акаунт на всю екосистему - користувач, який реєструвався на astroway.info або app.astroway.info, входить у developer console через ту саму пошту/SSO, бачить історію замовлень, кредити й API-ключі.

  • GET /v1/auth/oauth/google/start?return=<path>: стартує Google OAuth-флоу.
  • GET /v1/auth/oauth/github/start?return=<path>: стартує GitHub OAuth-флоу.

Callback завершується редиректом на /dashboard/oauth/callback#access_token=&refresh_token=&user= - далі дашборд персистить токени як після /v1/auth/login. Якщо email уже зареєстрований через звичайну форму та email_verified=true від провайдера - обліковий запис лінкується, новий не створюється.

2026-02-17 · Reports Pack ($99 / 500 000 кредитів) + white-label включено

Тариф для розробників PDF-репортів - 100 PDF/міс за $0.99 ефективно, з white-label за замовчуванням:

  • Тариф reports_pack ($99/міс або $990/рік) дає 500 000 кредитів і 200 запитів/хв.
  • Доступ обмежений до /reports/* (12 типів PDF: natal, synastry, child, business, career, love, money, transit-yearly, vedic-kundli, lal-kitab, human-design, tarot) + /whitelabel/* (індивідуальний логотип + кольори + домен). Все інше повертає 402 PLAN_PACK_MISMATCH (upgrade_to: pro).
  • White-label включено як стандарт: не потрібен апгрейд до Enterprise для брендованих PDF.
  • Перевитрата $3 / 10 000 кредитів (як Pro), перемикач обмеження витрат доступний.
  • 21 локалізація PDF, формат A4, доставка через signed-URL CDN (TTL 24 год).

API plan enum тепер: free | indie | starter | pro | business | enterprise | hd_pack | esoteric_pack | vedic_pack | reports_pack. Новий WC slug: astroway-api-reports-pack.

2026-02-15 · Крос-школа: Jaimini yogas + Lal Kitab та KP doshas (+17 ендпоінтів)

Сімнадцять ендпоінтів - закривають вертикаль крос-школи для йог та дош.

  • Jaimini Yogas (5): /vedic/yogas/jaimini/{raja, dhana, daridra, viparita, full}. Базуються на chara karakas (AK / Amk / PK).
  • Lal Kitab dosha varianti (6): /vedic/doshas/lal-kitab/{manglik, kalsarpa, pitra, shrapit, rin, full}. LK-специфічні відмінення та upayas.
  • KP dosha varianti (6): /vedic/doshas/kp/{manglik, kalasarpa, pitra, sade-sati, kemadruma, full}. BPHS-правила + KP sub-lord chain. Sade Sati - transit-aware (потребує targetDate).

Sources: Jaimini Sutras 2.x + Sanjay Rath, K. Ashant + R.D. Mathur, K.S. Krishnamurti Reader I-VI. Pricing: TIER_3 (50 кредитів).

2026-02-13 · Vedic Pack ($19 / 100 000 кредитів)

Окремий тариф для Vedic-астрології - 165 ендпоінтів за ціною Starter:

  • Тариф vedic_pack ($19/міс або $190/рік) дає 100 000 кредитів і 100 запитів/хв.
  • Доступ обмежений до Vedic namespaces (/vedic/*, /nakshatras, /ashtakavarga, /vedic-divisional). Всі інші ендпоінти повертають 402 PLAN_PACK_MISMATCH.
  • Покриття: 16 vargas D1-D60, panchang (7), shadbala (7), yogas (7), doshas (7), compatibility ashtakoot (6), muhurat (12 категорій), 8 систем dasha × 5 рівнів (40), KP, Lal Kitab, Jaimini.
  • 2.5-5× більше карт за ту ж ціну, що Prokerala Ruby (~5K kundlis/міс vs їх 1-2K).

API plan enum тепер: free | indie | starter | pro | business | enterprise | hd_pack | esoteric_pack | vedic_pack. Новий WC slug: astroway-api-vedic-pack.

2026-02-09 · Lal Kitab: повний пакет (+12 ендпоінтів)

Дванадцять ендпоінтів North-Indian Vedic школи на основі anonymous Urdu MSS 1939-1952. Ціла школа - YELLOW (intrinsic - single-school з розходженнями між modern авторами).

  • /vedic/lal-kitab/teva: fixed-house chart (house = sign).
  • /vedic/lal-kitab/lal-kundali: 12-house grid layout.
  • /vedic/lal-kitab/kismat + /prosperity: fortune & dhana yoga scoring.
  • /vedic/lal-kitab/dasha (35y) + /varshphal + /life-graph: timing.
  • /vedic/lal-kitab/debts: 6 Rin (Pitri/Stree/Kanya/Atma/Rishi/Daiva) detection + remedy.
  • /vedic/lal-kitab/remedies: per-planet upayas (день / mantra / donation).
  • /vedic/lal-kitab/{planet-house-effect, blind-house, sleeping-house}.

Disclaimer surfaced у responses. Sources: K. Ashant Vol I-VI + R.D. Mathur + U.C. Mahajan.

2026-02-06 · Esoteric Pack ($9 / 200 000 кредитів)

Новий додатковий тариф для розробників езотерики/дивінації - 180 ендпоінтів за $9/міс:

  • Тариф esoteric_pack ($9/міс або $90/рік) дає 200 000 кредитів і 60 запитів/хв.
  • Доступ обмежений до просторів esoteric/divination (/tarot/*, /numerology/*, /reference/*, /esoteric/*, /geomancy/*, /runes/*, /palmistry/*, /iching*, /sabian-symbols, /destiny-matrix/ladini, /djamaspa). Усі інші ендпоінти повертають 402 PLAN_PACK_MISMATCH.
  • Не комбінується з іншими тарифами на одному ключі: це окреме розширення за аналогією з HD Pack.

API plan enum тепер: free | indie | starter | pro | business | enterprise | hd_pack | esoteric_pack. Нові WC slug-и: astroway-api-esoteric-pack (місячна + річна варіації). Якщо ви створювали ключі через /v1/keys без явного plan - нічого не змінюється.

2026-02-02 · BaZi + Zi Wei Dou Shu (+17 ендпоінтів)

Третя китайська категорія, після Chinese Zodiac + Feng Shui:

  • BaZi (5): /bazi/{year-pillar, month-pillar, four-pillars, element-balance, year-pillar-decade}. Year + month pillars канонічні, day + hour pillars відкладено до cross-verification з Hong Kong Observatory (різні джерела дають різні JD-якорі).
  • Zi Wei Dou Shu MVP (12): /ziwei/{twelve-palaces, main-stars, full-chart, palace-destiny, palace-siblings, palace-spouse, palace-children, palace-wealth, palace-health, palace-travel, palace-career, palace-property}. MVP - palace meanings + 14 main stars list. Повний chart відкладено (потрібна спеціалізована lunar-month ephemeris).

API now exposes 505 endpoints - паритет з ширшим конкурентом (Astrology-API.io).

2026-01-30 · Wellness (+9 ендпоінтів)

Дев’ять wellness-ендпоінтів - медична астрологія + дієта + йога + кристали тощо. Educational use only - not medical advice, дисклеймер у кожній відповіді.

  • POST /v1/wellness/medical-astrology: body-rulership за традиційним Melothesia.
  • POST /v1/wellness/diet: їжа за елементом (focus / emphasize / avoid).
  • POST /v1/wellness/yoga: фокус + асани + пранаяма за знаком.
  • POST /v1/wellness/exercise: інтенсивність + recommended/avoid за елементом.
  • POST /v1/wellness/mental-health: element-profile дзеркала + dominantElement + сильні/слабкі сторони + coping.
  • POST /v1/wellness/sleep-cycles: поради сну по фазах Місяця.
  • POST /v1/wellness/herbs: трави за планетарним правителем знака (Culpeper 1653).
  • POST /v1/wellness/crystals: кристали за знаком + інтенції.
  • POST /v1/wellness/cycle: age-based wellness milestones (Saturn return, Uranus opposition, …).

Sources: Pelletier 1978 + Culpeper 1653 + Judy Hall Crystal Bible. Tier - 2 кредити (cycle = 1 кредит).

2026-01-27 · Mayan calendars (+8 ендпоінтів)

Майянський блок: класичний Tzolkin + Haab + Long Count + Calendar Round + Lord of the Night, плюс Dreamspell (модерн Argüelles 1990).

  • POST /v1/mayan/tzolkin: 260-денний sacred calendar (число 1-13 + ім’я з 20).
  • POST /v1/mayan/haab: 365-денний civil calendar (18 місяців × 20 + 5-денний Wayeb).
  • POST /v1/mayan/long-count: 5-place позиційна нотація baktun.katun.tun.uinal.kin.
  • POST /v1/mayan/calendar-round: комбінований Tzolkin+Haab (52-річний цикл).
  • POST /v1/mayan/lord-of-night: 9-денний цикл (G1-G9).
  • POST /v1/mayan/full: все класичне в одному виклику.
  • POST /v1/mayan/compatibility: сумісність пари за tone/name/element/direction.
  • POST /v1/mayan/dreamspell: модерн Argüelles (kin 1-260, tone × seal).

Source: Goodman-Martínez-Thompson correlation (Thompson 1935 + Lounsbury 1976). Validation anchor: 2012-12-21 = Long Count 13.0.0.0.0 ✓ (Bak’tun rollover).

2026-01-23 · Sthira + Shoola Dasha (+10 ендпоінтів)

Дві Jaimini-школи rasi-dasha з повним cascade (maha, antar, pratyantar, sookshma, prana):

  • Sthira: seed = знак Brahma planet, MD forward 12 знаків (7y movable / 8y fixed / 9y dual).
  • Shoola: seed = stronger_rasi(asc, asc+6), MD forward 12×9y, опція antardasaSeedOption ∈ 3.

Закриває набір 10 dasha-шкіл × 5 рівнів = 50 ендпоінтів. Sources: BPHS Adhyayas 49-50 + Jaimini Sutras 2.x.

2026-01-19 · Pet + Business + Financial (+36 ендпоінтів)

Три категорії одним shipment:

  • Pet (14): /pet/{birth-chart, sun-sign-meaning, personality, temperament, training-style, diet-by-sign, grooming-by-element, exercise-needs, communication-style, play-style, health-tips, best-names, lucky-day, owner-pet-compatibility}. Disclaimer: entertainment only - not vet care.
  • Business (12): /business/{founder-personality, leadership-style, ideal-industry, founding-chart, electional-day, name-suggestions, team-compatibility, customer-archetype, marketing-style, risk-profile, ideal-partner-sign, expansion-timing}. Disclaimer: strategic ideation, не правова/податкова порада.
  • Financial (10): /financial/{investor-archetype, risk-tolerance, spending-style, savings-tips, career-money-style, wealth-house, lucky-numbers, lucky-day, market-timing, wealth-cycle}. ⚠️ NOT INVESTMENT ADVICE - посилений disclaimer у кожній відповіді.

Tier - 2 кредити (Financial market-timing/wealth-cycle = 3 кредити).

2026-01-16 · Jaimini analysis suite (+10 ендпоінтів)

Десять Jaimini-аналітичних ендпоінтів - chara/naisargika karakas, padas (A1..A12 + S1..S12 + M1..M12 + graha arudhas), Upapada, rasi/graha drishti, Karakamsa (AK у D9), running dasha summary, basic Jaimini yogas.

Sources: Jaimini Sutras 1-2 + BPHS Adhyayas 26/47.

2026-01-09 · Status page + AI-агенти + дефолтний base URL

  • Публічна status page: https://api.astroway.info/status: uptime, latency p50/p95/p99, кешовано 60s.
  • llms.txt for AI agents: https://api.astroway.info/llms.txt: структуровані інструкції для Claude / ChatGPT / Perplexity Code agents.
  • Дефолтний base URL у документації, MCP server, SDKs, Postman collection - api.astroway.info/v1 (з 301 редіректом зі старого api-calc.astroway.info).

2025-12-30 · Tribhagi, Shatabdika, Shodashottari Dashas (+15 ендпоінтів)

Три nakshatra-dasha системи з full cascade:

  • Tribhagi: 1/3-scale Vimshottari (40-year cycle).
  • Shatabdika: 100-year cycle, 7 планет (без shadow).
  • Shodashottari: 116-year cycle, 8 планет (без Rahu).

Sources: BPHS Adhyaya 46.

2025-12-25 · Кредитні плани: 5-tier rebalance + Free 5K → 10K

Перекалібровано кредитні tiers після 18-competitor audit. Free план тепер дає 10 000 кредитів на місяць (було 5 000). Проценти витрат для типових use-cases (натальна карта + 7 транзитів) знижено на ~22%. Жодних breaking-змін у API - лише економіка.

2025-12-17 · Chinese Zodiac + Feng Shui Kua (+8 ендпоінтів)

Перший блок китайської астрології, базовий шар (BaZi + Zi Wei Dou Shu - далі):

  • POST /v1/chinese/zodiac/animal: тварина року + повний pillar (Geng-Wu, Wood-yang, тощо).
  • POST /v1/chinese/zodiac/element: фіксований + циклічний елемент Wu Xing з yin/yang.
  • POST /v1/chinese/zodiac/inner-animal: внутрішня тварина (бранч місяця).
  • POST /v1/chinese/zodiac/secret-animal: таємна тварина (бранч години: потрібен time).
  • POST /v1/chinese/zodiac/compatibility: сумісність пари за San He трина / Liu Chong конфлікт-парами.
  • POST /v1/chinese/feng-shui/kua: персональне Kua-число + East/West-group.
  • POST /v1/chinese/feng-shui/lucky-directions: 4 щасливі + 4 нещасливі компасні напрямки.
  • POST /v1/chinese/feng-shui/bagua: Bagua-карта 9 життєвих сфер з елементами + кольорами.

Source: 60-jiazi canonical + L. Skinner Living Earth Manual (1976) + Lillian Too. Pricing tier - 2 кредити за виклик. Lichun cutoff = Feb 4 (точність ±1 день для 1900–2100).

2025-12-09 · Quality pass: 24 bug fixes у Vedic категоріях

Фіксація 24 розрахункових багів через 6 паралельних deep-research-агентів. Найкритичніші: Mangal dosha cancellation (own/exalted Mars cancels per BPHS), Pitru dosha trigger (Sun-Saturn vs Sun-Rahu), composite Davison ARMC drift, ACG meridian-line accuracy. Snapshot-тестів додано: 47.

2025-12-02 · Vedic Compatibility + Muhurat (+18 ендпоінтів)

  • Compatibility (6): Ashta-Koota matching (Varna/Vasya/Tara/Yoni/Graha-Maitri/Gana/Bhakoot/Nadi) + Mangal dosha compat + Bhrigu summary.
  • Muhurat (12): електив для марriage, business, journey, education, surgery, наречений, mahurta-types (abhijit, vijaya, amrit, brahma).

Sources: BPHS + Muhurta Chintamani.

2025-11-29 · KP (Krishnamurti Paddhati): повний пакет (+10 ендпоінтів)

Десять ендпоінтів канонічної KP-школи (K.S. Krishnamurti 1971).

  • /vedic/kp/{cusps, sub-lords, planet-cuspal-position}: Placidus cusps + 4-level sub-lord chain (sign / star / sub / sub-sub).
  • /vedic/kp/ruling-planets: Day/Hora + Asc + Moon chain, deduplicated.
  • /vedic/kp/horary: KP horary number 1..249 → ASC longitude lookup.
  • /vedic/kp/significators: primary / secondary / tertiary per planet.
  • /vedic/kp/sub-sub-lord: chain at arbitrary sidereal longitude.
  • /vedic/kp/asc-sub: Ascendant sub-lord.
  • /vedic/kp/fortuna: Part of Fortune (day/night) + KP chain.
  • /vedic/kp/transit-kp: current-moment positions + KP chain.

Алгоритм: Vimshottari proportional sub-divisions (27 stars × 9 sub-lords). Sources: K.S. Krishnamurti Reader I-VI (1971-77).

2025-11-22 · Vimshottari + Yogini + Ashtottari + Kalachakra Dashas (+20 ендпоінтів)

Чотири класичні Vedic dasha-системи з повним cascade (maha, antar, pratyantar, sookshma, prana):

  • Vimshottari: 120-year cycle, 9 планет.
  • Yogini: 36-year cycle, 8 yoginis.
  • Ashtottari: 108-year cycle, 8 планет (без Ketu), Ardradi tradition.
  • Kalachakra: sign-based dasha, paramayu варіює per pada (100/85/83/86).

Sources: BPHS Adhyaya 46 + Saravali. Cross-validated проти PyJHora 7.02.

2025-11-08 · Chara Dasha (Jaimini K.N. Rao) (+5 ендпоінтів)

Rasi-dasha школи Jaimini у варіанті K.N. Rao (1995). Direction = forward для рухомих/двоїстих знаків лагни, reverse - для фіксованих. Co-lord rule для Скорпіона (Mars+Ketu) і Водолія (Saturn+Rahu).

2025-10-25 · MCP-сервер + AI gateway

  • MCP-сервер @astroway/mcp - Model Context Protocol для Claude Desktop, Cursor, Cody. Кожен ендпоінт API доступний як MCP tool.
  • AI gateway: окремий приватний микросервіс ai.astroway.info обробляє LLM-запити з провайдерною ланкою (Gemini Flash → Groq Llama → OpenRouter → Cerebras → SambaNova → Mistral).
  • TypeScript SDK очікується окремим релізом: поки що використовуйте OpenAPI codegen за https://api.astroway.info/v1/openapi.json (openapi-typescript / openapi-fetch дають типизованого клієнта з 612 типизованих request/response пар).

2025-10-08 · Vedic Yogas + Doshas Parashara (+14 ендпоінтів)

  • Yogas (7): Raja, Dhana, Dharma-Karmadhipati, Pancha-Mahapurusha, Gajakesari, Adhi + composite.
  • Doshas (7): Mangal, Kaal Sarp, Pitru, Shrapit, Grahan, Guru-Chandal + composite.

Sources: BPHS Adhyayas 36-39, Phaladeepika.

2025-08-10 · Vedic Vargas D1-D60 + Panchang + Shadbala (+31 ендпоінт)

  • 16 Vargas D1-D60 (16): від Rasi (D1) до Shashtiamsa (D60), per BPHS Adhyaya 7.
  • Panchang (8): tithi, vara, nakshatra, yoga, karana + sunrise/sunset, abhijit, rahu kaal.
  • Shadbala (7): 6 sources of strength per planet + composite (Sthana, Dig, Kala, Cheshta, Naisargika, Drig).

2025-05-18 · Esoteric dictionaries + Crystal/Angel/Dream (+30 ендпоінтів)

Розширення reference-словників: 15 esoteric понять (chakras, koshas, tattvas, gunas) + 15 crystal/angel/dream lookup tables. Cached на edge (Cloudflare R2).

2025-03-12 · Reference glossary + Tarot Lenormand (+24 ендпоінти)

  • Reference (14): словники signs, planets, houses, aspects, nakshatras, fixed stars, Sabian symbols.
  • Tarot Lenormand (10): 36-card system: single, 3-card, 9-card, Grand Tableau, by-question.

2024-11-15 · Tarot Marseille (+20 ендпоінтів)

20 ендпоінтів Marseille deck: spreads (single, 3-card, Cross, 5-card, Celtic Cross, year-ahead), card meanings, reversed mode, by-question. Sources: Camoin / Jodorowsky public references.

2024-08-25 · Numerology, повний пакет: Pythagorean + Chaldean + Kabbalistic + Vedic (+40 ендпоінтів)

Чотири нумерологічні системи × 10 ендпоінтів кожна: life path, expression, soul urge, personality, birthday, maturity, current personal year/month/day, name compatibility.

Sources: Pythagorean (Cheiro 1908), Chaldean (Cheiro), Kabbalistic Hebrew gematria, Vedic Chaldean Indian.

2024-05-08 · Tarot Rider-Waite-Smith (+35 ендпоінтів)

35 ендпоінтів RWS deck: усі канонічні spreads (single, 3-card, Celtic Cross, year-ahead, relationship, 5-card horseshoe, 7-card ellipse, decision, situation, monthly), card meanings (upright + reversed), by-question, daily card, deck shuffle.

Sources: Smith images PD since 2021, Waite “Pictorial Key” 1909 PD.

2024-02-20 · AI horoscope generation + interpretations (+12 ендпоінтів)

Генерація natural-language інтерпретацій:

  • /horoscope/{daily, weekly, monthly}: текстові гороскопи.
  • /interpret/{natal, transit, synastry, compatibility}: детальні інтерпретації.

Провайдерна ланцюжок: GPT-4 → Anthropic Claude → fallback Groq.

2023-11-28 · Destiny Matrix (Ladini) (+1 ендпоінт)

/destiny-matrix/ladini - система Natalia Ladini (Russian/CIS market). Single-author method з явним disclaimer.

2023-09-20 · Aspects timeline + harmonics + cyclic index (+12 ендпоінтів)

Розширений aspect-аналіз:

  • /aspect-timeline: точні моменти aspects на N днів вперед.
  • /harmonics/{2..12}: гармонійні карти.
  • /cyclic-index: Андре Барбо’s cyclic index of social tensions.
  • /sabian-symbols: Marc Edmund Jones 360 symbols.

2023-05-10 · Astrocartography + Local Space + Geodetic (+18 ендпоінтів)

Geo-астрологія:

  • /acg + /acg-zones: Astrocartography ліній планет.
  • /local-space: Local Space horizon.
  • /parans: параны (Bernadette Brady).
  • /relocation: relocation chart.
  • /zenith + /horizon + /geodetic: додаткові geo-engines.
  • /ccg-analysis: CCG/CMG детальна geo-аналіз.

Sources: Jim Lewis Astro*Carto*Graphy, Sepharial Theory of Geodetic Equivalents, Bernadette Brady.

2023-02-15 · Human Design module (+12 ендпоінтів)

Повний Human Design engine:

  • /human-design: bodygraph (gates, channels, centers, type, profile, authority, strategy, environment, perspective).
  • /hd/incarnation-cross: incarnation cross + 4 gates.
  • /hd/{channels, gates, profiles, definition, authority, strategy, environment, perspective, mental-projector, etc}.

Sources: Ra Uru Hu The Human Design System + Chetan Parkyn + Lynda Bunnell.

2022-08-20 · Серверні synastry + composite

Реляційна астрологія (synastry, composite, Davison) реалізована на сервері. Першими доступні через /v1/synastry, /v1/composite, /v1/davison. Маркер розширення до релаційного аналізу.

Валідовано проти Solar Fire / Astrodienst - drift у межах похибки методу (≤0.5″ на середньостатистичному обчисленні).

2022-07-28 · Synastry, composite, Davison + group synastry (+5 ендпоінтів)

  • /synastry: relationship comparison з aspects matrix.
  • /composite: Robert Hand midpoint composite.
  • /davison: Ronald Davison time-place composite.
  • /group-synastry: multi-person (3+) synastry матриця.

Sources: Hand Planets in Composite, Davison Synastry, Lois Sargent.

2022-04-15 · app.astroway.info SPA, споживчий продукт live

Запущено app.astroway.info - SPA на React/TypeScript, що звертається до бекенда через /v1/*. Користувацькі акаунти, збережені карти, обране. Маркер переходу від тільки-сайту до повноцінного продукту.

Цей же бекенд згодом стає базою публічного API.

2022-03-18 · Essential dignities + receptions + almuten + arabic parts (+13 ендпоінтів)

Класична астрологія:

  • /essential-dignities: domicile, exaltation, triplicity, terms, faces.
  • /receptions: mutual reception detection.
  • /almuten: Almuten Figuris (chart ruler).
  • /arabic-parts: Lots of Fortune, Spirit, Eros, Necessity та інші 30+ Hellenistic lots.
  • /hyleg: hyleg + alcocoden.
  • /algol-minimum + /fixed-stars: fixed stars.

Sources: Lilly Christian Astrology + Brennan Hellenistic Astrology.

2021-08-10 · Transit calendar + forecast calendar + phase return (+10 ендпоінтів)

  • /transit-calendar: точні моменти transits на 6/12 місяців вперед.
  • /forecast-calendar: щомісячні forecasts.
  • /phase-return: solar return, lunar return, Saturn return, Jupiter return.
  • /eclipse-analysis: eclipses у contextі natal chart.

2021-04-05 · Aspects calculation + house systems expansion (+8 ендпоінтів)

  • /aspects: повна aspects matrix з orb tables (Ptolemy, modern, asteroid).
  • /coalescent: coalescent points.
  • /disposition-chains: planet rulership chains.
  • House systems expansion: Placidus, Koch, Equal, Whole, Campanus, Regiomontanus, Topocentric, Porphyry, Alcabitius, Morinus.

2020-07-10 · Aspects matrix + класичні аспекти

Стабілізовано суть calculation suite. /v1/aspects готовий: підтримка conjunction, opposition, square, trine, sextile з птолемеївськими орбами. Фундамент для всієї подальшої аналітики (transits, synastry, returns).

WASM-збірка Swiss Ephemeris остаточно інтегрована - ~5x швидше за раніше використовувану аналітичну модель.

2020-06-15 · Daily/weekly horoscope text (+4 ендпоінти)

  • /horoscope/daily/{sign}: щоденний гороскоп для кожного знаку.
  • /horoscope/weekly + /horoscope/monthly: тижневі / місячні.
  • /sun-signs: sun-sign meanings.

Текст генерується manual editorial team (LLM-augmented texts came later у 2024).

2020-03-20 · Synastry beta + ephemeris extras (+5 ендпоінтів)

  • /synastry-beta: initial synastry (повний релиз 2022).
  • /ephemeris/{planets, asteroids, lunar-nodes}: historical 1900-2100.
  • /extra: fixed stars, Black Moon Lilith, Chiron.

2020-02-20 · REST API skeleton + OpenAPI 2.0

Опубліковано внутрішню специфікацію OpenAPI 2.0. Перший namespace /v1/*. Аутентифікація через X-Api-Key-заголовок. Rate-limiting infrastructure готова.

Internal milestone - публічний API запуститься пізніше, але контракт стабільний з цього моменту.

2019-12-15 · Internal /chart calculation engine

Перша серверна реалізація /chart (приватна). Placidus-доми, sidereal-офсети, обчислення планет, фіксованих зір. Тестування проти Astro.com baseline.

Повністю Node.js - від попередньої PHP-only логіки відмовляємось остаточно.

2019-09-25 · Initial release

Перший публічний випуск AstroWay Astrology API. Базовий функціонал:

  • /chart: натальна карта (планети, доми, ascendant, MC).
  • /transit: поточні транзитні позиції.
  • /aspects: основні aspects (conjunctions, oppositions, squares, trines, sextiles).
  • /horoscope: щоденний гороскоп (за sun sign).
  • /ephemeris: ефемериди для будь-якої дати.
  • /health: health check.

OpenAPI 2.0 specification, REST/JSON, X-Api-Key authentication. Backend on Swiss Ephemeris. Free tier - 1000 requests / month.

2019-09-01 · Інтеграція Swiss Ephemeris, фундамент

Бібліотеку Swiss Ephemeris 2.x інтегровано в бекенд astroway.info. Sub-arcsecond точність планетарних позицій, лунарних вузлів, астероїдів у межах 1900–2100.

Усі наступні розрахункові ендпоінти спираються на цей шар. Та сама бібліотека, що в Solar Fire, Kepler, Astro Gold, Astrodienst.