Skip to content

Changelog

New endpoints, documentation and platform changes, newest first. Existing endpoints are never changed under you — when behaviour would have to change, a new endpoint ships beside the old one.

Four prashnavali endpoints, and a new Avatar chakra category

Ram Shalaka, Hanuman, Sai and Mavji Maharaj each get their own endpoint instead of hiding behind a keys array on /api/astro/chakra/. The number filter is now optional, and entries come back as an ordered list.

What is new

POST /api/astro/prashnavali/ram-shalaka/ returns the 225 chaupais of the Ram Shalaka Prashnavali, each with its Devanagari letter, the chaupai, where in the Ramcharitmanas it appears, and an English answer. /api/astro/prashnavali/hanuman/ returns the 49 numbered answers, /api/astro/prashnavali/sai/ the 720 Sai answers, and /api/astro/prashnavali/mavji/ the 64 Mavji Maharaj readings in Hindi and English. All four are grouped under a new Avatar chakra category in the reference.

Three things they do that the parent does not

The filter is optional everywhere. /api/astro/chakra/ rejects a sai_prashnavali request that arrives without a number; these endpoints return the whole set instead, which is how oracle data is normally used — fetch once, cache, index locally. Entries come back as a LIST with the index carried on each entry, rather than an object keyed by a stringified number, so you can iterate in order without sorting string keys numerically (which otherwise runs 1, 10, 100, 11). And every response carries a count, so a single-entry lookup is distinguishable from a full fetch without inspecting the payload.

Nothing existing changed

/api/astro/chakra/ is untouched. It still serves all four datasets behind its keys field, still returns the same {key: data} shape, and still returns 400 for sai_prashnavali without a number. If you are already integrated against it, nothing here affects you — these are additional routes, not a replacement.

  • endpoints
  • prashnavali
  • oracles

Clearer endpoint names, and screenshots of real output in the reference

Four pairs of endpoints had names that did not say which one you wanted — one pair was identical, another differed by a single letter. Renamed. Separately, 43 endpoint pages now show a picture of what the endpoint actually returns.

Renamed in the reference

"KP (Krishnamurti) chart" and "Krishnamurti paddhati" are now "KP chart (cusps, signs and planets)" and "KP parts (pick with keys)" — the first hands you the whole chart, the second makes you name the parts you want. "House lord placements" and "House lord placement", which differed by one letter, are now "(all 144)" and "(one pair)". Two endpoints both called "Pancha Pakshi" are now "(bird activity by hora)" and "(day in ten yamas)". "Birth panchanga effects" and "Birth panchanga readings" are now "(reference table)" and "(your elements)".

Routes did not change

These are display names in the documentation only. Every route, request field and response field is exactly as it was — nothing to update in your integration. If you have bookmarked a docs page, the URL still works; only the label at the top is clearer.

Screenshots on the reference pages

43 endpoint pages now carry a screenshot of that endpoint's data rendered in a working interface — panchang, choghadiya, the festival calendar, retrogrades, eleven regional calendars, birth charts and more. A field table tells you the shape of a response but not what it is for, and one look usually settles whether it is the endpoint you want. The docs index and the homepage carry the same set.

  • docs
  • naming

Chart diagrams: SVG and layout geometry on /api/astro/chart/

Set render: "svg" on the existing chart endpoint and get a ready-to-drop chart diagram back, in North or South Indian style, plus the geometry behind it for anyone building their own renderer.

What changed

/api/astro/chart/ now accepts an optional render field. Leave it out and nothing changes — the response is exactly what it has always been. Set it to "svg" and two more fields appear alongside the usual four: layout (every house or sign cell's polygon points, label position, and which planets occupy it) and svg (rendered markup you can drop straight into a page). chart_style picks North Indian (the diamond, fixed houses, rotating signs) or South Indian (the fixed sign grid, rotating houses); svg_size, theme, label_style, show_degrees and four *_color fields control how it looks.

Why it matters

Building a chart wheel from raw longitudes is real work — house geometry, sign rotation, label placement — that every integrator was repeating from scratch. Now it is one field on a call you were already making. The layout geometry is there for anyone rendering natively in React, Canvas, Flutter or SwiftUI rather than using our markup.

Nothing existing changed

render defaults to "none" and every other new field defaults to a value that does nothing. A request that does not mention any of them gets back a response verified byte-for-byte identical to before this shipped, across every chart type and option this endpoint accepts.

See /api/astro/chart/
  • endpoints
  • chart
  • svg

42 new endpoints: named dashas, traditional Western, Chinese BaZi and tarot

Thirty dasha systems that were previously reachable only through a string parameter now have names and routes of their own, and four traditions we did not cover at all are now covered. Nothing that already worked changed.

Dashas you can search for

We already computed thirty dasha systems — eleven nakshatra dashas and nineteen rashi dashas, each to several levels of nesting — but they were values of a dasha_type string on two endpoints called nakshatra_dasha and raasi_dasha. Searching for “vimshottari dasha” found nothing. There are now named routes: /api/astro/dasha/vimshottari/, /yogini/, /ashtottari/, /chara/, /narayana/, /kalachakra/ and more, plus /api/astro/dasha/systems/ listing every system with the endpoint that serves it. The two original endpoints are untouched and keep working.

Which dasha is running right now

/api/astro/dasha/current/ answers the question the timeline endpoints could not: it returns the chain from mahadasha down — “Jupiter / Ketu / Mercury” — with each level’s start and end, how far through it you are, and how many days remain. Previously that meant fetching the whole tree, recursing it and comparing dates in your own code.

Traditional and Hellenistic Western astrology

/api/astro/traditional/dignities/ returns domicile, exaltation, triplicity, term and face for every planet with Lilly’s score; /almuten/ gives the planet with most dignity over each chart point; /sect/ says whether a chart is diurnal or nocturnal and what follows from it; /profections/ gives the annual, monthly and daily profection with the Lord of the Year. These are tropical, as the doctrine requires, and the response says which bound and triplicity tables were used — sources disagree, and a score computed against a different table is a different number.

Derived charts and the Moon

Draconic, harmonic, antiscia, heliocentric and Davison charts under /api/astro/western/, plus /api/astro/lunar/void-of-course/ and /api/astro/lunar/mansions/. Void of course is a forward search rather than a snapshot: it scans to the Moon’s sign change, reports every aspect that will perfect and exactly when, and tells you when the void begins and ends.

Chinese Four Pillars

/api/astro/chinese/four-pillars/, /bazi/, /zodiac/ and /luck-pillars/. The Chinese year begins at Lichun, around 4 February — not on 1 January and not at Chinese New Year, which is a lunar date and governs the festival rather than the chart. A birth on 20 January 2024 returns a Water Rabbit, not a Wood Dragon. Both the day-boundary and true-solar-time conventions are request fields, because practitioners differ and each changes the chart.

Tarot

/api/astro/tarot/draw/, /spread/, /yes-no/ and /deck/. Every draw returns the seed that produced it, and sending that seed back reproduces the draw exactly — same cards, same order, same orientation. That is what lets you store a reading and show it again instead of handing the querent a different answer to the same question. Six named spreads up to the ten-card Celtic Cross, each position labelled.

Also new

/api/astro/eclipse/visibility-path/ traces where a solar eclipse is total as coordinates you can draw on a map, with the point of greatest eclipse and its Saros series. Nine further endpoints carve out calculations that previously required knowing which keys to ask a larger endpoint for: ashtakavarga prastara and sodhana, Tajika aspects and yogas, planet horizon and equatorial coordinates, moon illumination, vasa segments and cazimi.

Nothing existing changed

Every endpoint added here is a new route. No request body, response shape or field name on any existing endpoint was altered, and no endpoint was removed or renamed. Pricing is unchanged: one successful call costs one credit, whatever it returns.

Browse the endpoints
  • endpoints
  • dasha
  • western
  • chinese
  • tarot

117 single-purpose endpoints

Every panchang element, divisional chart and strength calculation can now be called on its own, instead of only as part of a larger response.

What changed

Endpoints like /api/astro/sunrise/, /api/astro/tithi/, /api/astro/navamsa/ and /api/astro/rahu-kaal/ each take the usual birth or date fields and return only the thing they are named after. The existing combined endpoints are unchanged and keep working exactly as before.

Why it matters

Showing a sunrise time no longer means requesting, paying for and parsing a full panchang response. Smaller payloads, less mapping code, and a request body you can read.

How to start

Browse the reference and send the sample request with your key in the X-API-Key header. Pricing is unchanged: one successful call costs one credit, whatever it returns.

Browse the endpoints
  • endpoints
  • panchang
  • charts

MCP server

Call the API from Claude and any other MCP client, without writing an integration first.

What changed

The occult-api MCP server exposes endpoint search, endpoint descriptions and calls as tools. Point it at your API key and an assistant can find the right endpoint and call it directly.

Why it matters

It is the fastest way to try the API against a real question before you commit to building anything, and it doubles as a working reference implementation of the request format.

Set up the MCP server
  • mcp
  • tooling

In-browser playground

Run any endpoint from the docs with your own key and see the real response, before writing a line of code.

What changed

Each endpoint page links straight into the playground with its sample request already filled in. Change the latitude, the date or the ayanamsa and send it again.

Why it matters

Reading a sample response tells you the shape of the data. Sending your own inputs tells you whether it answers your question.

Open the playground
  • playground

Occult API is live

Vedic astrology calculations over a REST API, with API keys and prepaid credits.

What changed

Sign up, generate a key, and send it in the X-API-Key header. Credits are prepaid and deducted per successful call — a failed request is never charged.

Why it matters

No subscription to size in advance and no per-endpoint price list to reason about. Calculations run against the Swiss Ephemeris with a full set of classical and modern ayanamsas.

Get an API key
  • launch
  • billing