API · v1.0 · 33 endpoints · stable

One call. Substrate-tagged. Honest.

Stripe-class docs. Live curl on every page. Sandbox key in the inbox in 30 seconds, no credit card.

Get sandbox key Browse endpoints Pricing
POST · /v1/chart

Generate a Vedic chart

Returns a substrate-tagged Vedic chart with Lagna, 9 grahas, 12 bhāvas, detected yogas, sahams, and a 5-level Vimśottarī. Compute time is sub-millisecond on warm cache; cold path is ~6ms.

Parameters

daterequired · ISO 8601

Birth date in YYYY-MM-DD. We accept BCE dates as negative ISO years.

timerequired · 24h

Birth time in HH:MM:SS. Sub-second precision optional. Local civil time of tz.

lat, lonrequired · decimal

Geographic coordinates. WGS-84. Negative for south / west.

tzrequired · IANA

IANA timezone string, e.g. Asia/Kolkata. We do not accept UTC offsets directly — DST resolution is automatic.

ayanamsaoptional · enum

Default lahiri. Also: krishnamurti, raman, true_chitra.

Request

POST /v1/chartcURL
curl -X POST https://api.trikala.lunarluxury.in/v1/chart \ -H 'Authorization: Bearer sk_test_…' \ -H 'Content-Type: application/json' \ -d '{ "date": "1993-01-13", "time": "08:24:00", "lat": 28.8955, "lon": 76.6066, "tz": "Asia/Kolkata" }'

Response · 200 OK

200 · 1msX-Trikala-Substrate-Cert: 92/92 PASS
{ "ok": true, "request_id": "req_a7b2c8e1f0d3...", "engine": "mahakala/api v1.0", "compute_ms": 1, "source": "engine", "chart": { "lagna": { "sign": "Capricorn", "deg": 14.22 }, "planets": [ /* 9 grahas, sidereal */ ], "bhavas": [ /* 12 houses + cusps */ ] }, "yogas": [ /* 8 detected of 327 */ ], "sahams": [ /* 36 computed */ ], "sacred369": { "psi": 4, "k": 2, "ring": "Z27" }, "dasha": { /* 5-level Vimśottarī */ } }

Honest fields · what other vendors hide

sourcealways present

One of engine, local, stub. Tells you whether the answer came from the live engine, a local fallback, or a deterministic stub. We refuse to silently degrade.

X-Engine-Compute-Msheader

Real wall-clock cost on our side. Surface it in your dashboards.

Playground · live · sandbox key not required

Try it. Right here.

Pick an endpoint, edit the body, hit send. Real engine output, deterministic on (date, time, lat, lon, tz). Latency is measured wall-clock from your browser.

POST /v1/chartedit any field · then send
Request body · JSONcontenteditable

        
ready
Response · 200 OK
{ /* hit Send to compute */ }
X-Trikala-Substrate-Cert · 92/92 PASS · last green 14ms agorequest_id · req_—
All endpoints · v1.0

33 endpoints, one contract.

Every endpoint returns the same envelope: { ok, request_id, engine, compute_ms, source, … } plus the substrate-cert header. The chart endpoint above is the canonical example; the rest mirror its shape.

VerbPathReturnsAvg ms
POST/v1/chartFull natal chart · 9 grahas · 12 bhāvas · yogas · sahams · daśā1
POST/v1/dasha5-level Vimśottarī timeline (mahā · antar · pratyantar · sūkṣma · prāṇa)2
POST/v1/yogasDetected yogas of 327 · BPHS / Sārāvalī / Phaladīpikā tagged1
POST/v1/sahamsAll 36 sahams (Tājika lots) computed sidereal1
POST/v1/sacred369(Ψ, k, ring) signature · the master equation residues0.4
POST/v1/transitTransit window for any graha · sidereal · ±N years3
POST/v1/divisionalD1–D60 vargā charts · Parāśarī derivation2
POST/v1/ashtakavargaSarvāṣṭakavarga + 7 individual BAVs · classical bindus2
POST/v1/muhurtaElection windows · Pañcāṅga · Tārā / Candra-bala scoring4
GET/v1/panchangaTithi · Vāra · Nakṣatra · Yoga · Karaṇa for any (date, place)1
GET/v1/provenanceEngine build · Heron-r2 hash · classical-text citations0.2
GET/v1/verify/:idReplay any past response by request-id · proves no rewrite0.5
GET/v1/substrate-certLive 92/92 self-cert · last green at second-resolution0.1
+ 20 more · compatibility / batch / streaming · same envelope
Get sandbox key Engine status Pricing tiers