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

SystemEndpointsLargest groups
Vedic Jyotish194Vedic Charts (21), Vedic Astrology (16), Jaimini (15), Vedic Dasha (15), Muhurta (10), Spiritual (10), and 18 moreExplore
Western61Western (60), Western Astrology (1)Explore
KP Paddhati14KP System (14)Explore
Chinese15Chinese (15)Explore
Numerology32Numerology Expanded (25), Numerology (7)Explore
Tarot & Divination96Tarot (26), Crystals (10), Health (8), Iching (8), Lifestyle (8), Biorhythm (6), and 6 moreExplore
Daily Content41Daily (12), Calendar (9), Horoscope (9), Predictions (5), Widget (5), Festivals (1)Explore
Matrimony19Matrimony (15), Vedic Matching (4)Explore
Human Design10Human Design (10)Explore
Vastu149Properties & 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
Reports8Reports (8)Explore
Platform & AI48System (15), Usage (7), Voice (7), Batch (4), Conversations (4), AI Chat (3), and 3 moreExplore

Base URL

Live
https://api.vedika.io
Sandbox (free, no key)
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
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.

200 OK
{
  "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.

401 Unauthorized
{
  "status": "error",
  "code": "UNAUTHORIZED",
  "message": "Authentication required. Pass your API key as `Authorization: Bearer vk_live_...`."
}
StatusCommon codesWhat to do
400VALIDATION_ERRORA field is missing or out of range. The message names it. Fix the request; retrying will not help.
401UNAUTHORIZED, INVALID_API_KEY, KEY_EXPIREDThe key is missing, wrong or expired. Check the header, or create a new key.
402INSUFFICIENT_BALANCEThe wallet cannot cover this call. The body shows the required and available amounts. Top up in the dashboard.
403SUBSCRIPTION_INACTIVE, FORBIDDENThe key is valid but the plan does not allow this call. Check your plan.
404NOT_FOUNDThe path does not exist. Check it against the API Explorer.
429RATE_LIMIT_EXCEEDEDToo many requests this minute. Wait for the Retry-After seconds, then retry.
5xxINTERNAL_ERROR, SERVICE_UNAVAILABLEA 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:

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.

Next steps