SoulOS Kundli API
The most accurate Vedic astrology calculation engine available as an API. Built on Swiss Ephemeris 2.10, strictly following Parashar's Brihat Parashar Hora Shastra — Whole Sign houses, Lahiri ayanamsa, Vimshottari Dasha.
API Keys
Every request must carry your API key. Pass it in the Authorization header (preferred) or in the JSON body.
Authorization: Bearer soul_live_<your-key>
Or include api_key directly in the JSON body:
{ "api_key": "soul_live_<your-key>", "dob": "1987-07-08", // ... other fields }
Your First Request
One POST, one response. A complete Vedic birth chart in milliseconds.
cURL
curl -X POST https://kundli.soulmapbysahil.in/v1/chart \ -H "Authorization: Bearer soul_live_<YOUR_KEY>" \ -H "Content-Type: application/json" \ -d '{ "dob": "1987-07-08", "tob": "05:19:00", "lat": "32:47", "lon": "74:44", "tz": 5.5 }'
Python
import requests payload = { "dob": "1987-07-08", "tob": "05:19:00", "lat": "32:47", "lon": "74:44", "tz": 5.5 } headers = {"Authorization": "Bearer soul_live_<YOUR_KEY>"} r = requests.post( "https://kundli.soulmapbysahil.in/v1/chart", json=payload, headers=headers ) data = r.json()["data"] print(data["basic"]["lagna"]) # → "Gemini"
PHP
$response = file_get_contents( 'https://kundli.soulmapbysahil.in/v1/chart', false, stream_context_create(['http' => [ 'method' => 'POST', 'header' => "Content-Type: application/json\r\n" . "Authorization: Bearer soul_live_<YOUR_KEY>", 'content' => json_encode([ 'dob' => '1987-07-08', 'tob' => '05:19:00', 'lat' => '32:47', 'lon' => '74:44', 'tz' => 5.5 ]) ]]) ); $chart = json_decode($response, true)['data']; echo $chart['basic']['lagna']; // Gemini
JavaScript
const res = await fetch("https://kundli.soulmapbysahil.in/v1/chart", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Bearer soul_live_<YOUR_KEY>" }, body: JSON.stringify({ dob: "1987-07-08", tob: "05:19:00", lat: "32:47", lon: "74:44", tz: 5.5 }) }); const { data } = await res.json(); console.log(data.basic.lagna); // "Gemini"
POST /v1/chart
Calculates a complete Vedic birth chart. Returns planets in all 12 signs, Whole Sign houses, Vimshottari Dasha timeline, Yogas, Nakshatra details, and Avkahada Chakra.
Request Body
| Field | Type | Status | Description |
|---|---|---|---|
dob |
string | Required | Date of birth in YYYY-MM-DD format. Example: 1987-07-08 |
tob |
string | Required | Time of birth in HH:MM or HH:MM:SS format (24-hour). Example: 05:19:00 |
lat |
string | Required | Latitude — decimal degrees or DMS notation. Decimal: 32.7833 · DMS: 32:47 |
lon |
string | Required | Longitude — decimal degrees or DMS notation. Decimal: 74.7333 · DMS: 74:44 |
tz |
float | Optional | UTC offset in hours. Defaults to 5.5 (IST). Example: 5.5 for IST, -5 for EST |
name |
string | Optional | Person's name — echoed back in the response. |
dasha_depth |
integer | Optional | Depth of the Vimshottari Dasha tree. Default 5 (all levels).1 = Mahadasha only ·
2 = +Antardasha ·
3 = +Pratyantar ·
4 = +Sookshma ·
5 = +Prana (full ~66K entries)
|
chart |
boolean | Optional | Include a rendered North Indian birth chart SVG in the response. Default false. When true — data.chart_svg contains the full inline SVG string.
meta.chart_included confirms whether it was generated.
Omit or pass false to keep the response lean.
For divisional chart SVGs (D9, D10, etc.) use POST /v1/divisional with the same chart: true parameter.
|
include |
array | Optional |
Array of optional response expansions."insights" — adds data.insights: a complete natal interpretation built from
Dr. Sahil Kohli's Parashar knowledge base. Includes a synthesis (flowing combined reading),
per-planet interpretations (in sign + in house), house lord placements,
Moon nakshatra, conjunctions, and current Mahadasha meaning.Example: "include": ["insights"]Combine with name to personalise the text with the person's name.
|
lang |
string | Optional |
Language code for data.insights interpretation text. Default en (English).Supported: en English ·
hi Hindi ·
hg Hinglish ·
ne Nepali ·
ur Urdu ·
ta Tamil ·
te Telugu ·
ml Malayalam ·
pa PunjabiFalls back to English if a translation is incomplete. Only applies when "insights" is included in include.
|
api_key |
string | Optional | API key if not passing via Authorization header. |
Complete Response
Below is the actual verified response for 08 Jul 1987 · 05:19 IST · Jammu, J&K — cross-verified against AstroSage.
JSON Basic Info
"basic": { "lagna": "Gemini", // Ascendant sign "lagna_lord": "Mercury", "rashi": "Scorpio", // Moon sign "rashi_lord": "Mars", "nakshatra": "Anuradha", // Moon nakshatra "nakshatra_pada": 2, "nakshatra_lord": "Saturn", "dob": "1987-07-08", "tob": "05:19:00", "latitude": 32.783, "longitude": 74.733, "timezone": 5.5, "ayanamsa": "Lahiri" }
Planets
All 9 Vedic grahas — Sun through Ketu — including outer planets for reference. Each planet includes sign, degree within sign, absolute ecliptic longitude, retrograde flag, and combustion flag.
"planets": { "sun": { "sign": "Gemini", "sign_num": 3, "degree": 21.6423, // degrees within sign "longitude": 81.6423, // absolute ecliptic longitude "retrograde": false }, "moon": { "sign": "Scorpio", "sign_num": 8, "degree": 7.3559, "longitude": 217.3559, "retrograde": false, "combust": false }, "mercury": { "sign": "Gemini", "sign_num": 3, "degree": 15.8020, "longitude": 75.8020, "retrograde": true, // ← Retrograde "combust": true // ← Combust }, "venus": { "sign": "Gemini", "sign_num": 3, "degree": 8.9666, "longitude": 68.9666, "retrograde": false, "combust": false }, "mars": { "sign": "Cancer", "sign_num": 4, "degree": 7.1437, "longitude": 97.1437, "retrograde": false, "combust": true // ← Combust }, "jupiter": { "sign": "Aries", "sign_num": 1, "degree": 3.1922, "longitude": 3.1922, "retrograde": false }, "saturn": { "sign": "Scorpio", "sign_num": 8, "degree": 22.2013, "longitude": 232.2013, "retrograde": true // ← Retrograde }, "rahu": { "sign": "Pisces", "sign_num": 12, "degree": 12.8579, "longitude": 342.8579, "retrograde": true // always retrograde }, "ketu": { "sign": "Virgo", "sign_num": 6, "degree": 12.8579, "longitude": 162.8579, "retrograde": true // always retrograde (180° from Rahu) } }
Houses
Whole Sign system per Parashar BPHS. Each house occupies exactly one sign. House 1 starts at Lagna sign degree 0.
"houses": { "1": { "sign": "Gemini", "sign_num": 3, "longitude": 60 }, // Tanu — Self "2": { "sign": "Cancer", "sign_num": 4, "longitude": 90 }, // Dhana — Wealth "3": { "sign": "Leo", "sign_num": 5, "longitude": 120 }, // Sahaja — Siblings "4": { "sign": "Virgo", "sign_num": 6, "longitude": 150 }, // Sukha — Home "5": { "sign": "Libra", "sign_num": 7, "longitude": 180 }, // Putra — Children / Intelligence "6": { "sign": "Scorpio", "sign_num": 8, "longitude": 210 }, // Ari — Enemies / Disease "7": { "sign": "Sagittarius", "sign_num": 9, "longitude": 240 }, // Yuvati — Partnership "8": { "sign": "Capricorn", "sign_num": 10, "longitude": 270 }, // Randhra — Longevity "9": { "sign": "Aquarius", "sign_num": 11, "longitude": 300 }, // Dharma — Fortune "10": { "sign": "Pisces", "sign_num": 12, "longitude": 330 }, // Karma — Career "11": { "sign": "Aries", "sign_num": 1, "longitude": 0 }, // Labha — Gains "12": { "sign": "Taurus", "sign_num": 2, "longitude": 30 } // Vyaya — Liberation }
Vimshottari Dasha — All 5 Levels
The only Vedic astrology API that returns all 5 levels of Vimshottari Dasha pre-calculated with exact dates.
No need to compute sub-periods yourself. Control response size with dasha_depth.
dasha_depth=5 = default.
Use dasha_depth=2 if you only need MD+AD.
JSON Top-level structure
"dasha": { "system": "Vimshottari", "depth": 5, // levels calculated in timeline "balance_at_birth": { "planet": "Saturn", // nakshatra lord at birth "years_remaining": 2.41, // years of Saturn MD remaining at DOB "ends": "1989-10-22" // exact date first MD period ends }, "current": { // always 5 levels regardless of depth param "mahadasha": { "planet": "Venus", "start": "2024-10-22", "end": "2044-10-22" }, "antardasha": { "planet": "Venus", "start": "2024-10-22", "end": "2028-02-21" }, "pratyantar": { "planet": "Saturn", "start": "2026-01-14", "end": "2026-08-30" }, "sookshma": { "planet": "Rahu", "start": "2026-04-04", "end": "2026-05-22" }, "prana": { "planet": "Mercury", "start": "2026-04-28", "end": "2026-05-03" } }, "timeline": [ // 9 Mahadashas, each nested to dasha_depth { "planet": "Saturn", "years": 2.41, "start": "1987-07-08", "end": "1989-10-22", "antardasha": [ // 9 Antardashas { "planet": "Saturn", "years": 0.3823, "start": "1987-07-08", "end": "1987-11-19", "pratyantar": [ // 9 Pratyantars { "planet": "Saturn", "years": 0.0607, "start": "1987-07-08", "end": "1987-08-30", "sookshma": [ // 9 Sooksmas { "planet": "Saturn", "years": 0.009643, "start": "1987-07-08", "end": "1987-07-12", "prana": [ // 9 Pranas — hours to days { "planet": "Saturn", "start": "1987-07-08", "end": "1987-07-09" }, { "planet": "Mercury", "start": "1987-07-09", "end": "1987-07-09" } // ... 7 more ] } // ... 8 more sooksmas ] } // ... 8 more pratyantars ] } // ... 8 more antardashas ] } // ... 8 more mahadashas ] }
Depth reference
| dasha_depth | Levels returned | Total entries | Use case |
|---|---|---|---|
1 | Mahadasha | 9 | Quick lookup, dashboards |
2 | MD + Antardasha | 81 | Most apps — years-level planning |
3 | + Pratyantar | 729 | Month-level precision |
4 | + Sookshma | 6,561 | Week-level precision |
5 | + Prana (default) | ~66,430 | Day-level precision, full pre-calculation |
The current block always returns all 5 levels regardless of dasha_depth.
Yogas
40 Parashari Yogas checked per Brihat Parashar Hora Shastra across 7 categories. Only yogas present in the chart are returned. If no yoga is present, the array is empty.
| Category | Yogas |
|---|---|
| Pancha Mahapurusha | Hamsa, Malavya, Ruchaka, Sasa, Bhadra |
| Raja | Kendra-Trikona, Dharma-Karma Adhipati, Neecha Bhanga Raja, Parijata |
| Dhana | Dhana, Lakshmi, Akhand Samrajya |
| Special | Gajakesari, Budhaditya, Chandra-Mangal, Amala, Vasumati, Chatussagara, Parvata, Kahala, Chamara, Shankha, Saraswati, Kalanidhi, Kusuma, Mahabhagya, Pushkala, Musala |
| Chandra | Sunapha, Anapha, Durudhura, Kemdrum, Shakata, Adhi |
| Surya | Vesi, Vosi, Ubhayachari |
| Viparita Raja | Harsha, Sarala, Vimala |
"yogas": [ { "name": "Budhaditya Yoga", "category": "Special", "nature": "benefic", // "benefic" or "challenging" "present": true, // always true — absent yogas are not returned "description": "Sun and Mercury in the same sign. Sharp intellect, eloquence, and analytical precision.", "planets_involved": ["Sun", "Mercury"], "house_positions": [1] // houses where planets forming yoga sit } // only actually present yogas appear here — empty array [] if none ]
Nakshatra & Avkahada
Nakshatra data for Moon and Sun, plus the full Avkahada Chakra (Varna, Gana, Nadi, Yoni, Vasya).
"nakshatras": { "moon": { "name": "Anuradha", "lord": "Saturn", "pada": 2, "index": 17 }, "sun": { "name": "Ardra", "lord": "Rahu", "pada": 4, "index": 6 } }, "avkahada": { "varna": "Vaishya", // social classification "gana": "Manushya", // nature: Deva / Manushya / Rakshasa "nadi": "Madhya", // Adi / Madhya / Antya "yoni": "Mriga", // animal symbol "vasya": "Manav" // compatibility group }
POST /v1/compatibility
Ashtakoot (8-guna) Kundali Milan compatibility score. Returns a 36-point score with all 8 gunas broken down, doshas identified, and an overall verdict.
Supports two modes:
- Mode A — Pass
boy_nakshatra,boy_rashi,girl_nakshatra,girl_rashidirectly. Fast — no ephemeris call needed. - Mode B — Pass full birth details
boy{}andgirl{}(dob, tob, lat, lon, tz). Calculates Nakshatra and Rashi via Swiss Ephemeris, then runs Ashtakoot.
JSON Mode A — Direct Nakshatra/Rashi
{
"api_key": "your_api_key",
"boy_nakshatra": "Rohini",
"boy_rashi": "Taurus",
"girl_nakshatra": "Ashwini",
"girl_rashi": "Aries"
}
JSON Mode B — Full Birth Details
{
"api_key": "your_api_key",
"boy": {
"dob": "1994-03-15", "tob": "10:30",
"lat": 28.6139, "lon": 77.2090, "tz": 5.5
},
"girl": {
"dob": "1997-11-22", "tob": "14:15",
"lat": 19.0760, "lon": 72.8777, "tz": 5.5
}
}
JSON Response
{
"status": "success",
"data": {
"compatibility": {
"total": 24.5,
"max": 36,
"percent": 68,
"verdict": "Good",
"gunas": [
{ "name": "Varna", "max": 1, "score": 1, "detail": "Kshatriya · Vaishya" },
{ "name": "Vashya", "max": 2, "score": 2, "detail": "Chatushpad · Chatushpad" },
{ "name": "Tara", "max": 3, "score": 1.5, "detail": "Sampat (Girl→Boy) · Vipat (Boy→Girl)" },
{ "name": "Yoni", "max": 4, "score": 3, "detail": "Snake (Boy) · Deer (Girl)" },
{ "name": "Graha Maitri", "max": 5, "score": 4, "detail": "Venus→Moon: Friend · Moon→Venus: Neutral" },
{ "name": "Gana", "max": 6, "score": 6, "detail": "Manav (Boy) · Manav (Girl)" },
{ "name": "Bhakoot", "max": 7, "score": 7, "detail": "Taurus (Boy) · Aries (Girl)" },
{ "name": "Nadi", "max": 8, "score": 0, "detail": "Aadi (Boy) · Aadi (Girl) — Nadi Dosha" }
],
"doshas": [
{ "type": "Nadi Dosha", "severity": "High", "description": "Same Nadi..." }
]
},
"input": {
"boy": { "nakshatra": "Rohini", "rashi": "Taurus" },
"girl": { "nakshatra": "Ashwini", "rashi": "Aries" }
}
}
}
Gunas Reference
| Guna | Max | Measures |
|---|---|---|
| Varna | 1 | Spiritual compatibility (Brahmin > Kshatriya > Vaishya > Shudra based on Rashi) |
| Vashya | 2 | Control and dominance between the two (Chatushpad, Manav, Keeta, Jaldchar) |
| Tara | 3 | Birth star harmony — auspiciousness of nakshatra positions |
| Yoni | 4 | Sexual and intimate compatibility based on nakshatra animal symbols |
| Graha Maitri | 5 | Natural friendship between the lords of the Moon signs |
| Gana | 6 | Temperament — Deva (divine), Manav (human), Rakshasa (demonical) |
| Bhakoot | 7 | Emotional and financial compatibility based on relative Moon signs |
| Nadi | 8 | Health and genetic compatibility — most critical (Dosha if same Nadi) |
POST /v1/panchang
Daily Panchang (Hindu almanac) for any date, time, and location. Returns all 5 elements — Vara, Tithi, Nakshatra, Yoga, Karana — calculated with Lahiri Ayanamsa via Swiss Ephemeris. Each element includes degree progress, degree remaining, and quality/nature rating.
Try Live Panchang + Transit Chart →
JSON Request Body
{
"api_key": "your_api_key",
"date": "2026-05-04", // required, YYYY-MM-DD
"time": "06:00", // optional, HH:MM, defaults to "00:00"
"lat": 28.6139, // required
"lon": 77.2090, // required
"tz": 5.5 // optional, UTC offset, defaults to 5.5
}
JSON Response
{
"status": "success",
"data": {
"date": "2026-05-04",
"time": "06:00",
"vara": {
"day": "Monday",
"name": "Somavara",
"lord": "Moon"
},
"tithi": {
"number": 7,
"name": "Saptami",
"paksha": "Shukla",
"display": "Shukla 7",
"nature": "Bhadra",
"deg_elapsed": 8.4271,
"deg_remaining": 3.5729
},
"nakshatra": {
"index": 4,
"name": "Rohini",
"lord": "Moon",
"pada": 2,
"deg_elapsed": 5.1028,
"deg_remaining": 8.2305
},
"yoga": {
"number": 14,
"name": "Harshana",
"quality": "Good",
"deg_elapsed": 4.2109,
"deg_remaining": 9.1224
},
"karana": {
"number": 14,
"name": "Balava",
"quality": "Good",
"deg_elapsed": 2.4271,
"deg_remaining": 3.5729
},
"paksha": "Shukla Paksha (Waxing)",
"sun": { "longitude": 19.4122, "sign": "Aries" },
"moon": { "longitude": 103.5141, "sign": "Cancer" },
"festivals": [
{
"key": "hanuman_jayanti",
"name": "Hanuman Jayanti",
"name_hi": "हनुमान जयंती",
"description": "Birthday of Lord Hanuman — Chaitra Purnima.",
"importance": 1,
"region": "all",
"type": "tithi",
"fast": true,
"fast_type": "phalahar", // nirjala | phalahar | saatvik | moonrise | vigil | null
"observance": "sunrise" // sunrise | noon | pradosh | nishita | moonrise | sunset | all_day
}
]
},
"meta": { "powered_by": "SoulOS Kundli API — soulmapbysahil.in", "by": "Dr. Sahil Kohli | Kohli Media LLP", "engine": "SoulOS Ephemeris v1.0", "ayanamsa": "Lahiri", "response_time_ms": 42 }
}
Panchang Elements Reference
| Element | Count | Basis |
|---|---|---|
| Vara | 7 | Weekday (Sun–Sat). Each day ruled by a planet — Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn. |
| Tithi | 30 | Lunar day. Moon-Sun angle ÷ 12°. 15 Shukla (waxing) + 15 Krishna (waning). |
| Nakshatra | 27 | Moon's nakshatra. Moon longitude ÷ 13.33°. Determines the day's star quality. |
| Yoga | 27 | (Sun + Moon longitude) ÷ 13.33°. Each yoga has an auspiciousness rating. |
| Karana | 11 | Half-tithi. 7 movable karanas cycle 8 times + 4 fixed karanas. 6° per karana. |
Festivals Array — Field Reference
Each object in the festivals array contains the following fields. Array is sorted by importance ascending (most important first). Empty array if no festival today.
| Field | Type | Description |
|---|---|---|
| key | string | Unique identifier for the festival (e.g. "diwali", "maha_shivaratri"). |
| name | string | English name of the festival. |
| name_hi | string | Hindi name (Unicode). May be empty for minor observances. |
| description | string | Short description — what is observed and why. |
| importance | int (1–3) | 1 = major national festival, 2 = significant regional, 3 = minor / monthly. |
| region | string | "all" or a regional identifier (e.g. "north", "south", "maharashtra", "gujarat"). |
| type | string | Basis for date calculation: tithi | nakshatra | sankranti | combined. |
| fast | bool | Whether a fast (vrat) is traditionally observed on this day. |
| fast_type | string|null | Type of fast: nirjala (waterless), phalahar (fruits only), saatvik (no grains), moonrise (break at moonrise), vigil (all-night fast), or null if not a fasting day. |
| observance | string | When the primary ritual or puja is performed: sunrise | noon | pradosh | nishita | moonrise | sunset | all_day. |
POST /v1/synastry
Parashari Graha-Sthiti (Planetary Overlay) — places Person 1's planets into Person 2's houses and vice versa. Returns both overlays with interpretation texts, a theme summary, and a Mahadasha-level timing narrative for each person.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
| api_key | string | Yes | Your API key |
| p1 | object | Yes | Person 1 birth details (see sub-fields below) |
| p2 | object | Yes | Person 2 birth details (same structure as p1) |
| p1.dob | string | Yes | Date of birth — YYYY-MM-DD |
| p1.tob | string | Yes | Time of birth — HH:MM (24h) |
| p1.lat | float | Yes | Latitude of birth place (decimal degrees) |
| p1.lon | float | Yes | Longitude of birth place (decimal degrees) |
| p1.tz | float | No | UTC offset (default 5.5 for IST) |
| p1.name | string | No | Display name used in interpretation texts |
| interpret | bool | No | Include interpretations, themes, summary, dasha narrative (default true). Pass false for raw overlay data only. |
Request Example
{ "api_key": "your_api_key", "interpret": true, "p1": { "dob": "1990-06-15", "tob": "08:30", "lat": 28.6139, "lon": 77.2090, "tz": 5.5, "name": "Arjun" }, "p2": { "dob": "1993-02-20", "tob": "14:15", "lat": 19.0760, "lon": 72.8777, "tz": 5.5, "name": "Priya" } }
Response Structure
{ "status": "success", "data": { "p1": /* chart summary: lagna, 9 planets, current_dasha, nakshatra, rashi */ "p2": /* chart summary (same structure) */ "p1_on_p2": /* array — P1's planets in P2's houses */ [ { "planet": "sun", "sign": "Gemini", "sign_num": 3, "degree": 24.53, "house": 5, // P1's Sun falls in P2's 5th house "retrograde": false, "combust": false, "text": "Arjun's Sun in Priya's 5th house...", "theme": "emotional_bond", "intensity": "high" } /* ... 8 more planets */ ], "p2_on_p1": /* same structure — P2's planets in P1's houses */ "themes": { // when interpret:true "emotional_bond": { "strength": "strong", // strong | present | subtle "count": 4, "placements": [ /* planet, house, intensity, direction */ ] } /* themes: emotional_bond | karmic_ties | growth_friction | long_term | identity | communication */ }, "summary": "Arjun and Priya share a deeply karmic connection...", "dasha_synastry": [ // timing narrative for each person's current Mahadasha { "person": "p1", "mahadasha_planet": "saturn", "mahadasha_ends": "2031-03-14", "antardasha_planet": "mercury", "antardasha_ends": "2027-09-01", "house_in_partner": 7, // P1's Saturn in P2's 7th house "house_in_self": 10, // P1's Saturn in P1's own 10th house "narrative": "Arjun is in their Saturn Mahadasha — a long, karmic period...", "natal_context": "Arjun's Saturn in their own 10th house: the career is being tested...", "antardasha_focus": "Right now the Mercury Antardasha is focusing that energy into Priya's 7th house..." } /* ... block for p2 */ ] }, "meta": { "response_time_ms": 412, "interpreted": true, "ayanamsa": "Lahiri Ayanamsa", "engine": "SoulOS Ephemeris v1.0", "method": "Parashari Graha-Sthiti (Planetary Overlay)" } }
Themes Reference
| Theme | What It Measures |
|---|---|
| emotional_bond | Emotional depth and intimate resonance between the two charts |
| karmic_ties | Past-life patterns, soul-level connections, fated quality |
| growth_friction | Challenge and growth — planets that push, stretch, and activate |
| long_term | Structural longevity — Saturn, Jupiter placements that build over time |
| identity | Influence on each other's sense of self (1st house, Sun, Lagna) |
| communication | Mental connection, words, ideas, and shared understanding |
Notes
- All planetary positions use Lahiri Ayanamsa (sidereal, Parashari system)
- House formula:
((planet_sign_A − lagna_sign_B + 12) % 12) + 1 - Pass
"interpret": falseto skip texts, themes, summary, and dasha_synastry — returns raw overlay only (faster) dasha_synastrytext uses real names — passnamein p1/p2 for personalised output- You can pass the full response to an AI API for deeper narrative generation — the structured data is designed for this
POST /v1/divisional
Shodashavarga — compute any of the 16 Parashari divisional charts (D1 through D60) for a given birth. D9 and D10 are available on all plans. D12 through D60 require a Pro or Enterprise key.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
api_key | string | Required | Your API key |
dob | string | Required | Date of birth — YYYY-MM-DD |
tob | string | Required | Time of birth — HH:MM (24-hour) |
lat | float | Required | Latitude of birth place (decimal degrees) |
lon | float | Required | Longitude of birth place (decimal degrees) |
tz | float | Optional | UTC offset (default 5.5 for IST) |
chart | string | array | Required | Which divisional chart(s) to compute. Single: "D9". Multiple: ["D9","D10"]. Accepts with or without the D prefix ("9" and "D9" both work). See chart list below. |
Available Charts
| Code | Name | Domain | Plan |
|---|---|---|---|
D1 | Rashi | Main natal chart (physical life, lagna) | All |
D2 | Hora | Wealth & financial potential | Pro |
D3 | Drekkana | Siblings, courage | Pro |
D4 | Chaturthamsha | Property, fortune, fixed assets | Pro |
D7 | Saptamsha | Children, progeny | Pro |
D9 | Navamsha | Marriage, inner dharma, soul purpose | All |
D10 | Dashamsha | Career, profession, public life | All |
D12 | Dwadashamsha | Parents, ancestral karma | Pro |
D16 | Shodashamsha | Vehicles, comforts, conveyances | Pro |
D20 | Vimsamsha | Spiritual practice, worship | Pro |
D24 | Chaturvimsamsha | Education, learning, skills | Pro |
D27 | Saptavimsamsha | Strength, vitality (Nakshatramsha) | Pro |
D30 | Trimsamsha | Misfortune, evil, health | Pro |
D40 | Khavedamsha | Auspicious/inauspicious effects | Pro |
D45 | Akshavedamsha | All matters of life | Pro |
D60 | Shastiamsha | Past life karma (most powerful varga) | Pro |
Request Example
{ "api_key": "your_api_key", "dob": "1987-07-08", "tob": "19:25", "lat": 30.7333, "lon": 76.7794, "tz": 5.5, "chart": "D9" }
{ "api_key": "your_api_key", "dob": "1987-07-08", "tob": "19:25", "lat": 30.7333, "lon": 76.7794, "tz": 5.5, "chart": ["D9", "D10"] }
Response Structure
{ "status": "success", "data": { "D9": { "meta": { "D": 9, "name": "Navamsha", "desc": "Marriage, dharma, soul purpose" }, "lagna": { "sign": "Libra", "sign_num": 7, "lord": "Venus" }, "planets": { "sun": { "sign": "Gemini", "sign_num": 3, "house": 9, "retrograde": false, "combust": false }, "moon": { /* same structure */ }, // mars, mercury, jupiter, venus, saturn, rahu, ketu … } } }, "meta": { "powered_by": "SoulOS Kundli API — soulmapbysahil.in", "by": "Dr. Sahil Kohli | Kohli Media LLP", "engine": "SoulOS Ephemeris v1.0", "ayanamsa": "Lahiri", "charts": ["D9"] } }
Response Fields
| Field | Type | Description |
|---|---|---|
data.{D}.meta.D | int | Divisional number (e.g. 9 for D9) |
data.{D}.meta.name | string | Sanskrit name (e.g. "Navamsha") |
data.{D}.meta.desc | string | Domain of life this chart governs |
data.{D}.lagna.sign | string | Lagna (ascendant) sign in this varga |
data.{D}.lagna.sign_num | int | Lagna sign number 1–12 |
data.{D}.lagna.lord | string | Lord of the lagna sign |
data.{D}.planets.{name}.sign | string | Planet's sign in this varga |
data.{D}.planets.{name}.sign_num | int | Sign number 1–12 |
data.{D}.planets.{name}.house | int | House from lagna in this varga (1–12) |
data.{D}.planets.{name}.retrograde | bool | Whether planet is retrograde |
data.{D}.planets.{name}.combust | bool | Whether planet is combust (within 6° of Sun) |
Plan Gating
Requesting a Pro-only chart with a free key returns a 403 PLAN_LIMIT error for that chart. D1, D9, and D10 are available on all plans.
{ "status": "error", "code": "PLAN_LIMIT", "message": "D12 requires Pro plan. Requested: D12. Allowed on your plan: D1, D9, D10" }
- One swetest call is made per request regardless of how many charts you request — batch
["D9","D10"]is the same cost as"D9"alone - House numbers are computed as
((planet_sign - lagna_sign + 12) % 12) + 1relative to the varga lagna - D30 (Trimsamsha) uses the non-equal Parashari division, not the equal variant — follow BPHS Ch. 7
- For transit (gochar) overlays over natal D9, call this endpoint with today's date/time and compare to the stored natal chart client-side
- The response is designed to be pasted directly into an AI prompt for Vedic interpretation — use the "Copy to AI" button on freekundli.in result page to see the format
POST /v1/dosha
Detect the four classical Vedic doshas for a natal chart. All detections are Parashari BPHS only — no invented doshas, no KP, no Western equivalents. Kaal Sarpa Dosha is not included as it has no source in any classical text.
Doshas detected: Mangal Dosha (BPHS Ch. 18), Shrapit Dosha (BPHS Ch. 84), Pitra Dosha (BPHS Ch. 32), Sadhe Sati (BPHS Ch. 45).
Request
| Field | Type | Required | Description |
|---|---|---|---|
| dob | string | Yes | Date of birth — YYYY-MM-DD |
| tob | string | Yes | Time of birth — HH:MM or HH:MM:SS (local time) |
| lat | number | Yes | Latitude of birth place (decimal degrees) |
| lon | number | Yes | Longitude of birth place (decimal degrees) |
| tz | number | No | UTC offset in hours. Default: 5.5 (IST) |
| gochar_date | string | No | YYYY-MM-DD date for Sadhe Sati calculation (Saturn's current position). Defaults to today IST. |
Example Request
{ "dob": "1990-07-15", "tob": "08:30", "lat": 28.6139, "lon": 77.2090, "tz": 5.5, "gochar_date": "2026-05-24" }
Response — data object
{ "doshas": { "mangal_dosha": { "name": "Mangal Dosha", "present": true, "raw_present": true, "cancelled": false, "cancellation_reason": "", "intensity": "medium", "mars_sign": "Aries", "mars_house_from_lagna": 12, "mars_house_from_moon": 8, "mars_house_from_venus": 3, "active_references": [ { "reference": "Lagna", "mars_house": 12 }, { "reference": "Moon", "mars_house": 8 } ], "jupiter_aspects_mars": false, "source": "BPHS Ch. 18" }, "shrapit_dosha": { "name": "Shrapit Dosha", "present": false, "saturn_sign": "Capricorn", "saturn_house": 10, "rahu_sign": "Gemini", "rahu_house": 5, "source": "BPHS Ch. 84" }, "pitra_dosha": { "name": "Pitra Dosha", "present": true, "triggers": [ { "type": "A", "description": "Rahu in 9th house from Lagna." } ], "trigger_count": 1, "ninth_lord": "Mercury", "rahu_house": 9, "source": "BPHS Ch. 32" }, "sadhe_sati": { "name": "Sadhe Sati", "present": true, "phase": "peak", "phase_description": "Peak phase: Saturn transiting natal Moon sign directly...", "natal_moon": "Pisces", "gochar_saturn": "Pisces", "saturn_house_from_moon": 1, "source": "BPHS Ch. 45" } }, "natal_moon": "Pisces", "lagna": "Taurus", "gochar_date": "2026-05-24", "gochar_saturn": "Pisces" }
Dosha fields reference
| Dosha | present = true when | Cancellations | Source |
|---|---|---|---|
| Mangal Dosha | Mars in houses 1, 2, 4, 7, 8, or 12 from Lagna, Moon, or Venus | Mars in own sign (Aries/Scorpio) or exalted (Capricorn); Lagna is Aries/Scorpio | BPHS Ch. 18 |
| Shrapit Dosha | Saturn and Rahu conjunct in the same house | None — presence is the condition | BPHS Ch. 84 |
| Pitra Dosha | Any of: Rahu/Ketu in 9th; Sun conjunct Rahu/Ketu in 9th; Saturn in 9th; 9th lord conjunct Saturn/Rahu/Ketu | Multiple triggers increase severity (see trigger_count) | BPHS Ch. 32 |
| Sadhe Sati | Gochar Saturn in 12th, 1st, or 2nd sign from natal Moon. Phase: rising / peak / setting | N/A — phase ends when Saturn moves to 3rd sign from Moon | BPHS Ch. 45 |
Notes
- Kaal Sarpa Dosha is not included — it appears in no classical Vedic text (BPHS, Jaimini Sutras, Uttara Kalamrita, Saravali). It is a modern invention. SoulOS does not implement non-classical doshas.
- Sadhe Sati phase lasts ~2.5 years per phase (total ~7.5 years) as Saturn transits each sign at ~30 months.
- Mangal
raw_presentis true even when cancelled — useful for showing "Mangal Dosha but cancelled" text to the user. - Mangal
jupiter_aspects_marsis provided as additional context even when it doesn't trigger cancellation. - All calculations use Lahiri Ayanamsa, Whole Sign houses, Swiss Ephemeris 2.10.
POST /v1/ankashastra
Vedic Ankashastra — the classical planetary number system. Sun=1 Moon=2 Jupiter=3 Rahu=4 Mercury=5 Venus=6 Ketu=7 Saturn=8 Mars=9.
Computes Moolank (birth number), Bhagyank (destiny number), Universal Day, Personal Day, and optionally Naam Ank (name number). All numbers reduce to 1–9. No master numbers. Compatibility uses Naisargik Maitri from BPHS.
This is the only correct Vedic numerology. Not Pythagorean (A=1,B=2…). Not Chaldean. The letter mapping is phonetic — based on each sound's planetary resonance per classical Vedic tradition.
Request
| Field | Type | Required | Description |
|---|---|---|---|
| dob | string | Yes | Date of birth — YYYY-MM-DD |
| name | string | No | Full name — triggers Naam Ank calculation and Moolank–name compatibility |
| date | string | No | YYYY-MM-DD — date for Universal Day and Personal Day. Defaults to today IST. |
| moon_rashi | integer | No | Natal Moon sign 1–12 (Aries=1 … Pisces=12). Enables Moolank ↔ Moon-lord compatibility block. |
Example Request — Moolank + Bhagyank only
{ "dob": "1990-07-15", "date": "2026-05-25" }
Example Request — with name and Moon sign
{ "dob": "1990-07-15", "name": "Sahil Kohli", "date": "2026-05-25", "moon_rashi": 8 }
Response — data object
{ "moolank": { "number": 6, "planet": "Venus", "planet_hi": "शुक्र", "planet_hg": "Venus (Shukra)", "sanskrit": "Shukra", "qualities_en": "Love, beauty, harmony, creativity, relationships", "qualities_hi": "प्रेम, सौंदर्य, सामंजस्य, रचनात्मकता", "qualities_hg": "Love, beauty, harmony, creativity", "nature_en": "Venus blesses with charm, artistic sense, and a deep need for beauty...", "nature_hi": "शुक्र को सौंदर्य, कला और सहचर्य का आशीर्वाद देता है...", "nature_hg": "Venus deta hai charm, artistic sense...", "lucky_day_en": "Friday", "lucky_day_hi": "शुक्रवार", "lucky_color_en": "White, Cream, Pale Pink", "lucky_gem_en": "Diamond (Heera)", "birth_days": [6, 15, 24], "deity": "Lakshmi" }, "bhagyank": { "number": 4, "planet": "Rahu" // ...same fields as moolank... }, "universal_day": { "number": 3, "planet": "Jupiter", "date": "2026-05-25" // ...same fields as moolank... }, "personal_day": { "number": 9, "planet": "Mars", "date": "2026-05-25" // ...same fields as moolank... }, "naam_ank": { "number": 5, "planet": "Mercury", "name_used": "SAHILKOHLI", "raw_sum": 59, "letter_map": { "S":3, "A":1, "H":5, "I":1, "L":3, "K":2, "O":7 }, "moolank_compatibility": { "code": "F", "en": "Friend", "hi": "मित्र", "hg": "Mitra (Friend)", "effect_en": "Supportive and harmonious. Natural alignment of energies.", "planets": ["Venus", "Mercury"] } // ...same planet fields as moolank... }, "compatibility": { "moolank_bhagyank": { "code": "N", "en": "Neutral", "hi": "सम", "effect_en": "Mixed results. Neither blocked nor fully supported.", "planets": ["Venus", "Rahu"] }, "moolank_moon_lord": { "code": "E", "en": "Enemy", "effect_en": "Friction and challenge. Growth comes through conscious effort.", "moon_rashi": "Scorpio", "moon_lord": "Mars", "planets": ["Venus", "Mars"] } } }
Planetary Number System
| Number | Planet | Sanskrit | Birth Days | Qualities |
|---|---|---|---|---|
| 1 | Sun (Surya) | सूर्य | 1, 10, 19, 28 | Leadership, authority, clarity of purpose |
| 2 | Moon (Chandra) | चंद्र | 2, 11, 20, 29 | Intuition, sensitivity, nurturing |
| 3 | Jupiter (Guru) | गुरु | 3, 12, 21, 30 | Wisdom, expansion, dharma, generosity |
| 4 | Rahu | राहु | 4, 13, 22, 31 | Ambition, transformation, unconventional paths |
| 5 | Mercury (Budha) | बुध | 5, 14, 23 | Intelligence, communication, adaptability |
| 6 | Venus (Shukra) | शुक्र | 6, 15, 24 | Love, beauty, harmony, creativity |
| 7 | Ketu | केतु | 7, 16, 25 | Spirituality, intuition, liberation, detachment |
| 8 | Saturn (Shani) | शनि | 8, 17, 26 | Discipline, karma, structure, endurance |
| 9 | Mars (Mangal) | मंगल | 9, 18, 27 | Energy, courage, action, completion |
Vedic Letter Mapping (Naam Ank)
Based on Sanskrit phonetic affinity — NOT Pythagorean sequential (A=1,B=2…). Each letter group shares sound-energy with its ruling planet.
| Number | Planet | Letters |
|---|---|---|
| 1 | Sun | A, I, J, Q, Y |
| 2 | Moon | B, K, R |
| 3 | Jupiter | C, G, L, S |
| 4 | Rahu | D, M, T |
| 5 | Mercury | E, H, N, X |
| 6 | Venus | U, V, W |
| 7 | Ketu | O, Z |
| 8 | Saturn | F, P |
| 9 | Mars | All remaining letters |
Compatibility Codes (Naisargik Maitri)
| Code | Meaning | Effect |
|---|---|---|
F | Friend (Mitra) | Supportive and harmonious. Natural alignment of energies. |
N | Neutral (Sama) | Mixed results. Neither blocked nor fully supported. |
E | Enemy (Shatru) | Friction and challenge. Growth comes through conscious effort. |
Notes
- No master numbers. 11 reduces to 2, 22 reduces to 4. Always 1–9 per Vedic Ankashastra.
- Moolank = birth day digits only. Born 17th: 1+7=8 (Saturn).
- Bhagyank = full DOB all digits. 15/08/1990: 1+5+0+8+1+9+9+0=33 → 3+3=6 (Venus).
- Universal Day = today's date digits reduced. Same for everyone on that date.
- Personal Day = reduce(Moolank + Universal Day). Unique per person, changes daily.
- Naam Ank strips non-alphabetic characters, uppercases the string, maps each letter via the Vedic phonetic table, sums all values, and reduces to 1–9.
- Compatibility is drawn from BPHS Naisargik Maitri (natural friendship between planet lords).
- This endpoint requires only DOB — no time, place, or coordinates needed.
Error Codes
All errors return a consistent JSON envelope with status: "error", a machine-readable code, and a human-readable message.
| HTTP | Code | Meaning |
|---|---|---|
| 401 | AUTH_FAILED | Missing or invalid API key |
| 400 | MISSING_FIELD | Required field not provided |
| 400 | INVALID_JSON | Request body is not valid JSON |
| 405 | METHOD_NOT_ALLOWED | Only POST is accepted on this endpoint |
| 429 | RATE_LIMIT | Daily call limit exceeded for your plan |
| 403 | PLAN_EXPIRED | Subscription plan has expired |
| 404 | ENDPOINT_NOT_FOUND | Invalid endpoint path |
| 500 | ENGINE_ERROR | Calculation engine failed |
{ "status": "error", "code": "MISSING_FIELD", "message": "dob is required" }
Rate Limits
Limits are enforced per API key per UTC day. The calls_today counter resets at midnight IST.
| Plan | Calls / Day | Calls / Min | Endpoints | Price |
|---|---|---|---|---|
| Free | 100 | 10 | chart, dasha, dosha, panchang | ₹ 0 |
| Starter | 1,000 | 30 | + ashtakvarga, transit | ₹ 499 / mo |
| Pro | 5,000 | 60 | All endpoints + divisional + compatibility | ₹ 2,999 / mo |
| Enterprise | Unlimited | Unlimited | All endpoints + webhook + SLA | Custom |
code: "RATE_LIMIT". Your counter resets automatically at midnight IST — no action needed.Support
For integration help, partnership, or enterprise access — reach out directly. We respond fast.