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-09-28​

Added

  • POST /v1/astro/panchanga returns the whole panchanga day (sunrise to next sunrise) beside the sunrise limbs: every tithi, nakshatra (with padas), yoga and karana active in it with ISO start and end times and at_sunrise / is_kshaya / is_vriddhi flags; sunrise, sunset, moonrise, moonset; Sun and Moon rashi and Sun nakshatra; masa (amanta and purnimanta, with Adhik months); samvat (Vikram, Shaka, Gujarati, samvatsara); ritu; ayana; and timings (Brahma Muhurta, Abhijit, Vijaya, Godhuli, Sandhyas, Nishita, Pradosh, Rahu Kaal, Gulika, Yamaganda, Durmuhurta, Varjyam, Amrit Kaal, Bhadra with residence, Panchaka, the five parts of the day).
  • The monthly panchanga calendar adds, per day, sunrise, sunset, moonrise, moonset, paksha, masa, Bhadra windows and every limb of the day, so a kshaya tithi now appears on the day it runs.
  • GET /v1/astro/panchanga/festivals: about 50 named festivals (from 20), and with the new categories parameter every Ekadashi, Pradosh, Sankashti Chaturthi, Masik Shivaratri, Purnima and Amavasya (vrat), the 12 sankrantis, eclipses with local visibility and contact times, and periods (Adhik Maas, Chaturmas, Pitru Paksha, both Navratris, Holashtak, Kharmas). Entries add id, category, masa, paksha, tithi with start and end, the rule that fixed the day, observance_window, note, and end_date for periods. The default remains the named festivals.
  • POST /v1/astro/muhurta: six more activities (vehicle_purchase, property_purchase, mundan, annaprashan, upanayana, vidyarambha), ranges up to a year, optional location, participants (Tarabala and Chandrabala), max_windows_per_day and min_duration_minutes. Windows add start_at / end_at (ISO 8601), civil_date, panchanga_day, grade, nakshatra, lagna, masa, reasons and cautions; the response adds criteria and excluded_minutes.
  • Divisional charts: each planet gains dignity, is_vargottama and (with a birth time) its whole-sign house from the varga lagna, and a top-level houses table per chart.
  • Nakshatra prediction: tarabala.cycle, cycle_name, is_moon_in_birth_nakshatra, and transit_nakshatras (every nakshatra of the day with its tara).
  • MCP: asterwise_geocode (104 tools).
  • Every birth-data request accepts an optional utc_offset (±HH:MM or ±HH:MM:SS) that overrides the time zone's offset. See birth time and time zones.
  • POST /v1/astro/natal returns birth_moment: the UTC instant used, the offset applied, where it came from (iana, local_mean_time, explicit_offset) and whether the local time fell in a daylight-saving gap or overlap.
  • GET /v1/astro/ayanamsha adds true_value_decimal (mean ayanamsa plus nutation), the offset subtracted from apparent planetary positions.
  • The natal Avakahada block adds paya_basis.

Changed

  • Muhurta windows are found in continuous time instead of Choghadiya slots, with each activity's nakshatra, tithi and weekday rules, seasonal bans (Chaturmas, Adhik Maas, Pitru Paksha, Kharmas, Holashtak, Guru/Shukra asta, Panchaka) and graded scores. The earlier window fields keep their meaning: date is the panchanga day and start / end are HH:MM on it; use start_at / end_at for the exact instants.
  • Festival dates follow the lunar month and the classical part of the day for each festival, instead of the Sun's sign and the sunrise tithi.
  • The Tara named for counts 10 and 19 is Anujanma and Trijanma (was Janma).
  • Local times are converted with the full IANA time zone database (release 2026d). For dates before a zone adopted a standard time, the birthplace's local mean time (longitude / 15 hours) is used instead of the zone city's.
  • A local time in a daylight-saving gap is read with the offset in force before the change; a time that occurred twice is read as its first occurrence (it was the second).
  • Natal ayanamsa_value reports the true ayanamsa, the value actually used.
  • Arudha padas and the Upapada take the stronger co-lord of Scorpio (Mars or Ketu) and Aquarius (Saturn or Rahu), as Jagannatha Hora does, instead of always Mars and Saturn.
  • Rahu and Ketu graha drishti is the 7th house only; the graded 3rd/4th/5th aspects belong to the seven planets.
  • Avakahada paya is Rashi Paya: the Moon's house from the lagna.
  • Nakshatra names are spelled the same on every endpoint: Dhanishta and Mula (panchanga, muhurta and the Avakahada block said Dhanishtha; dosha details said Moola). The nakshatra details endpoint accepts either.

Fixed

  • Chaitra to Ashadha festivals came out a lunar month late, and Bhai Dooj and Dev Uthani Ekadashi a month late; Dhanteras, Diwali, Dussehra and Ganesh Chaturthi a day late.
  • A tithi that no sunrise touches was missing from the calendar.
  • Muhurta returned marriage windows in Chaturmas and on Pushya, Tuesday or a Krishna Rikta tithi.
  • Sunrise, sunset, Rahu Kaal, Choghadiya and hora times were about a minute early (Julian Days read as Terrestrial Time); times now round to the minute.
  • Yamaganda used the wrong part of the day on Sunday to Thursday; Tamil Emagandam (the same period) now equals Yamagandam.
  • The sunrise chart for an unknown birth time used the previous day's sunrise in time zones west of UTC.
  • MCP: the monthly calendar tool now sends the timezone; the festival and Tamil tools take lat/lon/timezone like the others.
  • Sidereal positions from the natal, divisional, transit and matchmaking endpoints were off by the nutation in longitude (up to 19 arcseconds): the mean ayanamsa was subtracted from apparent positions. Near a sign, nakshatra or pada boundary this changed the result, and those endpoints could disagree with panchanga, muhurta, KP, Sade Sati, Shadbala and Varshaphal, which were already right. Varshaphal solar return times move by a few minutes.
  • Dates from 2038 in time zones with daylight saving had the wrong offset for half the year, and some dates before 1901 had the wrong historical offset (a day for Manila before 1845).
  • The sunrise chart for an unknown birth time was up to a minute before sunrise.
  • Rashi drishti: Capricorn aspected Aquarius but not the reverse; adjacent signs never aspect each other.
  • Nakshatra details for Dhanishta returned empty activities and body_map.

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.