The World's Most Comprehensive
Hindu Panchang API
700 years of astronomical data (1700–2400), complete Shastric guidance engine, real-time festival derivation, and sub-50ms responses — powered by Swiss Ephemeris & Lahiri ayanamsa.
Start Here
Build your first feature in 5 minutes. Follow this simple flow.
/v1/compatibility/score/v1/compatibility/report/v1/kundli/premium-report/score →
/report →
/pdf
# Get a compatibility score in one call curl "https://api.tathaastuapi.com/v1/compatibility/score?bride_dob=1992-07-18&bride_time=10:30&bride_lat=28.6139&bride_lon=77.2090&groom_dob=1989-11-25&groom_time=16:45&groom_lat=19.0760&groom_lon=72.8777" \ -H "X-API-Key: YOUR_API_KEY"
/v1/festivals/explain to see exactly why a festival falls on a given date. No other Panchang API does this. Try it below ↓Recommended Flows
Three common integration patterns. Pick the one that matches your app.
GET /v1/compatibility/score ← score + verdictPOST /v1/compatibility/report ← full reportPOST /v1/kundli/premium-report ← PDF (optional)
GET /v1/panchang/lite ← lightweight (mobile)GET /v1/panchang ← full day dataGET /v1/calendar/month ← month view
GET /v1/kundli/teaser ← free previewPOST /v1/birth-chart ← full chart dataPOST /v1/kundli/premium-report ← 60+ page PDF
Popular Use Cases
Authentication
Every /v1/ request requires a valid API key in the header. Public endpoints (/v1/status, /v1/health) are exempt.
Header Authentication
# Using X-API-Key header (recommended) curl "https://api.tathaastuapi.com/v1/panchang?date=2025-03-01&lat=28.6&lon=77.2" \ -H "X-API-Key: tatha_live_xxxxxxxxxxxx" # Error response when key is missing or invalid { "error": "Unauthorized", "message": "Missing or invalid API key. Pass X-API-Key header.", "docs": "https://tathaastuapi.com/docs#authentication", "get_key": "https://tathaastuapi.com/#pricing" }
Quick Start
First API call in under 2 minutes. Choose your language.
# Today's Panchang for Delhi curl "https://api.tathaastuapi.com/v1/panchang?date=2025-03-01&lat=28.6139&lon=77.2090" \ -H "X-API-Key: YOUR_API_KEY" # With timings, hora, choghadiya in one call curl "https://api.tathaastuapi.com/v1/panchang?date=2025-03-01&lat=28.6&lon=77.2&include=timings,hora,choghadiya" \ -H "X-API-Key: YOUR_API_KEY" # Full shastric conditions + event ratings curl "https://api.tathaastuapi.com/v1/shastra/conditions?date=2025-03-01&lat=28.6&lon=77.2" \ -H "X-API-Key: YOUR_API_KEY"
import requests API_KEY = "tatha_live_xxxxxxxxxxxx" BASE = "https://api.tathaastuapi.com/v1" HDR = {"X-API-Key": API_KEY} # Core Panchang r = requests.get(f"{BASE}/panchang", headers=HDR, params={"date":"2025-03-01","lat":28.6139,"lon":77.2090}) p = r.json() print(p["tithi"]["name"]) # → "Ashtami" # Event suitability for marriage s = requests.get(f"{BASE}/events/suitability", headers=HDR, params={"date":"2025-03-01","lat":28.6,"lon":77.2,"event":"marriage"}).json() print(s["rating"]) # → "AVOID" | "NEUTRAL" | "GOOD" | "EXCELLENT"
const API_KEY = 'tatha_live_xxxxxxxxxxxx'; const BASE = 'https://api.tathaastuapi.com/v1'; const HDR = { 'X-API-Key': API_KEY }; async function getPanchang(date, lat, lon) { const r = await fetch( `${BASE}/panchang?date=${date}&lat=${lat}&lon=${lon}`, { headers: HDR } ); return r.json(); } // Always call from server-side to protect your API key const p = await getPanchang('2025-03-01', 27.7172, 85.3240); console.log(p.tithi.name); // → "Chaturdashi" console.log(p.engine.version); // → "7.7.15"
<?php define('API_KEY', 'tatha_live_xxxxxxxxxxxx'); define('BASE', 'https://api.tathaastuapi.com/v1'); function tathaApi($path) { $ctx = stream_context_create(['http' => [ 'header' => 'X-API-Key: ' . API_KEY ]]); return json_decode( file_get_contents(BASE . $path, false, $ctx), true ); } $p = tathaApi('/panchang?date=2025-03-01&lat=28.6&lon=77.2'); echo $p['tithi']['name']; // → "Chaturdashi"
Example Response — /v1/panchang
{
"date": "2025-02-21",
"vara": { "name": "Friday", "name_sa": "Shukravāra", "lord": "Venus" },
"tithi": {
"number": 8, "name": "Ashtami", "paksha": "Krishna",
"period": { "start": "2025-02-20 10:13", "end": "2025-02-21 12:13" }
},
"nakshatra": { "number": 17, "name": "Anuradha", "deity": "Mitra", "gana": "Deva" },
"yoga": { "number": 13, "name": "Vyaghata" },
"karana": { "number": 46, "name": "Garija", "auspicious": true },
"hindu_calendar": { "amanta": "Magha", "purnimanta": "Phalguna", "samvat": 2081 },
"timings": {
"sunrise": "06:52:14", "sunset": "18:23:11",
"moonrise": "02:14:00", "moonset": "13:44:00"
},
"engine": {
"name": "TathaAstu Panchang", "version": "7.7.15",
"calculation": "Drik", "ayanamsa": "Lahiri (Chitrapaksha)"
}
}
Panchang Endpoints FREE TIER
The five limbs of Panchang — Vara, Tithi, Nakshatra, Yoga, Karana — plus Hindu calendar identity, special day flags, and engine attribution on every response.
Supports 1700–2400 date range. Automatically detects region (India/Nepal/Kashmir) from coordinates. Nepal gets +05:45 timezone. Includes engine version attribution on every response.
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | Required | YYYY-MM-DD. Range 1700–2400 |
| lat | float | Required | Latitude −90 to 90 |
| lon | float | Required | Longitude −180 to 180 |
| region | string | Optional | Auto-detected. Override: NORTH_INDIA, SOUTH_INDIA, NEPAL, KASHMIR |
| include | string | Optional | Comma-separated extras: timings, hora, choghadiya, festivals, shastra |
Returns Panchang for today (server time, IST). Accepts all optional params except date.
Returns Panchang for tomorrow. Useful for apps that show a next-day preview widget.
Returns every available section in one response: core panchang, timings, hora, choghadiya, astronomical, shastric conditions, event suitability, festivals, panchak, bhadra, disha shool, special yogas.
Returns Tithi number, name, paksha (Shukla/Krishna), nature (Nanda/Bhadra/Jaya/Rikta/Purna), start/end times.
Returns Nakshatra number, name, pada (quarter), deity, gana (Deva/Manushya/Rakshasa), nature, ruling planet, period times.
All-Timings Endpoint FREE TIER
All auspicious and inauspicious windows for a date in one call — sunrise/sunset, all malefic periods, muhurtas, and moon times.
Returns: 🌅 Sunrise/Sunset · 🌙 Moonrise/Moonset · 🔴 Rahu Kaal · ⚫ Yamagandam · 🟠 Gulika Kaal · ⭐ Brahma Muhurta · ✨ Abhijit Muhurat · 💫 Amrit Kaal · ❌ Durmuhurta (×2) · 🚫 Varjyam.
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | Required | YYYY-MM-DD |
| lat | float | Required | Latitude |
| lon | float | Required | Longitude |
Hora & Choghadiya
Planetary hours and auspicious/inauspicious day segments. Durations dynamically computed from actual sunrise/sunset — never hardcoded to 60 minutes.
24 Hora periods from sunrise to next sunrise. Each ruled by a planet (Sun→Venus→Mercury→Moon→Saturn→Jupiter→Mars). Duration = (next_sunrise − today_sunrise) / 24. Nepal uses +05:45 correctly.
North/West Indian tradition. 8 day slots from sunrise→sunset and 8 night slots from sunset→sunrise. Each ~1.5 hours (dynamically computed), rated: Amrit ✅ · Shubh ✅ · Labh ✅ · Char ⚠️ · Rog ❌ · Kaal ❌ · Udveg ❌.
Inauspicious 1.5-hour window. Varies by weekday — computed from actual sunrise, not fixed times.
Another inauspicious daily period. Avoid new ventures during Yamagandam.
Third inauspicious daily window in the Vedic timekeeping system.
Abhijit Muhurat — near solar noon, ~48 minutes. Most universally auspicious window. Not applicable on Wednesdays by traditional rule.
Astronomical Data
Sun/moon positions, zodiac, sankranti, moon phase and lagna — all computed via Swiss Ephemeris with Lahiri ayanamsa.
Sun longitude/rashi, Moon longitude/rashi/nakshatra, sankranti day flag, amavasya/purnima flags, planetary positions.
Returns phase name (Waxing Crescent/Gibbous/Full/Waning etc.), illumination percentage, paksha (Shukla/Krishna), days to next full/new moon.
Lagna (ascendant) changes every ~2 hours. Returns current lagna rashi + udaya lagna (fixed at sunrise). For real-time widgets, refresh every 5 minutes.
Festivals & Vrats NEW: Explainable Engine
Festivals derived on-the-fly with full explainability — every result tells you exactly why it falls on a given date.
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | Required | YYYY-MM-DD |
| region | string | Optional | IN, IN-MH, IN-TN, IN-KA, NEPAL… filters regional festivals |
| lang | string | Optional | Language code for festival names (en, hi, ta, te…) |
Explainability endpoint — returns the exact astronomical rule that triggered a derived festival, with per-condition match details.
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | Required | YYYY-MM-DD |
| festival | string | Required | Festival key (e.g. FESTIVAL_HOLI) |
| location_id | integer | Optional | Location ID (default: 1) |
{
"festival": "FESTIVAL_MAHA_SHIVARATRI",
"date": "2026-02-16",
"matched": true,
"rule_code": "SHIVARATRI",
"conditions": [
{ "field": "paksha", "expected": "KRISHNA", "actual": "KRISHNA", "matched": true },
{ "field": "tithi_num", "expected": 14, "actual": 14, "matched": true },
{ "field": "purnimanta_month", "expected": "Phalguna", "actual": "Phalguna", "matched": true }
],
"human_readable": "This festival was derived because the conditions in rule 'SHIVARATRI' matched the Panchang facts for 2026-02-16."
}
See exactly why a festival falls on a given date. This is unique to TathaAstu API.
| Parameter | Type | Required | Description |
|---|---|---|---|
| year | integer | Required | Year |
| month | integer | Required | Month (1–12) |
Shastric Conditions ENTERPRISE — Unique in Market
Your competitive differentiator. Complete classical guidance layer based on Dharma Sindhu and Nirnaya Sindhu — not available in any other Panchang API.
Returns all classical conditions affecting the date:
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | Required | YYYY-MM-DD |
| lat | float | Required | Latitude |
| lon | float | Required | Longitude |
Event Suitability
Is today good for a wedding? Can I start a business? Should I buy land? The engine applies the full Shastric hierarchy and returns a verdict with explicit reasons and blocking/supporting factors.
Applies hierarchy: Eclipse → Ekadashi → Amavasya → Purnima → Bhadra → Panchak → Shool → Special Yogas. Returns AVOID / NEUTRAL / GOOD / EXCELLENT rating.
marriage · griha_pravesh · travel · mundan · vehicle_purchase · land_purchase · business_start · education_startOmit
event= to get all events at once.{
"event": "marriage",
"rating": "AVOID",
"score": 18,
"blocking_factors": ["Bhadra active until 15:30", "Panchak — Mritu Panchak"],
"supporting_factors": ["Abhijit Muhurat available 11:52–12:40"],
"hierarchy_applied": ["BHADRA", "PANCHAK"],
"disclaimer": "Guidance is based on classical shastric rules..."
}
Given a date range and event type, returns only the GOOD and EXCELLENT rated dates sorted by score. Ideal for muhurat calendar builders.
Panchak, Bhadra & Sankranti
Granular endpoints for checking specific classical conditions.
Returns whether date falls in Panchak (5 inauspicious nakshatras: Dhanistha, Shatabhisha, Purva/Uttara Bhadrapada, Revati). Returns type (Mritu/Agni/Raja/Chora/Roga), severity, avoided activities, and specific remedies.
Bhadra is the most inauspicious Karana. Returns exact start/end time if active, and the activities to avoid (new business, haircut, auspicious ceremonies).
Checks whether the date falls in Ganda Mool nakshatras (Ashwini, Ashlesha, Magha, Jyeshtha, Mula, Revati) — considered inauspicious for birth and ceremonies.
Returns all 12 solar sankranti dates for a year with exact time, rashi transition, significance, and recommended observances.
Calendar APIs
Bulk queries for calendar UI components — month, year, and custom ranges.
| Parameter | Type | Required | Description |
|---|---|---|---|
| year | integer | Required | Year |
| month | integer | Required | Month (1–12) |
| lat | float | Optional | Latitude for timings |
| lon | float | Optional | Longitude |
| Parameter | Type | Required | Description |
|---|---|---|---|
| start | string | Required | Start date YYYY-MM-DD |
| end | string | Required | End date (max 31 days from start) |
Muhurat Finder
Find the most auspicious date-time windows for a specific event type within a date range, ranked by classical shastric score.
| Parameter | Type | Required | Description |
|---|---|---|---|
| event | string | Required | marriage, griha_pravesh, business_start, vehicle_purchase… |
| start_date | string | Required | Search range start YYYY-MM-DD |
| end_date | string | Required | Search range end YYYY-MM-DD (max 90 days) |
| lat | float | Required | Location latitude |
| lon | float | Required | Location longitude |
| min_score | integer | Optional | Minimum score 0–100 (default: 60) |
Eclipses
Solar and lunar eclipse data with Sutak timings and visibility by location.
| Parameter | Type | Required | Description |
|---|---|---|---|
| year | integer | Required | Year to query |
| type | string | Optional | lunar or solar (default: both) |
| lat | float | Optional | For visibility check |
| lon | float | Optional | For visibility check |
Birth Chart (Kundli) PRO
Generate a complete Vedic birth chart (Kundli) with planetary positions, Lagna, Nakshatras, Dashas, and Yogas based on Swiss Ephemeris + Lahiri ayanamsa. Supports profiles for retrieval.
Generates a full Vedic birth chart. Pass the native's birth date, time, and location. Returns planetary positions in signs and nakshatras, house placements, Vimshottari Dasha periods, and notable Yogas.
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Required | Name of the person |
| date | string | Required | Birth date YYYY-MM-DD |
| time | string | Required | Birth time HH:MM (24-hr) |
| lat | float | Required | Birth place latitude |
| lon | float | Required | Birth place longitude |
| tz | string | Optional | Timezone (e.g. Asia/Kolkata). Auto-detected from coordinates if omitted |
curl -X POST https://api.tathaastuapi.com/v1/birth-chart \ -H "X-API-Key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Arjun", "date": "1990-05-15", "time": "06:30", "lat": 28.6139, "lon": 77.2090 }'
Retrieve a previously generated birth chart by its profile ID. Returns the same full chart data without re-computing.
Compatibility (Kundli Matching) PRO
Ashtakoot (8-fold) Gun Milan compatibility matching. Computes Varna, Vashya, Tara, Yoni, Graha Maitri, Gana, Bhakoot, and Nadi scores with Manglik analysis and Dasha compatibility.
Provide birth details for two individuals. Returns Ashtakoot Guna score (out of 36), individual Kuta scores, Manglik Dosha analysis, Nadi Dosha check, and an overall compatibility assessment.
| Parameter | Type | Required | Description |
|---|---|---|---|
| person1 | object | Required | Object with name, date, time, lat, lon |
| person2 | object | Required | Object with name, date, time, lat, lon |
curl -X POST https://api.tathaastuapi.com/v1/compatibility \ -H "X-API-Key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "person1": {"name": "Arjun", "date": "1990-05-15", "time": "06:30", "lat": 28.6, "lon": 77.2}, "person2": {"name": "Priya", "date": "1992-08-22", "time": "14:15", "lat": 28.6, "lon": 77.2} }'
Retrieve a previously computed compatibility analysis by its ID.
World Festivals FREE TIER
Multi-religion world festival calendar covering Islamic, Christian, Orthodox, Sikh, and Jewish festivals. Pre-computed with astronomical precision (Swiss Ephemeris) across 700 years (1700–2400). 94,000+ festival records.
Multi-religion world festival calendar. Query by date, year, month, religion, or search by name. Returns paginated results sorted by date.
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | string | Optional | YYYY-MM-DD — get festivals for a specific date |
| year | integer | Optional | Year (1700–2400) |
| month | integer | Optional | Month (1–12), requires year |
| religion | string | Optional | Filter: islamic, christian, orthodox, sikh, jewish |
| festival_id | string | Optional | Exact festival_id filter |
| search | string | Optional | Search festival names (partial match) |
| limit | integer | Optional | Results per page (1–1000, default: 100) |
| offset | integer | Optional | Pagination offset (default: 0) |
# All Islamic festivals for 2025 curl "https://api.tathaastuapi.com/v1/festivals/world?year=2025&religion=islamic" \ -H "X-API-Key: YOUR_KEY" # Search for Eid festivals curl "https://api.tathaastuapi.com/v1/festivals/world?search=eid&year=2025" \ -H "X-API-Key: YOUR_KEY" # Jewish festivals in March 2025 curl "https://api.tathaastuapi.com/v1/festivals/world?year=2025&month=3&religion=jewish" \ -H "X-API-Key: YOUR_KEY"
{
"total": 28,
"limit": 100,
"offset": 0,
"festivals": [
{
"year": 2025,
"religion": "islamic",
"festival_id": "ramadan_start",
"festival_name": "Ramadan Begins",
"gregorian_date": "2025-03-01",
"display_date": "2025-03-01",
"day_of_week": "Saturday",
"calendar_ref": "1 Ramadan 1446 AH",
"notes": "Astronomical new moon calculation"
}
],
"filters": { "year": 2025, "religion": "islamic" }
}Returns all available religions with total festival counts, unique festival types, and year coverage range. Use this to discover what data is available.
curl "https://api.tathaastuapi.com/v1/festivals/world/religions" \ -H "X-API-Key: YOUR_KEY"
{
"religions": [
{ "religion": "islamic", "total_festivals": 24843, "unique_festivals": 36, "min_year": 1700, "max_year": 2400 },
{ "religion": "christian", "total_festivals": 21861, "unique_festivals": 31, "min_year": 1700, "max_year": 2400 },
{ "religion": "jewish", "total_festivals": 19245, "unique_festivals": 28, "min_year": 1700, "max_year": 2400 },
{ "religion": "sikh", "total_festivals": 14700, "unique_festivals": 21, "min_year": 1700, "max_year": 2400 },
{ "religion": "orthodox", "total_festivals": 13700, "unique_festivals": 20, "min_year": 1700, "max_year": 2400 }
],
"total_records": 94349,
"year_range": { "min": 1700, "max": 2400 }
}Returns upcoming world festivals from the current date, across all religions or filtered by a specific religion. Ideal for calendar widgets and notifications.
| Parameter | Type | Required | Description |
|---|---|---|---|
| religion | string | Optional | Filter: islamic, christian, orthodox, sikh, jewish |
| limit | integer | Optional | Max results (1–100, default: 20) |
# Upcoming Sikh festivals curl "https://api.tathaastuapi.com/v1/festivals/world/upcoming?religion=sikh&limit=10" \ -H "X-API-Key: YOUR_KEY"
Bulk APIs
Process multiple dates or locations in a single HTTP request. Ideal for pre-computing calendar data or batch analysis.
{
"dates": ["2025-03-01", "2025-03-02", "2025-03-15"],
"lat": 28.6139,
"lon": 77.2090,
"include": "timings,festivals" // optional
}
Returns festivals for an array of dates in one call. Supports region and language filtering. Max 365 dates per request on Enterprise.
Languages (i18n)
All names are phonetically transliterated — not machine translated. "एकादशी" renders with the same sound in every script.
Error Codes
All errors return JSON with error, message, and optional docs link.
Rate Limits & Plans
Limits are per-API-key. Every response includes headers so you can track usage in real-time.
| Plan | Requests / Month | Requests / Min | Endpoints | Price |
|---|---|---|---|---|
Trial | 200 | 5 | All endpoints — 3-day evaluation | ₹0 |
Free | 1,000 | 30 | Core panchang, timings, festivals, rahukaal | ₹0 |
Starter | 10,000 | 60 | All core endpoints + Bulk endpoints | ₹499/mo |
Pro | 100,000 | 60 | All endpoints incl. Muhurat, Bulk & Calendar | ₹1,499/mo |
Business | 500,000 | 120 | All endpoints + Custom rules, Priority phone + email | ₹4,999/mo |
Enterprise | Unlimited | Custom | + Bulk APIs, Full export, SLA, Dedicated support | Custom |
X-RateLimit-Limit: 50000 X-RateLimit-Remaining: 49847 X-RateLimit-Reset: 2025-04-01T00:00:00Z X-Request-Id: req_01HXXXXXXXXXXXXXXXXXX
Upgrade directly from the developer dashboard. Enterprise plans include SLA, dedicated support, and IP allowlisting.
Upgrade Plan →Coverage & Engine
TathaAstu uses a two-path architecture — transparent to clients.
engine.name, engine.version, engine.calculation, and engine.ayanamsa so clients can always verify the calculation method.⚡ Interactive API Reference
Explore and test every endpoint in your browser. Powered by Swagger UI. Requires a valid API key from your dashboard.
Make sure your FastAPI server is running at
api.tathaastuapi.com.All 30+ endpoints, parameters, and response schemas will be available here.
🧪 Try It Live
Real calls to the production API. Enter your key once and all panels will use it.
Switch to API Reference for Swagger UI with all 30+ endpoints, parameter schemas, and auto-generated code samples.