API Reference
Vedika API reference
How to call the API: the base URL, authentication, the response format, errors and rate limits. Every endpoint is listed below by system, and each one opens in the API Explorer with its parameters, code samples and a real response.
Endpoints by system
Counted from the served OpenAPI spec. Pick a system to read about it, or open it in the explorer to see every endpoint.
687 endpoints · 12 systems · 566 with a keyless sandbox
| System | Endpoints | Largest groups | |
|---|---|---|---|
| Vedic Jyotish | 194 | Vedic Charts (21), Vedic Astrology (16), Jaimini (15), Vedic Dasha (15), Muhurta (10), Spiritual (10), and 18 more | Explore |
| Western | 61 | Western (60), Western Astrology (1) | Explore |
| KP Paddhati | 14 | KP System (14) | Explore |
| Chinese | 15 | Chinese (15) | Explore |
| Numerology | 32 | Numerology Expanded (25), Numerology (7) | Explore |
| Tarot & Divination | 96 | Tarot (26), Crystals (10), Health (8), Iching (8), Lifestyle (8), Biorhythm (6), and 6 more | Explore |
| Daily Content | 41 | Daily (12), Calendar (9), Horoscope (9), Predictions (5), Widget (5), Festivals (1) | Explore |
| Matrimony | 19 | Matrimony (15), Vedic Matching (4) | Explore |
| Human Design | 10 | Human Design (10) | Explore |
| Vastu | 149 | Properties & collaboration (15), Floor plans (14), Reference data (11), AR & capture (10), Placement (10), Rooms (10), and 27 moreVastu Shastra (147 paths / 148 operations), also served under /v2/vastu/ | Explore |
| Reports | 8 | Reports (8) | Explore |
| Platform & AI | 48 | System (15), Usage (7), Voice (7), Batch (4), Conversations (4), AI Chat (3), and 3 more | Explore |
Base URL
https://api.vedika.io
https://api.vedika.io/sandbox
The sandbox mirrors the live routes without the /v2/astrology prefix, for example /sandbox/birth-chart. It needs no key, costs nothing and returns fixed sample data, so use it to test your integration and a key for real charts.
Data residency. Requests are served from our India (Mumbai) region. Your account records, generated reports, usage history and billing are stored and processed in India. Query text for AI answers and safety checks may be processed outside India, including the United States and Australia; no stored record leaves India. In-country query processing is available by contract; contact us before you build.
Authentication
Send your API key in the Authorization header as a Bearer token. The X-API-Key header is also accepted when no Bearer credential is present. Create and rotate keys in the dashboard.
Authorization: Bearer vk_live_your_key
A missing, malformed, expired or revoked key gets 401 with a body that names the problem, and a WWW-Authenticate header. Do not retry a 401; fix the key. Keep keys on your server and never ship them in a browser or mobile app.
A complete example
A Vedic birth chart for a Mumbai birth. Send the same body to https://api.vedika.io/sandbox/birth-chart without the header to try it for free.
curl https://api.vedika.io/v2/astrology/birth-chart \
-H "Authorization: Bearer $VEDIKA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"datetime": "1990-05-15T10:30:00",
"latitude": 19.07,
"longitude": 72.87,
"timezone": "+05:30",
"ayanamsa": "lahiri"
}'Add an X-Idempotency-Key header with a unique value per request so a retry after a timeout is never charged twice.
Responses
Successful calls return JSON with four parts: success, the result in data, request details in meta, and what the call cost in billing. This is a real sandbox response to the example above, shortened; the sandbox marks itself with "mode": "sandbox" and charges nothing.
{
"success": true,
"data": {
"ascendant": {
"sign": "Pisces",
"signLord": "Jupiter",
"degree": 13.56,
"fullDegree": 343.56
},
"moonSign": "Sagittarius",
"sunSign": "Sagittarius",
"planets": "[ ... nine grahas with sign, house, degree, nakshatra ... ]"
},
"meta": {
"contentMode": "fixture",
"engine": "vedika-intelligence",
"fixtureId": "demo-birth-1995-new-delhi",
"inputUsage": "ignored",
"mode": "sandbox",
"sample": true,
"version": "2.1.0"
},
"billing": {
"balanceAfter": 100,
"balanceBefore": 100,
"category": "astrology",
"charged": 0,
"currency": "USD",
"endpoint": "/sandbox/birth-chart"
}
}Every response also carries X-Request-Id. Quote it when you contact support and we can find the exact call.
Errors
Errors use the HTTP status code and a JSON body with status, code and message. Branch on the status first and on code second.
{
"status": "error",
"code": "UNAUTHORIZED",
"message": "Authentication required. Pass your API key as `Authorization: Bearer vk_live_...`."
}| Status | Common codes | What to do |
|---|---|---|
| 400 | VALIDATION_ERROR | A field is missing or out of range. The message names it. Fix the request; retrying will not help. |
| 401 | UNAUTHORIZED, INVALID_API_KEY, KEY_EXPIRED | The key is missing, wrong or expired. Check the header, or create a new key. |
| 402 | INSUFFICIENT_BALANCE | The wallet cannot cover this call. The body shows the required and available amounts. Top up in the dashboard. |
| 403 | SUBSCRIPTION_INACTIVE, FORBIDDEN | The key is valid but the plan does not allow this call. Check your plan. |
| 404 | NOT_FOUND | The path does not exist. Check it against the API Explorer. |
| 429 | RATE_LIMIT_EXCEEDED | Too many requests this minute. Wait for the Retry-After seconds, then retry. |
| 5xx | INTERNAL_ERROR, SERVICE_UNAVAILABLE | A fault on our side. You are not charged for it. Retry with backoff and the same X-Idempotency-Key, and quote the X-Request-Id if it persists. |
Rate limits
Each plan has a per-minute and a per-day request limit. The figures for every plan are on the rate limits page. Every response reports where you stand:
X-RateLimit-Limit: requests allowed in the current windowX-RateLimit-Remaining: requests left in itX-RateLimit-Reset: when the window resets
When you hit the limit you get 429 with Retry-After. A 429 is about speed, not money: a call your wallet cannot cover returns 402 instead, so read the body code before deciding to wait or to top up.