REST API v1.0 Production Endpoints Available

API Reference

Complete endpoint documentation for Vedika API

Get API keyFree sandbox included

704 Operations Across 25 Systems

Purpose-built for faith-tech applications. All domains share the same authentication, billing, and response format.

Vedic Astrology

704 operations
  • Birth Charts & Planetary Data (5)
  • Dasha Systems - 6 types + 8 new (17)
  • Dosha Analysis (6)
  • Kundali Matching (6)
  • Panchang & Calendar (7)
  • Muhurta - 11 auspicious timing (11)
  • Divisional Charts D1-D60 (15)
  • Predictions & Horoscopes (9)
  • Strength & Analysis (6)
  • Transits (7)
  • Remedies & Recommendations (5)
  • Numerology (7)
  • Vastu Shastra - AR/VR-Ready (18)
  • Lal Kitab (8)
  • Jaimini (15)
  • Tajaka (10)
  • KP Expansion (10)
  • AI Query + Streaming + Voice (5+)
Paths: /v2/astrology/* /v2/astrology/lalkitab/* /v2/astrology/jaimini/* /v2/astrology/tajaka/* /v2/astrology/kp/* /v2/astrology/dasha/*

Western Astrology

59 endpoints
  • Transit Analysis (4)
  • Synastry & Relationships (4)
  • Composite Charts (2)
  • Progressions (3)
  • Solar & Lunar Return (4)
  • Horoscopes (2)
  • Western Expansion - 40 new endpoints:
  • Asteroids, aspect patterns, fixed stars, midpoints, harmonics, Arabic parts, Hellenistic lots, profections, zodiacal releasing, and more
Paths: /v2/western/*

Tarot & Divination

35 endpoints
  • Tarot - draws, interpretations, spreads, daily card (26)
  • Lenormand - draws, Grand Tableau, combos (5)
  • Oracle - multi-deck draws, interpretations (4)
Paths: /v2/tarot/* /v2/lenormand/* /v2/oracle/*
NEW

Eastern Systems

23 endpoints
  • Chinese Astrology - BaZi, zodiac, elements, feng shui (15)
  • I Ching - hexagram casting, interpretation, reference (8)
Paths: /v2/chinese/* /v2/iching/*
NEW

Spiritual & Wellness

65 endpoints
  • Crystals & Gemstone (10)
  • Angel Numbers (5)
  • Biorhythm (6)
  • Dreams (6)
  • Runes (5)
  • Palmistry (5)
  • Human Design (10)
  • Spiritual & Temple (10)
  • Health Astrology (8)
Paths: /v2/crystals/* /v2/humandesign/* /v2/angel-numbers/* /v2/biorhythm/* /v2/dreams/* /v2/runes/* /v2/palmistry/* /v2/spiritual/* /v2/health/*
NEW

Life Events

29 endpoints
  • Matrimony - compatibility, muhurta, manglik (15)
  • Career & Finance - analysis, wealth yoga (7)
  • Reports - birth chart, compatibility, forecast (7)
Paths: /v2/matrimony/* /v2/career/* /v2/finance/* /v2/reports/*
NEW

Content & Tools

30 endpoints
  • Daily Content - horoscopes, affirmations, alerts (12)
  • Lifestyle - color therapy, lucky elements (8)
  • Calculators - moon sign, sun sign, nakshatra (5)
  • Widgets - embeddable horoscope, panchang (5)
Paths: /v2/content/* /v2/lifestyle/* /v2/calculators/* /v2/widgets/*
NEW

All endpoints share the same x-api-key authentication, wallet-based billing, and JSON response format. See full pricing per endpoint

Quick Start

Base URL, the auth header, and the one response quirk worth knowing before you integrate.

Base URL

All requests are served from our India (Mumbai) region:

India (Mumbai, ap-south-1) India-only, no infrastructure outside India
https://api.vedika.io

Authentication

All API requests require authentication via API key in the header:

Authorization: Bearer vk_live_your_api_key_here

Get your API key from the Dashboard

Read this before you debug a "404" that isn't one

A request sent with no API key at all (no Authorization header, no x-api-key header) intentionally gets a 404-shaped JSON body on every gated endpoint, including this one:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="Vedika API", docs="https://docs.vedika.io/authentication"

{
  "status": "error",
  "message": "Not found",
  "code": "NOT_FOUND"
}

This is not a routing bug and the endpoint does exist. It is deliberate anti-enumeration hardening: an unauthenticated caller cannot distinguish "this route is real but I'm not authorized" from "this route doesn't exist" by comparing response bodies, which would let an attacker fingerprint private/internal routes for free. The HTTP status code is always the ground truth - trust the 401, not the NOT_FOUND string in the body.

Rule of thumb when integrating: check response.status, not response.body.code, to branch on missing/invalid credentials. A key that is present but malformed, expired, or revoked gets a distinct 401 body ({"error":"Unauthorized", "message": "..."}) that does describe the actual problem. The identical-to-404 body only happens when the request carries no credential whatsoever.

Endpoints

Birth Chart Generation

Generate complete Vedic birth chart with planetary positions, houses, and yogas

POST
POST /api/v1/chart

Request Body

{
  "dateOfBirth": "1990-01-15",
  "timeOfBirth": "14:30",
  "placeOfBirth": "Mumbai, India",
  "chartType": "D1"
}

Response (200 OK)

{
  "success": true,
  "data": {
    "planets": [...],
    "houses": [...],
    "yogas": ["Gaja Kesari Yoga", "Budhaditya Yoga"],
    "doshas": {
      "manglik": false,
      "kaal_sarp": false
    },
    "divisionalCharts": {...}
  },
  "credits_used": 2
}

Astrology Query (AI-Powered)

Ask any astrology question and get AI-powered analysis with grounded, anti-hallucination accuracy vs generic AI

POST
POST /api/v1/astrology/query

Request Body

{
  "question": "What are my career prospects in 2026?",
  "birthDetails": {
    "datetime": "1990-01-15T14:30:00",
    "latitude": 19.0760,
    "longitude": 72.8777,
    "timezone": "+05:30"
  },
  "responseFormat": "json"
}

Request Parameters

Parameter Type Required Description
question string Yes Natural language astrology question
birthDetails object Yes Birth date/time and location (datetime, latitude, longitude, timezone)
responseFormat string enum No "markdown" (default), "text", or "json". Use "json" to also receive a structuredResponse object with parsed sections
language string No ISO 639-1 language code (default: "en"). Supports 30+ languages
system string No "vedic" (default), "western", or "kp"
conversationId string No For multi-turn conversations, pass the conversation ID from a previous response

Response (200 OK)

{
  "success": true,
  "response": "Based on your current Mahadasha...",
  "followUpSuggestions": [
    "Tell me about my next Antardasha",
    "What are my lucky colors this year?"
  ],
  "metadata": {
    "model": "Vedika AI",
    "processing_time_ms": 2340,
    "cost": {"amount": 0.035, "currency": "USD"}
  },
  "birthChart": {...},
  "conversationId": "conv_abc123def456"
}

structuredResponse(only when request used responseFormat=json)

Machine-readable breakdown of the markdown answer. Use this for rendering sections individually without markdown parsing:

{
  "title": "Career Path in 2026",
  "preamble": "Namaste.",
  "sections": [
    {
      "heading": "Current Trends",
      "level": 2,
      "paragraphs": ["Your Jupiter placement indicates..."],
      "bullets": ["Career growth expected", "New opportunities in Q3"],
      "numbered": []
    }
  ],
  "raw": "## Current Trends\n\nYour Jupiter placement..."
}

Compatibility Analysis

Calculate Ashtakoota matching score and detailed compatibility report

POST
POST /api/v1/compatibility

Request Body

{
  "person1": {
    "dateOfBirth": "1990-01-15",
    "timeOfBirth": "14:30",
    "placeOfBirth": "Mumbai, India"
  },
  "person2": {
    "dateOfBirth": "1992-05-20",
    "timeOfBirth": "09:15",
    "placeOfBirth": "Delhi, India"
  }
}

Response (200 OK)

{
  "success": true,
  "data": {
    "totalScore": 28,
    "maxScore": 36,
    "percentage": 77.8,
    "kootaBreakdown": {...},
    "manglikAnalysis": {...},
    "recommendation": "Highly compatible"
  },
  "credits_used": 2
}

Health Check

Verify API availability and server status

GET
GET /api/v1/health

Response (200 OK)

{
  "status": "healthy",
  "uptime": 1234567,
  "version": "1.0.0"
}

API Information

Get API version and capabilities information

GET
GET /api/v1/info

Response (200 OK)

{
  "name": "Vedika API",
  "version": "1.0.0",
  "features": ["birth-chart", "ai-query", "compatibility"],
  "models": ["Vedika Pro 1.0", "Vedika Standard 2.1", "Vedika Lite 0.9", "Vedika Express 1.5"]
}

Error Codes

Code Message Description
400 Bad Request Invalid request parameters
401 Unauthorized Invalid or missing API key. If no key was sent at all, the body is intentionally identical to a 404 ({"code":"NOT_FOUND"}). This is anti-enumeration hardening, not a routing error. See Authentication above.
402 Payment Required Insufficient credits
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error (we'll fix it!)

Rate Limits

Starter

100

requests per month

Enterprise

Unlimited

Custom SLA