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

// product · release notes

Changelog що нового

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

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

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. Ловіть RateLimitError (з retryAfterSeconds), 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-рендеру.