Every change that affects integrator code: new endpoints, SDK updates, /openapi.json schema changes, credit-price revisions, deprecations, breaking changes. Most recent at the top. Internal site work is not listed here.
The API contract is stable inside /v1/* — any breaking change ships under /v2/*, and /v1/* keeps working for at least 12 months.
2026-06-23 — Content Localization API: /v1/translate/*
Astro-aware machine translation across 20 languages. Four endpoints:
POST /v1/translate/astro— single text (up to 3000 chars)POST /v1/translate/batch— up to 25 strings sharing one target languageGET /v1/translate/languages— supported language list (free)GET /v1/translate/glossary/{lang}— domain glossary download (free)
A domain glossary keeps specialist terms (Dasha, Nakshatra, Ascendant, …) intact rather than translating them literally. Numeric fields untouched. Source defaults to English; pass source_lang to override.
Credits: 15 + ⌈chars/40⌉ per call (batch = summed chars). Charged against your existing plan credits. Limits: astro ≤3000 chars; batch ≤25 items, ≤2000 chars/item, ≤20000 total.
2026-06-19 — POST /v1/moon-phase — current Moon phase at a moment
New endpoint: current Moon phase for an arbitrary date/time/location. Tier 1 — 10 credits per call.
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}'Returns 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 (synodic age 0..29.53), waxing, moonSign, sunSign, moonLongitude, sunLongitude.
Geocentric Sun-Moon elongation per Meeus Ch.48 — algorithmically equivalent to RapidAPI Astrologer /moon-phase/context. The previous workaround POST /v1/render/moon-phase with format: json is still supported but returns the same calculation alongside an SVG payload; the new /moon-phase returns the math only (lighter, cheaper on the wire).
2026-06-17 — Fixed response schemas (/openapi.json) + nullable fields
A full schema audit found ~19 endpoints whose published 200 response schema did not match the real output — for example, /chart aspects[].type was described as a string but is returned as an object; likewise ACG coordinates, Human Design fields (/human-design, /hd/*), Vedic (/vedic-divisional, /vedic/lal-kitab/*), /almuten, /sabian-symbols, /midpoint-trees, and others. As a result, MCP clients rejected these tool calls with -32602 Output validation error, and strictly-typed SDKs could fail when parsing. All schemas now match the real output.
In addition, fields in the generated output schemas are now marked nullable. Real responses return null for conditional fields, which strict validation previously rejected — null is now accepted correctly.
Calculations did not change — only the schema descriptions were corrected. If you generated types from the old /openapi.json, regenerate them. MCP users (@astroway/mcp and hosted) get the fixes automatically.
2026-06-15 — Streaming and webhook credit cost
Clarified pricing for stream and webhook endpoints. /stream/* (10 endpoints) are priced as Tier 1 — 10 credits per call (there’s no separate “cheaper” per-tick rate). /webhooks/* CRUD operations are Tier 1 too; the event delivery to your URL itself is not billed.
What to do: if you poll a stream endpoint in a loop, budget it as 10 credits × frequency, and use the tickSeconds / nextEventAt response fields so you don’t poll more often than the state changes. Details — Credits and limits.
2026-06-13 — API responses in 20 languages via Accept-Language
Every endpoint that returns text content now honours the Accept-Language header. Example: Accept-Language: hi on /v1/horoscope/daily returns the horoscope in Hindi; Accept-Language: de on /v1/interpret/planet-in-sign returns the interpretation in German.
Supported languages: uk · en · de · pl · es · pt · hi · fr · ko · it · ja · id · tr · nl · cs · ro · vi · ar · el · hu (20).
- Alternative:
?lang=xxquery param for clients that can’t set headers - Default: source language
ukif no header sent or the language isn’t on the list - Numeric fields (longitude, latitude, speed, sign-id, house-id) are untouched — clients format locally
- Specialist terms (Raj Yoga, Sade Sati, etc.) preserved in original form via the glossary
Documentation: the /languages page plus per-endpoint OpenAPI specifications.
SDK support (TS / Python / PHP) and the MCP server land in their next releases — see each package’s roadmap.
2026-06-11 — Free tier capped at Tier 1-3 (heavy endpoints → Indie+)
The Free plan now covers only Tier 1-3 endpoints (up to 50 credits). Any Tier 4+ endpoint on Free returns 402 PLAN_UPGRADE_REQUIRED with upgrade_to: 'indie'. Affected: heavy multi-day scans (transit-calendar, forecast-calendar, eclipses, ingresses, planetary-cycles, solar-acg, phase-return, aspect-timeline, etc.), rectification (rectification, rectification/trutine), multi-person HD (hd/penta, hd/group-overlay, human-design/compatibility), all PDF reports (reports/*), and AI narratives (reports/ai/*).
AI interpretation stays free — interpret/* and horoscope/yearly remain available on Free.
What to do: if your Free key calls a Tier 4+ endpoint, upgrade to Indie ($5/mo, 50K credits) at astroway.info/pricing, or check the public cost table at /credits/ (each row carries a Free-availability marker).
2026-06-09 — /iching deprecated → /iching/* namespace
The bare POST /v1/iching (legacy random hexagram throw) is deprecated. All I Ching work lives in the /v1/iching/* namespace: throw-coins (with seed), by-question, with-changing-lines, daily, lookup/{n} — on the Wilhelm-Baynes set. The old endpoint works until 2027-06-16 (sunset) and returns Deprecation / Sunset / Link: rel="successor-version".
What to do: instead of POST /v1/iching, use POST /v1/iching/throw-coins (supports a seed for reproducibility) or another /iching/* endpoint.
2026-06-08 — /vedic-divisional deprecated → /vedic/varga/{D1..D60}
The generic POST /v1/vedic-divisional (where the varga was passed in the body) is deprecated in favour of dedicated POST /v1/vedic/varga/{D1..D60} endpoints — a cleaner OpenAPI/SDK signature and richer output (varga name, lagna, ayanamsa). The old endpoint keeps working fully until 2027-06-15 (sunset, within the /v1 ≥12-month stability guarantee) and returns Deprecation: true, Sunset: Tue, 15 Jun 2027 00:00:00 GMT, Link: …; rel="successor-version" headers. It will be removed after that date.
What to do: move POST /v1/vedic-divisional calls with body { "varga": "D9", … } to POST /v1/vedic/varga/D9 (varga in the path, the rest of the body unchanged).
2026-06-06 — Public no-auth read endpoints (light widgets)
A set of GET /v1/public/* endpoints that work without an API key (IP-rate-limited 30/hr, every response carries the _footer watermark). Handy for copy-paste cURL in the docs and lightweight integrations without signup:
GET /v1/public/horoscope/daily?sign=aries&date=YYYY-MM-DD— sun-sign daily horoscopeGET /v1/public/horoscope/weekly?sign=…— weeklyGET /v1/public/horoscope/monthly?sign=…— monthlyGET /v1/public/tarot/daily?date=…— card of the day (RWS, deterministic per day)GET /v1/public/moon-phase?date=…— moon phase (deterministic compute)GET /v1/public/planet-of-day?date=…— traditional planetary ruler of the weekday
All 12 zodiac signs; date optional (defaults to today); invalid sign/date → 400. Horoscopes are AI-generated and cached per (sign, period, language); weekly/monthly anchor to Monday / the 1st. The rest are deterministic. Language via Accept-Language.
2026-06-05 — Self-service webhooks: /v1/me/webhooks CRUD + HMAC delivery worker
A subscriptions endpoint family for outgoing webhooks. Previously the webhook table (migration 017) existed only admin-side — now we open CRUD to users via the dashboard /webhooks page.
# Createcurl -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"] }'
# Listcurl -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 event types: credits.threshold_crossed, key.revoked, key.created, request.failed (5xx), billing.invoice_paid, billing.invoice_failed, plan.changed.
HMAC signature. Every delivery carries X-AstroWay-Signature: t=<unix>,v1=<hex> where v1 is HMAC-SHA256(secret, "t=<unix>.<body>"). The secret is issued once at create time and can be rotated (POST /me/webhooks/<id>/rotate-secret).
Delivery worker. A background process (the new astroway-webhook-worker in PM2) pulls the queue and applies exponential backoff on client 5xx responses: 1m / 5m / 30m / 2h / 12h. After 5 failures the webhook auto-suspends with an email alert.
Dashboard page. /dashboard/webhooks with list + create modal + test button + delivery history. Sidebar nav entry in the Account section.
2026-06-03 — GET /v1/reports/history: list your recent report exports
New endpoint returns your most recently generated PDF reports — type, size, page count, language, created/expiry timestamps, and a url. Use it to re-fetch a report link within its 24-hour validity window, or to surface recent exports in a dashboard. Free to call. ?limit= (1–50, default 10).
2026-06-02 — Cache MISS/HIT instrumentation: X-Cache response header
The server now logs the cache outcome of every request (X-Cache: MISS | HIT | BYPASS). This enables the cache-hit-% column in /dashboard/usage (currently showing —).
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: MISSTracking. api_request_log.cache_status column (migration 030, enum). GET /v1/me/usage/endpoints starts returning a real cache_hit_pct instead of null.
Pricing impact. Cached requests still deduct credits at the rendered tier — but surfacing the metric in the dashboard helps optimise the integration (on a cache HIT you can, for example, avoid re-sending a heavy chart payload).
2026-06-01 — GET /v1/version + Swagger/OpenAPI aliases + /v1/v1/* typo redirect
Convenience shims for SDKs and one-off integrators — no more “why does this routine request return 404” surprises.
New GET /v1/version — free, no auth. Returns the current API version + commit + uptime:
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/"# }SDKs can call this on boot to diagnose “why is the behaviour suddenly different” — build_commit uniquely identifies the deploy.
OpenAPI aliases (301) — so Postman / Insomnia / openapi-generator find the spec on the first try:
| Alias | Where |
|---|---|
/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) — fixes the typical SDK bug where baseUrl already contains /v1 and the call adds /v1/X on top. Method and body are preserved; nothing breaks silently.
/api/health → /v1/health (301), other /api/<endpoint> → JSON 404 with code WRONG_PREFIX — for devs with wp-json muscle memory. Previously a generic nginx 404; now the response clearly points to the correct prefix.
Docs: new page URL conventions and free endpoints — full list of free system endpoints (/health, /health/deep, /version, /openapi.json, /docs, /reference/*, /i18n/*), free account-gated endpoints (/auth/*, /me, /keys, /admin/*, /embed/*, /books/*, /messages, /dev-assistant), and paid tier breakdown.
2026-05-30 — Embed widgets: optional ?disclaimer=1 parameter
Public embed widgets (GET /v1/embed/*) now accept an optional disclaimer=1 — it adds a short footer note that the content is for entertainment and informational purposes only (not medical, psychological, financial, or legal advice). Off by default — without the parameter the footer is unchanged. Turn it on if your compliance requires a visible disclaimer at the display side.
<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 — Four new embed widgets (key-free, iframe-ready)
The public HTML widget set GET /v1/embed/* grows to 14. The new ones need no API key, return a ready iframe fragment, and are IP-rate-limited (30 requests/hour).
GET /v1/embed/transit?date=— transiting planet positions (sign + degree, retrograde flag) for a date.GET /v1/embed/numerology?name=&date=&system=— Life Path / Expression / Soul Urge / Personality numbers (system:pythagoreanorchaldean).GET /v1/embed/panchang?date=&lat=&lng=&tz=— tithi / nakshatra / yoga / karana / vara + sunrise/sunset + Rahu Kaal.GET /v1/embed/synastry?date_a=&time_a=&lat_a=&lng_a=&tz_a=&date_b=…— compatibility score + key cross-aspects for two subjects.
<iframe src="https://api.astroway.info/v1/embed/transit?date=2026-05-29&theme=dark" width="460" height="420" style="border:0"></iframe>All widgets accept theme (dark/light/console) and lang. Cached public, max-age=300.
2026-05-28 — Error codes documentation corrected
The errors reference now matches what the API actually returns. Error codes are UPPER_SNAKE_CASE (e.g. INVALID_INPUT, INVALID_API_KEY, CREDITS_EXHAUSTED), the envelope is { ok: false, error: { code, message, details? } }, and validation failures (INVALID_INPUT, HTTP 400) carry details: [{ path, message }]. If you wrote switch (error.code) against the previously-documented lowercase names, update them to the real codes. The API responses themselves are unchanged.
2026-05-26 — New endpoint POST /v1/reports/generate — V2 unified dispatcher
Instead of 12 type-specific routes (/reports/natal, /reports/synastry, …), one endpoint with a report_type enum dispatcher routing to the matching renderer. SDK consumers get one method instead of twelve; the MCP tool catalogue gets one tool instead of twelve.
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","timezoneOffset":3,"latitude":50.45,"longitude":30.52,"name":"Test"}, "language": "en", "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 in the handler: natal/business/career/etc — chart; synastry — chart1 + chart2; tarot — seed (optional). Missing required fields → 400 with MISSING_CHART / MISSING_CHARTS error code.
Backwards compatible. All 12 type-specific endpoints remain — /v1/reports/generate is an additive surface, not a replacement. You can use either direct (client.reports.natal({...})) or generic (client.reports.generate({ report_type: 'natal', ... })).
Pricing. Forwarded per-renderer (natal → TIER_7, transit-yearly → TIER_8, tarot → TIER_4, etc). The dispatcher itself adds no extra cost.
OpenAPI 3.1. GenerateReport is a standalone component in /v1/openapi.json. SDK regen in the next release adds client.reports.generate().
2026-05-25 — Jaimini extras (+5 endpoints)
Five new endpoints for deeper Jaimini-school analysis — previously deferred, now live in prod.
POST /vedic/yogas/jaimini/karaka-yoga— scans all 8 chara karakas (Atmakaraka..Darakaraka) with strength scoring for placement in kendra / trine / dusthana and manifestation hint per karaka.POST /vedic/yogas/jaimini/karakamsa— full 12-house projection from Atmakaraka’s sign in D9 Navamsha. Each house carries canonical significations (iṣṭa devata, moksha, spiritual path) per Sanjay Rath’s commentary.POST /vedic/yogas/jaimini/shubha-graha— functional nature of every 7 visible grahas (yogakaraka / functional-benefic / neutral / functional-malefic / maraka) based on house-lordship from Lagna. Kendradhipati + maraka rules per BPHS A.34.POST /vedic/jaimini/atmakaraka-rotation— timeline of Atmakaraka transitions across the life via 1°/year symbolic progression. Returns age-of-event entries with before/after planet names.POST /vedic/jaimini/argala-analysis— full Argala (2/4/11 primary, 5 secondary, 8 special) + Virodhargala (12/10/3 primary, 9 secondary, 6 special) scan for all 12 houses with net-influence + dominant-over metrics.
All five are Tier 2 (20 credits) except atmakaraka-rotation which is Tier 3 (50 credits) due to the time-series compute. Available on the Vedic Pack add-on.
2026-05-19 — whitelabel accepts inline branding object (15 fields)
The whitelabel field on every /v1/reports/* endpoint (natal, transit-yearly, synastry, business, career, love, money, child, lal-kitab, human-design, tarot, vedic-kundli — 12 endpoints total) now accepts an inline object alongside the legacy boolean. SDK consumers without a whitelabel_configs DB row can brand reports per request.
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","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" } }'Output PDF/HTML carries your logo in the header, your title in place of the default, your colors throughout, and your company contact block in the footer.
15 fields (all optional): companyName, companyUrl, companyEmail, companyMobile, companyBio, logoUrl (https + .png/.jpg/.svg/.webp), frontImage, textPrimaryColor / textSecondaryColor / backgroundColor / themeColor / headingColor (each #RGB or #RRGGBB), footerText, fontPairing (serif-sans / sans-serif / serif-only / sans-only / system), reportName.
Backwards compatible. whitelabel: true (reads DB config for the WP-bound user) and whitelabel: false / absent — both unchanged. The field type is now boolean | BrandingObject.
Resolution priority. Inline object merges over the DB config (when the API key is wpUser-bound) or over defaults (for SDK keys with no WP binding). themeColor becomes the rendered primaryColor after applyBrandingPreferences, and fontPairing maps to CSS font-family.
OpenAPI 3.1 spec. BrandingObject is now a separate component in /v1/openapi.json. The TypeScript / Python / PHP SDK codegen will pick it up as a typed BrandingObject on next regeneration.
2026-05-16 — Hosted MCP endpoint live at mcp.astroway.info/mcp
@astroway/mcp now ships in two transport modes. Stdio (the npm package) is unchanged; we’ve added a hosted Streamable HTTP endpoint for zero-install integration with Claude Web (claude.ai in browser), Claude Desktop, Cursor, Cline, and every other MCP-compatible client.
One-click install for Cursor — a cursor://anysphere.cursor-deeplink/mcp/install?... button on the /examples/mcp/ page. Claude Desktop — via + → Add Connector → Custom (no JSON editing).
// JSON option for Cline / Continue / Windsurf{ "mcpServers": { "astroway-hosted": { "url": "https://mcp.astroway.info/mcp", "headers": { "Authorization": "Bearer aw_live_..." } } }}Same 630-tool catalogue + 12 prompts + 14 resources, same aw_test_* / aw_live_* auth (hosted mode uses an Authorization: Bearer … header instead of an env var), same credit pool. Multi-tenant by design — every request carries its own key, credits charge against that key’s account. X-Astroway-Channel reports mcp-http (hosted) vs mcp (stdio) for adoption tracking.
Why two modes. Stdio (npx @astroway/mcp) stays for Cursor power users / privacy-conscious integrators — key never leaves the machine, no network hops. Hosted unlocks the Claude Web segment (which only supports remote MCP) and zero-install scenarios. Same pattern Stripe / Resend / GitHub MCP ship.
Health endpoint — publicly reachable without auth:
curl https://mcp.astroway.info/health# {"status":"ok","version":"…","uptime_sec":…,"mcp_protocol_version":"2024-11-05"}Full docs for both modes — /examples/mcp/.
2026-05-15 — New endpoint GET /v1/auth/keys/me
API key introspection. Pass X-Api-Key, get the full state: plan, credits, status, bound domain, creation timestamp, referrer source. Useful for any SDK consumer (TS / Python / PHP / MCP) — “what’s my key doing right now” without reading the dashboard. Analogous to Stripe /v1/account or GitHub /user.
curl -H "X-Api-Key: aw_live_..." https://api.astroway.info/v1/auth/keys/me# →# {# "key_prefix": "aw_live_4ab...", # first 11 chars; full key is never returned# "plan": "free",# "credits_remaining": 9830,# "credits_total_this_period": 10000,# "period_end": "2026-06-01T00:00:00.000Z", # calendar month end# "status": "active", # active | suspended | revoked# "domain": null, # bound site (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# }No auth: 401 MISSING_API_KEY. Invalid key: 401 INVALID_API_KEY.
OpenAPI 3.1 spec. /v1/openapi.json now declares /v1/auth/keys/me. SDK codegen will surface client.auth.keys.me() on the next regeneration.
Backwards compatibility. Existing GET /v1/keys/usage (returns only credits_today + rate-limit) keeps working — it’s a separate endpoint for server-side cron checks. /auth/keys/me returns the full state plus domain-binding metadata for wp-plugin scenarios.
2026-05-14 — /horoscope/* and /interpret/* localisation (20 languages)
POST /v1/horoscope/{daily,weekly,monthly,yearly,compatibility} and POST /v1/interpret/{natal,synastry,transits,element,placement} — 10 endpoints that return interpretation text — now respond in the caller’s language.
Usage:
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"}'# → response in हिन्दीResolve priority (server-side):
body.language="de"— explicit per-call override (highest priority)Accept-Language: de, en;q=0.7— RFC 7231 q-weighted; first code matching an active lang wins?lang=de— query param for clients that can’t set headers- Fallback →
uk(source language)
Supported languages (20): uk, en, de, pl, es, pt, fr, it, nl, cs, ro, hu, el, tr, ar, hi, ja, ko, vi, id. Unknown codes silently fall through to uk without error.
OpenAPI 3.1 spec. /v1/openapi.json now declares Accept-Language (header) and lang (query) as parameters with an enum of 21 codes on these 10 endpoints. SDK codegens (openapi-typescript, openapi-generator-cli) automatically wire typed .lang('hi') call sites on the next regeneration.
What’s translated: interpretation text fields only (horoscope, interpretation, disclaimer, etc.). Numeric fields (longitude, latitude, score, sign-id, house-id) stay canonical — clients format locally. Matches the segment standard (Vedika, DivineAPI, AstrologyAPI.com).
Scope: 10 endpoints of the interpretation group are localised in this release. Calculation endpoints (/chart, /synastry, /transits, /vedic/*, /human-design/*, /tarot/*, /numerology/*, ~690 others) return numbers and canonical identifiers (name: "Aries", glyph: "♈") unchanged — clients localise those via their own lookup tables. This matches the segment standard.
Backwards compatible. Existing code without Accept-Language / ?lang= / body.language gets uk by default, same as before.
SDK support (@astroway/sdk, astroway, astroway/sdk, @astroway/mcp) adds a lang constructor option — separate releases arrive in the coming weeks via the staging-repo cron applier.
2026-05-09 — Three SDKs launched: TypeScript, Python, PHP
Three official SDKs are live on public registries — wrappers around the same 700+ API endpoints. One OpenAPI 3.1 spec → three language-idiomatic clients.
| Package | Registry | Version |
|---|---|---|
@astroway/sdk | npm | 0.1.0-alpha.1 |
astroway | PyPI | 0.1.0a1 |
astroway/sdk | Packagist | v0.1.0-alpha.1 |
What this is for integrators:
- Type-safe alternative to raw HTTP. Path autocomplete + request/response types in your IDE. Helper methods
aw.post('/chart', body=...)oraw.client.POST('/chart', { body })for TS — instead of hand-rolledfetch/requests/Guzzle. - Identical surface across languages. Constructor
Astroway({apiKey, baseUrl, authScheme, timeout, retry})works the same in TS / Python / PHP. If your project is multi-language, less cognitive overhead. - Built-in retry on 408/409/429/5xx with exponential backoff + full jitter. Honors
Retry-Afterheader. Default 2 retries, configurable viaretry={maxRetries: 0}. - Stainless-template error hierarchy — same template Stripe / OpenAI / Cloudflare SDKs use. Catch
RateLimitError(withretryAfterSeconds),AuthenticationError(rotate key),BadRequestError(validation),ApiError(generic) — in that order. - Two auth schemes. Default
X-Api-Key: aw_live_...(matches curl/Postman). OrAuthorization: Bearer aw_live_...(matches Stripe/OpenAI/Anthropic SDKs) viaauth_scheme="bearer"in the constructor. - Identification headers, no telemetry. Every request carries
User-Agent: astroway-sdk-<lang>/<version>+X-Astroway-Channel: sdk-<lang>. No phone-home, no opt-in/opt-out toggle. - OIDC + SLSA L3 provenance (TS + Python). Sigstore-attested record that the package was built from a specific commit in the public repo. No long-lived tokens in CI.
- MIT, full source open on
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 Astrowayaw = 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', /* ... */]);Python also offers AsyncAstroway with identical surface for async/await workloads. PHP is sync-only (no unified async story in the language). TS uses native promises through openapi-fetch.
This is an alpha — the public API may shift before 0.1.0 proper based on integrator feedback. Pin the exact version (@astroway/sdk@0.1.0-alpha.1) during the alpha window — or latest alpha at install time.
@astroway/mcp — the MCP server for Claude / Cursor / GPT — keeps living alongside as a separate product.
2026-05-07 — MCP server refresh
@astroway/mcp got an update — it now auto-generates the tool catalog from the live /openapi.json instead of hand-curated routes. Everything that landed in the API over the past weeks (compat suite, reports endpoints) is immediately visible in Claude / Cursor / GPT.
For integrators:
- Tool catalog reflects live API state
- Path-template endpoints (
/v1/.../id) are skipped for now — the description parser in MCP clients gets confused otherwise - Cost annotations in tool descriptions — Claude can see the credit cost of each call before execution
- OIDC trusted publishing + SLSA L3 provenance — the package is attested to a specific commit in the public repo
astroway/astroway-mcp
Install:
npm install -g @astroway/mcpOr through 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 endpoints)
A new group /v1/compat/* — composite compatibility score across western, vedic, chinese, numerology, tarot, and human design. Six traditions combine into a unified metric for UX indicators in multi-tradition astrology apps.
| Endpoint | What it computes |
|---|---|
/compat/full | 6-system unified compatibility 0–100 |
/compat/astro-vedic | Western synastry × Vedic Ashtakoot |
/compat/astro-chinese | Western × Bazi compatibility |
/compat/astro-numerology | Synastry-aspected numerology base |
/compat/astro-tarot | Cross-archetype reading |
/compat/astro-hd | Synastry × HD electromagnetic / dominant gates |
/forecast/multi-system | Unified yearly forecast across 6 systems |
/forecast/yearly-fusion | Annual highlights weighted by system |
/profile/spiritual-path | Path archetype from Pisces + Neptune + Vedic Moksha houses |
/profile/multi-archetype | Hero archetype detection across 5 systems |
Each endpoint returns JSON with a disclaimer field — this is AstroWay’s scoring methodology, not a clinical or legal statement. Tier 4 (100 credits) per call — heavy cross-system compute.
Manifest in /openapi.json updated — SDKs / MCP pick it up automatically.
2026-03-28 — Reports + Webhooks (+17 endpoints)
Two new groups in production.
/v1/reports/* (12 endpoints) — HTML / PDF report generation via Puppeteer. Render runs server-side in api-calc, returning a signed download URL (TTL 24h).
| Category | Slug | Cost |
|---|---|---|
| Natal | /reports/natal/* | Tier 7 (5000 cr) |
| Synastry | /reports/synastry | Tier 7 |
| Vedic Kundli | /reports/vedic-kundli | Tier 7 |
| Lal Kitab | /reports/lal-kitab | Tier 7 |
| Human Design | /reports/human-design | Tier 7 |
| Tarot | /reports/tarot | Tier 7 |
| Career / Love / Money / Child / Business | /reports/* | Tier 7 |
/v1/webhooks/* (5 endpoints) — subscription management, event delivery, HMAC signing. Subscribe to events credits.low, key.created, usage.threshold, error.spike.
curl -X POST https://api.astroway.info/v1/webhooks \ -H "Authorization: Bearer aw_live_..." \ -d '{"url": "https://...", "events": ["credits.low"], "secret": "wh_secret_..."}'Each delivery carries X-Astroway-Signature: sha256=<hmac> — verify with the secret. Retry policy: exponential backoff on 5xx, up to 5 attempts within 24 hours.
2026-03-14 — Reference endpoints: public, no key, no credits
14 /v1/reference/* endpoints (signs, planets, houses, aspects, elements, modalities, polarities, dignities, decans, nakshatras, lots, asteroids, zodiac-systems, glyphs) are now callable without X-Api-Key and cost 0 credits. These are canonical lookup tables — gating them through the billing channel was a design accident.
What this means for integrators:
- No key required — external MCP agents / SDKs / preview pages can pull reference data without authentication. The same IP rate limit as
/public(30 req/hr) still applies. - Cost manifest updated — 14 paths moved from
TIER_HALF(5 credits) to0. If yourastroway_cost_estimatebudget planner referenced these paths, new calls do not touch your quota anymore. - Existing clients that send a key keep working unchanged.
X-Api-Keyis ignored for/reference/*(we do not error on the extra header).
Backward-compatible: 200 responses and the JSON schema are unchanged; only the auth requirement is dropped.
2026-03-07 — Founders’ Lifetime Deal: $299 → Indie tier for life
Launching Founders’ Lifetime Deal — a limited relaunch project. First 100 customers pay $299 one-time and get the Indie tier (50,000 credits/mo) forever, no recurring charges, locked-in price.
What this means for integrators:
- Standard Indie = $5/mo. Founders’ = $299 one-time → breakeven at year 5, infinite ROI thereafter. If your project will be in astrology / numerology / Tarot space for at least 5 years, the Founders’ Deal pays off.
- Webhook payload for SKU
astroway-api-indie-lifetime: api_keys row getsplan='indie',credits_limit=50000,is_lifetime=1,expires_at=NULL. No monthly charges, no renewal webhooks. - DB schema: added columns
is_lifetime TINYINT(1)toapi_keysandshared_user_quotas. ApiKeyInfo TS type extended. Existing keys =is_lifetime=0(no behavior change). - WP REST endpoint
GET /wp-json/astroway/v1/founders-countreturns{sold, total: 100, remaining, available}— consumed by site/components/founders/FoundersCounter.astro for the realtime counter on /founders/ landing. - Auto-deactivation at 100/100: WC product
_stock_statusflips tooutofstockvia thewoocommerce_order_status_completedhook. After that, the checkout link redirects to/pricing/#indie(standard Indie $5/mo).
Live pages: /founders/ (uk) + /en/founders/ (en). Sidebar entry “Founders’ Lifetime Deal” with 🚀 100 only badge.
WP product: astroway-api-indie-lifetime, ID 30618, $299 (13,225 UAH), stock=100. Checkout: astroway.info/checkout/?add-to-cart=30618.
2026-03-05 — GDPR / EU residency landing page + Pro card EU badge
Launching /en/eu/ — a dedicated page for EU developers building GDPR-sensitive products. What integrators need to know:
- Pro $59 = EU-residency by default (Hetzner Nuremberg, EU-only data flow, anonymized analytics — Plausible cookie-free on roadmap).
- Standard DPA is not Enterprise-gated — signed via email on the standard Pro tier within 5 business days.
DELETE /v1/me/accountendpoint for GDPR right-to-erasure (instantly removes your wp_user_id from all tables).- Pro card on /pricing/ now carries a 🇪🇺 GDPR-ready badge — click leads to /en/eu/ with the full FAQ.
- DivineAPI / AstrologyAPI / Prokerala are US/India-hosted with DPA only on Enterprise. If EU compliance is a hard requirement, Pro $59 is the cheapest path.
Live: /eu/ (uk) + /en/eu/ (en). Sidebar entry “GDPR / EU residency” with 🇪🇺 badge.
2026-03-03 — Annual prepay 25% off + credit rollover + Pro feature surfacing
Two integrator-affecting changes:
- Annual discount 17% → 25% (3 months free instead of 2). New yearly USD prices: Indie $45, Starter $171, Pro $531, Business $1791, HD/Esoteric Pack $81, Vedic Pack $171, Reports Pack $891. Existing annual subscribers are not affected — the new price applies only to future renewals. If you parsed USD prices via
/wp-json/astroway/v1/api-prices, updated values are returned automatically. - Credit rollover for annual subscribers: unused credits roll over to the next monthly cycle, capped at 1× tier monthly allocation. Activated automatically on annual checkout. Visible through new response headers:
X-Credits-Limit: <int>— effective monthly limit (includes rollover)X-Credits-Remaining: <int>— same as before, now accounting for rolloverX-Credits-Rollover: <int>— current rolled-over balance (annual subscribers only)
- Pro tier ($59) now openly advertises: streaming endpoints (real-time), GDPR-compliant EU billing, MCP advanced (multi-agent / debate / RAG), webhooks (10 event types). These features were already in Pro — previously buried in docs.
DB schema: added columns credit_rollover_enabled TINYINT(1) + credits_rolled_over INT UNSIGNED to api_keys and shared_user_quotas. Initially both = 0 for all existing keys.
2026-03-01 — Per-endpoint credit cost transparency table
Public page /credits/ now lists the credit cost of all 700+ endpoints. No competitor (DivineAPI, AstrologyAPI, Prokerala) publishes anything similar — they charge a flat 1 credit per call and hide their internal mapping.
For integrators this gives three things:
- Transparent unit economics — exact $/call per endpoint (monthly budgets from
/pricing/× tier cost = real cost-per-call). - Auto-sync with code — the table is generated at build time from
endpoint-costs.ts. Adding a new endpoint or changing a tier propagates automatically on the next deploy. - Free-tier marker — the column shows which endpoints require Indie+ (🔒 icon, 28 right now).
Available at /credits/ (uk) and /en/credits/ (en). Cross-linked from /rate-limits-credits/ and Starlight sidebar (badge “New”).
2026-02-27 — Vedic charts, cosmogram, eclipse path, star map (+6 endpoints)
Closes the Visualization category at 14/14 endpoints per the roadmap:
POST /v1/render/wheel-vedic-north— North Indian (diamond) layout. Houses fixed, signs rotate by lagna.POST /v1/render/wheel-vedic-south— South Indian (4×4 grid). Signs fixed (Pisces top-left), houses float.POST /v1/render/wheel-vedic-east— East Indian (Bengali). Square with diagonals + inner rotated square.POST /v1/render/cosmogram— Hamburg School / Cosmobiology 90° dial (Ebertin 1940 + Witte 1928).POST /v1/render/eclipse-path— equirectangular world map with caller-supplied lat/lon track; renders centerline + band of given degree-width.POST /v1/render/star-map— stereographic projection of a list of (RA, Dec) points with magnitude scaling.
All renderers are pure SVG, no headless Chrome.
2026-02-25 — Bi-/tri-wheel + composite + biorhythm (+4 endpoints)
Four more visualization endpoints extending the SVG engine:
POST /v1/render/bi-wheel— two concentric wheels: natal inner + transit (or progression) outer ring.POST /v1/render/tri-wheel— three wheels: natal + progressed + transit.POST /v1/render/composite— render a composite chart from two natal inputs (midpoint composite).POST /v1/render/biorhythm— three-cycle sine plot: physical (23d), emotional (28d), intellectual (33d).
No new math — visualization only; bi-wheel computes both charts in parallel via Promise.all.
2026-02-24 — Visualization: SVG rendering (+4 endpoints)
Four new endpoints return SVG renders of natal charts and related visuals. Pure server-side — no Puppeteer / headless Chrome, so latency is ~10 ms instead of 1-2 s and free for the free tier.
POST /v1/render/wheel-western— Western wheel (signs ring + houses ring + planets + aspect lines).POST /v1/render/aspect-grid— triangular aspect matrix with glyph + orb per cell.POST /v1/render/moon-phase— moon disk illumination; returns SVG plusilluminationFraction,phase,waxing.POST /v1/render/timeline— Gantt-style transit-event timeline (caller passes theeventsarray).
Options: size, theme (light / dark / console), format (json returns { svg, byteLength }; svg serves image/svg+xml directly). Base tier — 2 credits per call.
2026-02-23 — Typed schemas in /v1/openapi.json (612 endpoints, 98%)
/v1/openapi.json is now a fully machine-readable specification both for request bodies and for response data. 612 of 624 POST endpoints are now typed, landing as a coordinated three-stage upgrade:
- Request bodies — 386 endpoints typed via
components.schemas(128 reusable components). Of these, 5 are shared (ChartInput,TwoChart,MultiChart,NatalTarget,NatalWrapper) and 123 are local (DashaInput,MuhuratWindow,ChartWithTnp,WheelWestern, etc.). Composition throughallOffor inheritance (DashaInput extends ChartInput). - Response
data— 612 endpoints typed via an inferrer that walks ep.response examples in the manifest:{type: 'object', properties: {...}}instead of the flat{type: 'object'}. The natal chart now declaresdata.planets[],data.houses.{ascendant, mc, cusps},data.aspects[]with real field types. - Remaining 12 endpoints — dasha pratyantar/sookshma with unparseable shorthand examples in the manifest — keep
{type: object}. Backward-compatible, will be added in upcoming releases.
What this means for integrators:
- Regenerate your OpenAPI client —
openapi-typescript,openapi-fetch,swagger-codegenproduce interfaces with typed fields instead ofRecord<string, unknown>. Code completion on request bodies + responsedataworks natively. - The Postman collection at
/postman/astroway-api.jsonis regenerated from the same types — re-import and you get autocompletion across all typed endpoints.
Backward-compatible: the previous {"type": "object"} form was permissive — every existing client keeps working untouched.
2026-02-21 — Pricing rebase: Reports unified, Business +500K credits, Free hardening
Three integrator-affecting pricing changes:
- Reports unified at 5 000 credits —
/v1/reports/transit-yearly,/v1/reports/vedic-kundli,/v1/reports/lal-kitabdropped from 10 000 cr to 5 000 cr per call (2× cheaper). All PDF reports now charge the same — simpler bundle-budget math. - Business plan +500K credits/mo — Business tier now ships 3 500 000 credits per month (was 3 000 000) at the same $199 price. Existing subscribers get the increased allocation automatically from the next billing cycle.
- Free plan:
/v1/reports/*requires a paid tier — 12 PDF endpoints (reports/natal,synastry,child,business,career,love,money,transit-yearly,vedic-kundli,lal-kitab,human-design,tarot) now return402 PLAN_UPGRADE_REQUIREDfor Free keys. Everything else — charts, synastry, transits, horoscope — stays on Free.
If your Free key was hitting one of those endpoints, upgrade to Indie ($5/mo) or higher, or switch to the JSON equivalents (/v1/chart, /v1/synastry, etc.) for similar content without the PDF render.
2026-02-19 — Sign-in with Google and GitHub (+2 endpoints)
One account across the whole ecosystem — a user who registered on astroway.info or app.astroway.info now signs into the developer console with the same email/SSO and sees their existing orders, credits and API keys.
GET /v1/auth/oauth/google/start?return=<path>— kicks off the Google OAuth flow.GET /v1/auth/oauth/github/start?return=<path>— kicks off the GitHub OAuth flow.
Callback ends with a redirect to /dashboard/oauth/callback#access_token=&refresh_token=&user= — the dashboard persists tokens just like after /v1/auth/login. If the email is already registered via the standard form and the provider asserts email_verified=true, the account is linked rather than duplicated.
2026-02-17 — Reports Pack ($99 / 500,000 credits) + white-label included
Tier for PDF report integrators — 100 PDFs/mo at $0.99 effective, with white-label included by default:
reports_packtier ($99/mo or $990/yr) grants 500,000 credits and 200 req/min.- Access restricted to
/reports/*(12 PDF types: natal, synastry, child, business, career, love, money, transit-yearly, vedic-kundli, lal-kitab, human-design, tarot) +/whitelabel/*(custom logo + colors + domain). Anything else returns402 PLAN_PACK_MISMATCH(upgrade_to: pro). - White-label included as default — no Enterprise upgrade needed for branded PDFs.
- Overage rate $3 / 10,000 credits (same as Pro), spend cap toggle available.
- 21 PDF localizations, A4 format, signed-URL CDN delivery (TTL 24h).
API plan enum is now: free | indie | starter | pro | business | enterprise | hd_pack | esoteric_pack | vedic_pack | reports_pack. New WC slug: astroway-api-reports-pack.
2026-02-15 — Cross-school: Jaimini yogas + Lal Kitab and KP doshas (+17 endpoints)
Seventeen endpoints close out the cross-school yoga / dosha grid.
- Jaimini Yogas (5) —
/vedic/yogas/jaimini/{raja, dhana, daridra, viparita, full}. Built on chara karakas (AK / Amk / PK). - Lal Kitab dosha variants (6) —
/vedic/doshas/lal-kitab/{manglik, kalsarpa, pitra, shrapit, rin, full}. LK-specific cancellations and upayas. - KP dosha variants (6) —
/vedic/doshas/kp/{manglik, kalasarpa, pitra, sade-sati, kemadruma, full}. BPHS rules + KP sub-lord chain. Sade Sati is transit-aware (requirestargetDate).
Sources: Jaimini Sutras 2.x + Sanjay Rath, K. Ashant + R.D. Mathur, K.S. Krishnamurti Reader I-VI. Pricing: TIER_3 (50 credits).
2026-02-13 — Vedic Pack ($19 / 100,000 credits)
Dedicated tier for Vedic astrology — 165 endpoints at the Starter price point:
vedic_packtier ($19/mo or $190/yr) grants 100,000 credits and 100 req/min.- Access restricted to Vedic namespaces (
/vedic/*,/nakshatras,/ashtakavarga,/vedic-divisional). Anything else returns402 PLAN_PACK_MISMATCH. - Coverage: 16 vargas D1-D60, panchang (7), shadbala (7), yogas (7), doshas (7), compatibility ashtakoot (6), muhurat (12 categories), 8 dasha systems × 5 levels (40), KP, Lal Kitab, Jaimini.
- 2.5-5× more charts at the same price as Prokerala Ruby (~5K kundlis/mo vs their 1-2K).
API plan enum is now: free | indie | starter | pro | business | enterprise | hd_pack | esoteric_pack | vedic_pack. New WC slug: astroway-api-vedic-pack.
2026-02-09 — Lal Kitab: complete pack (+12 endpoints)
Twelve endpoints from the North-Indian Vedic school based on the anonymous Urdu MSS of 1939-1952. The whole school is shipped as YELLOW (intrinsic — single-school with author divergence across modern English commentaries).
/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— six Rin (Pitri/Stree/Kanya/Atma/Rishi/Daiva) detection + remedy./vedic/lal-kitab/remedies— per-planet upayas (day / mantra / donation)./vedic/lal-kitab/{planet-house-effect, blind-house, sleeping-house}.
Disclaimer surfaced in responses. Sources: K. Ashant Vols I-VI + R.D. Mathur + U.C. Mahajan.
2026-02-06 — Esoteric Pack ($9 / 200,000 credits)
New add-on tier for developers building esoteric / divination apps — 180 endpoints for $9/mo:
esoteric_packtier ($9/mo or $90/yr) grants 200,000 credits and 60 req/min.- Access restricted to esoteric / divination namespaces (
/tarot/*,/numerology/*,/reference/*,/esoteric/*,/geomancy/*,/runes/*,/palmistry/*,/iching*,/sabian-symbols,/destiny-matrix/ladini,/djamaspa). Any other endpoint returns402 PLAN_PACK_MISMATCH. - Cannot be combined with another tier on the same key — separate add-on, analogous to HD Pack.
API plan enum is now: free | indie | starter | pro | business | enterprise | hd_pack | esoteric_pack. New WC slug: astroway-api-esoteric-pack (monthly + yearly variations). If you create keys via /v1/keys without explicit plan, nothing changes.
2026-02-02 — BaZi + Zi Wei Dou Shu (+17 endpoints)
Third Chinese category lands after Chinese Zodiac + Feng Shui:
- BaZi (5) —
/bazi/{year-pillar, month-pillar, four-pillars, element-balance, year-pillar-decade}. Year + month pillars canonical; day + hour pillars deferred until cross-verified against Hong Kong Observatory (sources disagree on JD anchor offset). - 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. Full chart deferred (specialized lunar-month ephemeris needed).
API now exposes 505 endpoints — width parity with the broadest competitor (Astrology-API.io).
2026-01-30 — Wellness (+9 endpoints)
Nine wellness endpoints — medical astrology + diet + yoga + crystals etc. Educational use only — not medical advice, disclaimer in every response.
POST /v1/wellness/medical-astrology— body rulership per traditional Melothesia.POST /v1/wellness/diet— food by element (focus / emphasize / avoid).POST /v1/wellness/yoga— focus + asanas + pranayama by sign.POST /v1/wellness/exercise— intensity + recommended/avoid by element.POST /v1/wellness/mental-health— element profile + dominant element + strengths/vulnerabilities/coping.POST /v1/wellness/sleep-cycles— moon-phase sleep tips.POST /v1/wellness/herbs— herbs by sign’s traditional planetary ruler (Culpeper 1653).POST /v1/wellness/crystals— crystals by sign + intentions.POST /v1/wellness/cycle— age-based wellness milestones (Saturn return, Uranus opposition, …).
Sources: Pelletier 1978 + Culpeper 1653 + Judy Hall Crystal Bible. Tier — 2 credits (cycle = 1 credit).
2026-01-27 — Mayan calendars (+8 endpoints)
Mayan block: classical Tzolkin + Haab + Long Count + Calendar Round + Lord of the Night, plus Dreamspell (modern Argüelles 1990).
POST /v1/mayan/tzolkin— 260-day sacred calendar (number 1-13 + 1 of 20 day-names).POST /v1/mayan/haab— 365-day civil calendar (18 months × 20 + 5-day Wayeb).POST /v1/mayan/long-count— 5-place positional notationbaktun.katun.tun.uinal.kin.POST /v1/mayan/calendar-round— combined Tzolkin+Haab (52-year cycle).POST /v1/mayan/lord-of-night— 9-day cycle (G1-G9).POST /v1/mayan/full— all classical components in one call.POST /v1/mayan/compatibility— pair compatibility by tone/name/element/direction.POST /v1/mayan/dreamspell— modern 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 endpoints)
Two Jaimini rasi-dasha schools with full (maha, antar, pratyantar, sookshma, prana) cascade:
- Sthira — seed = sign of the Brahma planet, MD walks forward 12 signs (7y movable / 8y fixed / 9y dual).
- Shoola — seed =
stronger_rasi(asc, asc+6), MD forward 12×9y, optionalantardasaSeedOption∈ 3.
Closes the set of 10 dasha schools × 5 levels = 50 endpoints. Sources: BPHS Adhyayas 49-50 + Jaimini Sutras 2.x.
2026-01-19 — Pet + Business + Financial (+36 endpoints)
Three categories in one 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, not legal/tax/investment advice. - 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 — strong disclaimer in every response.
Tier — 2 credits (Financial market-timing / wealth-cycle = 3 credits).
2026-01-16 — Jaimini analysis suite (+10 endpoints)
Ten Jaimini analytical endpoints — chara/naisargika karakas, padas (A1..A12 + S1..S12 + M1..M12 + graha arudhas), Upapada, rasi/graha drishti, Karakamsa (AK in D9), running dasha summary, basic Jaimini yogas.
Sources: Jaimini Sutras 1-2 + BPHS Adhyayas 26/47.
2026-01-09 — Status page + AI agents + default base URL
- Public status page:
https://api.astroway.info/status— uptime, latency p50/p95/p99, cached 60s. llms.txtfor AI agents:https://api.astroway.info/llms.txt— structured instructions for Claude / ChatGPT / Perplexity Code agents.- Default base URL across docs, MCP server, SDKs, Postman collection —
api.astroway.info/v1(with 301 redirect from the oldapi-calc.astroway.info).
2025-12-30 — Tribhagi, Shatabdika, Shodashottari Dashas (+15 endpoints)
Three nakshatra-dasha systems with full cascade:
- Tribhagi — 1/3-scale Vimshottari (40-year cycle).
- Shatabdika — 100-year cycle, 7 planets (no shadow planets).
- Shodashottari — 116-year cycle, 8 planets (Rahu excluded).
Sources: BPHS Adhyaya 46.
2025-12-25 — Credit plans: 5-tier rebalance + Free 5K → 10K
Recalibrated credit tiers after an 18-competitor audit. Free plan now grants 10 000 credits per month (was 5 000). Spend rates for typical use-cases (natal chart + 7 transits) are down ~22%. No breaking API changes — economics only.
2025-12-17 — Chinese Zodiac + Feng Shui Kua (+8 endpoints)
First Chinese astrology chunk, foundational layer (BaZi + Zi Wei Dou Shu coming next):
POST /v1/chinese/zodiac/animal— animal sign + full pillar (Geng-Wu, Wood-yang, etc.).POST /v1/chinese/zodiac/element— fixed + cycling Wu Xing element with yin/yang.POST /v1/chinese/zodiac/inner-animal— inner animal (month branch).POST /v1/chinese/zodiac/secret-animal— secret animal (hour branch —timerequired).POST /v1/chinese/zodiac/compatibility— pair compatibility from San He trine / Liu Chong conflict pairs.POST /v1/chinese/feng-shui/kua— personal Kua number + East/West group.POST /v1/chinese/feng-shui/lucky-directions— 4 lucky + 4 unlucky compass directions.POST /v1/chinese/feng-shui/bagua— Bagua map of 9 life areas with elements + colors.
Source: 60-jiazi canonical + L. Skinner Living Earth Manual (1976) + Lillian Too. Pricing tier — 2 credits per call. Lichun cutoff = Feb 4 (±1-day accuracy for 1900–2100).
2025-12-09 — Quality pass: 24 bug fixes across Vedic categories
Fixed 24 calculation bugs via 6 parallel deep-research agents. Most critical: 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 tests added: 47.
2025-12-02 — Vedic Compatibility + Muhurat (+18 endpoints)
- Compatibility (6) — Ashta-Koota matching (Varna / Vasya / Tara / Yoni / Graha-Maitri / Gana / Bhakoot / Nadi) + Mangal-dosha compat + Bhrigu summary.
- Muhurat (12) — electional astrology for marriage, business, journey, education, surgery, naming, mahurta types (abhijit, vijaya, amrit, brahma).
Sources: BPHS + Muhurta Chintamani.
2025-11-29 — KP (Krishnamurti Paddhati): complete pack (+10 endpoints)
Ten endpoints implementing the canonical KP school (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.
Algorithm: 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 endpoints)
Four classical Vedic dasha systems with full (maha, antar, pratyantar, sookshma, prana) cascade:
- Vimshottari — 120-year cycle, 9 planets.
- Yogini — 36-year cycle, 8 yoginis.
- Ashtottari — 108-year cycle, 8 planets (no Ketu), Ardradi tradition.
- Kalachakra — sign-based dasha, paramayu varies per pada (100/85/83/86).
Sources: BPHS Adhyaya 46 + Saravali. Cross-validated against PyJHora 7.02.
2025-11-08 — Chara Dasha (Jaimini K.N. Rao variant) (+5 endpoints)
Jaimini rasi-dasha in the K.N. Rao variant (1995). Direction = forward for movable / dual lagnas, reverse for fixed lagnas. Co-lord rule for Scorpio (Mars+Ketu) and Aquarius (Saturn+Rahu).
2025-10-25 — MCP server + AI gateway
- MCP server
@astroway/mcp— Model Context Protocol for Claude Desktop, Cursor, Cody. Every API endpoint is exposed as an MCP tool. - AI gateway — separate private microservice
ai.astroway.infohandles LLM requests with a provider chain (Gemini Flash → Groq Llama → OpenRouter → Cerebras → SambaNova → Mistral). - TypeScript SDK is planned as a separate release — until then, use OpenAPI codegen against
https://api.astroway.info/v1/openapi.json(openapi-typescript/openapi-fetchproduce a typed client off the 612 typed request/response pairs).
2025-10-08 — Vedic Yogas + Doshas Parashara (+14 endpoints)
- 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 endpoints)
- 16 Vargas D1-D60 (16) — from Rasi (D1) to 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 endpoints)
Reference-dictionary expansion: 15 esoteric concepts (chakras, koshas, tattvas, gunas) + 15 crystal / angel / dream lookup tables. Cached on edge (Cloudflare R2).
2025-03-12 — Reference glossary + Tarot Lenormand (+24 endpoints)
- Reference (14) — dictionaries for 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 endpoints)
20 Marseille-deck endpoints: 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 — full pack: Pythagorean + Chaldean + Kabbalistic + Vedic (+40 endpoints)
Four numerology systems × 10 endpoints each: 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 endpoints)
35 RWS-deck endpoints: every canonical spread (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 endpoints)
Natural-language interpretation generation:
/horoscope/{daily, weekly, monthly}— text horoscopes./interpret/{natal, transit, synastry, compatibility}— detailed interpretations.
Provider chain: GPT-4 → Anthropic Claude → fallback Groq.
2023-11-28 — Destiny Matrix (Ladini) (+1 endpoint)
/destiny-matrix/ladini — Natalia Ladini system (Russian/CIS market). Single-author method shipped with explicit disclaimer.
2023-09-20 — Aspects timeline + harmonics + cyclic index (+12 endpoints)
Expanded aspect analysis:
/aspect-timeline— exact moments of aspects N days ahead./harmonics/{2..12}— harmonic charts./cyclic-index— André Barbault’s cyclic index of social tensions./sabian-symbols— Marc Edmund Jones 360 symbols.
2023-05-10 — Astrocartography + Local Space + Geodetic (+18 endpoints)
Geo-astrology:
/acg+/acg-zones— Astrocartography lines per planet./local-space— Local Space horizon./parans— parans (Bernadette Brady)./relocation— relocation chart./zenith+/horizon+/geodetic— additional geo engines./ccg-analysis— CCG/CMG detailed geo-analysis.
Sources: Jim Lewis Astro*Carto*Graphy, Sepharial Theory of Geodetic Equivalents, Bernadette Brady.
2023-02-15 — Human Design module (+12 endpoints)
Full 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 — Server-side synastry + composite
Relational astrology (synastry, composite, Davison) implemented server-side. First available via /v1/synastry, /v1/composite, /v1/davison. Marker of expansion into relational analysis.
Validated against Solar Fire / Astrodienst — drift within method tolerance (≤0.5″ on the average calculation).
2022-07-28 — Synastry, composite, Davison + group synastry (+5 endpoints)
/synastry— relationship comparison with aspects matrix./composite— Robert Hand midpoint composite./davison— Ronald Davison time-place composite./group-synastry— multi-person (3+) synastry matrix.
Sources: Hand Planets in Composite, Davison Synastry, Lois Sargent.
2022-04-15 — app.astroway.info SPA — consumer product live
Launched app.astroway.info — React/TypeScript SPA calling the backend via /v1/*. User accounts, saved charts, favorites. Marker of the transition from website-only to a full product.
The same backend later becomes the foundation of the public API.
2022-03-18 — Essential dignities + receptions + almuten + arabic parts (+13 endpoints)
Classical-tradition astrology:
/essential-dignities— domicile, exaltation, triplicity, terms, faces./receptions— mutual reception detection./almuten— Almuten Figuris (chart ruler)./arabic-parts— Lots of Fortune, Spirit, Eros, Necessity and 30+ other 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 endpoints)
/transit-calendar— exact transit moments 6/12 months ahead./forecast-calendar— monthly forecasts./phase-return— solar return, lunar return, Saturn return, Jupiter return./eclipse-analysis— eclipses in the context of the natal chart.
2021-04-05 — Aspects calculation + house systems expansion (+8 endpoints)
/aspects— full aspects matrix with 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 + classical aspects
Calculation suite stabilized. /v1/aspects ready: support for conjunction, opposition, square, trine, sextile with Ptolemaic orbs. Foundational for all later analytics (transits, synastry, returns).
Swiss Ephemeris WASM build fully integrated — ~5× faster than the previously used analytical model.
2020-06-15 — Daily/weekly horoscope text (+4 endpoints)
/horoscope/daily/{sign}— daily horoscope per sign./horoscope/weekly+/horoscope/monthly— weekly / monthly./sun-signs— sun-sign meanings.
Text was authored by a manual editorial team (LLM-augmented texts came later in 2024).
2020-03-20 — Synastry beta + ephemeris extras (+5 endpoints)
/synastry-beta— initial synastry (full release in 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
Internal OpenAPI 2.0 spec published. First /v1/* namespace. Authentication via X-Api-Key header. Rate-limiting infrastructure in place.
Internal milestone — the public API launches later, but the contract has been stable since this point.
2019-12-15 — Internal /chart calculation engine
First server-side /chart implementation (private). Placidus houses, sidereal offsets, planetary positions, fixed stars. Tested against the Astro.com baseline.
Fully Node.js — moved off the previous PHP-only logic.
2019-09-25 — Initial release
The first public release of the AstroWay Astrology API. Baseline functionality:
/chart— natal chart (planets, houses, ascendant, MC)./transit— current transit positions./aspects— primary aspects (conjunctions, oppositions, squares, trines, sextiles)./horoscope— daily horoscope (by sun sign)./ephemeris— ephemeris for any date./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 integration — the foundation
Swiss Ephemeris 2.x library integrated into the astroway.info backend. Sub-arcsecond accuracy on planetary positions, lunar nodes, asteroids within 1900–2100.
Every subsequent calculation endpoint sits on top of this layer. Same library used by Solar Fire, Kepler, Astro Gold, Astrodienst.