Overview

KundliAPI provides 98+ REST API endpoints covering all aspects of Vedic Astrology — from basic birth chart data to advanced KP astrology, Dasha predictions, Dosha analysis, Numerology, Gemstone recommendations, and Kundli matching.

Kundli Generator

Complete birth chart with planetary positions, houses, nakshatras

🌙

Horoscope

Daily, weekly, monthly horoscope predictions by rashi

💑

Kundli Matching

Ashtakoota Gun Milan with 36-point compatibility

📅

Panchang

Tithi, Nakshatra, Yoga, Karana, Hora, Chaughadiya

Dasha

Vimshottari & Yogini Dasha — Maha, Antar, Pratyantar

⚠️

Dosha

Mangal, Kaal Sarp, Pitra Dosha & Sadhesati

🔢

Numerology

Birth number, life path, Lo Shu grid, personal year

💎

Gemstone

Lucky gemstones based on planetary positions

Base URL: https://kundliapi.com/api
Method: All endpoints use POST with JSON body (except a few GET endpoints)
Auth: API Key via X-Api-Key header

Quick Start — Get Running in 5 Minutes

1Sign up & Get API Key

Register at kundliapi.com/register, choose a plan at /pricing, and get your API key from the Dashboard.

2Verify your domain or IP

In the Dashboard, add your server's domain (e.g., myapp.com) or IP address to the whitelist. Requests from unverified origins are blocked.

3Make your first API call

cURL
JavaScript
Python
cURLcurl -X POST https://kundliapi.com/api/astro/get_astro_data \ -H "Content-Type: application/json" \ -H "X-Api-Key: YOUR_API_KEY" \ -d '{ "day": 15, "month": 8, "year": 1990, "hour": 10, "min": 30, "lat": 28.6139, "lon": 77.2090, "tzone": 5.5 }'
JavaScriptconst response = await fetch('https://kundliapi.com/api/astro/get_astro_data', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Api-Key': 'YOUR_API_KEY' }, body: JSON.stringify({ day: 15, month: 8, year: 1990, hour: 10, min: 30, lat: 28.6139, lon: 77.2090, tzone: 5.5 }) }); const data = await response.json(); console.log(data);
Pythonimport requests response = requests.post( 'https://kundliapi.com/api/astro/get_astro_data', headers={ 'Content-Type': 'application/json', 'X-Api-Key': 'YOUR_API_KEY' }, json={ 'day': 15, 'month': 8, 'year': 1990, 'hour': 10, 'min': 30, 'lat': 28.6139, 'lon': 77.2090, 'tzone': 5.5 } ) data = response.json() print(data)

4Parse the response

JSON Response{ "statusCode": 200, "output": "ok", "responseData": { "data": [{ "astrodata": { "ascendant": "Libra", "varna": "Vaishya", "vashya": "Chatushpad", "yoni": "Gaj", "gana": "Dev", "nadi": "Madhya", "sign": "Taurus", "signLord": "Venus", "nakshatra": "Rohini", "nakshatraLord": "Moon", "yoga": "Siddha", "karana": "Bava", "tithi": "Krishna Dashami", "sunSign": "Leo", "moonSign": "Taurus", "ayanamsha": 23.7 } }] } }

Authentication

Every API request must include your API key in the X-Api-Key header:

headers: { 'Content-Type': 'application/json', 'X-Api-Key': 'YOUR_API_KEY' }
Security: Never expose your API key in client-side JavaScript. Always call KundliAPI from your backend server and proxy the results to your frontend.

Your API key is restricted to verified domains and IPs. Add them in Dashboard → API Keys.

Base Parameters (Birth Data)

Most astrology endpoints require birth data in the request body:

ParameterTypeRequiredDescriptionExample
dayIntegerBirth day (1–31)15
monthIntegerBirth month (1–12)8
yearIntegerBirth year1990
hourIntegerBirth hour (24h, 0–23)10
minIntegerBirth minute (0–59)30
latFloatLatitude of birth place28.6139
lonFloatLongitude of birth place77.2090
tzoneFloatTimezone offset (IST = 5.5)5.5
Tip: For Indian users, timezone is always 5.5 (IST). Use a geocoding API to get lat/lon from city names.

Use Case: Generate Complete Kundli

A complete Kundli report requires multiple API calls. Here's how to build one:

Step 1: Fetch Astro Data + Planets in Parallel

JavaScript
Python
JavaScriptconst birthData = { day: 15, month: 8, year: 1990, hour: 10, min: 30, lat: 28.6139, lon: 77.2090, tzone: 5.5 }; const headers = { 'Content-Type': 'application/json', 'X-Api-Key': 'YOUR_API_KEY' }; // Fetch astro, planets, dasha, and dosha in parallel const [astro, planets, dasha, dosha] = await Promise.all([ fetch('https://kundliapi.com/api/astro/get_astro_data', { method: 'POST', headers, body: JSON.stringify(birthData) }).then(r => r.json()), fetch('https://kundliapi.com/api/planet/get_all_planet_data', { method: 'POST', headers, body: JSON.stringify(birthData) }).then(r => r.json()), fetch('https://kundliapi.com/api/dasha/get_vimshottary_maha_dasha', { method: 'POST', headers, body: JSON.stringify(birthData) }).then(r => r.json()), fetch('https://kundliapi.com/api/dosha/mangal_dosh_analysis', { method: 'POST', headers, body: JSON.stringify(birthData) }).then(r => r.json()) ]); // Extract data from wrapped response const astroData = astro.responseData.data[0].astrodata; const planetList = planets.responseData.data[0].planetData.planetList; const dashaList = dasha.responseData.data[0].vimshottaryMahaDashaData.vimshottaryMahaDashaList; const doshaInfo = dosha.responseData.data[0].mangalDosha;
Pythonimport requests from concurrent.futures import ThreadPoolExecutor birth_data = { 'day': 15, 'month': 8, 'year': 1990, 'hour': 10, 'min': 30, 'lat': 28.6139, 'lon': 77.2090, 'tzone': 5.5 } headers = { 'Content-Type': 'application/json', 'X-Api-Key': 'YOUR_API_KEY' } BASE = 'https://kundliapi.com/api' endpoints = [ '/astro/get_astro_data', '/planet/get_all_planet_data', '/dasha/get_vimshottary_maha_dasha', '/dosha/mangal_dosh_analysis', ] def call_api(ep): return requests.post(BASE + ep, headers=headers, json=birth_data).json() # Parallel requests with ThreadPoolExecutor(max_workers=4) as pool: astro, planets, dasha, dosha = pool.map(call_api, endpoints) astro_data = astro['responseData']['data'][0]['astrodata'] planet_list = planets['responseData']['data'][0]['planetData']['planetList']

Step 2: Display the Kundli

JavaScript// Astro Summary console.log('Ascendant:', astroData.ascendant); console.log('Moon Sign:', astroData.sign); console.log('Nakshatra:', astroData.nakshatra); // Planet Positions planetList.forEach(p => { console.log(`${p.name} — ${p.rashi} ${p.degree}° House ${p.house}`); }); // Dasha Periods dashaList.forEach(d => { console.log(`${d.planet}: ${d.startDate} → ${d.endDate}` + (d.current ? ' (CURRENT)' : '')); });

Use Case: Daily Horoscope

POST /api/horoscope/get_horoscope

Get personalized horoscope prediction based on birth details.

JavaScript
cURL
JavaScriptconst res = await fetch('https://kundliapi.com/api/horoscope/get_horoscope', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Api-Key': 'YOUR_KEY' }, body: JSON.stringify({ day: 15, month: 8, year: 1990, hour: 10, min: 30, lat: 28.6139, lon: 77.209, tzone: 5.5 }) }); const data = await res.json(); const horoscope = data.responseData.data[0].horoscope;
cURLcurl -X POST https://kundliapi.com/api/horoscope/get_horoscope \ -H "Content-Type: application/json" \ -H "X-Api-Key: YOUR_KEY" \ -d '{"day":15,"month":8,"year":1990,"hour":10,"min":30,"lat":28.6139,"lon":77.209,"tzone":5.5}'

Use Case: Kundli Matching

Match two kundlis for marriage compatibility. Uses Ashtakoota (36-point) method.

POST /api/matching/get_match

Requires birth data of both boy and girl in the request body.

Additional Parameters for Matching

ParameterTypeDescription
boyNameStringBoy's name
boyDay, boyMonth, boyYearIntegerBoy's birth date
boyHour, boyMinIntegerBoy's birth time
boyLatitude, boyLongitude, boyTimezoneFloatBoy's birth location
girlNameStringGirl's name
girlDay, girlMonth, girlYearIntegerGirl's birth date
girlHour, girlMinIntegerGirl's birth time
girlLatitude, girlLongitude, girlTimezoneFloatGirl's birth location
JavaScriptconst matchResult = await fetch('https://kundliapi.com/api/matching/get_match', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Api-Key': 'YOUR_KEY' }, body: JSON.stringify({ boyName: 'Rahul', boyDay: 15, boyMonth: 8, boyYear: 1990, boyHour: 10, boyMin: 30, boyLatitude: 28.6139, boyLongitude: 77.209, boyTimezone: 5.5, girlName: 'Priya', girlDay: 22, girlMonth: 3, girlYear: 1992, girlHour: 14, girlMin: 15, girlLatitude: 19.076, girlLongitude: 72.877, girlTimezone: 5.5 }) }).then(r => r.json()); const match = matchResult.responseData.data[0]; console.log('Score:', match.totalPoints, '/ 36'); console.log('Verdict:', match.verdict);

Use Case: Panchang & Muhurat

POST

/api/panchang/get_panchang_data

POST

/api/panchang/get_hora_muhurta

POST

/api/panchang/get_chaughadiya

POST

/api/panchang/get_muhurta
JavaScript// Get today's Panchang const today = new Date(); const panchang = await fetch('https://kundliapi.com/api/panchang/get_panchang_data', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Api-Key': 'YOUR_KEY' }, body: JSON.stringify({ day: today.getDate(), month: today.getMonth() + 1, year: today.getFullYear(), hour: 6, min: 0, lat: 28.6139, lon: 77.209, tzone: 5.5 }) }).then(r => r.json()); const p = panchang.responseData.data[0].panchang; console.log('Tithi:', p.tithi); console.log('Nakshatra:', p.nakshatra); console.log('Yoga:', p.yoga);

Use Case: Dasha Predictions

Vimshottari Dasha system predicts life periods based on Moon's nakshatra at birth.

/api/dasha/get_vimshottary_maha_dasha

Main 9 planetary periods

/api/dasha/get_vimshottary_antar_dasha

Sub-periods within Maha Dasha

/api/dasha/get_vimshottary_current_dasha

Currently active dasha

/api/dasha/get_yogini_maha_dasha

Yogini Maha Dasha periods

JavaScript// Get Maha Dasha and Antar Dasha together const [maha, antar] = await Promise.all([ fetch('https://kundliapi.com/api/dasha/get_vimshottary_maha_dasha', { method: 'POST', headers, body: JSON.stringify(birthData) }).then(r => r.json()), fetch('https://kundliapi.com/api/dasha/get_vimshottary_antar_dasha', { method: 'POST', headers, body: JSON.stringify(birthData) }).then(r => r.json()) ]); const mahaList = maha.responseData.data[0].vimshottaryMahaDashaData.vimshottaryMahaDashaList; const antarList = antar.responseData.data[0].vimshottaryAntarDashaData;

Use Case: Dosha Analysis

Check for 4 major doshas present in the kundli:

/api/dosha/mangal_dosh_analysis

Mangal (Mars) Dosha check

/api/dosha/kalsharp_dosh_analysis

Kaal Sarp Dosha check

/api/dosha/pitra_dosh_analysis

Pitra Dosha check

/api/dosha/sadhesati_analysis

Sadhesati analysis

JavaScript// Check all 4 doshas in parallel const doshas = ['mangal_dosh', 'kalsharp_dosh', 'pitra_dosh', 'sadhesati']; const results = await Promise.all( doshas.map(d => fetch(`https://kundliapi.com/api/dosha/${d}_analysis`, { method: 'POST', headers, body: JSON.stringify(birthData) }) .then(r => r.json()) ) );

Use Case: Numerology

POST /api/numerology/complete

Get complete numerology analysis including birth number, life path, name number, Lo Shu grid, personal year/month/day.

Numerology Parameters

ParameterTypeDescription
day, month, yearIntegerBirth date
nameStringFull name for name number calculation
JavaScriptconst numRes = await fetch('https://kundliapi.com/api/numerology/complete', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Api-Key': 'YOUR_KEY' }, body: JSON.stringify({ day: 15, month: 8, year: 1990, name: 'Rahul Sharma' }) }).then(r => r.json()); const num = numRes.responseData.data[0].numerology; console.log('Birth Number:', num.birthNumber); console.log('Life Path:', num.lifePathNumber); console.log('Lo Shu Grid:', num.loShuGrid);

Use Case: Birth Charts

Get chart data for various divisional charts:

/api/chart/get_lagna_chart

Lagna (Ascendant) chart

/api/chart/get_moon_chart

Chandra (Moon) chart

/api/chart/get_navamansha_chart

Navamsa (D-9) chart

/api/chart/get_sun_chart

Surya (Sun) chart

/api/chart/get_chalit_chart

Chalit chart

/api/chart/get_all_divisional_charts

All divisional charts

JavaScript// Get Lagna, Moon, and Navamsa charts together const [lagna, moon, navamsa] = await Promise.all([ fetch('https://kundliapi.com/api/chart/get_lagna_chart', { method: 'POST', headers, body: JSON.stringify(birthData) }).then(r => r.json()), fetch('https://kundliapi.com/api/chart/get_moon_chart', { method: 'POST', headers, body: JSON.stringify(birthData) }).then(r => r.json()), fetch('https://kundliapi.com/api/chart/get_navamansha_chart', { method: 'POST', headers, body: JSON.stringify(birthData) }).then(r => r.json()) ]);

Use Case: KP System

Krishnamurti Paddhati (KP) astrology with sub-lord theory:

/api/kp/get_birth_data

KP Birth Data

/api/kp/get_planet_data

KP Planet Positions

/api/kp/get_cusps_data

KP House Cusps

/api/kp/get_planet_significators

Planet Significators

/api/kp/get_house_significators

House Significators

/api/kp/get_ruling_planets

Ruling Planets

Use Case: Gemstone Recommendation

POST /api/gemstone/recommendation

Get lucky gemstone recommendations based on planetary positions in the birth chart.

JavaScriptconst gemRes = await fetch('https://kundliapi.com/api/gemstone/recommendation', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Api-Key': 'YOUR_KEY' }, body: JSON.stringify(birthData) }).then(r => r.json()); const gems = gemRes.responseData.data[0].gemstones; console.log('Recommended:', gems.primaryGem); console.log('Alternate:', gems.alternateGem);

Response Format

All endpoints return responses in this standard wrapper:

JSON{ "statusCode": 200, "output": "ok", "responseData": { "data": [ { "<innerKey>": { ... } // actual data } ] } }

Inner Key Reference

Endpoint GroupInner Key
Astro Dataastrodata
Planet DataplanetDataplanetList (array)
Panchangpanchang
Horoscopehoroscope
Maha DashavimshottaryMahaDashaDatavimshottaryMahaDashaList
Antar DashavimshottaryAntarDashaData
Yogini DashayoginiMahaDashaData
Mangal DoshamangalDosha
Kaal Sarp DoshakaalsarpDosha
Pitra DoshapitraDosha
SadhesatisadhesatiData
MatchingDirect (no inner key) — data[0].totalPoints
KP BirthkpBirthData
KP PlanetskpPlanetData
KP CuspskpCuspsData
Numerologynumerology
ChartschartData
Gemstonegemstones

Error Handling

HTTP CodeMeaningAction
200SuccessParse responseData
400Bad RequestCheck required parameters
401UnauthorizedInvalid or missing API key
403ForbiddenDomain/IP not whitelisted
429Rate LimitedDaily limit exceeded — upgrade plan or wait
500Server ErrorRetry after a moment — Contact support if persistent
JavaScripttry { const res = await fetch(url, options); if (!res.ok) { const err = await res.json(); console.error(`API Error ${res.status}:`, err.error || err.message); return; } const data = await res.json(); // Process data... } catch (err) { console.error('Network error:', err.message); }

Rate Limits

PlanPriceDaily LimitValidity
Starter₹999/mo500 req/day30 days
Professional₹2,499/mo5,000 req/day30 days
Business₹4,999/mo25,000 req/day30 days
Enterprise₹9,999/mo100,000 req/day30 days
Need more? Contact us at support@kundliapi.com for custom plans.

Best Practices

🔐
Keep API Keys Server-Side

Never expose your API key in frontend JavaScript or mobile app code. Always proxy through your backend.

Use Parallel Requests

For a complete Kundli, call multiple endpoints simultaneously using Promise.all() or threading. Cuts latency from 8s→2s.

💾
Cache Results

Birth chart data never changes for the same birth details. Cache results on your server to save API calls.

🌍
Accurate Coordinates

Use precise lat/lon for the birth place. Even a few km difference affects the Ascendant. Use geocoding APIs like Google/Nominatim.

Timezone Matters

Always pass the correct timezone offset. India is 5.5, USA varies (EST=-5, PST=-8). For historical dates, verify DST.

🔄
Handle Errors Gracefully

Always check HTTP status codes. Use try/catch. Show user-friendly messages when API is unavailable.

All 98+ Endpoints

Complete list of all available API endpoints grouped by category.

🕉️ Panchang (6 endpoints)

MethodEndpointDescription
POST/api/panchang/get_panchang_dataComplete Panchang data
POST/api/panchang/get_panchangPanchang (alias)
POST/api/panchang/get_hora_muhurtaHora Muhurat timings
POST/api/panchang/get_chaughadiyaChaughadiya (Day/Night)
POST/api/panchang/get_lagan_tableLagan table data
POST/api/panchang/get_muhurtaAuspicious Muhurat

☸ Astro Data (3 endpoints)

MethodEndpointDescription
POST/api/astro/get_birth_dataBasic birth data
POST/api/astro/get_astro_dataComplete astro data (Moon sign, Nakshatra, etc.)
POST/api/astro/get_friendship_dataPlanetary friendship table

🪐 Planets (14+ endpoints)

MethodEndpointDescription
POST/api/planet/get_all_planet_dataAll planet positions
POST/api/planet/get_upgraha_dataUpgraha positions
POST/api/planet/get_transit_dataCurrent transit positions
POST/api/planet/get_gemstonesGemstone recommendations
POST/api/planet/get_dasham_bhav_madhyaDasham Bhav Madhya
POST/api/planet/get_ashtak_varga_dataAshtak Varga
GET/api/planet/getFinanceReport/:planet/:houseFinance report by planet & house
GET/api/planet/getRomanceData/:planetRomance report by planet
GET/api/planet/getHealthmindReport/:planet/:houseHealth & mind report
GET/api/planet/getProfessionReport/:planet/:houseProfession report
GET/api/planet/getLuckReport/:planet/:houseLuck report
GET/api/planet/getEducationReport/:planet/:houseEducation report
GET/api/planet/getSunHouseReport/:houseSun house placement
GET/api/planet/getMoonHouseReport/:houseMoon house placement

⏳ Dasha (10 endpoints)

MethodEndpointDescription
POST/api/dasha/get_vimshottary_maha_dashaVimshottari Maha Dasha
POST/api/dasha/get_vimshottary_antar_dashaVimshottari Antar Dasha
POST/api/dasha/get_vimshottary_pratyantar_dashaPratyantar Dasha
POST/api/dasha/get_vimshottary_sookshma_dashaSookshma Dasha
POST/api/dasha/get_vimshottary_pran_dashaPran Dasha
POST/api/dasha/get_vimshottary_current_dashaCurrent running Dasha
POST/api/dasha/get_yogini_maha_dashaYogini Maha Dasha
POST/api/dasha/get_yogini_antar_dashaYogini Antar Dasha
POST/api/dasha/get_current_yogini_dashaCurrent Yogini Dasha
POST/api/dasha/get_paryantarParyantar Dasha

⚠️ Dosha (4 endpoints)

MethodEndpointDescription
POST/api/dosha/mangal_dosh_analysisMangal Dosha analysis
POST/api/dosha/kalsharp_dosh_analysisKaal Sarp Dosha
POST/api/dosha/pitra_dosh_analysisPitra Dosha
POST/api/dosha/sadhesati_analysisSadhesati check

📊 Charts (14 endpoints)

MethodEndpointDescription
POST/api/chart/get_lagna_chartLagna (Ascendant) chart
POST/api/chart/get_birth_chartBirth chart (alias)
POST/api/chart/get_moon_chartMoon chart
POST/api/chart/get_sun_chartSun chart
POST/api/chart/get_chalit_chartChalit chart
POST/api/chart/get_navamansha_chartNavamsa (D-9) chart
POST/api/chart/get_navamsa_chartNavamsa chart (alias)
POST/api/chart/get_hora_chartHora (D-2) chart
POST/api/chart/get_dreshkan_chartDreshkan (D-3) chart
POST/api/chart/get_dashamansha_chartDashamansha (D-10) chart
POST/api/chart/get_dwadashamansha_chartDwadashamansha (D-12) chart
POST/api/chart/get_trishamansha_chartTrishamansha (D-30) chart
POST/api/chart/get_shashtymsha_chartShashtymsha (D-60) chart
POST/api/chart/get_all_divisional_chartsAll divisional charts at once

🔮 KP System (8 endpoints)

MethodEndpointDescription
POST/api/kp/get_birth_dataKP Birth data
POST/api/kp/get_planet_dataKP Planet positions
POST/api/kp/get_cusps_dataKP House cusps
POST/api/kp/get_birth_chartKP Birth chart
POST/api/kp/get_cusps_chartKP Cusps chart
POST/api/kp/get_planet_significatorsPlanet significators
POST/api/kp/get_house_significatorsHouse significators
POST/api/kp/get_ruling_planetsRuling planets

🔢 Numerology (14 endpoints)

MethodEndpointDescription
POST/api/numerology/completeComplete numerology
POST/api/numerology/birth_numberBirth number
POST/api/numerology/life_pathLife path number
POST/api/numerology/name_numberName number
POST/api/numerology/lo_shu_gridLo Shu grid
POST/api/numerology/personal_yearPersonal year
POST/api/numerology/personal_monthPersonal month
POST/api/numerology/personal_dayPersonal day

💑 Matching (5+ endpoints)

MethodEndpointDescription
POST/api/matching/get_matchKundli matching (Ashtakoota)
POST/api/kundali/matchMatch kundali (alias)
POST/api/kundali/get_asthakoota_dataAshtakoota data
POST/api/kundali/ashtak_vargaAshtak Varga
POST/api/kundali/prastharashtakvargaPrastharashtakvarga

🌟 Jaimini / Advanced (8+ endpoints)

MethodEndpointDescription
POST/api/gemini/get_chara_karakasChara Karakas
POST/api/gemini/get_gemini_dataJaimini analysis
POST/api/gemini/get_karakamsha_chartKarakamsha chart
POST/api/gemini/get_swamsha_chartSwamsha chart
POST/api/gemini/get_chara_dashaChara Dasha
POST/api/prediction/get_predictionGeneral prediction
POST/api/gemstone/recommendationGemstone recommendation
POST/api/horoscope/get_horoscopeHoroscope

Ready to Build?

Get your API key now and start integrating Vedic Astrology into your app.

Get API Key → Full Documentation