Authentication

Working from real payloads: every endpoint's exact request and response JSON — captured live, downloadable, nothing hand-written — is on the API samples page.

All API requests require authentication via an API key. Include your API key in the X-Api-Key header with every request.

// Include in all API requests headers: { 'Content-Type': 'application/json', 'X-Api-Key': 'your_api_key_here' }

Important: Each API key works for one domain from one server IP, and both are required — a key with only a domain, or only an IP, is answered with 403. Add both in your Dashboard; for the domain you prove ownership once, with a DNS TXT record or a kundliapi-verify.txt file (the dashboard shows the value). Every call must come from the registered server IP, and must be for the registered domain: either send it in the Origin header (Origin: https://yourdomain.com), or point that domain's DNS A record to the registered server IP. A request whose Origin names any other domain is refused.

Every endpoint on this page requires a key. There is no public or trial access: a request without X-Api-Key is answered with 401, and a key calling from an origin you have not verified is answered with 403. The only exception is GET /v1/health, which returns service status and no astrology data.

Keep the key on your server. If you call KundliAPI straight from a browser or a mobile app, the key ships to every user who opens developer tools — proxy the call through your own backend instead, and keep the verified-origin list as small as it can be.

Base Parameters

Most astrology endpoints require the following birth data parameters:

ParameterTypeRequiredDescription
dayIntegerRequiredBirth day (1-31)
monthIntegerRequiredBirth month (1-12)
yearIntegerRequiredBirth year (e.g., 1990)
hourIntegerRequiredBirth hour in 24h format (0-23)
minIntegerRequiredBirth minute (0-59)
latFloatRequiredBirth latitude (e.g., 28.6139)
lonFloatRequiredBirth longitude (e.g., 77.2090)
tzoneFloatRequiredTimezone offset (e.g., 5.5 for IST)

Getting latitude/longitude for a birth place

KundliAPI does not provide a geocoding (place name → lat/lon) endpoint for API customers, and we recommend against building on top of our internal one even if you discover it — it's meant only for kundliapi.com's own website and isn't covered by our uptime/rate-limit guarantees; it can change or be throttled without notice.

Convert your users' birth place into coordinates using your own mapping provider before calling KundliAPI — e.g. Google Maps Geocoding API, Mapbox Geocoding API, or OpenStreetMap Nominatim (self-hosted or via your own paid usage tier). Cache the result against the place name on your side so you're not re-geocoding on every request.

Accuracy matters here: every downstream calculation (Ascendant, houses, Dasha, Dosha — everything) is computed directly from the exact latitude/longitude/timezone you send. Sending an approximate or wrong location produces a fully self-consistent but incorrect chart, with nothing in the response to indicate it. Always validate that lat/lon/tzone are present and correspond to the actual birth place before calling the API — do not fall back to a default city if your own geocoding step fails.

Language

Language is chosen per request — there is no account-level or key-level language setting, so the same key can ask for Hindi on one call and English on the next.

ParameterWhereValuesEffect
langRequest bodyhi (default), enLanguage of the generated text: predictions, horoscope, remedies, mantra meanings.
labelLangRequest body, chart endpoints onlyenReturns rashi and gender labels in English instead of Devanagari.

Charts use a separate field on purpose: lang already had a meaning there before labelLang existed, and changing it would have altered what live integrations receive. Send labelLang: "en" for English chart labels; omit it and the response is exactly what it has always been.

// English prediction { "day": 15, "month": 8, "year": 1990, "hour": 14, "min": 30, "lat": 28.6139, "lon": 77.2090, "tzone": 5.5, "lang": "en" } // English chart labels { "day": 15, "month": 8, "year": 1990, "hour": 14, "min": 30, "lat": 28.6139, "lon": 77.2090, "tzone": 5.5, "labelLang": "en" }

Panchang names (tithi, nakshatra, yoga, karana, chaughadiya) are returned in Hindi in both modes; they come from the panchang tables rather than the text layer.

Error Handling

The API returns standard HTTP status codes:

CodeMeaning
200Success
400Bad Request — missing or invalid parameters
401Unauthorized — invalid or missing API key
403Forbidden — domain/IP not verified
429Rate limit exceeded
500Internal server error

Panchang

Complete Hindu Panchang data including Tithi, Nakshatra, Yoga, Karana, and timings.

POST/v1/panchang/get_panchang_dataGet Panchang for date

Returns complete Panchang data for the given date and location.

Request Body:

{ "day": 15, "month": 6, "year": 2024, "hour": 6, "min": 0, "lat": 28.6139, "lon": 77.2090, "tzone": 5.5 }

Response includes:

Tithi, Nakshatra, Yoga, Karana, Sunrise, Sunset, Moonrise, Moonset, Rahu Kaal, Gulika Kaal, Yamaganda, Abhijit Muhurat, etc.

POST/v1/panchang/get_choghadiya_dataChoghadiya Muhurat

Returns Choghadiya timings for the day — auspicious and inauspicious periods.

Muhurat Timings

POST/v1/panchang/get_hora_muhurtaHora Muhurat

Returns planetary Hora timings for the day.

Astro Data

Get basic and extended astrological data for a birth chart.

POST/v1/astro/get_astro_dataBasic Astro Data

Returns ascendant sign, nakshatra, deity, and Moon sign information.

Example Request (cURL):

curl -X POST https://kundliapi.com/v1/astro/get_astro_data \ -H "Content-Type: application/json" \ -H "X-Api-Key: your_api_key_here" \ -d '{"day":15,"month":6,"year":1990,"hour":10,"min":30,"lat":28.6139,"lon":77.209,"tzone":5.5}'

Note: Ascendant lord, Rashi lord, Varna, Yoni, Gan, and Nadi are already included in the get_astro_data response above — there is no separate "extended details" endpoint.

Planet Positions

Get planetary positions, dignity, aspects, and house placements.

POST/v1/planet/get_all_planet_dataAll Planet Positions

Returns positions of all 9 planets (Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu) with sign, degree, nakshatra, house, and retrograde status. Note: this is /planet/ (singular).

Note: Nakshatra sub-lord and sub-sub-lord (KP-style) are returned by the KP Astrology endpoints below, not by /planet/.

Dasha System

Vimshottari and Yogini Dasha periods with precise calculations.

POST/v1/dasha/get_vimshottary_maha_dashaMaha Dasha

Returns all Vimshottari Maha Dasha periods with start/end dates. Use /v1/dasha/get_vimshottary_current_dasha for just the currently running one.

POST/v1/dasha/get_vimshottary_antar_dashaAntar Dasha

Returns Antar Dasha periods within each Maha Dasha.

POST/v1/gemini/get_current_char_dasha_dataChara Dasha (Current)

Returns current running Chara (Jaimini) Dasha. Note: Jaimini-system endpoints (Chara Dasha, Chara Karakas, Karakamsha) are mounted under /v1/gemini/, not /v1/dasha/.

POST/v1/dasha/get_yogini_maha_dashaYogini Dasha

Returns Yogini Dasha periods — 36-year cycle system. Use /v1/dasha/get_current_yogini_dasha for just the current one.

Dosha Analysis

Check major doshas in a birth chart.

POST/v1/dosha/mangal_dosh_analysisMangal Dosha

Returns Mangal (Mars) Dosha analysis with intensity and detailed description.

POST/v1/dosha/kalsharp_dosh_analysisKaal Sarp Dosha

Returns Kaal Sarp Dosha analysis — Rahu/Ketu axis check.

POST/v1/dosha/pitra_dosh_analysisPitra Dosha

Returns Pitra Dosha analysis — ancestral karma effects.

POST/v1/dosha/sadhesati_analysisSadhesati

Returns Sadhesati (Saturn transit) analysis — current phase and dates.

Birth Charts

Generate divisional charts. Note: the path segment is /chart/ (singular).

Which divisions are supported

Twenty divisions are computed with their own rules:

D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D16 D20 D24 D27 D30 D40 D45 D60

Ask for anything else — D13, D999, abc — and the API answers 400 naming what it does support. It will never return a D1 chart under another division's name, so a chart you receive is always the chart you asked for.

The division may be written with or without the D, in either case: 10, D10 and d10 are the same request.

POST/v1/chart/get_lagna_chartLagna Chart (D-1)

Returns Lagna (Ascendant) chart data with planet placements in houses.

POST/v1/chart/get_navamsa_chartNavamsa Chart (D-9)

Returns Navamsa chart data — used for marriage and dharma analysis. Every other division is available at /v1/chart/get_divisional_chart/:division.

POST/v1/chart/get_divisional_chart/:divisionAny single division

One divisional chart. The division goes in the path, the birth data in the body.

Request:

POST /v1/chart/get_divisional_chart/D10 { "name": "Test", "day": 15, "month": 8, "year": 1990, "hour": 14, "min": 30, "lat": 28.6139, "lon": 77.2090, "tzone": 5.5, "gender": "male" }

Response:

"chartData": { "name", "year", "month", "day", "hour", "min", "latitude", "longitude", "timezone", "gender", "division": "D10", "divisionName": "Dashamsha", "chart": [ { "house": 1, "ascendant": true, "rashi": "वृश्चिक", "rashiIndex": 8, "planets": [] }, { "house": 2, "ascendant": false, "rashi": "धनु", "rashiIndex": 9, "planets": [ { "name": "Sa", "degree": { "deg": 26, "min": 8, "sec": 18 }, "retrograde": true, "combust": false, "color": "#00008B" } ] } // 12 entries ] }

rashiIndex is 1-indexed. Planet names inside chart are two-letter codes (Su Mo Ma Me Ju Ve Sa Ra Ke). division and divisionName appear only on this endpoint, where you named a division.

Add "labelLang": "en" to the body for English rashi and gender labels.

POST/v1/chart/get_all_divisional_chartsFifteen charts in one call

Returns allDivisionalCharts with the fifteen standard vargas — D2, D3, D4, D7, D9, D10, D12, D16, D20, D24, D27, D30, D40, D45, D60 — each in the same chart shape as above. Use this instead of fifteen separate calls.

POST/v1/chart/get_chalit_chartChalit Chart

Returns Bhava Chalit chart — houses based on actual house cusps.

One shape difference worth knowing: get_divisional_chart, get_moon_chart, get_sun_chart and get_chalit_chart nest everything under chartData, while get_birth_chart returns the same fields directly on data[0] with no chartData wrapper. Handle that one case and the rest are identical.

Daily / Weekly / Monthly Horoscope

Sign-based readings with the life areas split into their own fields, so you can lay them out without parsing prose.

POST/v1/horoscope/get_horoscopeAll four windows in one call

No birth data needed — just the sign.

Request Body:

{ "sign": "aries", "lang": "en" }

sign is one of aries, taurus, gemini, cancer, leo, virgo, libra, scorpio, sagittarius, capricorn, aquarius, pisces (case-insensitive).

Response:

"horoscope": { "sign": "Aries", // ready-to-render HTML, one per window "daily": "<p>…</p>", "weekly": "…", "monthly": "…", "yearly": "…", // 0-100 scores per area, one set per window "dailytag": { "love": 80, "wealth": 75, "health": 67, "business": 76, "career": 67, "luck": 75 }, "weeklytag": { … }, "monthlytag": { … }, "yearlytag": { … }, // plain text, no HTML, no "Career:" prefix "categories": { "general": "…", "love": "…", "friends": "…", "career": "…", "family": "…", "home": "…", "health": "…", "finance": "…" }, "remedy": "Recite Sundarkand. Fast on Tuesdays for Lord Hanuman.", "lucky": { "color": "Pink", "numbers": [8, 3], "direction": "North-West" }, "weeklyCategories": { … same eight keys … }, "weeklyRemedy": "…", "monthlyCategories": { … same eight keys … }, "monthlyRemedy": "…" }

The eight category keys are always present and always strings. lucky.numbers is always two integers between 1 and 9. The text is deterministic: the same sign on the same day returns the same sentences, so you can cache per sign per day.

Prediction

POST/v1/prediction/get_predictionChart-based reading

A reading built from the birth chart: the ascendant, its lord, and what each planet is doing in the house it occupies.

Request Body:

{ "name": "Test", "day": 15, "month": 8, "year": 1990, "hour": 14, "min": 30, "lat": 28.6139, "lon": 77.2090, "tzone": 5.5, "gender": "male", "lang": "en" }

Response (lang: "en"):

"ascendant": "Scorpio", "ascendantLord": "Mars", "prediction": "Scorpio Lagna - you may be deep and private by nature…", "planetInfluences": [ { "planet": "Sun", "house": 9, "rashi": "Cancer", "houseMeaning": "House of Fortune (fortune, dharma, father)", "isRetrograde": false, "isCombust": false, "effect": "Good fortune and a religious bent are likely" } ]

With lang absent or "hi", every one of those values comes back in Devanagari instead.

Mantra

Traditional graha and rashi mantras, with the Devanagari text, a Roman transliteration, a plain-language meaning and the japa count. Included in the All In One plan.

POST/v1/mantra/get_daily_mantraMantra of the day

The mantra for the weekday's ruling planet, plus the mantra for the moon sign. Every field is optional; send no date and you get today.

Request Body:

{ "day": 19, "month": 8, "year": 2026, "lat": 28.6139, "lon": 77.2090, "tzone": 5.5, "lang": "en" }

Response:

{ "date": "2026-08-19", "weekday": "Wednesday", "planet": "Mercury", "mantra": { "sanskrit": "ॐ बुं बुधाय नमः", "transliteration": "Om Bum Budhaya Namah", "meaning": "Salutations to Budha, Mercury — chanted for clear speech…", "count": 108, "bestTime": "Wednesday morning after a bath, facing north." }, "rashi": { "sign": "Libra", "mantra": { … same shape … } } }
POST/v1/mantra/get_rashi_mantraMantra for a sign

Request body: { "sign": "libra", "lang": "en" } — the sign may be given in English or Hindi. Returns sign, lord, mantra and beejMantra.

POST/v1/mantra/get_graha_mantraMantra for a planet

Request body: { "planet": "Saturn", "lang": "en" }. Omit planet to receive all nine under mantras.

Each planet carries its beejMantra and the traditional japa count — Sun 7,000 · Moon 11,000 · Mars 10,000 · Mercury 9,000 · Jupiter 19,000 · Venus 16,000 · Saturn 23,000 · Rahu 18,000 · Ketu 17,000.

An unknown planet or sign returns 400 listing the accepted values.

Kundli Matching

Ashtakoota and other matching systems for marriage compatibility.

POST/v1/kundali/matchAshtakoota Matching

Returns 8-fold matching (Gun Milan) score out of 36 points.

Request Body:

{ "boy": { "day": 15, "month": 6, "year": 1990, "hour": 10, "min": 30, "lat": 28.6139, "lon": 77.209, "tzone": 5.5 }, "girl": { "day": 20, "month": 3, "year": 1992, "hour": 14, "min": 15, "lat": 28.6139, "lon": 77.209, "tzone": 5.5 } }

Response includes scores for: Varna, Vashya, Tara, Yoni, Graha Maitri, Gana, Bhakoot, Nadi.

KP Astrology

Krishnamurti Paddhati system endpoints.

POST/v1/kp/get_cusps_dataKP House Cusps

Returns KP house cusps (Placidus, KP ayanamsa) with sign lord, star lord, sub lord and sub-sub lord. Each cusp also carries longitude (sidereal, decimal 0–360) and English names sign_en, signLord_en, nakshatraLord_en, subLord_en, subSubLord_en; the response includes ayanamsa {name, value} and house_system. The Hindi fields are unchanged.

POST/v1/kp/get_planet_dataKP Planets

Returns planets with sign lord, star lord, sub lord — KP style. Each planet also carries name_en, sign_en, signLord_en, nakshatra_en, nakshatraLord_en, subLord_en, subSubLord_en and its decimal longitude; the response includes ayanamsa and house_system.

POST/v1/kp/get_significationsKP Planet Significations (4-level)

Standard KP 4-level significators for the 9 planets, using Placidus cusp longitudes: L1 houses occupied by the star lord, L2 house occupied by the planet, L3 houses owned by the star lord, L4 houses owned by the planet. Rahu/Ketu also take their sign lord's owned and occupied houses. Same birth payload as the other KP endpoints.

Response: significations[] — {planet, abbr, houses, levels{star_lord_occupies, occupies, star_lord_owns, owns}, star_lord, sub_lord} in the order Sun…Ketu — plus house_view[] (house → signifying planets).

POST/v1/kp/get_cusp_aspectsAspects on KP Cusps

For each of the 9 planets and 12 cusps, the closest aspect within its orb: CNJ 0° (10), OPP 180° (10), TRN 120° (8), SQR 90° (8), SXT 60° (6), and the 2° minors SSX 30°, NNL 40°, SSQ 45°, QIN 72°, SQQ 135°, BQN 144°, QCX 150°. The separation is folded to 0–180°; orb is the deviation from exact, rounded to 2 decimals.

Response: aspects[] — {planet, abbr, longitude, cusps[12]} where each cusp entry is {code, orb} or null; plus aspect_names, orbs and cusp_longitudes.

Numerology

Complete numerology analysis endpoints.

POST/v1/numerology/completeNumerology Data

Returns birth number, life path number, name analysis.

Additional Parameters:

ParameterTypeRequiredDescription
nameStringRequiredFull name for numerology analysis
loshu_modeStringOptionalSend "dob_only" to also receive loShuDobOnly: a Lo Shu grid from the date-of-birth digits only (zero ignored, repeats counted) with grid_order, counts, present, repeated, missing and planes. The default grid is unchanged.
POST/v1/numerology/lo_shu_gridLo Shu Grid

Returns Lo Shu Grid (magic square) analysis based on birth date.

POST/v1/numerology/personal_yearPersonal Year

Personal Year number for day, month, year of birth and optional current_year. Also available: /v1/numerology/personal_month, /v1/numerology/personal_day, /v1/numerology/life_path, /v1/numerology/birth_number, /v1/numerology/name_number.

POST/v1/numerology/full-reportFull Numerology Report

Fine Jyotish method — Chaldean name values (9 has no letters) and a Lo Shu grid from date-of-birth digits only. Every number is returned as {compound, root}; responses carry method, generated_at and a sections[] array with stable keys. Invalid or future dates, a missing business name, or a bad matrix return HTTP 400. Dates are YYYY-MM-DD; forecast_year defaults to the current year.

ParameterTypeRequiredDescription
full_nameStringOptionalBirth name (Chaldean)
current_nameStringOptionalCurrent name; ignored if the same as full_name
dobStringRequiredYYYY-MM-DD
forecast_yearIntegerOptional4-digit year
languageStringOptionalen / hi

Sections: snapshot, moolank, bhagyank, name, loshu, planes, karmic, year, months, combined, action, method. Example: dob 1992-07-21 → Moolank 21/3, Bhagyank 31/4, Personal Year 2026 = 20/2.

POST/v1/numerology/love-compatibilityLove Compatibility

Fine Jyotish method — Chaldean name values (9 has no letters) and a Lo Shu grid from date-of-birth digits only. Every number is returned as {compound, root}; responses carry method, generated_at and a sections[] array with stable keys. Invalid or future dates, a missing business name, or a bad matrix return HTTP 400. Dates are YYYY-MM-DD; forecast_year defaults to the current year.

ParameterTypeRequiredDescription
person_a / person_bObjectRequired{full_name, current_name, dob} — add tob "HH:MM", latitude, longitude, timezone (and gender) for both to include Ashtakoot Guna Milan
relationship_statusStringOptionalWording only; never changes a score
forecast_yearIntegerOptional4-digit year
matrix9×9 IntegerOptionalCustom root matrix, values 1–4 (default: Fine Jyotish love matrix)

Scores: Moolank 30%, Bhagyank 25%, Name 15%, Lo Shu 20%, Timing 10%. Returns scores, complement, risk_flags, ashtakoot (null without birth times) and sections snapshot, profileA, profileB, core, names, loshu, flags, year, action, method.

POST/v1/numerology/business-compatibilityBusiness Compatibility

Fine Jyotish method — Chaldean name values (9 has no letters) and a Lo Shu grid from date-of-birth digits only. Every number is returned as {compound, root}; responses carry method, generated_at and a sections[] array with stable keys. Invalid or future dates, a missing business name, or a bad matrix return HTTP 400. Dates are YYYY-MM-DD; forecast_year defaults to the current year.

ParameterTypeRequiredDescription
partner_a / partner_bObjectRequired{full_name, current_name, dob, declared_role}
businessObjectRequired{name (required), incorporation_date (may be future), industry}
forecast_yearIntegerOptional4-digit year
matrix9×9 IntegerOptionalCustom root matrix, values 1–4 (default: Fine Jyotish business matrix)

Scores: Moolank 30%, Bhagyank 30%, Business name 15%, Lo Shu 15%, Role clarity 10%. Returns business.name_number, business_year, scores, complement, risk_flags, role_suggestions and sections snapshot, partnerA, partnerB, core, businessName, loshu, roles, flags, varshphal, action, method.

Website Calculators

Every free calculator on kundliapi.com has an API. The table shows which endpoint gives the same result as each calculator page. All endpoints use POST with your X-Api-Key, return the usual responseData.data[0] wrapper, and answer HTTP 400 with a clear message when an input is missing.

Calculator on kundliapi.comAPI endpoint
Kundli/v1/astro/get_astro_data, /v1/planet/get_all_planet_data, /v1/chart/get_lagna_chart, /v1/dasha/get_vimshottary_maha_dasha
Moon Sign/v1/astro/get_astro_data (sign, signLord)
Nakshatra/v1/astro/get_astro_data (naksahtra, nakshatraLord, charan)
Lagna/v1/chart/get_lagna_chart, /v1/chart/get_navamsa_chart
Rahu-Ketu/v1/planet/get_all_planet_data
Sade Sati/v1/dosha/sadhesati_analysis
Lal Kitab/v1/lalkitab/get_chart, /v1/lalkitab/get_predictions, /v1/lalkitab/get_remedies
Panchang/v1/panchang/get_panchang_data
Muhurat/v1/muhurat/get_marriage (and the other /v1/muhurat/* endpoints)
Kundli Matching/v1/matching/get_match
Numerology/v1/numerology/complete
Lo Shu Grid/v1/numerology/lo_shu_grid
Personal Year/v1/numerology/personal_year
Destiny Number/v1/calculator/destiny_number
Lucky Colour/v1/calculator/lucky_color
Lucky Vehicle Number/v1/calculator/lucky_vehicle
Love Calculator/v1/calculator/love
FLAMES/v1/calculator/flames
Baby Name Finder/v1/calculator/baby_names
Daily / Weekly / Monthly / Yearly Horoscope/v1/horoscope/get_horoscope
Tarot/v1/tarot/three_card, /v1/tarot/celtic_cross, /v1/tarot/yes_no, /v1/tarot/card_of_day
Western Natal Chart/v1/western/natal_chart, /v1/western/personality

Calculator endpoints

These six endpoints match the Destiny Number, Lucky Colour, Lucky Vehicle, Love, FLAMES and Baby Name pages. Each call uses 2 credits.

POST/v1/calculator/destiny_numberDestiny Number

Send: day, month, year

Returns: destiny_number, ruling_number, day_sum/month_sum/year_sum, title, planet, description, lucky_colors[], gemstones[], compatible_numbers[], careers[], challenges[]

POST/v1/calculator/lucky_colorLucky Colour

Send: day, month, year

Returns: ruling_number, destiny_number, ruling_planet, primary_color, lucky_colors[] and avoid_colors[] ({name, hex}), description, day_colors[] (colour for each weekday; today is marked, India time)

POST/v1/calculator/lucky_vehicleLucky Vehicle Number

Send: day, month, year; optional vehicle_number (e.g. "DL 3C AB 1234") to check a registration number

Returns: destiny_number, lucky_numbers[], compatible_numbers[], lucky_colors[], avoid_colors[], best_purchase_days[], description; with vehicle_number also vehicle_check {number_total, last4_total, verdict: excellent / good / not_recommended, summary}

POST/v1/calculator/loveLove Calculator

Send: name1, name2; optional birth dates p1_day, p1_month, p1_year, p2_day, p2_month, p2_year (adds the numerology score)

Returns: love_percent, label, name_percent, numerology (null without both dates), aspects (emotional, physical, intellectual, spiritual, communication %), strengths[]. The same names always give the same result.

POST/v1/calculator/flamesFLAMES

Send: name1, name2

Returns: result_letter (F/L/A/M/E/S), result (Friends, Love, Affection, Marriage, Enemy, Siblings), compatibility_percent, remaining_letters, description, traits[]

POST/v1/calculator/baby_namesBaby Name Finder

Send: Either nakshatra (+ optional pada 1-4), or the birth details day, month, year, hour, min, lat, lon, tzone. Optional gender: boy / girl / any (default any).

Returns: nakshatra, nakshatra_lord, deity, pada, best_letter, letters[], names[] ({letter, recommended, boy[], girl[]}), description; with birth details also moon_sign and lucky_number

curl -X POST https://kundliapi.com/v1/calculator/lucky_vehicle \
  -H "Content-Type: application/json" -H "X-Api-Key: YOUR_KEY" \
  -d '{"day":15,"month":8,"year":1990,"vehicle_number":"DL 3C AB 1234"}'

# Response: { "success": true, "responseData": { "data": [ { "destiny_number": 6, "lucky_numbers": [6,15,24,...], "vehicle_check": { "verdict": "excellent", ... } } ] } }

Western Astrology — Natal

Tropical/Western astrology calculations using Placidus house system.

POST/v1/western/natal_chartWestern Natal Chart

Returns Western natal chart with tropical zodiac positions, aspects, house placements, element/modality analysis.

Response includes:

Sun sign, Moon sign, Rising sign, all planet positions in tropical zodiac, major & minor aspects with orbs, house system data, element balance, hemisphere emphasis.

Western — Synastry & Composite

POST/v1/western/synastrySynastry Chart

Compares two birth charts for relationship compatibility. Returns inter-aspects between both charts.

Additional Parameters:

ParameterTypeRequiredDescription
day2, month2, year2IntegerRequiredSecond person's birth date
hour2, min2IntegerRequiredSecond person's birth time
latitude2, longitude2FloatRequiredSecond person's birth location
timezone2FloatRequiredSecond person's timezone
POST/v1/western/compositeComposite Chart

Returns midpoint composite chart of two people — the relationship chart. Same parameters as Synastry.

Western — Transits & Progressions

POST/v1/western/solar_returnSolar Return

Returns Solar Return chart for a specific year (birthday chart). Add targetYear to request body.

POST/v1/western/progressionsSecondary Progressions

Returns progressed chart positions (day-for-a-year method).

POST/v1/western/current_transitsCurrent Transits

Returns current planetary positions in tropical zodiac.

POST/v1/western/moon_phasesMoon Phase Calendar

Returns moon phases for a given month/year with New Moon, Full Moon, and quarter phases.

Western — Reports

POST/v1/western/personalityPersonality Report

Returns detailed personality analysis based on Western chart — Sun, Moon, Rising, elements, and aspects.

POST/v1/western/romanticRomantic Forecast

Returns romantic forecast based on Venus, Mars, 7th house and relationship aspects.

POST/v1/western/karmaKarma & Destiny Report

Returns karma and destiny analysis based on Saturn, Nodes, and 12th house.

Tarot Card API

Complete 78-card Tarot engine with multiple spread types.

POST/v1/tarot/three_card3-Card Spread

Returns Past, Present, Future reading with full card interpretations.

Optional Parameters:

ParameterTypeDescription
questionStringYour question for the reading
seedIntegerSeed for reproducible readings
POST/v1/tarot/celtic_crossCeltic Cross (10 cards)

Returns full Celtic Cross spread — the most comprehensive single-question reading.

POST/v1/tarot/yes_noYes/No Tarot

Returns Yes, No, or Maybe answer with supporting card and explanation.

POST/v1/tarot/card_of_dayCard of the Day

Returns today's daily tarot card with guidance message.

GET/v1/tarot/all_cardsAll 78 Cards

Returns complete deck — 22 Major Arcana + 56 Minor Arcana with all meanings.

Varshaphal (Annual Horoscope)

Vedic Solar Return / Tajika astrology system for annual predictions.

POST/v1/varshaphal/get_varshaphalVarshaphal Chart

Returns annual horoscope chart with Muntha, Panchadhikari, and Harsha Bala. Add targetYear to request body.

POST/v1/varshaphal/get_yogasTajika Yogas

Returns Tajika yogas: Ithasala, Easarapha, Nakta, Yamaya, Manaú, Kamboola.

POST/v1/varshaphal/get_sahamsSahams (Arabic Parts)

Returns 16 Sahams — Punya, Vidya, Yashas, Mitra, and more.

Gochar (Transit Analysis)

Personalized transit analysis with Vedha (obstruction) logic.

POST/v1/gochar/get_personalizedPersonalized Gochar

Returns current transits relative to your natal Moon sign with Vedha analysis and benefic/malefic determination.

POST/v1/gochar/get_saturn_transitSaturn Transit / Sade Sati

Returns detailed Saturn transit analysis — Sade Sati phase, Dhaiya, Kantaka, with start/end dates and remedies.

POST/v1/gochar/get_jupiter_transitJupiter Transit

Returns Jupiter (Guru) transit analysis with effects based on house from Moon.

Lal Kitab

Complete Lal Kitab astrology system with unique remedies.

POST/v1/lalkitab/get_chartLal Kitab Chart

Returns Lal Kitab chart with Pakka Ghar assignments and sleeping/awakened planet status.

POST/v1/lalkitab/get_remediesLal Kitab Remedies

Returns planet-specific remedies — materials, donations, rituals based on house placements.

POST/v1/lalkitab/get_predictionsLal Kitab Predictions

Returns house-wise Lal Kitab predictions for each planet. Used by the Lal Kitab calculator.

POST/v1/lalkitab/get_debtsPlanetary Debts (Rin)

Returns 6 planetary debts: Pitru Rin, Matru Rin, Stri Rin, Swa Rin, Bandhu Rin, Sasur Rin with symptoms and remedies.

Biorhythm

Physical, Emotional, Intellectual, and extended cycles.

POST/v1/biorhythm/get_biorhythmDaily Biorhythm

Returns 6 biorhythm cycles: Physical (23d), Emotional (28d), Intellectual (33d), Intuitive (38d), Aesthetic (43d), Spiritual (53d).

POST/v1/biorhythm/get_compatibilityBiorhythm Compatibility

Compare biorhythm cycles between two people. Uses day2/month2/year2 parameters.

Human Design

BodyGraph, Type, Strategy, Authority, Gates, Channels, and Profile.

POST/v1/human_design/get_chartFull BodyGraph

Returns complete Human Design analysis: Type (Generator, Projector, Manifestor, Reflector, MG), Strategy, Authority, Profile, all defined/undefined Centers, active Channels, Gates, and Incarnation Cross.

POST/v1/human_design/get_summaryBodyGraph Summary

Returns simplified summary: Type, Strategy, Authority, Profile, defined/undefined centers list.

Yoga Combinations

Identify powerful yoga combinations in a birth chart — Raj Yoga, Dhan Yoga, Panch Mahapurush, and Moon-based yogas.

POST/v1/yoga/get_allAll Yoga Combinations

Returns all yoga combinations present in a birth chart — including Raj Yoga, Dhan Yoga, Panch Mahapurush Yoga, Chandra Yoga, and more.

Example Request (cURL):

curl -X POST https://kundliapi.com/v1/yoga/get_all \ -H "Content-Type: application/json" \ -H "X-Api-Key: your_api_key_here" \ -d '{"day":15,"month":6,"year":1990,"hour":10,"min":30,"lat":28.6139,"lon":77.209,"tzone":5.5}'
POST/v1/yoga/get_raj_yogasRaj Yoga Analysis

Returns Raj Yoga analysis — combinations of Kendra and Trikona lords that indicate power, authority, and success.

POST/v1/yoga/get_dhan_yogasDhan Yoga (Wealth)

Returns Dhan Yoga (wealth yoga) analysis — planetary combinations indicating financial prosperity and material gains.

POST/v1/yoga/get_panch_mahapurushPanch Mahapurush Yoga

Returns Panch Mahapurush Yoga analysis — Ruchaka, Bhadra, Hamsa, Malavya, and Sasa yogas formed by Mars, Mercury, Jupiter, Venus, and Saturn in Kendra in own/exaltation sign.

POST/v1/yoga/get_chandra_yogasChandra (Moon) Yogas

Returns Moon-based yoga analysis — Sunaphа, Anaphа, Durudhara, Kemadruma, Gajakesari, and other Chandra yogas.

Muhurat Finder

Find auspicious dates and times (Muhurat) for important life events — marriage, housewarming, business, travel, and more.

POST/v1/muhurat/get_marriageMarriage Muhurat

Returns auspicious dates for marriage (Vivah Muhurat) within the given date range.

Request Body:

curl -X POST https://kundliapi.com/v1/muhurat/get_marriage \ -H "Content-Type: application/json" \ -H "X-Api-Key: your_api_key_here" \ -d '{"start_year":2026,"start_month":1,"start_day":1,"end_year":2026,"end_month":12,"end_day":31,"lat":28.6139,"lon":77.209,"tzone":5.5}'

Muhurat Parameters:

ParameterTypeRequiredDescription
start_yearIntegerRequiredStart year of the search range
start_monthIntegerRequiredStart month (1-12)
start_dayIntegerRequiredStart day (1-31)
end_yearIntegerRequiredEnd year of the search range
end_monthIntegerRequiredEnd month (1-12)
end_dayIntegerRequiredEnd day (1-31)
latFloatRequiredLocation latitude
lonFloatRequiredLocation longitude
tzoneFloatRequiredTimezone offset (e.g., 5.5 for IST)
POST/v1/muhurat/get_grihapraveshGrihapravesh Muhurat

Returns auspicious dates for housewarming (Grihapravesh) ceremony within the given date range.

POST/v1/muhurat/get_namkaranNamkaran Muhurat

Returns auspicious dates for naming ceremony (Namkaran) within the given date range.

POST/v1/muhurat/get_businessBusiness Opening Muhurat

Returns auspicious dates for business or shop opening within the given date range.

POST/v1/muhurat/get_travelTravel Muhurat

Returns auspicious dates for travel within the given date range.

POST/v1/muhurat/get_vehicleVehicle Purchase Muhurat

Returns auspicious dates for vehicle purchase within the given date range.

POST/v1/muhurat/get_propertyProperty Purchase Muhurat

Returns auspicious dates for property purchase within the given date range.

POST/v1/muhurat/get_mundanMundan Muhurat

Returns auspicious dates for Mundan (first head shaving) ceremony within the given date range.

POST/v1/muhurat/get_annaprashanAnnaprashan Muhurat

Returns auspicious dates for Annaprashan (first rice feeding) ceremony within the given date range.

POST/v1/muhurat/check_dateCheck Date Auspiciousness

Check if a specific date and time is auspicious for general activities.

Request Body:

{ "year": 2026, "month": 3, "day": 22, "hour": 10, "min": 30, "lat": 28.6139, "lon": 77.209, "tzone": 5.5 }

Note: This endpoint uses standard birth-data parameters (year, month, day, hour, min, lat, lon, tzone) instead of the date-range parameters used by other muhurat endpoints.

How to Generate a PDF Report

There are two ways to get a Kundli PDF, depending on how much design control you want.

Option A — /v1/pdf/generate: a ready-made, fully-branded PDF in one call

Send birth details plus your own branding — business name, astrologer name, logo, photo, footer banner, colors, contact info — and get back a complete, print-ready Kundli PDF with your branding on it, not ours. Nothing to set up beforehand: every field is sent per request, so there's no separate "save your branding" step and nothing stored on our side between calls.

Included in the All In One plan. PDF rendering is heavier than a JSON endpoint (typically 10–25 seconds per call); each call counts as a single request against your plan's monthly or yearly calls.

POST/v1/pdf/generateBranded Kundli PDF

Returns the PDF file directly — the response's Content-Type is application/pdf, not JSON.

Request Body:

{ "name": "Rohit Sharma", "day": 15, "month": 8, "year": 1990, "hour": 10, "min": 30, "lat": 28.6139, "lon": 77.2090, "tzone": 5.5, "gender": "male", "lang": "en", "variant": "detailed", "branding": { "brandName": "Nova Astro Consultancy", "panditName": "Acharya Ramesh", "brandPhone": "9876543210", "brandEmail": "contact@novaastro.example", "brandWebsite": "www.novaastro.example", "brandFooter": "For appointments, call us or visit our website.", "businessColor": "#1a1a6b", "titleColor": "#7a1e1e", "nameColor": "#5e1a1a", "logoUrl": "https://novaastro.example/logo.png", "profileImageUrl": "https://novaastro.example/astrologer-photo.jpg", "footerBannerUrl": "https://novaastro.example/report-footer-banner.png", "socialLinks": { "instagram": "https://instagram.com/novaastro" }, "youtubeVideo": { "url": "https://youtube.com/watch?v=...", "title": "About us" } } }

Example Request (cURL):

curl -X POST https://kundliapi.com/v1/pdf/generate \ -H "Content-Type: application/json" \ -H "X-Api-Key: your_api_key_here" \ -d '{"name":"Rohit Sharma","day":15,"month":8,"year":1990,"hour":10,"min":30,"lat":28.6139,"lon":77.209,"tzone":5.5,"gender":"male","branding":{"brandName":"Nova Astro Consultancy","panditName":"Acharya Ramesh","brandPhone":"9876543210"}}' \ --output kundli.pdf

Branding fields

FieldTypeNotes
brandNamestringYour business/brand name — heads the cover page.
panditNamestringThe astrologer who signs the report. Left blank, that line is simply not printed — it never falls back to any name of ours.
brandPhone, brandEmail, brandWebsitestringContact line on the cover.
brandFooterstringShort text shown in the report footer.
logoUrl, profileImageUrl, footerBannerUrlstring (URL)See "Supplying images" below.
businessColor, titleColor, nameColorhex stringe.g. "#7a1e1e". Anything not a valid #rgb/#rrggbb/#rrggbbaa string is ignored.
socialLinksobjectAny of facebook, instagram, youtube, twitter, linkedin — printed on the closing page.
youtubeVideoobject{ url, title, description } — an optional featured-video block.

Supplying images

logoUrl, profileImageUrl and footerBannerUrl each accept either:

  • An https:// URL you host yourself (recommended — no size limit from us; our renderer fetches it directly while building the PDF). Plain http:// is not accepted.
  • An inline data:image/...;base64,... URI, for small images (logos, icons) you'd rather send directly — capped at roughly 900KB decoded per image, since up to three of these travel in the same request body.

A URL that resolves to a private, loopback or link-local address (e.g. 127.0.0.1, 192.168.x.x, cloud metadata endpoints) is refused rather than fetched. If an image URL is unreachable or invalid, that one image is silently skipped — a bad logoUrl does not fail the whole report.

Other fields

variant — "detailed" (default) for the full report, or "basic" for the shorter free-tier-style report. lang — same language codes as every other endpoint (en, hi, mr, bn, ta, gu, te, kn).

Option B — build the PDF yourself from JSON

If you want full design control over the layout (not just the branding), you can still fetch the underlying data as JSON and render it however you like — this is how every KundliAPI PDF was generated before /v1/pdf/generate existed, and it's still fully supported.

1. Fetch the data. Call the endpoints you need for the same birth details — e.g. /v1/astro/get_astro_data, /v1/planet/get_all_planet_data, /v1/chart/get_lagna_chart, /v1/chart/get_navamsa_chart, /v1/dasha/get_vimshottary_maha_dasha, /v1/dosha/mangal_dosh_analysis — and combine the JSON responses.

2. Render that JSON into a PDF, using your own code. Two common approaches:

ApproachHow it worksTypical libraries
Draw the PDF programmaticallyYour code places text, tables, and lines at specific coordinates directly onto a blank PDF canvas.PDFKit (Node.js), ReportLab (Python), iText (Java), QuestPDF (.NET)
HTML → PDF conversionDesign the report as a normal HTML/CSS page, inject the API's JSON values into it, then "print" that page to a PDF using a headless browser.Puppeteer / Playwright (Chromium), wkhtmltopdf, WeasyPrint

The HTML → PDF route is usually easier to start with — you can design and preview the report visually in a normal browser before exporting it.

3. Drawing the Kundli chart itself. The API only tells you which planet sits in which house as JSON (e.g. { "house": 1, "planet": "Sun" }) — it does not return a chart image. You need to draw the diamond shape (North Indian style) or the fixed 12-box grid (South Indian style) yourself, then place each planet's abbreviation into the correct box based on that house data.

Need More Details?

This documentation covers the most commonly used endpoints. For a complete list of all 260+ endpoints, test them directly from your dashboard or contact our support.

Get API Access Contact Support View SDKs