Getting started
- Base URL
https://vedicsense.in/api/v1- Authentication
- Send your API key in a header:
Authorization: Bearer <key>. Places and panchang also answer without a key, within a limit per address. Make a key in the developer console. - Plans and limits
- 100 free calls once, then monthly plans from 25,000 to 500,000 calls. Every answer carries
X-RateLimit-Remaining, and a key's answersX-Quota-Remaining. See plans and prices. - Errors
- Always
{"ok": false, "error": {"code", "message"}}with the HTTP status that fits. The codes are in the table below. - Dates and times
- Dates are
YYYY-MM-DD, 1850 to 2149; times are localHH:MM, 24-hour. Latitudes stay within 66.5 degrees of the equator.
Places
GET/api/v1/placesNo key needed
Up to eight places whose name begins with what you type, with the latitude, longitude and time zone the other endpoints take.
Parameters Query string
| Name | Type | Required | Example |
|---|---|---|---|
qThe start of a place name, up to 80 characters. | string | Yes | Jaip |
curl "https://vedicsense.in/api/v1/places?q=Jaip"
{
"ok": true,
"places": [
{
"name": "Jaipur",
"country": "IN",
"admin": null,
"lat": 26.91962,
"lon": 75.78781,
"tz": "Asia/Kolkata",
"pop": 3046163
},
{
"name": "Bijaipur",
"country": "IN",
"admin": null,
"lat": 26.05052,
"lon": 77.37138,
"tz": "Asia/Kolkata",
"pop": 16964
}
]
}
Panchang
GET/api/v1/panchangNo key needed
The day's tithi, nakshatra, yoga, karana and vara, sunrise and sunset, Rahu Kaal and the other day timings, the choghadiya and the horas for a date at a place.
Parameters Query string
| Name | Type | Required | Example |
|---|---|---|---|
latLatitude, within 66.5 degrees of the equator. | number | Yes | 28.6139 |
lonLongitude. | number | Yes | 77.209 |
dateYYYY-MM-DD, 1850 to 2149. Today in India when left out. | string | No | 2026-10-24 |
placeA name to echo back. | string | No | New Delhi |
langen (the default) or hi for Hindi names. | string | No | hi |
curl "https://vedicsense.in/api/v1/panchang?lat=28.6139&lon=77.209&date=2026-10-24&place=New%20Delhi"
{
"ok": true,
"date": "2026-10-24",
"place": "New Delhi",
"tz": "Asia/Kolkata",
"tithi": "Trayodashi",
"nakshatra": "Uttara Bhadrapada",
"yoga": "Vyaghata",
"karana": "Taitila",
"vara": "Shanivara (Sat)",
"sunrise": "06:27",
"sunset": "17:42",
"rahu_kaal": {
"name": "Rahu Kalam",
"hi": "राहु काल",
"start": "09:16",
"end": "10:40",
"good": false
},
"choghadiya": [
{
"name": "Kaal",
"hi": "काल",
"quality": "bad",
"start": "06:27",
"end": "07:51"
}
]
}
Kundli (birth chart)
POST/api/v1/kundliKey required
The sidereal birth chart for a birth: ascendant, Moon, every planet's sign, degree, nakshatra and house, and the sections you ask for, from the dasha to the divisional charts.
Parameters JSON body
| Name | Type | Required | Example |
|---|---|---|---|
dDate of birth, YYYY-MM-DD, 1850 to 2149. | string | Yes | 1990-01-15 |
tLocal time of birth, HH:MM, 24-hour. | string | Yes | 08:30 |
latLatitude of the birthplace. | number | Yes | 26.9124 |
lonLongitude of the birthplace. | number | Yes | 75.7873 |
placeA name to echo back. | string | No | Jaipur |
nameA name to echo back. | string | No | Asha |
nodeRahu and Ketu: MEAN (the default) or TRUE. | string | No | MEAN |
fieldsSections to include: positions, houses, vargas, dasha, yogas, strengths, doshas, panchang, avkahada, reading, prediction (the chart in plain words). Left out: positions, houses, dasha, yogas and panchang. | array | No | ["positions", "dasha"] |
curl -X POST https://vedicsense.in/api/v1/kundli \
-H "Authorization: Bearer $VEDICSENSE_KEY" \
-H "Content-Type: application/json" \
-d '{"d": "1990-01-15", "t": "08:30", "lat": 26.9124, "lon": 75.7873, "place": "Jaipur", "name": "Asha", "fields": ["positions", "dasha"]}'
{
"ok": true,
"name": "Asha",
"ascendant": {
"sign": "Capricorn",
"deg": "20°10'"
},
"moon": {
"sign": "Leo",
"nakshatra": "Purva Phalguni"
},
"positions": [
{
"name": "Sun",
"name_hi": "सूर्य",
"sign": "Capricorn",
"sign_hi": "मकर",
"deg": "0°58'",
"nakshatra": "Uttara Ashadha",
"pada": 2,
"house": 1,
"retro": false,
"chalit": 12
},
{
"name": "Moon",
"name_hi": "चंद्र",
"sign": "Leo",
"sign_hi": "सिंह",
"deg": "19°04'",
"nakshatra": "Purva Phalguni",
"pada": 2,
"house": 8,
"retro": false,
"chalit": 8
}
],
"dasha": {
"now": "Rahu",
"mahadashas": [
{
"lord": "Venus",
"start": "1981-06-06",
"end": "2001-06-05",
"years": 20
},
{
"lord": "Sun",
"start": "2001-06-05",
"end": "2007-06-06",
"years": 6
}
]
}
}
Kundli Milan (matching)
POST/api/v1/matchKey required
The 36-point Ashtakoota score koota by koota, with the Nadi, Bhakoot and Gana cancellations the texts allow, Mangal dosha for both, the southern checks and what the tradition prescribes where points are lost.
Parameters JSON body
| Name | Type | Required | Example |
|---|---|---|---|
boyThe groom's birth: d, t, lat, lon, and optional place and name. | object | Yes | {"d": "1992-11-08", "t": "04:30", ...} |
girlThe bride's birth, the same fields. | object | Yes | {"d": "2000-10-05", "t": "17:45", ...} |
time_unknownInside either person: true when the birth time is not known. Noon is assumed and the answer says so. | boolean | No | true |
langIn the query string: en (the default) or hi, the language of each nivaran item's text and of the plain-words `prediction`. | string | No | hi |
curl -X POST https://vedicsense.in/api/v1/match \
-H "Authorization: Bearer $VEDICSENSE_KEY" \
-H "Content-Type: application/json" \
-d '{"boy": {"d": "1992-11-08", "t": "04:30", "lat": 26.9124, "lon": 75.7873, "place": "Jaipur", "name": "Rohan"}, "girl": {"d": "2000-10-05", "t": "17:45", "lat": 26.9124, "lon": 75.7873, "place": "Jaipur", "name": "Meera"}}'
{
"ok": true,
"total": 32.5,
"max": 36,
"adjusted_total": 32.5,
"percent": 90,
"threshold": {
"min": 32,
"label": "Traditionally considered excellent"
},
"kootas": [
{
"name": "Varna",
"boy": "Water group",
"girl": "Fire group",
"score": 1.0,
"max": 1
},
{
"name": "Vashya",
"boy": "Jalachara (water-dwelling)",
"girl": "Nara (human)",
"score": 1.0,
"max": 2
}
],
"mangal": {
"boy": {
"present": false,
"severity": "none"
},
"girl": {
"present": false,
"severity": "none"
}
}
}
Muhurat
POST/api/v1/muhuratKey required
Each day of a range (60 days at most) rated for an activity at a place, the best days first, with their good windows.
Parameters JSON body
| Name | Type | Required | Example |
|---|---|---|---|
activityAn activity key. GET /api/v1/muhurat/activities lists them, no key needed. | string | Yes | vivah |
fromFirst day, YYYY-MM-DD. | string | Yes | 2026-11-01 |
toLast day, at most 60 days after from. | string | Yes | 2026-11-30 |
latLatitude. | number | Yes | 28.6139 |
lonLongitude. | number | Yes | 77.209 |
placeA name to echo back. | string | No | New Delhi |
curl -X POST https://vedicsense.in/api/v1/muhurat \
-H "Authorization: Bearer $VEDICSENSE_KEY" \
-H "Content-Type: application/json" \
-d '{"activity": "vivah", "from": "2026-11-01", "to": "2026-11-30", "lat": 28.6139, "lon": 77.209, "place": "New Delhi"}'
{
"ok": true,
"activity": "vivah",
"label": "Marriage",
"start": "2026-11-01",
"days": 30,
"tz": "Asia/Kolkata",
"count_good": 5,
"best": [
{
"date": "11 Nov 2026",
"weekday": "Budhavara",
"nakshatra": "Anuradha",
"tithi": "Shukla Dwitiya",
"rating": "excellent",
"score": 7,
"windows": [
{
"label": "Labh",
"kind": "choghadiya",
"start": "06:40",
"end": "08:01"
}
]
}
]
}
Numerology
POST/api/v1/numerologyKey required
Mulank, Bhagyank, the Chaldean name number and the Lo Shu grid, each with the working.
Parameters JSON body
| Name | Type | Required | Example |
|---|---|---|---|
dobDate of birth, YYYY-MM-DD. | string | Yes | 1990-01-15 |
nameThe name in Latin letters. Left out: the date numbers only. | string | No | Asha Sharma |
mobileA mobile number, digits only, for its number. | string | No | 9876543210 |
curl -X POST https://vedicsense.in/api/v1/numerology \
-H "Authorization: Bearer $VEDICSENSE_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Asha Sharma", "dob": "1990-01-15"}'
{
"ok": true,
"name": "Asha Sharma",
"dob": "1990-01-15",
"mulank": {
"value": 6,
"expression": "15 = 1 + 5 = 6",
"planet": "Venus"
},
"bhagyank": {
"value": 8,
"master": []
},
"name_number": {
"value": 8,
"compound": 26
},
"lo_shu": {
"present": [
1,
5,
9
],
"absent": [
2,
3,
4,
6,
7,
8
],
"repeated": [
1,
9
]
}
}
Your key
GET/api/v1/auth/meKey required
The account behind the key, and the key's kind, plan and expiry: a quick way to check a key works.
No parameters: the key in the header is the whole request.
curl https://vedicsense.in/api/v1/auth/me \
-H "Authorization: Bearer $VEDICSENSE_KEY"
{
"ok": true,
"user": {
"name": "Asha",
"email": "[email protected]",
"verified": true,
"phone": null,
"phone_verified": false,
"has_password": false,
"has_email": true,
"email_verified": false,
"needs_phone": true,
"needs_profile": false
},
"auth": {
"kind": "key",
"plan": "free",
"expires": "2027-10-24T09:30:00Z"
}
}
Errors
A refused call answers with an HTTP status and a code you can branch on. The message says what to fix, in plain English, and never repeats what you sent.
| Status | Code | What it means |
|---|---|---|
| 400 | invalid_request | A field is missing, misspelt or out of range. The message names the field. |
| 401 | unauthorized | No key was sent. Add the Authorization: Bearer header. |
| 401 | invalid_token | The key is not valid: mistyped, revoked or expired. Make a new one in the console. |
| 403 | forbidden | The key cannot be used for this endpoint. |
| 404 | not_found | There is no such endpoint. Check the path against this page. |
| 405 | method_not_allowed | The path exists but takes a different method, GET or POST. |
| 413 | too_large | The request body is too big. A normal request is well under a kilobyte. |
| 429 | rate_limited | Over your plan's calls a minute. Wait the seconds in Retry-After and try again. |
| 429 | quota_exceeded | The free credits or the month's calls are used up. Choose a plan in the console. |
| 500 | server_error | The calculation failed on our side. Try again; if it repeats, write to us. |
| 503 | unavailable | The service is briefly unavailable, for example during an update. Try again shortly. |
The examples answer for made-up births and dates, computed by the API itself. Lists are cut to their first items and long sections left out; a full answer has every field.
Ready to call it? Your first 100 calls are free, with no card.
