Bharat Dharma Academy Public API
Panchang, festival, Jyotish and Sanatan knowledge APIs with provenance-aware responses. Public contract version 0.1.0; the catalogue and request models are generated from the live public OpenAPI contract.
Panchang, festival, Jyotish and Sanatan knowledge APIs with provenance-aware responses. Public contract version 0.1.0; the catalogue and request models are generated from the live public OpenAPI contract.
/api-docs/openapi.json for the supported public evaluation catalogue. Only operations listed in that contract are available for external evaluation.
Selected public endpoints are available without credentials for low-volume development and prototype evaluation. This is not a contractual free tier: it has no guaranteed quota, uptime commitment, production SLA, commercial-service right, or reseller right.
Scope: these evaluation quotas and deadlines apply only to external callers. BDA's own website product traffic and authenticated BDA internal pipelines are outside the external evaluation quota; endpoint authentication, platform safety controls, and abuse controls still apply.
Commercial, high-volume, production, redistribution-as-a-service, and reseller use requires a written agreement with Bharat Dharma Academy. API-access terms are separate from any response-level content licence.
Use https://jyotish-api.bda.ai/api-docs/openapi.json as the supported public machine-readable contract. The branded API base is https://jyotish-api.bda.ai.
curl "https://jyotish-api.bda.ai/panchang/daily?date=2026-08-03&lat=28.6139&lng=77.2090&tz=Asia%2FKolkata"
429, 504, Retry-After, and cache validators exactly as documented.| Access model | Current availability | Authentication | Limits and terms | Pricing |
|---|---|---|---|---|
| Evaluation | Selected public endpoints | No credential for eligible endpoints | Low-volume prototype testing only; no production SLA or commercial/reseller rights | Currently no charge within the published evaluation limits; not a guaranteed free tier or trial entitlement |
| Commercial | Application and written approval required | Server-side API credential issued during onboarding | Contracted request limits, permitted use, support, and service levels | Custom quote based on endpoints, volume, peak rate, support, and licence scope |
| High-volume / reseller | Individual review and written agreement required | Server-side credential and account controls | Contracted capacity, redistribution/resale rights, reporting, support, and service levels | Custom quote |
No public commercial tariff is currently published. Request a proposal at info@bda.ai or use the BDA contact form.
Eligible evaluation endpoints require no credential. Commercial credentials are issued only after approval and written terms. Keep credentials on your server, transmit them only over HTTPS using the onboarding instructions, rotate them if exposed, and never place them in browser JavaScript, mobile binaries, public repositories, URLs, analytics, or logs.
Authenticated product, dashboard, profile, memory, saved-report, and internal operations are not part of the public API contract and must not be inferred from any complete service schema.
For external evaluation clients, limits are applied per client network address and endpoint tier. They are ceilings, not reserved capacity, and may be reduced during abuse, incidents, or capacity pressure. Do not evade limits by rotating addresses or parallel clients.
| Tier | Rate | Burst | Deadline | Applies to |
|---|---|---|---|---|
public_read | 60/minute | 12/second | 30 seconds | Deterministic GET/read endpoints. |
public_compute | 20/minute | 4/second | 60 seconds | Deterministic POST/calculation endpoints. |
public_extended | 6/minute | 2/second | 180 seconds | Report, evidence, projection, and other extended-work endpoints. |
/mcp | 120/minute | Existing MCP transport policy; tool-specific deadlines also apply. | ||
/panchang/comments | 5 per 60 minutes | Existing pre-moderation submission policy. | ||
Successful metered responses include RateLimit-*, X-RateLimit-*, X-BDA-Access-Scope, X-BDA-Evaluation-Tier, and X-BDA-Request-Timeout-Seconds headers.
Retry-After, and backoff headers.available:false or reserved_unavailable as a computed astrological result.429 or 5xx responses aggressively; follow Retry-After and exponential backoff.429 Too Many Requests returns rate_limit_exceeded plus Retry-After. 504 Gateway Timeout returns request_timeout and the applied deadline. Validation failures remain normal 4xx responses. Limits may change before commercial credentials launch.
/calendar/convertquery/path params: lat, lng, date, tz, elevation_m, profile, ayanamsa | access: public_read
/calendar/festivals.icsquery/path params: lat, lng, tz, from_date, days | access: public_read
/calendar/muhurta.ifbquery/path params: lat, lng, date, tz, elevation_m, profile, ayanamsa | access: public_read
/calendar/traditionsaccess: public_read
/calendar/vrats.icsquery/path params: lat, lng, tz, from_date, days | access: public_read
/feeds/festivals.jsonquery/path params: lat, lng, tz, from_date, days | access: public_read
/feeds/gochar.jsonquery/path params: from_date, window_days, ayanamsa | access: public_read
/feeds/vrats.jsonquery/path params: lat, lng, tz, from_date, days | access: public_read
/festival/debate/{slug}query/path params: slug, year, lat, lng, tz | access: public_read
/festival/icsquery/path params: lat, lng, tz, from_date, days | access: public_read
/festival/locality-shift/{slug}query/path params: slug, year, lat, lng, tz, compare_lat, compare_lng, compare_tz | access: public_read
/festival/observance/comparequery/path params: slug, year, lat, lng, tz, compare_lat, compare_lng, compare_tz | access: public_read
/festival/observance/explainquery/path params: slug, year, lat, lng, tz | access: public_read
/festival/provenance/{slug}query/path params: slug | access: public_read
/festival/why-not/{slug}query/path params: slug, target_date, year, lat, lng, tz | access: public_read
/new-year/regionalquery/path params: year, lat, lng, tz | access: public_read
/sankranti/allquery/path params: year, tz | access: public_read
/temple-observance/{festival}query/path params: festival, year, lat, lng, tz | access: public_read
/vrat/paranaquery/path params: vrat, from_date, lat, lng, tz | access: public_read
/annual/mudda-dashaquery/path params: year | JSON body | access: public_compute
/annual/munthaquery/path params: year | JSON body | access: public_compute
/annual/tajika-yogasquery/path params: year | JSON body | access: public_compute
/annual/varshaphalaquery/path params: year | JSON body | access: public_compute
/argalaJSON body | access: public_compute
/arudha/allJSON body | access: public_compute
/dasha-timelineJSON body | access: public_compute
/dasha/ashtottariJSON body | access: public_compute
/dasha/charaJSON body | access: public_compute
/dasha/chara/reportJSON body | access: public_extended
/dasha/kalachakraJSON body | access: public_compute
/dasha/narayanaJSON body | access: public_compute
/dasha/yoginiJSON body | access: public_compute
/dasha/yogini/reportJSON body | access: public_extended
/jaimini/profileJSON body | access: public_compute
/sarvatobhadraJSON body | access: public_compute
/special-lagnasJSON body | access: public_compute
/upagrahaJSON body | access: public_compute
/.well-known/agent-card.jsonaccess: public_discovery_or_specialized
/.well-known/agent.jsonaccess: public_discovery_or_specialized
/a2a/agent-card.jsonaccess: public_discovery_or_specialized
/ai-sitemap.jsonaccess: public_discovery_or_specialized
/mcpaccess: public_discovery_or_specialized
/mcp/tools.jsonaccess: public_discovery_or_specialized
/api/v1/encyclopedia/temple_countaccess: public_read
/api/v1/jyotish/interpretation_packetJSON body | access: public_compute
/eclipse/sutakquery/path params: date, lat, lng | access: public_read
/eclipse/visibilityquery/path params: date, lat, lng | access: public_read
/health/risk-windowsJSON body | access: public_compute
/lagna/tablequery/path params: lat, lng, date, tz | access: public_read
/ashtakavargaJSON body | access: public_compute
/bhav-chalitJSON body | access: public_compute
/career/d10JSON body | access: public_compute
/chart/calculateJSON body | access: public_compute
/compatibility/advancedJSON body | access: public_compute
/divisionalJSON body | access: public_compute
/doshaJSON body | access: public_compute
/housesJSON body | access: public_compute
/jyotish/bundleJSON body | access: public_compute
/jyotish/conceptsaccess: public_read
/jyotish/concepts/{slug}query/path params: slug | access: public_read
/jyotish/prashnaJSON body | access: public_compute
/jyotish/prashna/batchJSON body | access: public_compute
/jyotish/prashna/reportJSON body | access: public_extended
/kpJSON body | access: public_compute
/matching/gunmilanJSON body | access: public_compute
/matching/gunmilan/reportJSON body | access: public_extended
/planets/eventsquery/path params: date, time, lat, lng, tz, days, limit, ayanamsa | access: public_read
/planets/positionsquery/path params: date, time, lat, lng, tz, ayanamsa | access: public_read
/shadbalaJSON body | access: public_compute
/transitJSON body | access: public_compute
/varga/domain-packJSON body | access: public_compute
/yogasJSON body | access: public_compute
/context/resolvequery/path params: lat, lng, lon, tz, place, date, time | access: public_read
/geoipaccess: public_read
/location/resolvequery/path params: lat, lng, tz, label | access: public_read
/location/searchquery/path params: q, country_hint, limit | access: public_read
/inauspicious-windowsquery/path params: lat, lng, date, tz, elevation_m, profile, ayanamsa | access: public_read
/muhurat/electionalJSON body | access: public_compute
/muhurat/electional/reportJSON body | access: public_extended
/muhurat/vehiclequery/path params: lat, lng, date, tz, elevation_m, profile, ayanamsa | access: public_read
/muhurta/activity-certificationaccess: public_read
/muhurta/explainquery/path params: lat, lng, start_date, days, tz, activity, top_n, profile | access: public_read
/muhurta/searchquery/path params: lat, lng, start_date, days, tz, activity, top_n, profile | access: public_read
/panchang/chandrabalamquery/path params: lat, lng, date, tz, natal_moon_rashi_idx | access: public_read
/panchang/choghadiyaquery/path params: lat, lng, date, tz | access: public_read
/panchang/combustionsquery/path params: date | access: public_read
/panchang/commentsquery/path params: page_key, limit | access: public_discovery_or_specialized
/panchang/commentsJSON body | access: public_discovery_or_specialized
/panchang/dailyquery/path params: lat, lng, date, tz, elevation_m, profile, ayanamsa | access: public_read
/panchang/detailsquery/path params: lat, lng, date, tz, elevation_m, profile, ayanamsa | access: public_read
/panchang/diwaliquery/path params: year, lat, lng, tz | access: public_read
/panchang/eclipsesquery/path params: date, lat, lng | access: public_read
/panchang/festival/{rule_key}query/path params: rule_key, year, lat, lng, tz | access: public_read
/panchang/festivalsquery/path params: lat, lng, tz, from_date, days, anchor_date, only, include_aliases | access: public_read
/panchang/gowriquery/path params: lat, lng, date, tz | access: public_read
/panchang/horaquery/path params: lat, lng, date, tz | access: public_read
/panchang/monthquery/path params: lat, lng, ym, tz, profile, ayanamsa | access: public_read
/panchang/next-transitsquery/path params: date, planet, horizon_days | access: public_read
/panchang/panchakaquery/path params: lat, lng, date, tz, elevation_m, profile, ayanamsa | access: public_read
/panchang/pradoshamquery/path params: lat, lng, date, tz, elevation_m, profile, ayanamsa | access: public_read
/panchang/rashifalquery/path params: lat, lng, date, tz, elevation_m, profile, ayanamsa | access: public_read
/panchang/retrogradesquery/path params: date | access: public_read
/panchang/rituquery/path params: lat, lng, date, tz, elevation_m, profile, ayanamsa | access: public_read
/panchang/solstice-equinoxquery/path params: date | access: public_read
/panchang/tarabalamquery/path params: lat, lng, date, tz, elevation_m, profile, ayanamsa | access: public_read
/panchang/tithi/{tithi_slug}query/path params: tithi_slug, year, lat, lng, tz | access: public_read
/panchang/tithisaccess: public_read
/panchang/transitsquery/path params: from_date, window_days, ayanamsa | access: public_read
/panchang/utilityquery/path params: lat, lng, date, tz, elevation_m, profile, ayanamsa, natal_moon_rashi_idx | access: public_read
/panchang/vedic-timequery/path params: date, time, lat, lng, tz | access: public_read
/panchang/vratsquery/path params: lat, lng, tz, from_date, days, max_per_rule, include_top | access: public_read
/sunrisequery/path params: lat, lng, date, tz, elevation_m | access: public_read
/baby-name/syllablesquery/path params: nakshatra_idx, pada | access: public_read
/birthstar/deityquery/path params: nakshatra_idx | access: public_read
/gemstone/recommendationquery/path params: lagna | access: public_read
/rudraksha/recommendationquery/path params: nakshatra_idx | access: public_read
/answer/provenance/{answer_id}query/path params: answer_id | access: public_extended
/question/answer-packJSON body | access: public_extended
/question/diagnoseJSON body | access: public_extended
/question/evidenceJSON body | access: public_extended
/reports/comprehensiveJSON body | access: public_extended
/reports/domainJSON body | access: public_extended
/reports/educationJSON body | access: public_extended
/reports/generateJSON body | access: public_extended
/reports/timingJSON body | access: public_extended
/validation/event-mapquery/path params: authorization | JSON body | access: public_extended
/api/v1/seo/blog_sitemap.xmlquery/path params: shard, limit | access: public_discovery_or_specialized
/api/v1/seo/blog_sitemap_metaaccess: public_discovery_or_specialized
/openapi/domain/{family}query/path params: family | access: public_read
/schema/festival/{slug}query/path params: slug, year, lat, lng, tz | access: public_read
/schema/temple/{temple_id}query/path params: temple_id, name, url, locality, region, country, lat, lng | access: public_read
/access: public_discovery_or_specialized
/healthaccess: public_discovery_or_specialized