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

// product · release notes

Changelog що нового

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

Latest · v2.325.2 Endpoints · 865 CI tests · 888 API contract · v1 stable · 12-mo deprecation

2026-10-28 · Натальна карта повертає назви мовою сторінки

POST /v1/chart?lang=de додає до відповіді блок localized: назви планет, знаків і аспектів обраною мовою, з ключами за англійськими іменами, які відповідь і так містить ("Sun": "Sonne"). Без ?lang= відповідь не змінюється.

Що робити з вашим кодом. Нічого, якщо ви показуєте назви англійською. Якщо карта йде на сторінку іншою мовою, передайте ?lang= і беріть підписи з localized замість власного словника. Мінорні аспекти, для яких немає перекладу, лишаються англійською.

2026-10-27 · Тексти вузлів, Ліліт у знаку і фігур карти

Нові ключі. GET /v1/natal-texts приймає north_node.<знак>, south_node.<знак>, lilith.<знак> і pattern.<фігура> (t_square, grand_trine, grand_cross, stellium, yod, kite, kind pattern). Тексти є всіма 20 мовами, які приймає lang.

Що робити з вашим кодом. Нічого. Щоб показати фігуру, визначте її за аспектами карти й запросіть pattern.<фігура>.

2026-10-26 · Браузер бачить, коли знімається ліміт

Відповідь 429 тепер відкриває сторінці заголовки Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining і X-RateLimit-Reset. Раніше сервер їх надсилав, але браузер не давав скрипту їх прочитати.

Що робити з вашим кодом. Якщо ви звертаєтесь до API зі сторінки, читайте Retry-After замість розбору тексту помилки. Серверного коду це не стосується.

2026-10-25 · Панчанг на момент сходу Сонця

Новий параметр. POST /v1/vedic/panchang/full приймає at: "sunrise": тітхі, накшатра, йога й карана рахуються на місцевий схід Сонця, як у друкованому панчангу, і time можна не передавати. Відповідь має at і computedFor, момент, на який усе пораховано. За замовчуванням, як і раніше, момент date + time.

Виправлення. У полярний день чи ніч періоди від сходу Сонця (Раху Каал, Ямаганда, Гуліка, Абхіджит, чогхадія) приходили як 00:00-00:00. Тепер вони null, а відповідь має polarState і warning.

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

2026-10-24 · Публічна синастрія: сила аспекту і обидві карти

Нові поля. У POST /v1/public/synastry кожен аспект має strength (0-100, вага, з якої складається score) і tone (harmonious або challenging). У відповіді також chart1 і chart2 у формі POST /v1/public/chart; у партнера з timeUnknown: true немає домів і кутів.

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

2026-10-23 · Рекомендація каменя-ремедії, і відповідь називає школу

POST /v1/vedic/gemstones віддає ратна-рекомендацію за сидеричним лагном: три камені з роллю, список заборон, замінники, протокол носіння (день, палець, метал, вага в ratti з переведенням у карати, біджа-мантра). GET /v1/vedic/gemstones/navaratna віддає довідкову таблицю дев’яти каменів без карти.

Що робити з вашим кодом. Нічого, якщо ви не будували ратна-логіку самі. Якщо будували, зверніть увагу на параметр school: lagna-lord (за замовчуванням) і functional-benefic дають однакові три рекомендовані камені і різні списки заборон. Відповідь завжди пише, за якою школою її побудовано, тому зберігайте це поле разом із результатом.

latitude і longitude тут обов’язкові й не мають типового нуля, як на решті chart-ендпоінтів: без них ви отримаєте 400, а не набір каменів для координат 0,0.

2026-10-22 · @astroway/render 0.3.0: підписи колеса на малому екрані

Нова опція пакета. renderWesternWheel(chart, { labelScale }) збільшує номери домів, ASC/DSC/MC/IC, гліфи планет і знак ретроградності відносно колеса, розширює кільце знаків і зсуває кільце планет. 1 за замовчуванням дає попередній вигляд. Колесо size: 560, показане на 343 px, з labelScale: 1.6 тримає номери домів близько 11 px на екрані.

Виправлення. Гліфи знаків тепер завжди вміщаються у своє кільце. Нижче 800 вони перетинали лінії кільця; на 800 і більше вивід не змінився.

Що робити з вашим кодом. Нічого, якщо ви не показуєте колесо меншим за його size. Інакше оновіть пакет до 0.3.0 і передайте labelScale.

2026-10-22 · Розклад дня з тлумаченням без ключа, тітхі й Місяць без курсу у фазі Місяця

Новий ендпоінт. GET /v1/public/tarot/daily-reading?lang= повертає розклад дня з трьох карт (однаковий для всіх на дату) з тлумаченням кожної позиції, підсумком і порадою, мовою запиту. Форма відповіді як у POST /v1/interpret/tarot.

Нові поля. GET /v1/public/moon-phase повертає tithi (ведичний місячний день 1-30) і voidOfCourse: періоди Місяця без курсу, що зачіпають добу.

Що робити з вашим кодом. Нічого, якщо ці дані вам не потрібні.

2026-10-22 · ‘Ведичні ендпоінти: одна ціна за однакову роботу’

У ведичному наборі однакова робота коштувала по-різному залежно від школи. vedic/dashas/vimshottari/maha коштував 50 кредитів, vedic/dashas/shoola/maha коштував 10. Обидва будують дерево періодів з однієї карти. Те саме було між дошами Парашари (50) і дошами KP та Лал Кітаб (10), між йогами Парашари (50) і йогами Джаіміні (10 і 20 всередині однієї таблиці), і всередині shadbala, де п’ять розділів коштували 50, а naisargika коштував 20.

125 шляхів тепер коштують 20 кредитів (Tier 2). Це не компроміс між крайнощами: Tier 2 описано в нас як “карта плюс аналіз”, і саме це вони роблять, тоді як Tier 3 описано як “дві карти або скан діапазону”, чого не робить жоден з них.

Що подешевшало з 50 до 20: dashas/{vimshottari,ashtottari,kalachakra,yogini}/*, doshas/parashara/*, yogas/parashara/*, shadbala/*, bhavabala, panchang/{full,choghadia,hora,rahu-kaal}.

Що подорожчало з 10 до 20: dashas/{chara,shatabdika,shodashottari,shoola,sthira,tribhagi}/*, doshas/{kp,lal-kitab}/*, yogas/jaimini/*, jaimini/*, kp/*, lal-kitab/*.

Ціна не змінилась там, де опис тарифу справді підходить: compatibility/* приймає дві карти, muhurat/* сканує діапазон дат, обидва лишаються 50. compatibility/manglik-check лишається 20, бо приймає одну карту, а не дві.

Якщо ви плануєте витрати за таблицею, перечитайте /credits/: вона будується з тих самих значень, що й білінг.

2026-10-21 · Значення чисел мовою запиту, назва накшатри, час без секунд

Нові поля. Кожне число в /v1/numerology/{system}/* поруч із meaning повертає meaningLocalized мовою запиту. POST /v1/vedic/kundli повертає nakshatra.nameLocalized. POST /v1/fixed-stars тепер повертає conjunctions: натальні планети в з’єднанні із зірками в межах orb (за замовчуванням 1°, не більше 5), найближчі першими; масив stars той самий.

Змінене значення. time в усіх ендпоінтах з картою приймає також HH:mm і читає його як HH:mm:00; раніше такий запит отримував 400.

Що робити з вашим кодом. Нічого, якщо вам підходить англійський текст. Для сторінок іншими мовами беріть meaningLocalized; поки переклад мови не готовий, там англійський текст з translated: false.

2026-10-20 · Посилання на PDF-звіт до 90 днів, DPA версії 2

Новий параметр. Будь-який POST /v1/reports/* приймає ?retain_days=N (1-90): PDF лежить за своїм url стільки днів, і expires_at у відповіді це показує. Без параметра як і раніше 24 години.

Новий ендпоінт. DELETE /v1/reports/files/{filename} видаляє PDF, зроблений вашим акаунтом, раніше строку. Безкоштовний; чужий файл відповідає 404.

DPA версії 2. Версія 1 казала, що name і city ніде не записуються, хоча PDF-звіт друкує ім’я і зберігається добу. Версія 2 описує файли звітів і їхній строк. Якщо ви приймали версію 1, вона діє, доки ви не приймете версію 2 у дашборді (Білінг).

Що робити з вашим кодом. Нічого. Щоб віддати клієнту довге посилання, додайте retain_days.

2026-10-20 · Тексти карт таро без ключа

Новий ендпоінт. GET /v1/public/tarot/texts?cards=&lang= повертає для кожної з 78 карт Райдера-Вейта-Сміт опис із трьох абзаців і тексти про кохання, кар’єру, фінанси, здоров’я й дух для прямого та перевернутого положення, з назвою і ключовими словами мовою запиту. Тексти наші власні.

Що робити з вашим кодом. Нічого, якщо вам вистачає meaning з розкладу. Для сторінки карти завантажуйте її текст за slug і кешуйте: дані статичні. Мова, переклад якої ще не готовий, отримує англійський текст з textLocalized: false.

2026-10-19 · KP: виправлені управителі накшатр і назви планет, хорарна карта за номером

Змінені значення. Таблиця Вімшоттарі в KP плутала Венеру з Юпітером. Накшатри Венери (Бхарані, Пурва Пхалгуні, Пурва Ашадха) отримували управителем Юпітера, а накшатри Юпітера (Пунарвасу, Вішакха, Пурва Бхадрапада) ділилися на саби в порядку Венери. Тому sub, subSub і starLord у межах цих шести накшатр були хибні в /v1/vedic/kp/* і в kpSaturnChain/kpMoonChain у /v1/vedic/doshas/kp/sade-sati. Окремо /v1/vedic/kp/sub-lords, /significators, /planet-cuspal-position і /transit-kp віддавали довготу Меркурія під іменем Mars, Венери під Mercury, Марса під Jupiter і Юпітера під Venus. Збережені відповіді цих ендпоінтів варто перерахувати.

Хорар за номером. POST /v1/vedic/kp/horary раніше брав номер зі списку з 243 сабів, тож від 23 і далі асцендент зсувався, а 249 потрапляв у Водолій. Тепер це таблиця з 249 номерів, де шість сабів на межі знаків поділені надвоє. Відповідь будує карту: segment (початок і кінець відрізка), куспиди Плацидуса на момент дня запитання, коли цей градус сходить у заданому місці (housesOffsetHours), і дев’ять грах з домом і ланцюгом на момент запитання. Нове поле запиту ascendantAt: middle (за замовчуванням, як і раніше) або start. Широти понад 66.5° отримують 422: за полярним колом Плацидус не визначений.

Джаймині. Шула-даша (/v1/vedic/dashas/shoola/* і shoola у /v1/vedic/jaimini/dasha-summary) порівнювала силу знаків з переплутаними номерами планет: Марс читався як Юпітер, Венера як Меркурій. Для частини карт змінився знак, з якого починається даша; тепер він збігається з PyJHora. Стхіра-даша й арудхи на тих самих правилах, у перевірених картах вони не змінилися.

Що робити з вашим кодом. Якщо ви зберігали результати KP або Шула-даші, перерахуйте їх. Для хорара читайте cusps і planets; поле ascendant лишилося на місці.

2026-10-19 · Гороскопи знаків: розділи, сонячні доми, події періоду

Нові поля. Денний, тижневий і місячний гороскопи (/v1/horoscope/{daily,weekly,monthly} і /v1/public/horoscope/*) повертають sections (overview, love, career, health, finance, advice), а поруч обчислені дані: transits з сонячним домом кожної планети від запитаного знака, aspects, events періоду (інгресії, стаціонарні точки, фази Місяця), energy (оцінка 1-10 з переліком чинників), lucky і compatibleSigns.

Змінене значення. Текст тепер пишеться для конкретного знака з його сонячних домів (раніше всі 12 знаків отримували однакові транзити), а horoscope складається з тих самих розділів простими абзацами, без **жирного** і маркерів.

Що робити з вашим кодом. Якщо ви перетворювали ** у жирний шрифт, це більше не потрібно. Щоб показати картки за темами, беріть sections.

2026-10-18 · Тексти Human Design без ключа

Новий ендпоінт. GET /v1/public/human-design/texts?lang= повертає довідкові тексти до всього, що називає POST /v1/human-design: п’ять типів (опис, стратегія, підпис, тема не-себе), вісім авторитетів, п’ять видів визначеності, дванадцять профілів, шість ліній, дев’ять центрів (визначений і відкритий), 36 каналів і 64 ворота, 21 мовою. Ключі ті самі англійські ідентифікатори, що й у відповіді карти. Тексти наші власні.

Що робити з вашим кодом. Нічого, якщо у вас свої тексти. Якщо ні: завантажте один раз на мову (кеш тиждень) і беріть текст за type, authority, profile.profile, назвою центру, "менші-більші" воротами каналу. Хрестів і ліній воріт поки немає.

2026-10-17 · Нумерологічна карта і кундлі одним викликом

Нові ендпоінти. POST /v1/numerology/{system}/chart повертає шість основних чисел (Life Path, Expression, Soul Urge, Personality, Birthday, Personal Year) з їхнім значенням за 20 кредитів замість 60 за шість окремих викликів. POST /v1/vedic/kundli повертає лагну й дев’ять грах D1, накшатру Місяця, поточні махадашу й антардашу Вімшоттарі, йоги й доші Парашари зі списком наявних, за 50 кредитів. Кожна частина збігається з відповіддю свого окремого ендпоінта.

Що робити з вашим кодом. Нічого, якщо окремі виклики вас влаштовують. latitude і longitude у кундлі обов’язкові: без них немає лагни, і ендпоінт відповідає 400, а не картою для точки 0,0.

2026-10-16 · Ключі зберігаються лише як хеш, повторного показу більше немає

Ми зберігаємо тільки SHA-256 кожного ключа. Ключ показується один раз: при створенні (POST /v1/keys), оновленні (POST /v1/keys/{id}/rotate) і реєстрації з паролем.

Змінені відповіді. POST /v1/keys/{id}/reveal для ключа, який уже показували, повертає api_key: null і key_shown_once: true. GET /v1/me віддає keys[].key як null разом з keyShownOnce: true. GET /v1/keys має нове поле key_shown: false означає ключ, створений при вході через Google, GitHub, одноразовий код або з замовлення, якого власник ще не бачив.

Перший показ. Для ключа з key_shown: false той самий POST /v1/keys/{id}/reveal один раз видає новий ключ того ж класу і повертає його з first_show: true. Старе значення нікому не показували, тож ніхто ним не користується.

Що робити з вашим кодом. Якщо ви читали ключ з reveal або /me, збережіть його в момент створення або оновлення: більше його ніде не отримати. Загублений ключ оновіть, старий перестане працювати.

2026-10-16 · Пісочниця справді безкоштовна, і більше не піднімає ліміт живого ключа

aw_test_* ключі тепер не списують кредити. Документація обіцяла це від запуску, але в кредитному тракті гілки під цей префікс не було: ключі тарифікувались як звичайні.

Що робити з вашим кодом. Нічого, якщо ви тестуєте на aw_test_*: виклики стали безкоштовними, відповіді ті самі. Якщо ви ходили пісочницею в AI-інтерпретації, згенеровані звіти або рендер, ці маршрути тепер повертають 402 SANDBOX_ENDPOINT_UNAVAILABLE і потребують aw_live_*. Кожен такий виклик коштує живих грошей, а на ключі без списання немає стелі, яка б його обмежила, тож пісочниця покриває обчислювальні ендпоінти.

Заразом закрито наслідок старої реалізації обіцянки. Безкоштовність раніше вдавали великим бюджетом: тестовому ключу видавали ліміт у мільйон кредитів. Аккаунтний ліміт рахується як сума credits_limit по активних ключах, тому один активний тестовий ключ піднімав стелю всього акаунта, зокрема й для живого ключа, з 10 000 до 1 010 000. Тестові ключі більше не входять у цю суму.

2026-10-15 · Тінь ретроградності, точні межі року за Личунем, ключ без ліміту

Нові поля. POST /v1/retrograde-periods повертає для кожного періоду shadowStart (планета вперше доходить до градуса, де стане директною) і shadowEnd (повертається до градуса, де стала ретроградною). POST /v1/chinese/zodiac/animal повертає yearStart і yearEnd: точні моменти Личуня, що обмежують сонячний рік, в UTC і за пекінським часом.

Змінене значення. GET /v1/auth/keys/me для ключа без ліміту кредитів віддає credits_remaining і credits_total_this_period як null разом з unlimited: true, а не 0.

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

2026-10-15 · Читання власного акаунта більше не коштує кредитів

Вісім ендпоінтів, які лише повідомляють стан вашого ключа, списували 10 кредитів за виклик. Тепер вони коштують нуль і не впираються у вичерпаний ліміт:

  • GET /v1/auth/keys/me
  • GET /v1/keys, GET /v1/keys/usage, GET /v1/keys/me/spend-cap
  • GET /v1/webhooks, GET /v1/webhooks/{id}, DELETE /v1/webhooks/{id}
  • GET /v1/mcp/tools-list

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

Дії лишаються платними, бо роблять щось незворотне: створення й ротація ключа, reveal, POST /v1/webhooks/subscribe, POST /v1/webhooks/{id}/test.

Якщо ваш код рахує X-Credits-Used після цих викликів, він тепер побачить 0.