Skip to content
VedicSpace Engine APIapi@vedicspace.com
Developer reference

The VedicSpace Engine API

One cited Vedic-astrology engine — 172 API endpoints across pañcāṅga, kuṇḍalī, daśā, muhūrta, doṣa, matching and more. Swiss Ephemeris, Lahiri ayanāṁśa. Every reading is computed from the Swiss Ephemeris or cited to its classical source — chapter, verse and edition, on the wire — and where the texts are silent, so are we. Free. All of it. No card, no tiers; an optional free key raises your rate limits 4×.

Getting started

Base URLhttps://vedicspace.com
CORSOpen (Access-Control-Allow-Origin: *) — call from the browser.
AuthNone for readings. Optional email-OTP only for the personal Vault.
Drop-in SDKAdd <script src="https://vedicspace.com/vedicspace-sdk.js">, then new VedicSpace().kundli(birth). No build, no keys — the whole engine in one tag. Source →
PriceFree — every endpoint, no card, no tiers. Fair-use limits published at GET /api/v2/limits; a free key gives 4× headroom.
StatusLive probes at /status · health for your monitors: GET /api/health. Honest note: no formal SLA yet during preview.
SpecFull OpenAPI at /openapi.json (machine-readable).

The response envelope — the moat

  • prove_refs — an array of classical citations backing each verdict, flagged verified or pending. Render them as a trust layer. Each ref names chapter, verse and edition, so a reader can check the claim.
  • engine_status — the engine's own honesty signal: LIVE (computed), REFERENCE (tradition tables), or PARTIAL (self-declared incomplete). Respect it.
  • The no-fabrication law is the contract — if the engine can't cite or compute something, it says so rather than inventing it. Never paper a pending citation over as confirmed.

The five request shapes

// 1 · Canonical kundli body (most chart engines) — place omitted, tz derived from lat/lon
{ "name": "…", "gender": "Male", "date": "1990-05-21", "time": "14:30",
  "latitude": 26.85, "longitude": 80.95 }

// 2 · birth_* variant (sadesati, gochar, dosha/annual engines)
{ "birth_date": "1990-05-21", "birth_time": "14:30", "birth_latitude": 26.85, "birth_longitude": 80.95 }

// 3 · Matchmaking — flat boy_/girl_ keys
{ "boy_date": "…", "boy_time": "06:00", "boy_latitude": 0, "boy_longitude": 0, "girl_date": "…", … }

// 4 · Marriage suite — nested bride/groom (+ ceremony moment)
{ "bride": { "date":"…","time":"06:00","latitude":0,"longitude":0 }, "groom": { … }, "muhurta_date": "…" }

// 5 · Panchanga GET query params
GET /api/v2/panchang/glance?lat=26.85&lon=80.95&date=2026-07-03

Free API keys — instant, no card, no catch

A key is identity, not a paywall — every endpoint works without one. With one you get 4× the rate-limit headroom and per-key (not per-IP) accounting, kinder to shared networks and serverless. Registering the same email + app returns the same key.

# Or from the terminal:
curl -X POST https://vedicspace.com/api/v2/keys/register \
  -H 'Content-Type: application/json' \
  -d '{"email":"you@example.com","app_name":"my-app"}'
# → { "success": true, "api_key": "vsk_…" }
# Then:  -H 'X-API-Key: vsk_…'  on any request.

SDKs, Postman & the MCP server

Zero-dependency clients — download one file and go. And the MCP server makes this an astrology tool an AI assistant can cite: every verdict it returns carries its classical verse.

Pythonvedicspace.pystdlib only. VedicSpace().dashakoot(groom, bride)
JavaScriptvedicspace.js (browser/CJS) · vedicspace.mjs (ESM, Node 18+)
PostmanCollectionall 177 API requests, foldered, with working example bodies.
MCP servervedicspace-mcp.mjszero-dependency, Node 18+. 8 cited tools for Claude / ChatGPT / any MCP client.
// claude_desktop_config.json
{ "mcpServers": { "vedicspace": {
    "command": "node", "args": ["/path/to/vedicspace-mcp.mjs"] } } }

// Tools: get_panchang · get_kundli · match_ashtakoot · match_dashakoot
//        check_manglik · check_kalasarpa · check_pitra_dosha · get_bphs_chapter
// Every verdict arrives with prove_refs — the AI can quote the verse.

1Panchāṅga & Calendar

Daily & almanac. The v2 panchanga routes carry prove_refs; legacy GET routes are display-fast but mostly uncited.

GET/api/v2/panchang/glance

Lightest daily "Today" glance — tithi + nakṣatra + a day-verdict band.

Request · query: lat, lon, date (all optional; default Delhi/today)

{ "success": true, "engine_status": "LIVE", "date": "2026-07-03",
  "verdict": { "day_band": "inauspicious", "headline": "Krishna Tritiya · Shravana" },
  "evidence": { "glance": { "tithi": { "label": "Krishna Tritiya", "ends": "…" },
    "nakshatra": { "label": "Shravana", "pada": 4 } },
    "prove_refs": [ { "ref_id": "PANCHANG-INTERP.tithi-nature", "tier": "T2" } ] } }
POST/api/v2/panchanga

Primary daily pañcāṅga — five limbs + end-times + Sun/Moon sidereal positions.

Request · date*, time (def 06:00), latitude*, longitude*

{ "success": true, "date": "2026-07-03",
  "panchanga": { "tithi": "Krishna Tritiya", "paksha": "Krishna", "vara": "Friday",
    "nakshatra": "Shravana", "yoga": "Vishkambha", "karana": "Vishti",
    "sunrise": "05:27:00", "sunset": "19:23:00" },
  "moon": { "sign": "Capricorn", "nakshatra": "Shravana" }, "prove_refs": [ … ] }
GET/api/choghadiya

Day/night choghaḍiyā (8+8), weekday-rotated, with quality + karma guidance.

Request · query: lat*, lon*, date*

{ "success": true, "weekday": "Friday",
  "day_choghadiya": [ { "name": "Laabh", "lord": "Mercury", "start": "07:11 AM",
    "end": "08:56 AM", "status": "Auspicious", "karma": "Gain — business, trade" } ],
  "prove_refs": [ { "ref_id": "PANCHANG.choghadiya", "tier": "T3" } ] }
GET/api/hora

Day-lord + the 24-horā wheel (12 day + 12 night), current flagged.

Request · query: lat*, lon*, date*

GET/api/v2/eclipses

Upcoming solar/lunar eclipses with contact times + location-aware sūtak.

Request · query: count (def 3), latitude, longitude

{ "success": true, "engine_status": "LIVE",
  "next": { "date": "2026-08-12", "sign": "Cancer", "nakshatra": "Ashlesha",
    "locally_visible": false, "sutak": { "applies": false } } }
POST/api/v2/vrata/ekadashi

The citation-backed vrata engine + the flagship "Show Cause" surface — Smārta vs Vaiṣṇava split with a step-by-step predicate trace.

Request · date*, time, latitude/longitude, tradition (smarta|vaishnava), end_date (→ range scan)

The predicate trace (why_this_date) is our strongest cited-evidence surface.

2Kuṇḍalī & Charts

Every POST takes the canonical 6-field body. /api/v2/kundli is the primary chart source.

POST/api/v2/kundli

Primary birth-chart generation — chart, planets, houses, navāṁśa, pañcāṅga, Viṃśottarī daśā, plus interpretation (with prove_refs).

{ "success": true, "engine": "astromata_core.v2",
  "chart": { "lagna": { "sign": "Pisces", "lord": "Jupiter", "nakshatra": "P.Bhadrapada" },
    "planets": { "Moon": { "sign": "Leo", "house": 6, "dignity": "friend" } },
    "dashas": { "current": { "maha": "Rahu", "antar": "Jupiter" } } },
  "interpretation": { "prove_refs": [ … ] } }
POST/api/divisional-charts

All 16 Parāśarī vargas in one response (D1…D60) + vargottama. Single varga: POST /api/divisional/{code}.

POST/api/v2/bhavabala

House strength (bhāvabala) with strongest/weakest callouts. Cited.

{ "engine_status": "LIVE",
  "houses": [ { "house": 1, "lord": "Jupiter", "total_score": 91.7, "band": "strong" } ],
  "strongest": { "house": 10, "total_score": 112.18 },
  "prove_refs": [ "SRC-BPHS-BHAVABALA" ] }
POST/api/v2/jaimini

Chara kārakas, kārakāṁśa, ārūḍha padas, chara daśā. Tiered citations.

POST/api/yog

Yoga detection with honest strength bands (strong/moderate/weak/cancelled) + bhaṅga. Cancelled yogas are shown as cancelled — the honesty is the differentiator.

{ "success": true, "yogas": { "summary": { "strong": 0, "moderate": 4, "cancelled": 1 },
  "active": [ { "id": "gajakesari", "famous": true, "status": "cancelled",
    "strength_label": "Cancelled by classical rules" } ] } }
POST/api/kp-chart

KP (Krishnamurti Paddhati) — planet star/sub/sub-sub lords, 12 cuspal sub-lords, four-fold significators.

{ "success": true,
  "planets": [ { "planet": "Sun", "nakshatra_lord": "Moon", "sub_lord": "Venus", "house": 10 } ],
  "cusps": [ { "cusp": 1, "sign": "Scorpio", "sub_lord": "Rahu" } ],
  "significators": [ { "planet": "Sun", "star_lord": "Moon", "signifies": [6,10,9] } ] }

3Daśā

Timing stack. All POST routes take the canonical 6-field body.

POST/api/dasha/tree

Full nested Viṃśottarī tree: Mahā → Antar → Pratyantar → Sūkṣma, for a drill-down.

POST/api/dasha/current

The live 5-level chain (Mahā→Antar→Pratyantar→Sūkṣma→Prāṇa) as of today — the "you are here" banner.

{ "success": true, "current_levels": [
  { "level": "Mahadasha", "planet": "Rahu", "end_date": "05-Nov-2040" },
  { "level": "Antardasha", "planet": "Jupiter", "end_date": "12-Dec-2027" } ] }
POST/api/dasha/yogini

Yoginī daśā (8-yoginī, 36-year cycle) across 3 cycles.

The name→lord map is a fixed classical constant; source it client-side (the engine field is being corrected).

GET/api/dasha/meanings

Static lord significations — join against the planet in /current or /tree to render interpretations without an LLM call.

POST/api/v2/pindayu

Phaladīpikā Ch.13 proportional longevity band (evidence-first, not a death prediction). Fully cited.

{ "engine_status": "LIVE",
  "verdict": { "total_years": 54.48, "band": "Madhyayu (32–70 years band)" },
  "story": { "summary": "A proportional band indicator, not a death prediction." },
  "evidence": { "prove_refs": [ { "citation": "Phaladeepika Ch.13 Sh.8–12" } ] } }

4Muhūrta

Electional engine — score a moment or scan N days. Most carry prove_refs + a quality flag.

POST/api/v2/muhurta-finder

Scan the next N days for auspicious dates for a karma.

Request · latitude*, longitude*, karma (vivah|yatra|griha_pravesh|upanayana|general), days_ahead (def 30, 1–90), only_shubha, start_date

{ "success": true, "karma": "vivah", "match_count": 6,
  "results": [ { "date": "2026-08-03", "weekday": "Monday", "nakshatra": "U.Bhadrapada",
    "quality": "shubha", "benefits": ["Tithi favourable"], "issues": [] } ] }
POST/api/v2/muhurta-complete

Full Muhūrta-Cintāmaṇi assessment of a specific moment — day_quality, karma_muhurtas (per activity, with benefits + issues), aṅgas, special yogas.

Request · date*, time*, latitude*, longitude*, activity

POST/api/v2/muhurta-intelligence

Multi-person decision engine: reject bad days across 9 classical layers, return the top 3 with a rejection audit ("why these and not those").

Request · event_type*, users[] (each birth_*), latitude*, longitude*, start_date*, end_date*, max_results (1–3)

POST/api/v2/travel-muhurta

Direction-aware travel muhūrta: Diśā-śūla + Yātrā doṣa set + remedy. Cited.

Request · date*, time, latitude/longitude, direction (def North)

5Doṣa & Remedies

Affliction engines with honest cancellations + parihāra. Most take the birth_* body; the remedy corpus is a GET reference.

POST/api/v2/sadesati

Śani Sāḍe-sātī status from the Janma Rāśi — running/not, phase, kaṇṭaka. NOTE: janma_rashi/saturn_rashi are 0-based sign indices.

Request · birth_date*, birth_time*, birth_latitude*, birth_longitude*

{ "success": true, "janma_rashi": 1, "saturn_rashi": 11,
  "sadesati": { "in_sadesati": false, "phase": "Shubha Shani (11th house)",
    "saturn_house_from_janma": 11, "duration_years": 2.5 } }
POST/api/v2/mangal-dosha

Maṅgala/Manglik doṣa from Lagna, Moon & Venus, with cancellations + parihāra.

{ "mangal_dosha": { "present": true, "from_venus": true, "severity": "Mild",
  "cancellations": [], "parihaar": "Match with another Mangalik OR Kumbh Vivah" } }
POST/api/v2/kalasarpa

Kāla-sarpa formation on the Rāhu–Ketu axis (present/partial), with type + parihāra.

POST/api/lal-kitab

Lāl Kitāb reading — ṛṇa (debts), simple totke, grahas-in-houses, house meanings.

GET/api/v2/reference/remedy-corpus

Cited remedy tables — gemstones by rāśi, rudrākṣa by mukhī, vāstu by direction. engine_status: REFERENCE.

No birth data — a pure reference. Label it REFERENCE, never LIVE.

6Matching & Marriage

North (Aṣṭakūṭa), South (Dashakoot/porutham) and batch screening — every nirṇaya carries its citation, including Praśna Mārga XXI on the bhakūṭa exceptions.

POST/api/v2/matchmaking

Aṣṭakūṭa guṇa-milana (36 guṇa) across the eight kūṭas, scored + explained, cited.

Request · boy_name, boy_date, boy_time, boy_latitude, boy_longitude, girl_* (same)

POST/api/v2/koota-extended

Aṣṭakūṭa + the extended kūṭas (Mahendra, Strī-Dīrgha, Rajju, Varṇa, Vedha) + cited bhakūṭa-exception nirṇaya + Manglik cross-check.

Request · groom { date, time, latitude, longitude }, bride { same }, love_marriage

POST/api/v2/dashakoot

The ten South-Indian poruthams (Dina, Gaṇa, Mahendra, Strī-Dīrgha, Yoni, Rāśi, Rāśyādhipati, Vaśya, Rajju, Vedha) with per-porutham grades — Rajju/Vedha held essential, the Rāśi nirṇaya cited.

Request · groom { date, time, latitude, longitude }, bride { same }

{ "success": true, "dashakoot": { "matched_count": 9, "total": 10,
  "essentials_ok": true, "verdict": "Uttama (excellent)",
  "poruthams": [ { "porutham": "Rajju", "matched": true, "grade": "uttama",
    "weight": "essential", "detail": { "bride": "Siras (Head)", "groom": "Nabhi (Navel)" } } ] } }
POST/api/v2/match/batch

Matrimony screening: one profile vs up to 50 candidates in a single call, ranked by guṇa score, with doṣa flags (and optional dashakoot summaries). Free.

Request · proband { date, time, latitude, longitude }, proband_role (groom|bride), candidates[] (max 50), system (ashtakoota|dashakoot)

POST/api/v2/marriage-timing-matrix

Couple-synced marriage-timing matrix from daśā + gochara.

Request · { person: birth_* } (or bride/groom)

POST/api/v2/prasna-marriage

Horary (praśna) marriage answer cast for the asked moment.

7Predictions & Life-areas

Sign & chart forecasts. Horoscope is a no-birth GET; the rest take a birth body.

GET/api/horoscope

Sun/rāśi horoscope by sign — score, lucky colour+numbers, prediction, 11 life-area scores, active planet.

Request · query: sign* (English/Sanskrit), period (daily|weekly|monthly|yearly)

{ "sign": "Aries", "period": "daily", "total_score": 65,
  "lucky_color": { "name": "Terracotta Red", "hex": "#D94A3D" }, "lucky_numbers": [9,5,3],
  "prediction": "…", "category_scores": { "Career": 72, "Health": 75 } }
POST/api/v2/fortune-direction

Lucky direction (dik-lordship + digbala), Svadeśa vs Videśa (home/abroad), wealth quarter (Sarvāṣṭakavarga). engine_status: LIVE.

Request · birth_* body

POST/api/v2/varshaphal

Tājika varṣaphala — annual solar-return chart: varṣeśa, muntha, muddā daśā, Tājika yogas, sahams. Cited (prove_refs).

POST/api/v2/gochar

Transit quality vs the natal Moon sign, per graha (house-from-Moon + effect). Uses the birth_* body.

{ "janma_rashi": "Leo",
  "gochar": { "planets": { "Sun": { "current_sign": "Gemini", "house_from_janma": 11,
    "quality": "shubha", "effect": "Authority, recognition" } } } }

8AI, Numerology & Tools

The cited AI guide, and the distinct-system engines (numerology is name+DOB only).

POST/api/v2/jyotishi/chat

Chart-grounded, cited AI Jyotiṣī — answers only where the classics speak, and declines out-of-scope questions honestly.

POST/api/v2/oracle/answer

The 99 cited praśnas — each with verdict, timing windows, reasoning and cited verses.

POST/api/numerology

Chaldean + Lo Shu numerology — mūlāṅka, bhāgyāṅka, name number, Lo Shu grid, lucky things. No birth chart.

Request · first_name*, last_name, day*, month*, year*

{ "success": true, "moolank": 1, "bhagyank": 9, "life_path": 9,
  "lucky_things": { "numbers": [1,9,2], "color": "Red", "ruler": "Sun" },
  "loshu_grid": [ [ { "num": 4, "count": 0 }, … ] ] }

This reference covers the primary routes; the full machine-readable spec is /openapi.json and the live engine is self-describing at GET /api/catalog. Everything is free — grab a free key for headroom, check /status for live health, and write api@vedicspace.com for anything else.