Skip to main content

Changelog

Changes to the Asterwise API and MCP server. See versioning for what counts as a breaking versus additive change.

Current API version: 2026-03-01

Entries from June 2026 onward are dated by deployment. Earlier entries are grouped by month, covering the period when the v1 surface was being built.


2026-07-25

Added

  • Divisional chart responses include an ascendant object for each varga, alongside planet placements. Omitted when birth time is not supplied.

Changed

  • Vedic birth input accepts requests without a time field. When omitted, a sunrise chart is used and birth_time_provided returns false. Passing "00:00" is treated as a midnight birth, not an unknown time.
  • MCP BirthData.time is optional. Omitting it sends no time key upstream.

Fixed

  • Western natal and return responses set birth_time_provided from whether time was supplied. It previously always returned true.
  • OAuth authorization code exchange no longer fails with Authorization code already used when a client retries the token request. Unknown codes now return the same message as already-used codes.

2026-07-16

Fixed

  • Payment method update returns a payment link during the grace period.
  • Subscription cancellation returns an error when the processor call fails, instead of reporting success.

2026-07-09

Changed

  • Paid plan prices and monthly quotas: Builder $10 / 10,000 calls, Launch $30 / 50,000, Scale $100 / 300,000. Sandbox unchanged at 500.
  • Upgrades are prorated. Downgrades are rejected.
  • Subscription payloads on GET /v1/account and GET /v1/billing/dodo/subscription include sku_id, billing_interval and pending_plan_change.

2026-07-02

Added

  • GET /v1/account/signing-secret and POST /v1/account/signing-secret/rotate for per-account response signing.
  • Email and password registration returns a one-time sandbox api_key and mints a key named Sandbox.
  • Key list and summary responses include key_prefix.
  • Annual billing: Builder $100/yr, Launch $300/yr, Scale $1,000/yr. The monthly quota is unchanged; only the billing interval differs.

Changed

  • Responses are signed with the account signing secret when one exists. Callers verifying against the global signing secret should switch to the per-account secret.
  • Monthly quota counts only calls returning 2xx. Failed calls and over-limit rejections are not counted. Cache hits are counted.
  • GET /v1/account usage counts the UTC calendar month, matching what rate limiting enforces.
  • On a Redis outage, paid tiers continue to serve. Sandbox returns MONTHLY_USAGE_LIMIT_EXCEEDED.
  • Active API key caps are per tier rather than a flat limit.
  • Dodo payment history returns payments across subscriptions, up to 50.
  • Subscribe and upgrade use Dodo checkout sessions.

2026-06-18

Added

  • PATCH /v1/account updates full_name. GET /v1/account returns it.
  • CORS allows PATCH and PUT for browser clients.

2026-06-04

Changed

  • Exceeding the per-account API key cap returns MAX_KEYS_EXCEEDED (409). It previously returned a validation error.

2026-05 — May

The largest expansion of the endpoint surface. Western astrology, tarot, crystals, dreams and angel numbers were added, and the error contract was standardised.

Added

  • Western astrology: moon phase, moon calendar, aspects, daily/weekly/monthly transits, synastry, composite, compatibility, zodiac compatibility, solar, lunar and planetary returns, secondary progressions, solar arc.
  • Western horoscope: GET /v1/western/horoscope/{daily|weekly|monthly|yearly}/{sun_sign}.
  • Numerology: expression, soul-urge, personality, maturity, balance, karmic-lessons, personal-cycles.
  • Tarot: card catalogue, card by id, major arcana, suit, card of the day, draw, three-card, Celtic Cross, yes/no.
  • Crystals: GET /v1/crystals, /crystals/{name}, /crystals/by-planet; POST /v1/crystals/recommend, /crystals/recommend/natal.
  • Angel numbers: GET /v1/numerology/angel, /angel/today, /angel/{number}; POST /v1/numerology/angel/personal.
  • Dreams: GET /v1/dreams/symbols, /dreams/symbol/{name}.
  • Vedic: GET /v1/astro/planet-nature, /puja-suggestions, /rudraksha, /ayanamsha; POST /v1/astro/nakshatra/prediction, /pitra-dosha, /ghat-chakra, /varshaphal/saham, /varshaphal/harsha-bala; GET /v1/astro/panchanga/tamil, /panchanga/festivals.
  • POST /v1/western/biorhythm, moved from /v1/astro/biorhythm.
  • Sade Sati responses include Small Panoti (Dhaiya).
  • Rate-limit responses include the Retry-After header.
  • MCP server reaches 103 tools.
  • Python and TypeScript SDKs 0.2.0 and 0.2.1.

Changed

  • Error responses use the 8-field canonical envelope: error, message, status_code, request_id, timestamp, doc_url, retry_after, details. Unmatched routes and oversized bodies use it too.
  • birth_time_unknown is replaced by birth_time_provided on natal and related chart responses. The polarity is inverted. Dropped from panchanga.
  • Auth failures distinguish API_KEY_MISSING, API_KEY_INVALID, API_KEY_NOT_FOUND and API_KEY_REVOKED.
  • Pitru dosha bphs_combinations_triggered and bphs_combinations_count are renamed to combinations_triggered and combinations_count.
  • MCP asterwise_get_divisional_chart makes chart_type optional. Omit it for all sixteen vargas.
  • Mangal Dosha detection uses D1 only. The D9 check was removed.
  • Gana Koota Deva plus Manushya scores 6, previously 5.
  • POST /v1/astro/kp/ruling-planets rejects out-of-range lat and lon with a validation error instead of a 500.

Fixed

  • POST /v1/astro/divisional returns only the requested chart when chart_type is set.
  • Western return charts use conjunction separation, not opposition.
  • Panchanga nakshatra and yoga end times no longer double-subtract ayanamsa.
  • Char Dasha start rashi, Savya and Apasavya sets, Aquarius secondary lord and period years return corrected values.
  • KP ruling planets are de-duplicated.
  • Numerology master-number interpretations and personal_year validation accept inputs that previously failed.

2026-04 — April

OAuth, the MCP server, the SDKs, and a change of payment processor. Several calculation engines were corrected, which changed returned values.

Added

  • OAuth 2.1 on the API: authorize, token, revoke, refresh, POST /v1/oauth/register, GET /v1/oauth/client-info, /connections, DELETE /v1/oauth/connections/{token_id}.
  • MCP server with 52 tools, OAuth 2.1 and streamable HTTP, including discovery metadata and WWW-Authenticate on unauthenticated requests.
  • POST /v1/western/natal.
  • GET /openapi-sdk.json for SDK generation.
  • Python and TypeScript asterwise SDKs on PyPI and npm.
  • Dodo billing under /v1/billing/dodo/: subscribe, webhook, subscription, cancel, and GET /v1/billing/dodo/payments.
  • Strength responses include bhavbala across twelve houses.
  • Varshaphal responses include muntha_lord and Tajika planet-pair aspects.
  • Natal responses include house_system_note and Bhavesh Phala interpretations where applicable.

Changed

  • Birth-data endpoints require BirthInput with date, time, latitude, longitude, timezone and name. date_of_birth and time_of_birth are rejected.
  • Numerology requests use name and date instead of full_name and birth_date.
  • Tier growth is renamed to launch across schemas, SKUs and stored tiers.
  • Sandbox monthly quota is 500, reduced from 2,000.
  • Burst limits: sandbox 10/min, builder 60, launch 200, scale 500.
  • Razorpay billing routes are removed. Dodo is the payment processor.
  • Account billing-details endpoints are removed.
  • Paid plan quotas and prices: Builder 15,000 / $39, Launch 60,000 / $99, Scale 300,000 / $249.
  • MCP report tools are removed: asterwise_generate_kundli_report, asterwise_generate_dasha_report, asterwise_generate_matchmaking_report, asterwise_generate_varshaphal_report.
  • Report endpoints POST /v1/report/kundli, /matchmaking, /dasha, /varshaphal are removed from the public API.
  • API auth accepts X-API-Key in addition to Authorization: Bearer.
  • bhava_madhya, bhava_sandhi and rashi_drishti return labeled objects rather than raw numeric arrays. Ashtakavarga, upapada and varshaphal ascendant fields use labeled or sign-keyed shapes.
  • Natal moon_sign and moon_nakshatra are always populated.
  • OAuth token and revoke accept form-urlencoded and JSON bodies.
  • MCP OAuth redirect URI validation allows the cursor:// scheme.

Fixed

  • Sign-dependent yogas that were silently skipped now appear in responses.
  • Sign-dependent dosha detection, including Mangal Dosha, runs with correct sign indices.
  • Dignity, combustion, Bhava Chalit, Graha Yuddha, Shadbala, yoga, dosha, matchmaking, transit, panchanga, KP, Prashna, Lal Kitab and gemstone outputs change where prior engine bugs applied.
  • Matchmaking field StreeDeerga uses a Latin a. A Cyrillic lookalike character was removed, which changes the JSON key.
  • Matchmaking Rajju group labels and descriptions return corrected values.
  • Yoga and dosha interpretation keys resolve instead of returning placeholders.
  • Unauthenticated callers no longer receive cached authenticated responses.

2026-03 — March

Initial public release and the first build-out of the endpoint surface.

Added

  • API key management: POST /v1/keys, GET /v1/keys, DELETE /v1/keys/{key_id}, GET /v1/keys/usage, GET /v1/keys/me.
  • Account auth: magic link, register, login, Google, forgot and reset password, logout, session revoke, GET/DELETE /v1/account, POST /v1/account/onboard, GET /v1/account/export, /logs.
  • Account-scoped API key create, list, rotate and delete.
  • Vedic core: POST /v1/astro/natal, /dasha, /dosha, /yoga, /matchmaking, /strength, /transits, /divisional, /ashtakavarga, /yogini, /ashtottari, /sade-sati, /gochar, /chart.
  • Panchanga: POST /v1/astro/panchanga, /panchanga/choghadiya, /hora, /rahu-kaal; GET /v1/astro/panchanga/calendar.
  • Matchmaking variants: /matchmaking/dashakoot, /porutham, /thirumana-porutham, /papasamyam.
  • Timing and analysis: /muhurta, /char-dasha, /varshaphal, /dasha-transits, /atmakaraka, /ishta-devta, /remedies, /gemstones; GET /v1/astro/nakshatra/{name}.
  • KP: /kp/chart, /significators, /ruling-planets. Prashna: /prashna. Lal Kitab: /lal-kitab/chart, /remedies.
  • Numerology: profile, compatibility, life-path, personal-year, lucky-numbers, meaning, name-correction, chaldean, lo-shu, business-name, mobile-number, vehicle-number.
  • Horoscope: GET /v1/horoscope/{daily|weekly|monthly|yearly}/{moon_sign}.
  • Reports: POST /v1/report/kundli, /matchmaking, /dasha, /varshaphal.
  • Utilities: GET /v1/utils/geocode, /timezone.
  • Billing: order, verify, webhook, subscription, cancel, reactivate, add-on purchase, subscription-status polling.
  • ayanamsa=tropical on birth-data endpoints.
  • include_interpretation on POST /v1/astro/natal.
  • Natal responses include Avakahada Chakra fields.
  • Matchmaking responses include Mangal Dosha, classical vetoes, Stree Deergha and narrative fields.
  • Astrology endpoints accept an omitted birth time, using a sunrise chart.

Changed

  • Tier free is removed. Sandbox is the free path.
  • CreateKeyRequest no longer accepts monthly_limit. The limit comes from the tier.
  • POST /v1/billing/upgrade is removed. Upgrade preview fields change and new_billing_date is dropped.
  • DELETE /v1/account requires a body of {"confirm": true}.
  • Billing and keys are account-scoped, with one subscription per account.
  • New API keys use an aw_ prefix.
  • POST /v1/keys returns HTTP 200.
  • Per-IP and per-key burst rate limits apply.
  • Expired subscriptions downgrade to sandbox.
  • Sandbox monthly quota is 2,000 at this point. Reduced to 500 in April.
  • Disposable email addresses are rejected at signup.
  • Responses include the Asterwise-Version header.

Fixed

  • Auth and ownership checks on key endpoints reject cross-account access.
  • Ayanamsa selection is applied on panchanga and divisional routes.

Note on stability

The v1 surface was built and reshaped between March and May 2026. Endpoint paths, field names, the error envelope, tier names, quotas and the payment processor all changed during that period. The contract reached its current shape on 2026-05-21 with the 8-field error envelope.

Integrations written before June 2026 should be checked against the current reference rather than earlier behaviour.


Reporting issues

If the API behaves differently from what is documented here, email support@asterwise.com with the X-Request-Id from the affected response.