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. Its positions are checked against authorities outside our own code, and every interpretive response passes a six-layer safety guard. Plain JSON in, typed JSON out.
57/57 accuracy cross-checks passingReal 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": 43.19,
"planets": {
"moon": 142.22, // Purva Phalguni
"sun": 271.23,
"saturn": 263.58
}
}
Positions checked against NASA/JPL and astro.com reference charts. open the live check
- The sky itself
- NASA / JPL Horizons
- astro.com (Astrodienst)
- The Tamil panchangam
endpoints in one /v1 contract, mirrored as 39 MCP tools
safety layers on every interpretive response
engine tests, all run before 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": 142.22 } }
// 142.22° → Purva Phalguni (Pooram)Cross-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": 43.19,
"planets": {
"sun": 271.23, "moon": 142.22, "mercury": 257.72,
"venus": 277.04, "mars": 236.1, "jupiter": 69.66,
"saturn": 263.58, "rahu": 292.86, "ketu": 112.86
},
"houses": {
"system": "whole-sign", "ayanamsa": "lahiri",
"cusps": [30, 60, 90, 120, 150, 180,
210, 240, 270, 300, 330, 0]
}
}
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-nine 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 the guard's fixed rules before you show it.
Don't take our word for it
Our accuracy isn't a self-reported percentage. The engine's positions are checked against reference values from authorities outside our own code: NASA/JPL, astro.com and the Tamil panchangam. We took each value from its source once and stored it with where it came from, and the running engine is measured against them. These are real checks from that report, 57/57 passing right now.
- within 0.2°
Independent tool · astro.com
Independent (astro.com): Chennai 1980-07-04 08:20
Δsun 0.0027° Δmoon 0.0025° Δasc 0.0028°
- within 0.02°
Independent ephemeris · NASA/JPL
Sun vs JPL — Chennai 1980-07-04 08:20
engine 102.2764° vs JPL 102.2763° (1980-Jul-04 02:50 UT)
- within 3 min
Drik panchangam
Panchangam: Chennai 2026-01-15
Dwadashi ends Δ0.9min · Jyeshtha ends Δ0.6min
- 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 39 endpoints 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, 39 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" }
// … 33 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). These are the timings Tamil readers actually follow.
AI assistants & agents
An MCP server exposes all 39 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 | Checked on every release against reference values from 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 (39 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
39 tools for AI agents, the same schemas as REST.
Unauthenticated /v1/health
Engine and ephemeris versions, for your uptime probes.
Safety-check endpoint
Run your text through the guard's fixed rules before you show it.
Verify it yourself →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 check ourselves against reference values from NASA/JPL, astro.com and the Tamil panchangam on every release, and publish the result. 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. No profile building, no resale. The calculation endpoints keep nothing but your usage counts. /v1/interpret is the one exception: every answer the safety guard changed, and about one in twenty of the rest, is kept with its question and chart facts so our team can review it for safety.
- How accurate is it, really?
- We verify calculation, not prediction. The engine's positions for a set of reference charts and dates are checked against values from 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 guard's fixed rules pass it, soften it, or refuse it. On /v1/interpret, every reading is also built only from what the engine computed, and a sample goes to our team for review. 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