{"openapi":"3.1.0","info":{"title":"BDA Jyotish + Panchang Service","description":"Swiss-Ephemeris-backed Panchang and Jyotish computation. Every response carries a methodology fingerprint. Public unauthenticated access is for low-volume evaluation; commercial, high-volume, and reseller API access requires a written agreement. Response-level license and provenance metadata remain authoritative. Source: Bharat Dharma Academy (https://www.bda.ai).","contact":{"name":"Bharat Dharma Academy API Partnerships","url":"https://www.bda.ai/contact-us","email":"info@bda.ai"},"license":{"name":"CC-BY-SA-4.0 where identified in response metadata","url":"https://creativecommons.org/licenses/by-sa/4.0/"},"version":"0.1.0","termsOfService":"https://jyotish-api.bda.ai/api-docs#usage-rules"},"paths":{"/ai-sitemap.json":{"get":{"tags":["Discovery"],"summary":"Ai Sitemap Json","operationId":"ai_sitemap_json_ai_sitemap_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_discovery_or_specialized"},"x-bda-capability-status":"available"}},"/mcp/tools.json":{"get":{"tags":["Discovery"],"summary":"Mcp Public Tools Json","operationId":"mcp_public_tools_json_mcp_tools_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_discovery_or_specialized"},"x-bda-capability-status":"available"}},"/mcp":{"post":{"tags":["Discovery"],"summary":"Mcp Json Rpc","description":"Public read-only MCP-style JSON-RPC transport.\n\nThis is intentionally limited to public tools. Authenticated user Kundali,\ndashboard summary, saved reports, and birth-detail update tools remain\nreserved and are not callable through this endpoint.","operationId":"mcp_json_rpc_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_discovery_or_specialized"},"x-bda-capability-status":"available"}},"/a2a/agent-card.json":{"get":{"tags":["Discovery"],"summary":"A2A Agent Card Json","operationId":"a2a_agent_card_json_a2a_agent_card_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_discovery_or_specialized"},"x-bda-capability-status":"available"}},"/.well-known/agent-card.json":{"get":{"tags":["Discovery"],"summary":"A2A Agent Card Well Known Json","operationId":"a2a_agent_card_well_known_json__well_known_agent_card_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_discovery_or_specialized"},"x-bda-capability-status":"available"}},"/.well-known/agent.json":{"get":{"tags":["Discovery"],"summary":"A2A Agent Json Compat","operationId":"a2a_agent_json_compat__well_known_agent_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_discovery_or_specialized"},"x-bda-capability-status":"available"}},"/":{"get":{"summary":"Root","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_discovery_or_specialized"},"x-bda-capability-status":"available"}},"/health":{"get":{"summary":"Health","description":"Liveness probe — MUST stay trivial. Declared `async def` with zero\nawaits so it is served directly on the event loop and never depends on\nthe (potentially saturated) sync threadpool. It touches no ephemeris,\nDB, Qdrant, or AI provider. (Architecture.md §22.124)","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_discovery_or_specialized"},"x-bda-capability-status":"available"}},"/api/v1/encyclopedia/temple_count":{"get":{"summary":"Api V1 Encyclopedia Temple Count","operationId":"api_v1_encyclopedia_temple_count_api_v1_encyclopedia_temple_count_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/api/v1/seo/blog_sitemap_meta":{"get":{"summary":"Api V1 Seo Blog Sitemap Meta","description":"Public metadata for the canonical BDA blog sitemap shards.","operationId":"api_v1_seo_blog_sitemap_meta_api_v1_seo_blog_sitemap_meta_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_discovery_or_specialized"},"x-bda-capability-status":"available"}},"/api/v1/seo/blog_sitemap.xml":{"get":{"summary":"Api V1 Seo Blog Sitemap Xml","description":"Canonical public blog sitemap shard.\n\nEmits only public blog URLs and optional lastmod dates; no internal IDs or\nauthor/profile data leave the service.","operationId":"api_v1_seo_blog_sitemap_xml_api_v1_seo_blog_sitemap_xml_get","parameters":[{"name":"shard","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Shard"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50000,"minimum":1,"default":5000,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_discovery_or_specialized"},"x-bda-capability-status":"available"}},"/panchang/daily":{"get":{"summary":"Panchang Daily","description":"Full daily Panchang for a city × date × profile.\n\nReturns sunrise/sunset/moonrise/moonset, tithi, nakshatra, yoga, karana,\npaksha, lunar month, samvats, moonsign/sunsign, auspicious +\ninauspicious windows, Choghadiya, and methodology fingerprint.\n\nThe response is gzip-negotiated via the audited\n``_json_response_maybe_gzip`` helper (compressed only when the client sends\n``Accept-Encoding: gzip`` and the body clears the size threshold);\ndecompressed it is byte-identical to the plain JSON dict. The compute lives\nin ``_panchang_daily_dict`` so the internal ``/panchang/choghadiya`` caller\ngets the plain dict, unaffected by the route's transport encoding.","operationId":"panchang_daily_panchang_daily_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"description":"Latitude in decimal degrees","title":"Lat"},"description":"Latitude in decimal degrees"},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"description":"Longitude in decimal degrees","title":"Lng"},"description":"Longitude in decimal degrees"},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date for the Panchang day (YYYY-MM-DD)","title":"Date"},"description":"Local date for the Panchang day (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone (auto-resolved from lat/lng if omitted)","title":"Tz"},"description":"IANA timezone (auto-resolved from lat/lng if omitted)"},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","description":"Observer elevation in meters","default":0.0,"title":"Elevation M"},"description":"Observer elevation in meters"},{"name":"profile","in":"query","required":false,"schema":{"type":"string","description":"Regional profile","default":"north_india_purnimanta","title":"Profile"},"description":"Regional profile"},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","description":"Sidereal ayanamsa: lahiri|raman|krishnamurti|true_chitra","default":"lahiri","title":"Ayanamsa"},"description":"Sidereal ayanamsa: lahiri|raman|krishnamurti|true_chitra"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/tithis":{"get":{"summary":"Panchang Tithi Catalog","description":"Canonical 30-Tithi catalog for API, SEO and external-agent reuse.","operationId":"panchang_tithi_catalog_panchang_tithis_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/tithi/{tithi_slug}":{"get":{"summary":"Panchang Tithi Calendar","description":"Annual astronomical start/end spans for one Tithi.\n\nCoordinates are mandatory so this public contract never silently assumes a\nuser's location. The result is factual Moon-Sun elongation timing only; it\ndoes not select a festival, Vrat, Parana or Muhurta observance date.","operationId":"panchang_tithi_calendar_panchang_tithi__tithi_slug__get","parameters":[{"name":"tithi_slug","in":"path","required":true,"schema":{"type":"string","title":"Tithi Slug"}},{"name":"year","in":"query","required":true,"schema":{"type":"integer","maximum":2100,"minimum":1900,"title":"Year"}},{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"description":"Latitude in decimal degrees","title":"Lat"},"description":"Latitude in decimal degrees"},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"description":"Longitude in decimal degrees","title":"Lng"},"description":"Longitude in decimal degrees"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Timezone hint; coordinates remain authoritative","title":"Tz"},"description":"Timezone hint; coordinates remain authoritative"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/details":{"get":{"summary":"Panchang Details","description":"Lazy deep-detail projection of the canonical daily Panchang packet.","operationId":"panchang_details_panchang_details_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"description":"Latitude in decimal degrees","title":"Lat"},"description":"Latitude in decimal degrees"},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"description":"Longitude in decimal degrees","title":"Lng"},"description":"Longitude in decimal degrees"},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local Panchang date (YYYY-MM-DD)","title":"Date"},"description":"Local Panchang date (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Timezone hint; coordinates remain authoritative","title":"Tz"},"description":"Timezone hint; coordinates remain authoritative"},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","default":0.0,"title":"Elevation M"}},{"name":"profile","in":"query","required":false,"schema":{"type":"string","default":"north_india_purnimanta","title":"Profile"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/comments":{"get":{"summary":"Panchang Comments","description":"Public read contract: approved positive comments only.","operationId":"panchang_comments_panchang_comments_get","parameters":[{"name":"page_key","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":180,"title":"Page Key"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_discovery_or_specialized"},"x-bda-capability-status":"available"},"post":{"summary":"Panchang Comment Submit","description":"AI-moderate first; publish only high-confidence positive feedback.","operationId":"panchang_comment_submit_panchang_comments_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PanchangCommentRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_discovery_or_specialized"},"x-bda-capability-status":"available"}},"/panchang/utility":{"get":{"summary":"Panchang Utility","description":"Daily utility pack exposing already-implemented Panchang/Jyotish lanes.\n\nThis is the endpoint-strategy v1 contract from the research report: no new\nmath, no Supabase/Qdrant reads, one stable API shape for dashboard, Ask Maa\nKali, emails, MCP/AI consumption, and future atomized endpoints. Heavy scans\nstay opt-in so the default remains safe for public and crawler traffic.","operationId":"panchang_utility_panchang_utility_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"description":"Latitude in decimal degrees","title":"Lat"},"description":"Latitude in decimal degrees"},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"description":"Longitude in decimal degrees","title":"Lng"},"description":"Longitude in decimal degrees"},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date for the utility pack (YYYY-MM-DD)","title":"Date"},"description":"Local date for the utility pack (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone (auto-resolved from lat/lng if omitted)","title":"Tz"},"description":"IANA timezone (auto-resolved from lat/lng if omitted)"},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","description":"Observer elevation in meters","default":0.0,"title":"Elevation M"},"description":"Observer elevation in meters"},{"name":"profile","in":"query","required":false,"schema":{"type":"string","description":"Regional Panchang profile","default":"north_india_purnimanta","title":"Profile"},"description":"Regional Panchang profile"},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","description":"Sidereal ayanamsa: lahiri|raman|krishnamurti|true_chitra","default":"lahiri","title":"Ayanamsa"},"description":"Sidereal ayanamsa: lahiri|raman|krishnamurti|true_chitra"},{"name":"natal_moon_rashi_idx","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":11,"minimum":0},{"type":"null"}],"description":"0-based natal Moon rashi index for personal Chandrabalam","title":"Natal Moon Rashi Idx"},"description":"0-based natal Moon rashi index for personal Chandrabalam"},{"name":"natal_lagna","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Natal lagna rashi name for gemstone lookup","title":"Natal Lagna"},"description":"Natal lagna rashi name for gemstone lookup"},{"name":"natal_nakshatra_idx","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":26,"minimum":0},{"type":"null"}],"description":"0-based natal nakshatra index for Tara Bala and birthstar utilities","title":"Natal Nakshatra Idx"},"description":"0-based natal nakshatra index for Tara Bala and birthstar utilities"},{"name":"include_windows","in":"query","required":false,"schema":{"type":"boolean","description":"Include Hora and Gowri daily windows","default":true,"title":"Include Windows"},"description":"Include Hora and Gowri daily windows"},{"name":"include_ephemeris_scans","in":"query","required":false,"schema":{"type":"boolean","description":"Include retrograde, combustion, ingress, eclipse, and seasonal scans","default":false,"title":"Include Ephemeris Scans"},"description":"Include retrograde, combustion, ingress, eclipse, and seasonal scans"},{"name":"include_lagna_table","in":"query","required":false,"schema":{"type":"boolean","description":"Include the 12-lagna transition table","default":false,"title":"Include Lagna Table"},"description":"Include the 12-lagna transition table"},{"name":"compact","in":"query","required":false,"schema":{"type":"boolean","description":"Return compact window sections suitable for dashboards and feeds","default":true,"title":"Compact"},"description":"Return compact window sections suitable for dashboards and feeds"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/calendar/traditions":{"get":{"summary":"Calendar Traditions","operationId":"calendar_traditions_calendar_traditions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/inauspicious-windows":{"get":{"summary":"Inauspicious Windows","operationId":"inauspicious_windows_inauspicious_windows_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date (YYYY-MM-DD)","title":"Date"},"description":"Local date (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone; auto-resolved if omitted","title":"Tz"},"description":"IANA timezone; auto-resolved if omitted"},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","description":"Observer elevation in meters","default":0.0,"title":"Elevation M"},"description":"Observer elevation in meters"},{"name":"profile","in":"query","required":false,"schema":{"type":"string","description":"Regional Panchang profile","default":"north_india_purnimanta","title":"Profile"},"description":"Regional Panchang profile"},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","description":"Sidereal ayanamsa","default":"lahiri","title":"Ayanamsa"},"description":"Sidereal ayanamsa"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/sankranti/all":{"get":{"summary":"Sankranti All","operationId":"sankranti_all_sankranti_all_get","parameters":[{"name":"year","in":"query","required":true,"schema":{"type":"integer","maximum":2100,"minimum":1900,"title":"Year"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","description":"IANA timezone for local display","default":"Asia/Kolkata","title":"Tz"},"description":"IANA timezone for local display"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/hora":{"get":{"summary":"Panchang Hora","operationId":"panchang_hora_panchang_hora_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date (YYYY-MM-DD)","title":"Date"},"description":"Local date (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone; auto-resolved if omitted","title":"Tz"},"description":"IANA timezone; auto-resolved if omitted"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/chandrabalam":{"get":{"summary":"Panchang Chandrabalam","operationId":"panchang_chandrabalam_panchang_chandrabalam_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date (YYYY-MM-DD)","title":"Date"},"description":"Local date (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone; auto-resolved if omitted","title":"Tz"},"description":"IANA timezone; auto-resolved if omitted"},{"name":"natal_moon_rashi_idx","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":11,"minimum":0},{"type":"null"}],"title":"Natal Moon Rashi Idx"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/tarabalam":{"get":{"summary":"Panchang Tarabalam","description":"Public birth-star matrix; personal projection stays in authenticated flows.","operationId":"panchang_tarabalam_panchang_tarabalam_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date (YYYY-MM-DD)","title":"Date"},"description":"Local date (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone; auto-resolved if omitted","title":"Tz"},"description":"IANA timezone; auto-resolved if omitted"},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","description":"Observer elevation in meters","default":0.0,"title":"Elevation M"},"description":"Observer elevation in meters"},{"name":"profile","in":"query","required":false,"schema":{"type":"string","description":"Regional Panchang profile","default":"north_india_purnimanta","title":"Profile"},"description":"Regional Panchang profile"},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","description":"Sidereal ayanamsa","default":"lahiri","title":"Ayanamsa"},"description":"Sidereal ayanamsa"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/retrogrades":{"get":{"summary":"Panchang Retrogrades","operationId":"panchang_retrogrades_panchang_retrogrades_get","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"UTC date for the noon ephemeris snapshot","title":"Date"},"description":"UTC date for the noon ephemeris snapshot"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/combustions":{"get":{"summary":"Panchang Combustions","operationId":"panchang_combustions_panchang_combustions_get","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"UTC date for the noon ephemeris snapshot","title":"Date"},"description":"UTC date for the noon ephemeris snapshot"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/next-transits":{"get":{"summary":"Panchang Next Transits","operationId":"panchang_next_transits_panchang_next_transits_get","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Start date for ingress scan","title":"Date"},"description":"Start date for ingress scan"},{"name":"planet","in":"query","required":false,"schema":{"type":"string","description":"Planet key, e.g. saturn|jupiter|mars","default":"saturn","title":"Planet"},"description":"Planet key, e.g. saturn|jupiter|mars"},{"name":"horizon_days","in":"query","required":false,"schema":{"type":"integer","maximum":3660,"minimum":1,"default":365,"title":"Horizon Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/eclipses":{"get":{"summary":"Panchang Eclipses","operationId":"panchang_eclipses_panchang_eclipses_get","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Start date for eclipse scan","title":"Date"},"description":"Start date for eclipse scan"},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":0.0,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":0.0,"title":"Lng"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/ritu":{"get":{"summary":"Panchang Ritu","operationId":"panchang_ritu_panchang_ritu_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date (YYYY-MM-DD)","title":"Date"},"description":"Local date (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"}},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","default":0.0,"title":"Elevation M"}},{"name":"profile","in":"query","required":false,"schema":{"type":"string","default":"north_india_purnimanta","title":"Profile"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/solstice-equinox":{"get":{"summary":"Panchang Solstice Equinox","operationId":"panchang_solstice_equinox_panchang_solstice_equinox_get","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Start date for the seasonal scan","title":"Date"},"description":"Start date for the seasonal scan"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/panchaka":{"get":{"summary":"Panchang Panchaka","operationId":"panchang_panchaka_panchang_panchaka_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date (YYYY-MM-DD)","title":"Date"},"description":"Local date (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"}},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","default":0.0,"title":"Elevation M"}},{"name":"profile","in":"query","required":false,"schema":{"type":"string","default":"north_india_purnimanta","title":"Profile"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/pradosham":{"get":{"summary":"Panchang Pradosham","operationId":"panchang_pradosham_panchang_pradosham_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date (YYYY-MM-DD)","title":"Date"},"description":"Local date (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"}},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","default":0.0,"title":"Elevation M"}},{"name":"profile","in":"query","required":false,"schema":{"type":"string","default":"north_india_purnimanta","title":"Profile"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/gowri":{"get":{"summary":"Panchang Gowri","operationId":"panchang_gowri_panchang_gowri_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date (YYYY-MM-DD)","title":"Date"},"description":"Local date (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone; auto-resolved if omitted","title":"Tz"},"description":"IANA timezone; auto-resolved if omitted"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/muhurat/vehicle":{"get":{"summary":"Muhurat Vehicle","operationId":"muhurat_vehicle_muhurat_vehicle_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date (YYYY-MM-DD)","title":"Date"},"description":"Local date (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"}},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","default":0.0,"title":"Elevation M"}},{"name":"profile","in":"query","required":false,"schema":{"type":"string","default":"north_india_purnimanta","title":"Profile"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/lagna/table":{"get":{"summary":"Lagna Table","operationId":"lagna_table_lagna_table_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date (YYYY-MM-DD)","title":"Date"},"description":"Local date (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone; auto-resolved if omitted","title":"Tz"},"description":"IANA timezone; auto-resolved if omitted"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/birthstar/deity":{"get":{"summary":"Birthstar Deity","operationId":"birthstar_deity_birthstar_deity_get","parameters":[{"name":"nakshatra_idx","in":"query","required":true,"schema":{"type":"integer","maximum":26,"minimum":0,"description":"0-based nakshatra index","title":"Nakshatra Idx"},"description":"0-based nakshatra index"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/baby-name/syllables":{"get":{"summary":"Baby Name Syllables","operationId":"baby_name_syllables_baby_name_syllables_get","parameters":[{"name":"nakshatra_idx","in":"query","required":true,"schema":{"type":"integer","maximum":26,"minimum":0,"description":"0-based nakshatra index","title":"Nakshatra Idx"},"description":"0-based nakshatra index"},{"name":"pada","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4,"minimum":1},{"type":"null"}],"title":"Pada"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/gemstone/recommendation":{"get":{"summary":"Gemstone Recommendation","operationId":"gemstone_recommendation_gemstone_recommendation_get","parameters":[{"name":"lagna","in":"query","required":true,"schema":{"type":"string","description":"Natal lagna rashi name, e.g. Leo","title":"Lagna"},"description":"Natal lagna rashi name, e.g. Leo"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/rudraksha/recommendation":{"get":{"summary":"Rudraksha Recommendation","operationId":"rudraksha_recommendation_rudraksha_recommendation_get","parameters":[{"name":"nakshatra_idx","in":"query","required":true,"schema":{"type":"integer","maximum":26,"minimum":0,"description":"0-based nakshatra index","title":"Nakshatra Idx"},"description":"0-based nakshatra index"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/rashifal":{"get":{"summary":"Panchang Rashifal","description":"Daily Chandra-rashi gochar guidance for all 12 signs.\n\nDeterministic only: real ephemeris + fixed bhava significations. This is\ngeneral sign-level guidance, not a personal birth-chart prediction.\n\nThe response (~53 KB, the largest still-uncompressed client-critical Panchang\npayload) is gzip-negotiated via the audited ``_json_response_maybe_gzip``\nhelper (compressed only when the client sends ``Accept-Encoding: gzip`` and\nthe body clears the size threshold); decompressed it is byte-identical to the\nplain JSON dict. This route has no internal callers, so it wraps its returns\ndirectly — no compute/route split is needed.","operationId":"panchang_rashifal_panchang_rashifal_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"description":"Latitude in decimal degrees","title":"Lat"},"description":"Latitude in decimal degrees"},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"description":"Longitude in decimal degrees","title":"Lng"},"description":"Longitude in decimal degrees"},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date for the Rashifal day (YYYY-MM-DD)","title":"Date"},"description":"Local date for the Rashifal day (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone (auto-resolved from lat/lng if omitted)","title":"Tz"},"description":"IANA timezone (auto-resolved from lat/lng if omitted)"},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","description":"Observer elevation in meters","default":0.0,"title":"Elevation M"},"description":"Observer elevation in meters"},{"name":"profile","in":"query","required":false,"schema":{"type":"string","description":"Regional Panchang profile","default":"north_india_purnimanta","title":"Profile"},"description":"Regional Panchang profile"},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","description":"Sidereal ayanamsa: lahiri|raman|krishnamurti|true_chitra","default":"lahiri","title":"Ayanamsa"},"description":"Sidereal ayanamsa: lahiri|raman|krishnamurti|true_chitra"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/transits":{"get":{"summary":"Panchang Transits","description":"Stateless slow-graha Gochar scan for public SEO pages.\n\nThe response is gzip-negotiated via the audited ``_json_response_maybe_gzip``\nhelper (compressed only when the client advertises ``Accept-Encoding: gzip``);\nthe decompressed body is byte-identical to the prior plain-dict return, so the\npublic SEO contract is unchanged.","operationId":"panchang_transits_panchang_transits_get","parameters":[{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"UTC start date for the gochar scan (YYYY-MM-DD)","title":"From Date"},"description":"UTC start date for the gochar scan (YYYY-MM-DD)"},{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":1100,"minimum":1,"description":"Forward scan window in days","default":370,"title":"Window Days"},"description":"Forward scan window in days"},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","description":"Sidereal ayanamsa: lahiri|raman|krishnamurti|true_chitra","default":"lahiri","title":"Ayanamsa"},"description":"Sidereal ayanamsa: lahiri|raman|krishnamurti|true_chitra"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/jyotish/concepts":{"get":{"summary":"Jyotish Concepts Index","description":"Index of the evergreen jyotish concept pages (slug + title + summary).\n\nRead-only, deterministic, no birth data. Source for the Velo concept-page\nsync. Phase 1 = computed-factual concepts only (definitions/mechanism), every\nstructural fact sourced from the canonical engine constants.\n\nThe index aggregates every concept summary, so the response is\ngzip-negotiated via the audited `_json_response_maybe_gzip` helper: the\nDECOMPRESSED body is byte-identical to the old `return {...}` path (no\ncontract/field/value change), and clients that do not advertise\n`Accept-Encoding: gzip` (or tiny payloads) get the unchanged JSON body. This\nis a read-only SEO/AEO + Velo-sync surface, so transport compression only\nspeeds crawl/sync; it carries no PII and reflects no request input.","operationId":"jyotish_concepts_index_jyotish_concepts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/jyotish/concepts/{slug}":{"get":{"summary":"Jyotish Concept Detail","description":"Full structured content for one jyotish concept page, by slug.\n\nThe per-concept payload is the heaviest read-only SEO/AEO concept surface\n(full definition + mechanism + structured facts), fetched by the Velo\nconcept-page sync and answer-engine crawlers, so its 200 response is\ngzip-negotiated via the audited `_json_response_maybe_gzip` helper: the\nDECOMPRESSED body is byte-identical to the old `return concept` path, and\nthe 404 (unknown slug) path is unchanged. No PII; no reflected request input.","operationId":"jyotish_concept_detail_jyotish_concepts__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/month":{"get":{"summary":"Panchang Month","description":"Real per-day Panchang for every day of a month — powers the calendar\ngrid. Per day: tithi (number + name), nakshatra, paksha, sunrise.\nIn-process cached per (month, city) since it never changes.\n\nThe full-month grid is the heaviest public Panchang JSON payload (28-31\ndays x tithi/nakshatra/paksha/lunar-month + festival/vrat markers), so the\nresponse is gzip-negotiated via the audited `_json_response_maybe_gzip`\nhelper: the DECOMPRESSED body is byte-identical to the old `return out`\npath (no contract/field/value change), and clients that do not advertise\n`Accept-Encoding: gzip` (or tiny payloads) get the unchanged JSON body.\nThe in-process `_MONTH_CACHE` still stores the plain dict; the wrapper runs\nper request on both the cache-hit and freshly-built return paths. Each day\nalso uses the canonical exact-key daily memo, so the Today request and this\nmonth packet share the selected day's ephemeris result instead of computing\nit twice.","operationId":"panchang_month_panchang_month_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"ym","in":"query","required":true,"schema":{"type":"string","description":"Month as YYYY-MM","title":"Ym"},"description":"Month as YYYY-MM"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"}},{"name":"profile","in":"query","required":false,"schema":{"type":"string","default":"north_india_purnimanta","title":"Profile"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/sunrise":{"get":{"summary":"Sunrise Endpoint","operationId":"sunrise_endpoint_sunrise_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Date"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"}},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","default":0.0,"title":"Elevation M"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/choghadiya":{"get":{"summary":"Choghadiya Endpoint","description":"16-period Choghadiya for a city × date.\n\nThe 16-period Choghadiya block is a real multi-KB API payload (~2.7 KB), so\nthe response is gzip-negotiated via the audited ``_json_response_maybe_gzip``\nhelper: the DECOMPRESSED body is byte-identical to the old\n``return _attribution_envelope(...)`` path (no contract/field/value change),\nand clients that do not advertise ``Accept-Encoding: gzip`` (or tiny\npayloads) get the unchanged JSON body.","operationId":"choghadiya_endpoint_panchang_choghadiya_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Date"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/planets/positions":{"get":{"summary":"Planets Positions","description":"Sidereal + tropical longitudes for all 9 grahas at a specific moment.\n\nThe 9-graha block is a real client payload (the live Panchang page fetches\n`/planets/positions` to render the planets card), so the response is\ngzip-negotiated via the audited `_json_response_maybe_gzip` helper: the\nDECOMPRESSED body is byte-identical to the old `return _attribution_envelope(...)`\npath (no contract/field/value change), and clients that do not advertise\n`Accept-Encoding: gzip` (or tiny payloads) get the unchanged JSON body.","operationId":"planets_positions_planets_positions_get","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Date"}},{"name":"time","in":"query","required":false,"schema":{"type":"string","description":"HH:MM local time","default":"12:00","title":"Time"},"description":"HH:MM local time"},{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/planets/events":{"get":{"summary":"Planets Events","description":"Formula-backed planetary aspects, ingresses, crossings and stations.","operationId":"planets_events_planets_events_get","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Date"}},{"name":"time","in":"query","required":false,"schema":{"type":"string","description":"HH:MM or HH:MM:SS local time","default":"00:00","title":"Time"},"description":"HH:MM or HH:MM:SS local time"},{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":31,"minimum":1,"default":10,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/vedic-time":{"get":{"summary":"Vedic Time Endpoint","description":"Return the location-specific 60-ghati Vedic clock for one instant.","operationId":"vedic_time_endpoint_panchang_vedic_time_get","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Date"}},{"name":"time","in":"query","required":true,"schema":{"type":"string","description":"HH:MM or HH:MM:SS local time","title":"Time"},"description":"HH:MM or HH:MM:SS local time"},{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/chart/calculate":{"post":{"summary":"Chart Calculate","description":"Compute Janma Kundali — Lagna, Rashi, Nakshatra, planets, doshas.\n\nThe full Janma Kundali (Lagna/Rashi/Nakshatra + 9-graha block + houses +\ndoshas + divisional charts) is a real, multi-KB client payload, so the\nresponse is gzip-negotiated via the audited ``_json_response_maybe_gzip``\nhelper: the DECOMPRESSED body is byte-identical to the old\n``return _attribution_envelope(result)`` path (no contract/field/value\nchange), and clients that do not advertise ``Accept-Encoding: gzip`` (or\ntiny payloads) get the unchanged JSON body.","operationId":"chart_calculate_chart_calculate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/jyotish/bundle":{"post":{"summary":"Jyotish Bundle Endpoint","description":"Personal Jyotish calculation bundle — D1 Janma Kundali + D9/D10 vargas\n+ the Vimshottari dasha tree + 12-house analysis + yoga/dosha report. The\nlive transit overlay and the seven domain packets are layered on at query\ntime. When a session_id / Firebase token is given the bundle is cached in\nbda_personalization.user_jyotish_profiles and reused.","operationId":"jyotish_bundle_endpoint_jyotish_bundle_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BundleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/matching/gunmilan":{"post":{"summary":"Matching Gunmilan Endpoint","description":"Ashtakoota Gun Milan — the classical 36-point two-chart marriage\ncompatibility (8 kootas + cross-chart Manglik balance). Deterministic:\nSwiss-Ephemeris charts in, structured score out; the LLM only narrates.","operationId":"matching_gunmilan_endpoint_matching_gunmilan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/matching/gunmilan/report":{"post":{"summary":"Matching Gunmilan Report Endpoint","description":"Gun Milan compatibility as a structured, bilingual, source-cited REPORT.\n\nComputes the SAME deterministic Ashtakoota result as the public\n`/matching/gunmilan` endpoint (no new entitlement surface — identical data,\nalready ungated), then renders it as a multi-channel report asset (§7): band\ninterpretation, per-koota breakdown, Manglik balance, §12 guidance-not-fatalism\ndosha notes (no fabricated scripture), and a self-describing constraints\nenvelope. The LLM only narrates; this layer is pure templating.","operationId":"matching_gunmilan_report_endpoint_matching_gunmilan_report_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/muhurta/search":{"get":{"summary":"Muhurta Search","operationId":"muhurta_search_muhurta_search_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"First local date to scan (YYYY-MM-DD)","title":"Start Date"},"description":"First local date to scan (YYYY-MM-DD)"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":31,"minimum":1,"default":7,"title":"Days"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone; auto-resolved if omitted","title":"Tz"},"description":"IANA timezone; auto-resolved if omitted"},{"name":"activity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Echoed only; activity rules are pandit-pending","title":"Activity"},"description":"Echoed only; activity rules are pandit-pending"},{"name":"top_n","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Top N"}},{"name":"profile","in":"query","required":false,"schema":{"type":"string","default":"north_india_purnimanta","title":"Profile"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/muhurta/explain":{"get":{"summary":"Muhurta Explain","operationId":"muhurta_explain_muhurta_explain_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"start_date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"First local date to scan (YYYY-MM-DD)","title":"Start Date"},"description":"First local date to scan (YYYY-MM-DD)"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":31,"minimum":1,"default":7,"title":"Days"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone; auto-resolved if omitted","title":"Tz"},"description":"IANA timezone; auto-resolved if omitted"},{"name":"activity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Echoed only; activity rules are pandit-pending","title":"Activity"},"description":"Echoed only; activity rules are pandit-pending"},{"name":"top_n","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Top N"}},{"name":"profile","in":"query","required":false,"schema":{"type":"string","default":"north_india_purnimanta","title":"Profile"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/muhurta/activity-certification":{"get":{"summary":"Muhurta Activity Certification","description":"Read-only activity-Muhurta certification registry.\n\nMetadata only: this endpoint does not compute or assert new activity-specific\nMuhurta. Pending activities remain pending until their formula, provenance,\ngolden-case, and reference-parity gates pass.","operationId":"muhurta_activity_certification_muhurta_activity_certification_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/muhurat/electional":{"post":{"summary":"Muhurat Electional Endpoint","description":"Electional Muhurat — rank auspicious time windows across a date range from\nthe universal classical Panchang signals (Choghadiya class + Abhijit, minus\nthe Rahu/Yamaganda/Gulika malefic windows). Deterministic: per-day Swiss-\nEphemeris Panchang in, ranked windows out; the LLM only narrates.\n\nActivity-specific muhurat selection is pandit-gated and NOT asserted here — an\n`activity` is echoed back flagged `pending_pandit_ratification` (§8.3).","operationId":"muhurat_electional_endpoint_muhurat_electional_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElectionalMuhuratRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/muhurat/electional/report":{"post":{"summary":"Muhurat Electional Report Endpoint","description":"Electional Muhurat as a structured, bilingual, source-cited REPORT.\n\nComputes the SAME deterministic electional result as the public\n`/muhurat/electional` endpoint (no new entitlement surface — identical data,\nalready ungated), then renders it as a multi-channel report asset (§7):\nbest-window summary, ranked top windows, per-day avoid windows, the engine's\nactivity-pending disclosure surfaced verbatim (§8.3, no fabricated activity\nruling), and a §12 guidance-not-fatalism note. The LLM only narrates; this\nlayer is pure templating.","operationId":"muhurat_electional_report_endpoint_muhurat_electional_report_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ElectionalMuhuratRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/dosha":{"post":{"summary":"Dosha Endpoint","description":"Single-chart Dosha report — deterministic Manglik / Kaal Sarpa / combust-\nretrograde affliction detection for one birth chart, rendered as a structured,\nbilingual, source-cited report asset (§7). Pure: it builds the personal Jyotish\nbundle (Swiss Ephemeris in, structured doshas out) and re-presents the dosha\nsignals it ALREADY computes — no new Jyotish rule is invented. Transit-dependent\nchecks (Sade Sati) are honestly disclosed as NOT part of this natal report\n(§8.3, no fabricated status); §12 guidance-not-fatalism notes are attached, with\nno fabricated scripture. The LLM only narrates; this layer is pure templating.","operationId":"dosha_endpoint_dosha_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoshaRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/dasha-timeline":{"post":{"summary":"Dasha Timeline Endpoint","description":"Vimshottari Dasha-timeline report — the full ~120-year life-period sequence\n(all nine mahadashas with dates) plus the as-of-generation running period,\nrendered as a structured, bilingual, source-cited report asset (§7). Pure: it\nbuilds the personal Jyotish bundle and re-presents the deterministic dasha\ntimeline it ALREADY computes — the dasha sequence is planetary-period arithmetic\nseeded by the Moon's nakshatra, so no astrological judgement is added and nothing\nis fabricated. §12 guidance-not-fatalism (a dasha is a period, not a fate-verdict);\nno scripture quoted. The LLM only narrates; this layer is pure templating.","operationId":"dasha_timeline_endpoint_dasha_timeline_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashaTimelineRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/yogas":{"post":{"summary":"Yogas Endpoint","description":"Yoga & Raja-Yoga report — the BENEFIC/auspicious side of the chart (Pancha\nMahapurusha, Gajakesari, Raja yogas, Dhana yogas) plus the Kaal Sarpa named type\nand combust/retrograde afflictions, rendered as a structured, bilingual,\nsource-cited report asset (§7). Pure: it builds the personal Jyotish bundle and\nre-presents the deterministic structural yoga detection it ALREADY computes — each\nyoga carries the engine's own `basis` (planet · house · dignity / lord-association),\nso no yoga signification or outcome is fabricated. This is the auspicious-yoga\ncompanion to the affliction-only Dosha report. §12 guidance-not-fatalism (a yoga is\na potential, not a guarantee); no scripture quoted. The LLM only narrates; this\nlayer is pure templating.","operationId":"yogas_endpoint_yogas_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/YogaReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/divisional":{"post":{"summary":"Divisional Endpoint","description":"Divisional-chart (Varga) report — the Parashari Shodasavarga subset the engine\ncomputes (D2 wealth, D7 children, D9 marriage/dharma, D10 career, D12 parents, D24\neducation, D60 overall karma) plus Vargottama detection, rendered as a structured,\nbilingual, source-cited report asset (§7). Pure: it builds the personal Jyotish\nbundle and re-presents the deterministic varga placements (each planet's divisional\nsign + house, the divisional lagna, and the engine's own classical theme label) it\nALREADY computes — no varga signification, strength, or outcome is fabricated.\nVargottama is reported as a structural condition (same sign in D1 and D9), its\nweight deferred to a pandit. §12 guidance-not-fatalism; no scripture quoted. The\nLLM only narrates; this layer is pure templating.","operationId":"divisional_endpoint_divisional_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DivisionalReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/ashtakavarga":{"post":{"summary":"Ashtakavarga Endpoint","description":"Unreduced Ashtakavarga report asset.\n\nPure deterministic endpoint: builds the same Kundali bundle as the dashboard,\nthen exposes seven Bhinnashtakavarga tables plus unreduced Sarvashtakavarga.\nIt deliberately does not compute Trikona/Ekadhipatya reductions, Pinda\nSadhana, or phala until those rules are separately ratified and tested.","operationId":"ashtakavarga_endpoint_ashtakavarga_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AshtakavargaReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/shadbala":{"post":{"summary":"Shadbala Endpoint","description":"Partial Shadbala subcomponent asset.\n\nExposes only auditable subcomponents currently backed by the Kundali bundle.\nIt does not return a full Shadbala score until all classical components are\nimplemented with golden tests.","operationId":"shadbala_endpoint_shadbala_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShadbalaReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/houses":{"post":{"summary":"Houses Endpoint","description":"Bhava (house) report — the full 12-house analysis the engine computes in the\nwhole-sign system, rendered as a structured, bilingual, source-cited report asset\n(§7). Pure: it builds the personal Jyotish bundle and re-presents the deterministic\nhouse structure it ALREADY computes — each house's sign, ruling lord and where that\nlord sits (with its dignity), the planets occupying the house, the planets aspecting\nit (graha drishti), and the engine's own classical signification — no house outcome,\nstrength, or prediction is fabricated. §12 guidance-not-fatalism; no scripture\nquoted. The LLM only narrates; this layer is pure templating.","operationId":"houses_endpoint_houses_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HousesReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/bhav-chalit":{"post":{"summary":"Bhav Chalit Endpoint","description":"Bhav Chalit (cusp-overlay) report — the Placidus chalit-chakra overlay the engine\ncomputes on top of the whole-sign chart, rendered as a structured, bilingual,\nsource-cited report asset (§7). Pure: it builds the personal Jyotish bundle and\nre-presents the deterministic overlay it ALREADY computes — each planet's whole-sign\n(rashi) house, its Placidus-cusp (chalit) house, the 12 sidereal cusps, and which\nplanets shift bhava between the two — no house outcome, strength, or prediction is\nfabricated. A shift is a structural condition (a planet near a cusp boundary), its\nweight deferred to a pandit. §12 guidance-not-fatalism; no scripture quoted. The LLM\nonly narrates; this layer is pure templating.","operationId":"bhav_chalit_endpoint_bhav_chalit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BhavChalitReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/kp":{"post":{"summary":"Kp Endpoint","description":"KP (Krishnamurti Paddhati) star/sub-lord report — the sub-lord lookup the engine\ncomputes for every planet and house-cusp, rendered as a structured, bilingual,\nsource-cited report asset (§7). Pure: it builds the personal Jyotish bundle and\nre-presents the deterministic KP lookup it ALREADY computes — each planet's and\ncusp's star lord / sub lord / sub-sub lord from the Vimshottari sub-division of its\nnakshatra. KP's predictive step (significator chains, Ruling Planets, the 1–249\nPrashna question-number reading) is NOT in the kp_v1 engine, so this report surfaces\nthe LOOKUP ONLY and asserts no KP prediction. §12 guidance-not-fatalism; no scripture\nquoted. The LLM only narrates; this layer is pure templating.","operationId":"kp_endpoint_kp_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KpReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/transit":{"post":{"summary":"Transit Endpoint","description":"Transit (Gochar) & Sade-Sati report — the live, query-time transit overlay\nrendered as a structured, bilingual, source-cited report asset (§7). Builds the\nmember's stable birth-derived Jyotish bundle, computes the FRESH transit overlay\nover it (current gochar of the slow grahas with their house from the natal Moon\nand Lagna, the live Sade Sati phase, Jupiter's transit favourability, and the\nVimshottari period running today), and re-presents it as an addressable asset.\n\nThis closes the gap the natal Dosha report disclosed: Sade Sati is transit-\ndependent and was honestly NOT asserted there — this endpoint IS that current-\ntransit computation. Transit positions are pure ephemeris arithmetic over the\ncurrent sky; no astrological judgement is added and nothing is fabricated. §12\nguidance-not-fatalism (a transit is a period, not a fate-verdict; Sade Sati is a\ntime of discipline, not a sentence of misfortune); no scripture quoted. The LLM\nonly narrates; this layer is pure templating.","operationId":"transit_endpoint_transit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransitReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/reports/generate":{"post":{"summary":"Reports Generate Endpoint","description":"Generate the content of a free, deterministic report from the personal\nJyotish bundle. The catalog (`/api_v1_reports_list`) lists the offering and\nits unlock state; THIS endpoint produces the report behind a \"view\" CTA.\n\nOnly the free, fully-deterministic single-profile reports are generated here\n(birth_report, personalised_remedies); paid / interpretive / two-chart reports\nreturn 422 (no path to a paid report for free, no fabricated content). Every\nvalue in the report is sourced from a bundle key and cited (§8.3).","operationId":"reports_generate_endpoint_reports_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/reports/comprehensive":{"post":{"summary":"Reports Comprehensive Endpoint","description":"Complete birth-chart analysis — ONE report that composes every deterministic\nnatal lens (doshas, yogas, the dasha timeline, the houses, the bhav-chalit cusp\noverlay, the divisional charts, and the KP star/sub lords) into a single\nstructured, source-cited asset (§7). It builds the member's stable birth-derived\nJyotish bundle once and assembles the already-LIVE per-lens report renderers over\nit — each section is carried VERBATIM, so no new Jyotish rule is invented and no\nnew entitlement surface is added (every lens is its own ungated endpoint). A lens\nthat honest-degrades for this chart is recorded as absent, not invented. NATAL-\nonly by design (the transit/Sade-Sati lens needs a fresh current-sky overlay and\nstays its own live /transit endpoint). §12 guidance-not-fatalism; no fabricated\nscripture; money-free. The LLM only narrates; this layer is pure composition.","operationId":"reports_comprehensive_endpoint_reports_comprehensive_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComprehensiveReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/reports/timing":{"post":{"summary":"Reports Timing Endpoint","description":"Dated timing forecast — the \"good vs careful dated windows\" view (BM-2).\nBuilds the member's stable birth-derived Jyotish bundle, computes the fresh\ntransit overlay (for the as-of anchor + the current Sade Sati overlay note),\nruns the deterministic dasha-based timing picker\n(timing_windows.compute_timing_windows, timing_v1) for the requested life-area,\nand re-presents its favourable + caution windows as a structured, bilingual,\nsource-cited report asset (§7).\n\nEvery window — its dates, the active Mahādaśā/Antardaśā lords, score,\nconfidence and reasons — is carried VERBATIM from the picker; the favourable /\ncaution classification is the engine's own deterministic scoring, not a\nfabricated verdict. §12 guidance-not-fatalism (a favourable window is an\nopportunity to act, a caution window asks for care — neither is a fixed\noutcome; the health domain adds a medical-decision caveat); no scripture\nquoted; money-free. The LLM only narrates; this layer is pure templating.","operationId":"reports_timing_endpoint_reports_timing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TimingForecastRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/reports/education":{"post":{"summary":"Reports Education Endpoint","description":"Education & learning report — the deterministic education-domain reading.\nBuilds the member's birth-derived Jyotish bundle, runs the deterministic\neducation judgement engine (education_judgement.compute_education_judgement,\neducation_v1.0) over the chart WITH the D24 divisional, the running\nVimshottari MD+AD, and a fresh transit overlay so the FULL R3 weight is\nrealized (1.0), and re-presents its house / karaka / varga / daśā / transit\nscoring + verdict tier as a structured, bilingual, source-cited report (§7).\n\nEvery score, dignity, house-strength block and reasoning factor is carried\nVERBATIM from the engine; the composite score and the verdict tier are the\nengine's own deterministic classification, not a fabricated verdict. The\nengine's own coverage disclosure (partial_coverage + coverage_note) is\nsurfaced verbatim (§8.3). §12 guidance-not-fatalism:\nthe reading maps how the chart supports study — it is not a verdict on a\nperson's intelligence, worth, or future; no scripture is quoted; money-free.\nThe LLM only narrates; this layer is pure templating.","operationId":"reports_education_endpoint_reports_education_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EducationReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/reports/domain":{"post":{"summary":"Reports Domain Endpoint","description":"Focused life-area reading — the deterministic domain-packet view.\nBuilds the member's birth-derived Jyotish bundle, computes the fresh transit\noverlay, assembles the deterministic domain packet\n(domain_packets.build_domain_packet, domain_packets_v1) for the requested life\narea — the relevant houses & their lords, the karaka planets, the relevant\ndivisional chart, the natal yogas/doshas, the running daśā's relevance, the\nlive transits touching the area, the live remedies and the daśā-based timing\nwindows — and re-presents those FACTS as a structured, bilingual, source-cited\nreport asset (§7).\n\nThe engine's own contract is \"STRUCTURED FACTS ONLY — it never contains a\nprediction\"; every fact is carried VERBATIM and this layer adds no verdict,\nscore or astrological judgement. §12 guidance-not-fatalism (a placement marks\na tendency and a support, never a fixed outcome); for the health domain the\nengine's own safety disclaimer is carried verbatim and a medical-decision\ncaveat is added; no scripture quoted; money-free. The LLM only narrates; this\nlayer is pure templating.","operationId":"reports_domain_endpoint_reports_domain_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/varga/domain-pack":{"post":{"summary":"Varga Domain Pack","description":"Atomic deterministic domain packet for reusable Ask/dashboard/API cards.","operationId":"varga_domain_pack_varga_domain_pack_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/career/d10":{"post":{"summary":"Career D10","description":"Career-focused D10 projection from the existing bundle/domain engines.","operationId":"career_d10_career_d10_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/health/risk-windows":{"post":{"summary":"Health Risk Windows","description":"Spiritual health caution windows; never medical diagnosis.","operationId":"health_risk_windows_health_risk_windows_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthRiskWindowsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/compatibility/advanced":{"post":{"summary":"Compatibility Advanced","description":"Advanced compatibility wrapper over current Gun Milan + Manglik evidence.","operationId":"compatibility_advanced_compatibility_advanced_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/dasha/chara":{"post":{"summary":"Dasha Chara","operationId":"dasha_chara_dasha_chara_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/dasha/kalachakra":{"post":{"summary":"Dasha Kalachakra","operationId":"dasha_kalachakra_dasha_kalachakra_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"reserved_unavailable"}},"/annual/varshaphala":{"post":{"summary":"Annual Varshaphala","operationId":"annual_varshaphala_annual_varshaphala_post","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1900},{"type":"null"}],"title":"Year"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"reserved_unavailable"}},"/annual/muntha":{"post":{"summary":"Annual Muntha","operationId":"annual_muntha_annual_muntha_post","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1900},{"type":"null"}],"title":"Year"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"reserved_unavailable"}},"/annual/mudda-dasha":{"post":{"summary":"Annual Mudda Dasha","operationId":"annual_mudda_dasha_annual_mudda_dasha_post","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1900},{"type":"null"}],"title":"Year"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"reserved_unavailable"}},"/annual/tajika-yogas":{"post":{"summary":"Annual Tajika Yogas","operationId":"annual_tajika_yogas_annual_tajika_yogas_post","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1900},{"type":"null"}],"title":"Year"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"reserved_unavailable"}},"/sarvatobhadra":{"post":{"summary":"Sarvatobhadra","operationId":"sarvatobhadra_sarvatobhadra_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"reserved_unavailable"}},"/upagraha":{"post":{"summary":"Upagraha","operationId":"upagraha_upagraha_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"reserved_unavailable"}},"/special-lagnas":{"post":{"summary":"Special Lagnas","operationId":"special_lagnas_special_lagnas_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"reserved_unavailable"}},"/argala":{"post":{"summary":"Argala","operationId":"argala_argala_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChartRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"reserved_unavailable"}},"/api/v1/jyotish/interpretation_packet":{"post":{"summary":"Api V1 Jyotish Interpretation Packet","description":"BDA Jyotish Knowledge Graph packet for dashboard, Ask and future pages.","operationId":"api_v1_jyotish_interpretation_packet_api_v1_jyotish_interpretation_packet_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InterpretationPacketRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"},"options":{"summary":"Api V1 Jyotish Interpretation Packet Options","operationId":"api_v1_jyotish_interpretation_packet_options_api_v1_jyotish_interpretation_packet_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/jyotish/prashna":{"post":{"summary":"Jyotish Prashna Endpoint","description":"KP horary judgement. Returns the deterministic Prashna packet —\nKP Lagna from the seed number, planets at question time, KP sub-lords\nper planet + per cusp, Ruling Planets, significator chain for the\nquestion house, verdict + Prashna-Moon dasha timing.\n\nThe LLM may only EXPLAIN the packet. It must never invent the KP Lagna,\nRP set, significators, verdict or timing periods.","operationId":"jyotish_prashna_endpoint_jyotish_prashna_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrashnaRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/jyotish/prashna/batch":{"post":{"summary":"Jyotish Prashna Batch Endpoint","description":"Multi-option Prashna comparison (Block 5E).\n\nTakes a master_seed + N labeled options (each with its own seed and\noptional region / direction / per-option location). Returns the\ndeterministic ranked recommendation:\n\n  - master_verdict  (\"is the matter itself promised?\" gate)\n  - per-option briefs with composite_score, verdict, timing tiers\n  - a stable comparison_matrix the report renderer can table\n  - top_choice + ranked_labels (deterministic — same input, same order)\n\nThe LLM may only EXPLAIN this packet. It must NOT invent a\ncomposite_score, a rank, a top_choice or a timing_summary_label.","operationId":"jyotish_prashna_batch_endpoint_jyotish_prashna_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrashnaBatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/jyotish/prashna/report":{"post":{"summary":"Jyotish Prashna Report Endpoint","description":"Deterministic Prashna report renderer (Block 6).\n\nTakes a Prashna packet (or computes one) plus optional memory context\nand emits a structured report with full audit trail. Every value in\nthe output is sourced from a documented packet key — no LLM is invoked\nin this layer. State/region batches are flagged is_accepted_difference\nwith a mandatory caveat citing the Block 5F-C investigation report.\n\nThe LLM may consume this report as input to a Maa Adya Kali voice\nprose layer (Block 6B), but must NOT invent any value the report\nsurfaces. See app/prashna_report.py module docstring for the 9 hard\nrules this renderer honors.","operationId":"jyotish_prashna_report_endpoint_jyotish_prashna_report_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrashnaReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/geoip":{"get":{"summary":"Geoip","description":"IP-derived geolocation (no consent needed — it's request metadata).\n\nReturns lat/lng/tz/city/country derived from the client IP.\nUse as the FALLBACK location source. Priority order per architecture:\n  1. Manual location (user input)  — highest\n  2. Browser GPS  (with permission)\n  3. IP geolocation  — this endpoint (fallback)","operationId":"geoip_geoip_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/festivals":{"get":{"summary":"Panchang Festivals","description":"List Sanatan Dharma festivals computed for any city/range.\n\nEach festival is returned with:\n  - Gregorian date (local timezone)\n  - Bilingual name (en + hi)\n  - Deity, description, lane classification\n  - Muhurat windows (Pradosh, Nishita, Abhijit, Bhadra-avoid)\n  - Rule explanation (which tithi/nakshatra/sankranti instant drives the date)\n\nMath: tithi = (Moon longitude - Sun longitude) / 12° · sidereal Lahiri ayanamsa.\nSee app/festivals.py for the full algorithm.\n\nTransport: the response is gzip-compressed when the client advertises\n`Accept-Encoding: gzip` and the body clears the size threshold; the\ndecompressed body is byte-identical to the plain JSON, and identity clients\nare unchanged. The payload is computed by `_panchang_festivals_dict`, which\n`/panchang/month` also calls internally (consuming the dict directly, so it\nis unaffected by the route's transport encoding).","operationId":"panchang_festivals_panchang_festivals_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"number","default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"Australia/Sydney","title":"Tz"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":365,"title":"Days"}},{"name":"anchor_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anchor Date"}},{"name":"only","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Only"}},{"name":"include_aliases","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Aliases"}},{"name":"include_popular","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Popular"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/vrats":{"get":{"summary":"Panchang Vrats","description":"Recurring vrat scan for a city/range.\n\nUses the ratified panchanga scan rulesets, not the broad festival registry:\nEkadashi, Purnima, Amavasya, Pradosha, Sankashti, and Masik Shivaratri.\n\nTransport: the response is gzip-compressed when the client advertises\n`Accept-Encoding: gzip` and the body clears the size threshold; the\ndecompressed body is byte-identical to the plain JSON, and identity clients\nare unchanged. The payload is computed by `_panchang_vrats_dict`, which\n`/panchang/month` also calls internally (consuming the dict directly, so it\nis unaffected by the route's transport encoding).","operationId":"panchang_vrats_panchang_vrats_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"Australia/Sydney","title":"Tz"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":60,"title":"Days"}},{"name":"max_per_rule","in":"query","required":false,"schema":{"type":"integer","maximum":6,"minimum":1,"default":2,"title":"Max Per Rule"}},{"name":"include_top","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Top"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/calendar/convert":{"get":{"summary":"Calendar Convert","operationId":"calendar_convert_calendar_convert_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Gregorian local date to convert (YYYY-MM-DD)","title":"Date"},"description":"Gregorian local date to convert (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IANA timezone; auto-resolved if omitted","title":"Tz"},"description":"IANA timezone; auto-resolved if omitted"},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","default":0.0,"title":"Elevation M"}},{"name":"profile","in":"query","required":false,"schema":{"type":"string","default":"north_india_purnimanta","title":"Profile"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/festival/observance/explain":{"get":{"summary":"Festival Observance Explain","operationId":"festival_observance_explain_festival_observance_explain_get","parameters":[{"name":"slug","in":"query","required":true,"schema":{"type":"string","description":"Festival rule key or supported regional alias","title":"Slug"},"description":"Festival rule key or supported regional alias"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1900},{"type":"null"}],"title":"Year"}},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"Australia/Sydney","title":"Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/festival/observance/compare":{"get":{"summary":"Festival Observance Compare","operationId":"festival_observance_compare_festival_observance_compare_get","parameters":[{"name":"slug","in":"query","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1900},{"type":"null"}],"title":"Year"}},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"Australia/Sydney","title":"Tz"}},{"name":"compare_lat","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":90.0,"minimum":-90.0},{"type":"null"}],"title":"Compare Lat"}},{"name":"compare_lng","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Compare Lng"}},{"name":"compare_tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Compare Tz"}},{"name":"tradition","in":"query","required":false,"schema":{"type":"string","default":"north_india_purnimanta","title":"Tradition"}},{"name":"compare_tradition","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Compare Tradition"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/festival/provenance/{slug}":{"get":{"summary":"Festival Provenance","operationId":"festival_provenance_festival_provenance__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/festival/debate/{slug}":{"get":{"summary":"Festival Debate","operationId":"festival_debate_festival_debate__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1900},{"type":"null"}],"title":"Year"}},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"Australia/Sydney","title":"Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/festival/why-not/{slug}":{"get":{"summary":"Festival Why Not","operationId":"festival_why_not_festival_why_not__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"target_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"Optional civil date to compare against the computed observance","title":"Target Date"},"description":"Optional civil date to compare against the computed observance"},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1900},{"type":"null"}],"title":"Year"}},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"Australia/Sydney","title":"Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/festival/locality-shift/{slug}":{"get":{"summary":"Festival Locality Shift","operationId":"festival_locality_shift_festival_locality_shift__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1900},{"type":"null"}],"title":"Year"}},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"Australia/Sydney","title":"Tz"}},{"name":"compare_lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":28.6139,"title":"Compare Lat"}},{"name":"compare_lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":77.209,"title":"Compare Lng"}},{"name":"compare_tz","in":"query","required":false,"schema":{"type":"string","default":"Asia/Kolkata","title":"Compare Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/new-year/regional":{"get":{"summary":"Regional New Years","operationId":"regional_new_years_new_year_regional_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1900},{"type":"null"}],"title":"Year"}},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"Australia/Sydney","title":"Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/temple-observance/{festival}":{"get":{"summary":"Temple Observance","operationId":"temple_observance_temple_observance__festival__get","parameters":[{"name":"festival","in":"path","required":true,"schema":{"type":"string","title":"Festival"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1900},{"type":"null"}],"title":"Year"}},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"Australia/Sydney","title":"Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/vrat/parana":{"get":{"summary":"Vrat Parana","operationId":"vrat_parana_vrat_parana_get","parameters":[{"name":"vrat","in":"query","required":false,"schema":{"type":"string","default":"ekadashi","title":"Vrat"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"Australia/Sydney","title":"Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/eclipse/visibility":{"get":{"summary":"Eclipse Visibility","operationId":"eclipse_visibility_eclipse_visibility_get","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Start date for eclipse scan","title":"Date"},"description":"Start date for eclipse scan"},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":0.0,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":0.0,"title":"Lng"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/eclipse/sutak":{"get":{"summary":"Eclipse Sutak","operationId":"eclipse_sutak_eclipse_sutak_get","parameters":[{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Start date for eclipse scan","title":"Date"},"description":"Start date for eclipse scan"},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":0.0,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":0.0,"title":"Lng"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/feeds/festivals.json":{"get":{"summary":"Festivals Json Feed","operationId":"festivals_json_feed_feeds_festivals_json_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"Australia/Sydney","title":"Tz"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":3660,"minimum":1,"default":365,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/feeds/vrats.json":{"get":{"summary":"Vrats Json Feed","operationId":"vrats_json_feed_feeds_vrats_json_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"Australia/Sydney","title":"Tz"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":366,"minimum":1,"default":90,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/feeds/gochar.json":{"get":{"summary":"Gochar Json Feed","operationId":"gochar_json_feed_feeds_gochar_json_get","parameters":[{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"description":"UTC start date for the gochar scan (YYYY-MM-DD)","title":"From Date"},"description":"UTC start date for the gochar scan (YYYY-MM-DD)"},{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":1100,"minimum":1,"default":370,"title":"Window Days"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/calendar/festivals.ics":{"get":{"summary":"Festivals Ics","operationId":"festivals_ics_calendar_festivals_ics_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"Australia/Sydney","title":"Tz"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":3660,"minimum":1,"default":365,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/festival/ics":{"get":{"summary":"Festival Ics Alias","operationId":"festival_ics_alias_festival_ics_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"Australia/Sydney","title":"Tz"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":3660,"minimum":1,"default":365,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/calendar/vrats.ics":{"get":{"summary":"Vrats Ics","operationId":"vrats_ics_calendar_vrats_ics_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"Australia/Sydney","title":"Tz"}},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Date"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":366,"minimum":1,"default":90,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/calendar/muhurta.ifb":{"get":{"summary":"Muhurta Freebusy","operationId":"muhurta_freebusy_calendar_muhurta_ifb_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"date","in":"query","required":true,"schema":{"type":"string","format":"date","description":"Local date (YYYY-MM-DD)","title":"Date"},"description":"Local date (YYYY-MM-DD)"},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"Australia/Sydney","title":"Tz"}},{"name":"elevation_m","in":"query","required":false,"schema":{"type":"number","default":0.0,"title":"Elevation M"}},{"name":"profile","in":"query","required":false,"schema":{"type":"string","default":"north_india_purnimanta","title":"Profile"}},{"name":"ayanamsa","in":"query","required":false,"schema":{"type":"string","default":"lahiri","title":"Ayanamsa"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/openapi/domain/{family}":{"get":{"summary":"Openapi Domain Family","operationId":"openapi_domain_family_openapi_domain__family__get","parameters":[{"name":"family","in":"path","required":true,"schema":{"type":"string","title":"Family"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/schema/festival/{slug}":{"get":{"summary":"Festival Schema Jsonld","operationId":"festival_schema_jsonld_schema_festival__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}},{"name":"lat","in":"query","required":false,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"Australia/Sydney","title":"Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/schema/temple/{temple_id}":{"get":{"summary":"Temple Schema Jsonld","operationId":"temple_schema_jsonld_schema_temple__temple_id__get","parameters":[{"name":"temple_id","in":"path","required":true,"schema":{"type":"string","title":"Temple Id"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name; defaults to the slug title","title":"Name"},"description":"Display name; defaults to the slug title"},{"name":"url","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Canonical public URL; defaults to bda.ai/teerth/{id}","title":"Url"},"description":"Canonical public URL; defaults to bda.ai/teerth/{id}"},{"name":"locality","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Locality"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"}},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"IN","title":"Country"}},{"name":"lat","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":90.0,"minimum":-90.0},{"type":"null"}],"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Lng"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/panchang/diwali":{"get":{"summary":"Panchang Diwali","description":"Gold-standard Diwali Lakshmi Puja muhurat for any location + year.\n\nThis is the FIRST gold-standard rule per the architecture brief.\nReturns local civil date + exact Pradosh × Amavasya intersection\nwindow + methodology fingerprint (diwali_lakshmi_puja_v1).\n\nThe 200 muhurat payload (window + methodology fingerprint + meta) is the\nheaviest single-festival read-only SEO/AEO surface, so it is gzip-negotiated\nvia the audited `_json_response_maybe_gzip` helper: the DECOMPRESSED body is\nbyte-identical to the old `return _with_meta(result)` path (no\ncontract/field/value change), and the 404 (un-resolvable year) path is\nunchanged. No PII; no reflected request input.\n\nExample:\n    GET /panchang/diwali?year=2025&lat=-33.8688&lng=151.2093&tz=Australia/Sydney","operationId":"panchang_diwali_panchang_diwali_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}},{"name":"lat","in":"query","required":false,"schema":{"type":"number","default":28.6139,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","default":77.209,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"Asia/Kolkata","title":"Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/context/resolve":{"get":{"summary":"Context Resolve","description":"Resolve canonical public context for any page/widget/chat call.\n\nTransport: the canonical context carries a full location object plus the\npanchang summary, so the dashboard fetches it on every location change (and\nit triggers the bundle load). The response is gzip-negotiated via the\naudited ``_json_response_maybe_gzip`` helper — the DECOMPRESSED body is\nbyte-identical to the old ``return _with_meta(...)`` path (no contract,\nfield, or value change), and clients that do not advertise\n``Accept-Encoding: gzip`` (or tiny payloads) get the unchanged JSON body.\n``request`` is FastAPI-injected, not a query param, so the public query\ncontract (lat/lng/lon/tz/place/date/time) is unchanged. Same proven\ntransport-only pattern as #460/#461/#462/#463/#469/#470/#480.","operationId":"context_resolve_context_resolve_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":90.0,"minimum":-90.0},{"type":"null"}],"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Lng"}},{"name":"lon","in":"query","required":false,"schema":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Lon"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional IANA hint; coordinates remain canonical","title":"Tz"},"description":"Optional IANA hint; coordinates remain canonical"},{"name":"place","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Place"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date"}},{"name":"time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/location/search":{"get":{"summary":"Location Search","description":"Public place search using the same candidate-confirmation contract.\n\nThis is the canonical system entry point for turning user text into\ncandidate locations. Callers must still use/confirm one returned candidate;\nnever silently pick an ambiguous city.\n\nTransport: a place-search response carries up to 10 candidates × ~16 fields\neach (~2.5–3 KB), and the dashboard birth-place autocomplete fires it\nper-keystroke during onboarding, so the response is gzip-negotiated via the\naudited ``_json_response_maybe_gzip`` helper. The DECOMPRESSED body is\nbyte-identical to the old ``return _with_meta(...)`` path (no contract,\nfield, or value change), and clients that do not advertise\n``Accept-Encoding: gzip`` (or tiny payloads) get the unchanged JSON body.\nSame proven transport-only pattern as #460/#461/#462/#463/#469/#470.","operationId":"location_search_location_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"description":"Place name or address","title":"Q"},"description":"Place name or address"},{"name":"country_hint","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional ISO country hint, e.g. in, au, gb","title":"Country Hint"},"description":"Optional ISO country hint, e.g. in, au, gb"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"default":5,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/location/resolve":{"get":{"summary":"Location Resolve","description":"Normalize coordinates into the canonical location object.\n\nCoordinates are truth. The timezone is resolved from lat/lng and any\nconflicting hint is rejected by _resolve_timezone.","operationId":"location_resolve_location_resolve_get","parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"}},{"name":"lng","in":"query","required":true,"schema":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional IANA timezone hint; validated against coordinates","title":"Tz"},"description":"Optional IANA timezone hint; validated against coordinates"},{"name":"label","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}},"/question/diagnose":{"post":{"summary":"Question Diagnose","operationId":"question_diagnose_question_diagnose_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionDiagnoseRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/question/evidence":{"post":{"summary":"Question Evidence","operationId":"question_evidence_question_evidence_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionEvidenceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/question/answer-pack":{"post":{"summary":"Question Answer Pack","operationId":"question_answer_pack_question_answer_pack_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionEvidenceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/answer/provenance/{answer_id}":{"get":{"summary":"Answer Provenance","operationId":"answer_provenance_answer_provenance__answer_id__get","parameters":[{"name":"answer_id","in":"path","required":true,"schema":{"type":"string","title":"Answer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/validation/event-map":{"post":{"summary":"Validation Event Map","operationId":"validation_event_map_validation_event_map_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationEventMapRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/jaimini/profile":{"post":{"summary":"Jaimini Profile","operationId":"jaimini_profile_jaimini_profile_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardBundleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/dasha/yogini":{"post":{"summary":"Dasha Yogini","operationId":"dasha_yogini_dasha_yogini_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardBundleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/dasha/yogini/report":{"post":{"summary":"Dasha Yogini Report","operationId":"dasha_yogini_report_dasha_yogini_report_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardBundleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/dasha/ashtottari":{"post":{"summary":"Dasha Ashtottari","operationId":"dasha_ashtottari_dasha_ashtottari_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardBundleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/dasha/narayana":{"post":{"summary":"Dasha Narayana","operationId":"dasha_narayana_dasha_narayana_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardBundleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/dasha/chara/report":{"post":{"summary":"Dasha Chara Report","operationId":"dasha_chara_report_dasha_chara_report_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardBundleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180},"x-bda-capability-status":"available"}},"/arudha/all":{"post":{"summary":"Arudha All","operationId":"arudha_all_arudha_all_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardBundleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60},"x-bda-capability-status":"available"}},"/panchang/festival/{rule_key}":{"get":{"summary":"Panchang Festival Single","description":"Compute a single festival in a given year for a given city.\nUseful for 'When is Diwali 2026 in Sydney?' style questions.\n\nThe 200 occurrence payload is read-only and deterministic and is fetched by\nanswer-engine/SEO crawlers for 'when is <festival> <year>' queries, so it is\ngzip-negotiated via the audited `_json_response_maybe_gzip` helper: the\nDECOMPRESSED body is byte-identical to the old `return _with_meta({...})`\npath (no contract/field/value change), and both 404 paths (unknown rule key,\nun-resolvable occurrence) are unchanged. No PII; no reflected request input.","operationId":"panchang_festival_single_panchang_festival__rule_key__get","parameters":[{"name":"rule_key","in":"path","required":true,"schema":{"type":"string","title":"Rule Key"}},{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"}},{"name":"lat","in":"query","required":false,"schema":{"type":"number","default":-33.8688,"title":"Lat"}},{"name":"lng","in":"query","required":false,"schema":{"type":"number","default":151.2093,"title":"Lng"}},{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"Australia/Sydney","title":"Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"429":{"$ref":"#/components/responses/BdaEvaluationRateLimitExceeded"},"504":{"$ref":"#/components/responses/BdaEvaluationTimeout"}},"x-bda-access":{"audience":"public_evaluation","commercial_api_access_authorized":false,"attribution_required":true,"provenance_must_be_retained":true,"external_evaluation_limits_only":true,"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30},"x-bda-capability-status":"available"}}},"components":{"schemas":{"AshtakavargaReportRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"AshtakavargaReportRequest"},"BhavChalitReportRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"BhavChalitReportRequest"},"BundleRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"firebase_id_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firebase Id Token"},"member_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Member Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"transits":{"type":"boolean","title":"Transits","default":true},"domains":{"type":"boolean","title":"Domains","default":true}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"BundleRequest"},"ChartRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"elevation_m":{"type":"number","title":"Elevation M","default":0.0},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"type":"string","title":"Ayanamsa","default":"lahiri"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"ChartRequest"},"ComprehensiveReportRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"ComprehensiveReportRequest"},"DashaTimelineRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"DashaTimelineRequest"},"DashboardBundleRequest":{"properties":{"firebase_id_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firebase Id Token"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"member_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Member Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lat"},"lng":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lng"},"lon":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lon"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"place":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Place"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"},"time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time"},"date_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Source"},"time_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Source"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}},"type":"object","title":"DashboardBundleRequest"},"DivisionalReportRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"DivisionalReportRequest"},"DomainReportRequest":{"properties":{"domain":{"type":"string","title":"Domain","description":"career|marriage|education|finance|health|travel|spiritual"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["domain","date_of_birth","time_of_birth","lat","lng"],"title":"DomainReportRequest"},"DoshaRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"DoshaRequest"},"EducationReportRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"EducationReportRequest"},"ElectionalMuhuratRequest":{"properties":{"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"start_date":{"type":"string","format":"date","title":"Start Date","description":"First local date to scan (YYYY-MM-DD)"},"days":{"type":"integer","maximum":31.0,"minimum":1.0,"title":"Days","description":"Number of days to scan from start_date","default":7},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz","description":"IANA timezone (auto-resolved from lat/lng if omitted)"},"activity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Activity","description":"Optional activity (e.g. griha_pravesh, vivah). Echoed only — activity-specific muhurat rulesets are pandit-pending; the ranking is activity-agnostic universal classical signals."},"top_n":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Top N","description":"How many top windows to return","default":10},"profile":{"type":"string","title":"Profile","description":"Regional profile","default":"north_india_purnimanta"},"ayanamsa":{"type":"string","title":"Ayanamsa","description":"Sidereal ayanamsa","default":"lahiri"}},"type":"object","required":["lat","lng","start_date"],"title":"ElectionalMuhuratRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthRiskWindowsRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"elevation_m":{"type":"number","title":"Elevation M","default":0.0},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"type":"string","title":"Ayanamsa","default":"lahiri"},"horizon_months":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Horizon Months","default":12}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"HealthRiskWindowsRequest"},"HousesReportRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"HousesReportRequest"},"InterpretationPacketRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat","description":"Birth latitude"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng","description":"Birth longitude"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain","description":"Optional life-area: career|marriage|education|finance|health|travel|spiritual"},"current_lat":{"anyOf":[{"type":"number","maximum":90.0,"minimum":-90.0},{"type":"null"}],"title":"Current Lat"},"current_lng":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Current Lng"},"current_lon":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Current Lon"},"current_tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Tz"},"current_place":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Place"},"current_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Date"},"current_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Time"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"InterpretationPacketRequest"},"KpReportRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"KpReportRequest"},"LifeEventRecord":{"properties":{"subject":{"type":"string","maxLength":80,"minLength":1,"title":"Subject","default":"self"},"category":{"type":"string","maxLength":80,"minLength":1,"title":"Category"},"event_label":{"type":"string","maxLength":200,"minLength":1,"title":"Event Label"},"event_date":{"type":"string","format":"date","title":"Event Date"},"notes":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Notes"},"source":{"type":"string","maxLength":80,"minLength":1,"title":"Source","default":"owner"},"consented":{"type":"boolean","title":"Consented","default":false}},"type":"object","required":["category","event_label","event_date"],"title":"LifeEventRecord"},"MatchPerson":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"type":"string","title":"Ayanamsa","default":"lahiri"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"MatchPerson"},"MatchRequest":{"properties":{"groom":{"$ref":"#/components/schemas/MatchPerson"},"bride":{"$ref":"#/components/schemas/MatchPerson"}},"type":"object","required":["groom","bride"],"title":"MatchRequest"},"PanchangCommentRequest":{"properties":{"page_key":{"type":"string","maxLength":180,"minLength":1,"title":"Page Key"},"page_url":{"type":"string","maxLength":500,"minLength":1,"title":"Page Url"},"display_name":{"type":"string","maxLength":60,"minLength":1,"title":"Display Name","default":"Devotee"},"comment":{"type":"string","maxLength":1500,"minLength":3,"title":"Comment"},"idempotency_key":{"type":"string","maxLength":100,"minLength":8,"title":"Idempotency Key"},"website":{"type":"string","maxLength":200,"title":"Website","description":"Spam honeypot; must remain empty","default":""}},"type":"object","required":["page_key","page_url","comment","idempotency_key"],"title":"PanchangCommentRequest"},"PrashnaBatchOption":{"properties":{"label":{"type":"string","maxLength":120,"minLength":1,"title":"Label","description":"Human-readable label, e.g. 'Wagga Wagga'"},"seed_number":{"type":"integer","maximum":249.0,"minimum":1.0,"title":"Seed Number","description":"KP horary seed 1-249 for this option"},"lat":{"anyOf":[{"type":"number","maximum":90.0,"minimum":-90.0},{"type":"null"}],"title":"Lat","description":"Optional override of the querent location for this option"},"lng":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"region":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Region","description":"Region tag (e.g. 'regional NSW', 'metro Sydney') — metadata only"},"direction":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Direction","description":"Direction tag (e.g. 'north', 'south-east', 'interstate') — metadata only"}},"type":"object","required":["label","seed_number"],"title":"PrashnaBatchOption"},"PrashnaBatchRequest":{"properties":{"master_seed":{"type":"integer","maximum":249.0,"minimum":1.0,"title":"Master Seed","description":"Master question seed (the matter-itself gate)"},"options":{"items":{"$ref":"#/components/schemas/PrashnaBatchOption"},"type":"array","maxItems":10,"minItems":1,"title":"Options"},"question":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question"},"question_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question Domain","description":"property|legal|sale|marriage|career|education|finance|health|travel|children"},"question_schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question Schema","description":"Multi-house schema key — overrides question_domain → schema mapping"},"question_time_utc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question Time Utc","description":"ISO datetime when the question was asked (defaults to now UTC)"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat","description":"Default querent location latitude"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng","description":"Default querent location longitude"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"type":"string","title":"Ayanamsa","default":"lahiri"},"birth_details":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Birth Details","description":"Optional querent natal data — folds NRP into every option's packet"}},"type":"object","required":["master_seed","options","lat","lng"],"title":"PrashnaBatchRequest"},"PrashnaReportRequest":{"properties":{"packet":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Packet","description":"A Prashna packet from compute_prashna or compute_prashna_batch. If omitted, the endpoint computes it from the single_seed_inputs OR batch_inputs field."},"single_seed_inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Single Seed Inputs","description":"Inputs forwarded to compute_prashna (seed_number, lat, lng, question_time_utc, etc.) when packet is not supplied."},"batch_inputs":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Batch Inputs","description":"Inputs forwarded to compute_prashna_batch (master_seed, options[], lat, lng, etc.) when packet is not supplied."},"memory_context":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Memory Context","description":"Optional memory packet from /jyotish/memory; cited verbatim in the memory_context_section of the report."}},"type":"object","title":"PrashnaReportRequest","description":"Either provide a fully-formed Prashna packet (single-seed or batch),\nOR provide the inputs needed for compute_prashna / compute_prashna_batch\nand the endpoint will compute the packet first, then render it.\n\n`memory_context` is optional. When supplied, the report cites recent\nthemes / dominant domain / similar prior questions in the memory\nsection (Block 2A integration)."},"PrashnaRequest":{"properties":{"seed_number":{"type":"integer","maximum":249.0,"minimum":1.0,"title":"Seed Number","description":"KP horary number 1-249"},"question":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question"},"question_domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question Domain","description":"property|marriage|career|education|finance|health|travel|legal|sale|..."},"question_house":{"anyOf":[{"type":"integer","maximum":12.0,"minimum":1.0},{"type":"null"}],"title":"Question House","description":"Explicit house 1-12 (overrides question_domain → single-house verdict)"},"question_schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question Schema","description":"Multi-house schema key — property|legal|sale|marriage|career|education|finance|health|travel|children. Overrides question_domain → multi-house schema mapping."},"question_time_utc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Question Time Utc","description":"ISO datetime when the question was asked (defaults to now UTC)"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"type":"string","title":"Ayanamsa","default":"lahiri"},"birth_details":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Birth Details","description":"Optional querent natal data: {date_of_birth, time_of_birth, birth_lat, birth_lng, birth_tz, ayanamsa}. When supplied, NRP corroboration is added to the verdict."}},"type":"object","required":["seed_number","lat","lng"],"title":"PrashnaRequest"},"QuestionDiagnoseRequest":{"properties":{"question":{"type":"string","maxLength":2000,"minLength":1,"title":"Question"},"surface":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Surface","default":"dashboard"},"lang":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"},"logged_in":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Logged In","default":false},"has_birth_details":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Birth Details","default":false}},"type":"object","required":["question"],"title":"QuestionDiagnoseRequest"},"QuestionEvidenceRequest":{"properties":{"firebase_id_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firebase Id Token"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"member_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Member Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lat"},"lng":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lng"},"lon":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lon"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"place":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Place"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date"},"time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time"},"date_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date Source"},"time_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Source"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"question":{"type":"string","maxLength":2000,"minLength":1,"title":"Question"},"lang":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"},"surface":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Surface","default":"dashboard"},"max_chars":{"anyOf":[{"type":"integer","maximum":8000.0,"minimum":500.0},{"type":"null"}],"title":"Max Chars","default":2000}},"type":"object","required":["question"],"title":"QuestionEvidenceRequest"},"ReportGenerateRequest":{"properties":{"report_id":{"type":"string","title":"Report Id","description":"Catalog report id to generate. Supported (free, deterministic): birth_report | personalised_remedies."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"firebase_id_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firebase Id Token"},"member_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Member Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"first_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"}},"type":"object","required":["report_id","date_of_birth","time_of_birth","lat","lng"],"title":"ReportGenerateRequest"},"ShadbalaReportRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"ShadbalaReportRequest"},"TimingForecastRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"},"domain":{"type":"string","title":"Domain","description":"Life-area to forecast: career | marriage | education | finance | health | travel | spiritual.","default":"career"},"horizon_months":{"type":"integer","maximum":120.0,"minimum":1.0,"title":"Horizon Months","description":"How far ahead to scan the daśā tree (months, 1..120).","default":36}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"TimingForecastRequest"},"TransitReportRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"TransitReportRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationEventMapRequest":{"properties":{"firebase_id_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Firebase Id Token"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"member_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Member Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"event":{"$ref":"#/components/schemas/LifeEventRecord"},"date_of_birth":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date Of Birth"},"time_of_birth":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Time Of Birth"},"lat":{"anyOf":[{"type":"number","maximum":90.0,"minimum":-90.0},{"type":"null"}],"title":"Lat"},"lng":{"anyOf":[{"type":"number","maximum":180.0,"minimum":-180.0},{"type":"null"}],"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"}},"type":"object","required":["event"],"title":"ValidationEventMapRequest"},"YogaReportRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gender"},"date_of_birth":{"type":"string","format":"date","title":"Date Of Birth"},"time_of_birth":{"type":"string","title":"Time Of Birth","description":"HH:MM:SS in local time"},"time_accuracy":{"type":"string","title":"Time Accuracy","description":"exact|approximate|unknown","default":"exact"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lng":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lng"},"tz":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tz"},"ayanamsa":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ayanamsa"}},"type":"object","required":["date_of_birth","time_of_birth","lat","lng"],"title":"YogaReportRequest"},"BdaEvaluationError":{"type":"object","required":["detail"],"properties":{"detail":{"type":"object","required":["code","message","tier"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"tier":{"type":"string"},"retry_after_seconds":{"type":"integer","minimum":1},"timeout_seconds":{"type":"integer","minimum":1},"docs":{"type":"string","format":"uri"}}}}}},"responses":{"BdaEvaluationRateLimitExceeded":{"description":"External evaluation rate limit exceeded.","headers":{"Retry-After":{"description":"Minimum number of seconds before retrying.","schema":{"type":"integer","minimum":1}},"RateLimit-Remaining":{"description":"Requests remaining in the current window.","schema":{"type":"integer","minimum":0}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BdaEvaluationError"}}}},"BdaEvaluationTimeout":{"description":"External evaluation processing deadline exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BdaEvaluationError"}}}}}},"servers":[{"url":"https://jyotish-api.bda.ai","description":"Bharat Dharma Academy public API"}],"x-bda-evaluation-policy":{"contract_version":"bda-public-api-evaluation-policy-v1","status":"interim_precommercial","enabled":true,"scope":"external evaluation clients, per network address and endpoint tier","scope_exclusions":{"first_party_website":"BDA website product traffic is outside external evaluation quotas.","internal_pipeline":"Authenticated BDA service and pipeline traffic is outside external evaluation quotas.","note":"Separate platform safety, endpoint authentication, and abuse controls remain applicable."},"tiers":[{"tier":"public_read","requests_per_minute_per_client":60,"burst_requests_per_second":12,"request_timeout_seconds":30,"description":"Deterministic GET/read endpoints."},{"tier":"public_compute","requests_per_minute_per_client":20,"burst_requests_per_second":4,"request_timeout_seconds":60,"description":"Deterministic POST/calculation endpoints."},{"tier":"public_extended","requests_per_minute_per_client":6,"burst_requests_per_second":2,"request_timeout_seconds":180,"description":"Report, evidence, projection, and other extended-work endpoints."}],"specialized_limits":[{"path":"/mcp","requests_per_minute_per_client":120,"note":"Existing MCP transport policy; tool-specific deadlines also apply."},{"path":"/panchang/comments","requests_per_window_per_client":5,"window_seconds":3600,"note":"Existing pre-moderation submission policy."}],"commercial_api_access_authorized":false,"evaluation_access":{"authentication":"none for eligible public endpoints","current_cost":"no charge within published evaluation limits","contractual_free_tier":false,"production_or_commercial_use":false},"commercial_access":{"status":"application_and_written_approval_required","pricing":"custom_quote","authentication":"server-side API credential issued during onboarding","contact":"mailto:info@bda.ai"},"onboarding_required_fields":["application_and_customer_experience","required_endpoints_or_data_categories","development_and_production_request_volume","peak_requests_per_second","production_launch_date","company_or_legal_entity_and_website","countries_or_markets","cache_transform_redistribute_or_resell_model"],"response_licence_note":"Response-level licence metadata remains authoritative and is separate from API-access terms.","production_sla":false,"attribution_required":true,"provenance_must_be_retained":true,"limits_may_change":true,"distributed_gateway_pending":true,"docs":"https://jyotish-api.bda.ai/api-docs","contact":"https://www.bda.ai/contact-us"}}