The Lumo Engine · private beta
The astrology API
you can verify.
The same calculation engine behind Lumo, as an API. Vedic, KP, panchang, matching and numerology. Every position is cross-checked against authorities outside our own code, and every interpretive surface passes a six-layer safety guard. Plain JSON in, typed JSON out.
57/57 accuracy cross-checks passing, liveReal data sandbox · OpenAPI + typed SDKs · MCP for agents · flat pricing in ₹ & $
POST /v1/chart
{
"dob": "1990-01-15", "tob": "14:30",
"lat": 13.0827, "lng": 80.2707,
"tz": "Asia/Kolkata", "ayanamsa": "lahiri"
}
200 OK
{
"ascendant": 123.45,
"planets": {
"moon": 45.23, // Rohini
"sun": 295.67,
"saturn": 234.56
}
}
Every position cross-checked against NASA/JPL & astro.com. open the live check
- The sky itself
- NASA / JPL Horizons
- astro.com (Astrodienst)
- The Tamil panchangam
calculations in one /v1 contract, mirrored as 37 MCP tools
safety layers on every interpretive response
engine tests, green in CI on every release
independent authorities every position is checked against
Why this, not a chatbot
Generic AI guesses. Lumo verifies.
Ask a general-purpose model where the Moon was at a birth moment and it will answer with confidence, but it has no ephemeris. It pattern-matches, the answer drifts run to run, and there is no source to check. Lumo computes the position and shows you the cross-check.
A general-purpose chatbot
⚠ No ephemeris behind it. Confident, source-less, and different the next time you ask. Nothing you can verify, or stand behind.
Lumo · POST /v1/chart
{ "planets": { "moon": 45.23 } }
// 45.23° → Rohini nakshatraCross-checked against NASA/JPL and astro.com: same position, two independent engines.
An exact degree, the same every time, with a published cross-check. Open the live report →
Examples shown for illustration. The proof isn't this page. It's the live accuracy report, where 57 of 57 cross-checks pass right now. Nothing here is a number we ask you to take on faith.
One call, real JSON
A birth chart in a single request, authenticated with a header, typed both ways. The same shape you'd get in production, not a brochure mockup.
POST /v1/chart
curl "$LUMO_API_URL/v1/chart" \
-H "x-api-key: $LUMO_API_KEY" \
-H "content-type: application/json" \
-d '{
"dob": "1990-01-15", "tob": "14:30",
"lat": 13.0827, "lng": 80.2707, "tz": "Asia/Kolkata",
"ayanamsa": "lahiri", "houseSystem": "whole-sign"
}'
Response
{
"ascendant": 123.45,
"planets": {
"sun": 295.67, "moon": 45.23, "mars": 178.9,
"jupiter": 123.45, "venus": 289.2, "saturn": 234.56,
"rahu": 320.1, "ketu": 140.1
},
"houses": {
"system": "whole-sign", "ayanamsa": "lahiri",
"cusps": [123.45, 153.45, 183.45, 213.45, 243.45, 273.45,
303.45, 333.45, 3.45, 33.45, 63.45, 93.45]
}
}
POST /v1/match/compatibility
// POST /v1/match/compatibility → strengths + what to nurture, never a verdict
{
"summary": "Complementary strengths, especially in conversation and mutual care.",
"strengths": [
"Easy conversation — Mercury placements support rapport",
"Mutual care — supportive Moons"
],
"nurture": [
"Money decisions — different risk appetites",
"Honesty under stress"
],
"remedies": [
"Weekly check-ins before choices harden",
"Honour each other's family traditions"
]
}
Matching returns strengths and what to nurture, framed without verdicts, because the engine's safety guard won't let a “doomed” reach your users.
Your whole astrology backend. One contract.
Stop stitching five services together for charts, timings, matching and interpretation. One versioned /v1 API, and the same calculations, the same key, three ways to call it.
Your app
birth date · time · place
Lumo Engine · /v1
deterministic · safety passed
Charts & vargas
Rasi · D-charts · houses
Dashas
Vimshottari · Yogini · Chara
KP & horary
sub-lords · 1–249
Panchang & muhurta
5 angas · Rahu Kalam
Matching
porutham · ashtakoota
Interpret + safety
grounded · six-layer guard
Thirty-seven endpoints, one contract
Everything below is served from one versioned /v1 API, documented in OpenAPI with request and response schemas, and mirrored by an MCP server for AI agent integrations.
Charts & vargas
Rasi, divisional charts, house systems, computed, not looked up.
Dashas
Vimshottari, Yogini, Ashtottari and Chara periods with sub-periods.
Strengths & yogas
Complete six-fold Shadbala, Ashtakavarga with sodhana, yoga detection.
KP, including horary
Sub-lords, significators, and the full 1–249 horary number system.
Panchang & muhurta
The five angas with solved end-times, Rahu Kalam, horas, tarabala.
Matching
10-porutham and ashtakoota compatibility, framed without verdicts.
Numerology & peyarchi
Life path cycles and the slow transits Tamil readers actually follow.
A live accuracy report
An endpoint that shows our own cross-checks passing, or failing.
Grounded interpretation
A warm, safety passed reading, and what the guard did is in safetyFlags.
Safety check as a service
Run your own astrology text through our six-layer guard before you show it.
Don't take our word for it
Our accuracy isn't a self-reported percentage. Every position is cross-checked against authorities outside our own code: NASA/JPL, astro.com and the Tamil panchangam. These are real checks pulled from the engine this request, 57/57 passing right now.
- within 0.2°
Independent tool · astro.com
Independent (astro.com): Chennai 1980-07-04 08:20
Δsun 0.0000° Δmoon 0.0002° Δasc 0.0000°
- within 0.02°
Independent ephemeris · NASA/JPL
Sun vs JPL — Chennai 1980-07-04 08:20
engine 102.2792° vs JPL 102.2763° (1980-Jul-04 02:50 UT)
- within 3 min
Drik panchangam
Panchangam: Chennai 2026-01-15
Dwadashi ends Δ1.0min · Jyeshtha ends Δ0.9min
- within 0.01°
Golden chart · regression
Golden chart: Chennai 1980-07-04 08:20
Δsun 0.0000° Δmoon 0.0000° Δasc 0.0000°
37 of 37 astro.com reference charts independently transcribed. See the full report →
For AI agents
Built for agents, not just servers
The same 37 calculations are exposed as an MCP server, so Claude, Cursor, or your own agent can discover and call them with typed input and output. One key, the same schemas as REST, structured data back (not prose to parse).
POST /v1/mcp
// POST /v1/mcp — Streamable HTTP, one API key (same as REST).
// An agent discovers the whole catalog — 37 tools, typed in AND out:
{
"tools": [
{ "name": "chart", "title": "Sidereal chart" },
{ "name": "dashas_vimshottari", "title": "Vimshottari dasha" },
{ "name": "match_compatibility", "title": "Compatibility summary" },
{ "name": "panchang", "title": "Panchang for a date + place" },
{ "name": "interpret", "title": "Grounded interpretation (safety-passed)" },
{ "name": "safety_check", "title": "Astrology-content safety check" }
// … 31 more
]
}
What you can build
From a matrimony match to a panchang feed to an AI assistant, the calculations are the same, the safety is the same, the contract is the same.
Matrimony & matching
match/compatibility + doshas return strengths and what to nurture, never a verdict. Safe for a matrimony or dating product that carries fear content liability.
Panchang & daily feeds
panchang + transits give tithi (lunar day), nakshatra (the day's star), Rahu Kalam, horas (planetary hours) and Sade Sati (Saturn's 7½-year passage over your Moon) — the timings Tamil readers actually follow.
AI assistants & agents
An MCP server exposes all 37 tools with typed input and output, so Claude, Cursor or your own agent can call the catalog and get structured data back.
Reports & horoscopes
chart + interpret produce a warm, safety passed reading, and whatever the guard changed is reported back to you in safetyFlags.
How Lumo compares
The trust axis is the whole point: most astrology APIs ask you to take accuracy and safety on faith. Ours are checkable.
| Lumo | Typical astrology API | |
|---|---|---|
| Accuracy | Cross-checked live against NASA/JPL, astro.com and the Tamil panchangam, and the report is public. | A self-reported percentage, with no way to check it. |
| Safety | A six-layer guard inside the engine, so no death, illness or relationship verdicts reach your users. | Returns whatever “the stars say,” fear and verdicts included. |
| Sandbox | Real engine data, not mocks. Every endpoint, free, before you pay. | Mock responses, or no sandbox at all. |
| Contract | OpenAPI 3, typed TypeScript + Python SDKs, and an MCP server (37 tools). | Partial docs, REST only. |
| Pricing | Flat and published, in ₹ and $. | “Contact sales to learn the price.” |
Built to integrate
The developer experience surface, in full. During the beta we issue keys and SDKs directly, and the contract and the public proofs are live today.
OpenAPI 3 contract
Every endpoint typed both ways, request and response.
Typed SDKs
TypeScript and Python clients, issued with your key.
MCP server
37 tools for AI agents, the same schemas as REST.
Unauthenticated /v1/health
Engine and ephemeris versions, for your uptime probes.
Built by the engineers
Made by the people who built the engine
Lumo's engine is its own work, with no reselling of someone else's API. We hold ourselves to three rules, and we publish the proof for each.
Computed, not looked up
Every position comes from a deterministic ephemeris, unit tested against reference charts, not a lookup table someone typed once and forgot.
Checked against the world
We cross-check ourselves against NASA/JPL, astro.com and the Tamil panchangam, and publish the result live. You never have to take our word for it.
Safe by construction
A six-layer guard sits inside the engine. No death, illness or relationship verdict can reach your users, even when a prompt asks for one.
Flat pricing, published
No “contact sales to learn the price.” This is what the engine costs, in rupees and dollars. Beta partners keep their launch price.
Sandbox
₹0· $0
1,000 calls a month
Real data, not mocks. The same engine and every endpoint, free. Build and demo a real integration before you pay anything.
Request a sandbox keyStarter
₹1,499/mo· $19/mo
25,000 calls a month
For a feature in production: a matching flow, a panchang feed, a daily horoscope. Email support from the people who built the engine.
Talk to usGrowth
₹6,499/mo· $79/mo
250,000 calls a month
For platforms. Priority support and an uptime commitment as we leave beta. Need more? Flat volume pricing, no surprises.
Talk to usScale
Millions of calls, a private deployment, or data residency needs? Flat volume pricing and an SLA as we leave beta. We'll quote a number, not a runaround.
All plans use the same engine, the same accuracy checks and the same safety rules. The tiers only change how many calls you get. During the beta, billing is by invoice, and card billing arrives with general availability.
Questions developers ask
- How do I authenticate?
- An x-api-key header on every request, the same key for REST and the MCP server. Keys are issued during the private beta. Self-serve keys and rotation arrive with general availability.
- What are the rate limits?
- The free sandbox is 1,000 calls a UTC month, 10 a minute. Paid plans raise the monthly cap, and the limit per minute scales with your plan. You get clear headers, never a silent cutoff.
- What happens to the birth data I send?
- It is used to compute the response and nothing else. No profile building, no resale. The calculation layer is pure and stateless, and only your usage counts are metered.
- How accurate is it, really?
- We verify calculation, not prediction. Every position is cross-checked against authorities outside our own code, and the report is public and updates on every release. See the live accuracy report →
- Is there an SLA?
- Not yet. We are in private beta, and we would rather say so than promise uptime we have not measured. Growth plan partners get an uptime commitment as we leave beta, and the engine status is on /v1/health today.
- Why should I trust the safety claim?
- Because you can test it. POST your own astrology text to /v1/safety/check and watch the six-layer guard pass it, soften it, or refuse it. See the safety guard →
- What does it cost?
- Flat, published pricing in ₹ and $. Sandbox free, Starter ₹1,499/$19, Growth ₹6,499/$79. No “contact sales to learn the price.”
Build with us
Tell us what you're building, whether a matching flow, a panchang feed or an AI assistant, and we'll set you up with a sandbox key and the docs.
Request beta access