Real request and response JSON for every endpoint · captured from the live API on 20 August 2026
Every file linked below is a genuine response from https://kundliapi.com, saved
exactly as it came back — nothing hand-written, nothing tidied. Use them to build against real
keys and real nesting instead of guessing from prose.
POST https://kundliapi.com/v1/<endpoint>
Content-Type: application/json
X-Api-Key: <your API key>
The key goes in the X-Api-Key header, not Authorization: Bearer.
Calls are also checked against the domains and IPs registered on your key: an unregistered origin
gets 403 Domain or IP not configured even with a valid key.
Every response uses the same envelope, and the payload is always responseData.data[0]:
{
"success": true,
"message": "…",
"responseData": { "message": "…", "status": true, "data": [ { /* payload */ } ] }
}
lang takes "en" or "hi" per request. Chart rashi
names and panchang names are returned in Devanagari either way.
POST /v1/horoscope/get_horoscopeAll four windows, the eight category fields, remedies and lucky values in one call.
Request body
{"sign": "aries", "lang": "en"}Response: download the exact JSON (5.6 KB, untouched)
POST /v1/mantra/get_daily_mantraMantra of the day from the weekday’s planet, plus the moon-sign mantra.
Request body
{"lang": "en"}Response: download the exact JSON (0.8 KB, untouched)
POST /v1/mantra/get_rashi_mantraNaam mantra and beej mantra for a rashi, through its lord.
Request body
{"sign": "aries", "lang": "en"}Response: download the exact JSON (0.8 KB, untouched)
POST /v1/mantra/get_graha_mantraNaam mantra, beej mantra, japa count, day and best time for a planet.
Request body
{"planet": "sun", "lang": "en"}Response: download the exact JSON (0.8 KB, untouched)
POST /v1/panchang/get_muhurtaPanchang, hora and chaughadiya together — the superset for “muhurat of the day”.
Request body
{
"name": "Sample User",
"day": 15,
"month": 8,
"year": 1990,
"hour": 14,
"min": 30,
"place": "New Delhi",
"lat": 28.6139,
"lon": 77.209,
"tzone": 5.5,
"gender": "male",
"lang": "en"
}Response: download the exact JSON (5.2 KB, untouched)
POST /v1/panchang/get_hora_muhurtaThe planetary hora table on its own (already included inside get_muhurta).
Request body
{
"name": "Sample User",
"day": 15,
"month": 8,
"year": 1990,
"hour": 14,
"min": 30,
"place": "New Delhi",
"lat": 28.6139,
"lon": 77.209,
"tzone": 5.5,
"gender": "male",
"lang": "en"
}Response: download the exact JSON (2.4 KB, untouched)
POST /v1/chart/get_birth_chartLagna chart. The only chart endpoint with no chartData wrapper.
Request body
{
"name": "Sample User",
"day": 15,
"month": 8,
"year": 1990,
"hour": 14,
"min": 30,
"place": "New Delhi",
"lat": 28.6139,
"lon": 77.209,
"tzone": 5.5,
"gender": "male",
"lang": "en"
}Response: download the exact JSON (2.1 KB, untouched)
POST /v1/chart/get_moon_chartChandra lagna.
Request body
{
"name": "Sample User",
"day": 15,
"month": 8,
"year": 1990,
"hour": 14,
"min": 30,
"place": "New Delhi",
"lat": 28.6139,
"lon": 77.209,
"tzone": 5.5,
"gender": "male",
"lang": "en"
}Response: download the exact JSON (2.1 KB, untouched)
POST /v1/chart/get_sun_chartSurya lagna.
Request body
{
"name": "Sample User",
"day": 15,
"month": 8,
"year": 1990,
"hour": 14,
"min": 30,
"place": "New Delhi",
"lat": 28.6139,
"lon": 77.209,
"tzone": 5.5,
"gender": "male",
"lang": "en"
}Response: download the exact JSON (2.1 KB, untouched)
POST /v1/chart/get_chalit_chartBhava chalit.
Request body
{
"name": "Sample User",
"day": 15,
"month": 8,
"year": 1990,
"hour": 14,
"min": 30,
"place": "New Delhi",
"lat": 28.6139,
"lon": 77.209,
"tzone": 5.5,
"gender": "male",
"lang": "en"
}Response: download the exact JSON (2.1 KB, untouched)
POST /v1/chart/get_divisional_chart/D10One divisional chart. Adds division and divisionName. Both D10 and 10 work in the path.
Request body
{
"name": "Sample User",
"day": 15,
"month": 8,
"year": 1990,
"hour": 14,
"min": 30,
"place": "New Delhi",
"lat": 28.6139,
"lon": 77.209,
"tzone": 5.5,
"gender": "male",
"lang": "en"
}Response: download the exact JSON (2.1 KB, untouched)
POST /v1/chart/get_all_divisional_chartsFifteen divisions in one call, as an object keyed by division.
Request body
{
"name": "Sample User",
"day": 15,
"month": 8,
"year": 1990,
"hour": 14,
"min": 30,
"place": "New Delhi",
"lat": 28.6139,
"lon": 77.209,
"tzone": 5.5,
"gender": "male",
"lang": "en"
}Response: download the exact JSON (26.9 KB, untouched)
Objects with exactly eight keys — general, love, friends,
career, family, home, health,
finance — every value a plain string, no HTML, no "Career:" prefix.
Always present. There is no yearlyCategories.
Plain strings, one or two sentences, always present. There is no separate remedy endpoint — these three fields are the remedy data.
"lucky": { "color": "Maroon", "numbers": [6, 5], "direction": "West" }
numbers is always two integers between 1 and 9.
Each is { love, wealth, health, business, career, luck } with integer scores 0-100.
Every mantra object — mantra, beejMantra and the nested
rashi.mantra — carries the same five keys: sanskrit,
transliteration, meaning, count, bestTime.
count is the traditional japa count: 108 for a naam mantra, the classical figure for a
beej mantra (7000 Sun, 10000 Mars, 17000 Ketu…).
get_moon_chart, get_sun_chart, get_chalit_chart and
get_divisional_chart/:division return data[0].chartData.
get_birth_chart returns the same object without that wrapper.
get_all_divisional_charts returns data[0].allDivisionalCharts, an object
keyed by division whose values are the 12-house arrays directly.
{
"house": 2,
"ascendant": false,
"rashi": "धनु",
"rashiIndex": 9,
"planets": [
{ "name": "Sa", "degree": { "deg": 26, "min": 8, "sec": 18 },
"retrograde": true, "combust": false, "color": "#00008B" }
]
}
rashiIndex is 1-based. Planet name is a two-letter code:
Su Mo Ma Me Ju Ve Sa Ra Ke.
D2, D3, D4, D7, D9, D10, D12, D16, D20, D24, D27, D30, D40, D45, D60 — and D1 as the birth chart. Any other division returns 200 with the D1 positions, so do not rely on D5, D6, D8, D11 and the rest.
Limits apply per minute as well as per day. Twelve calls back to back can return
429 Rate limit exceeded — add a small delay or a retry in integration tests.
Something still unclear? Write to us with the endpoint and we will send the untouched JSON for it.