{"openapi":"3.1.0","info":{"title":"Vedara Public Calculators","version":"1.0.0","description":"Deterministic Vedic astrology calculators. The server-rendered pages are the primary surface; this API mirrors them for consistent, agent-operable access. No API key required. Availability of this API does not imply adoption by any AI assistant."},"servers":[{"url":"https://vedara.me"}],"paths":{"/api/public/tools":{"get":{"operationId":"list_public_tools","summary":"List all public calculators","description":"Machine-readable index of every tool: id, title, flattened input contract, endpoint URLs and methodology link. Browsers that request text/html get a human-readable page instead.","responses":{"200":{"description":"Tool index","content":{"application/json":{"schema":{"type":"object","required":["tools","openapi"],"properties":{"tools":{"type":"array","items":{"type":"object","required":["id","title","description","inputs","describe","calculate","methodology_url","calculation_version"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"inputs":{"type":"array","items":{"type":"object","required":["name","type","required"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"required":{"type":"boolean"},"description":{"type":"string"},"example":{},"nullable":{"type":"boolean"},"pattern":{"type":"string"},"minimum":{"type":"number"},"maximum":{"type":"number"}}}},"describe":{"type":"string","description":"GET this URL for metadata + input schema."},"calculate":{"type":"string","description":"POST the input JSON to this URL."},"methodology_url":{"type":"string"},"calculation_version":{"type":"string"}}}},"openapi":{"type":"string","description":"URL of this OpenAPI document."}}}}}}}}},"/api/public/tools/vedic-moon-sign-calculator":{"get":{"operationId":"describe_vedic_moon_sign_calculator","summary":"Describe Vedic Moon Sign Calculator","responses":{"200":{"description":"Tool metadata + input schema","content":{"application/json":{"schema":{"type":"object","required":["tool","title","summary","calculation_version","methodology_url","operationId","input_schema","example_request","disclaimer"],"properties":{"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"calculation_version":{"type":"string"},"methodology_url":{"type":"string"},"operationId":{"type":"string"},"input_schema":{"type":"object","description":"JSON Schema for the POST request body."},"example_request":{"type":"object"},"disclaimer":{"type":"string"}}}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"post":{"operationId":"calculate_vedic_moon_sign_calculator","summary":"Calculate Vedic Moon Sign Calculator","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birth_date","latitude","longitude"],"additionalProperties":false,"properties":{"birth_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"ISO 8601 date (YYYY-MM-DD)","example":"1990-06-15"},"birth_time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","nullable":true,"description":"Local 24h time HH:MM; omit if unknown","example":"14:30"},"birth_timezone":{"type":"string","description":"IANA timezone id","example":"Asia/Kolkata"},"latitude":{"type":"number","minimum":-90,"maximum":90,"example":28.6139},"longitude":{"type":"number","minimum":-180,"maximum":180,"example":77.209}}},"example":{"birth_date":"1990-06-15","birth_time":"14:30","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209}}}},"responses":{"200":{"description":"Success envelope. `result` is tool-specific; the example below is a real captured response for the example request.","headers":{"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"},"example":{"tool":"vedic-moon-sign-calculator","calculation_version":"1.0.0","input":{"birth_date":"1990-06-15","birth_time":"14:30","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209},"result":{"moon_longitude_sidereal":320.1011,"rashi":{"name":"Aquarius","number":11,"degree_in_sign":20.1011,"ruler":"Saturn"},"nakshatra":{"name":"Purva Bhadrapada","number":25,"pada":1,"ruler":"Jupiter"},"boundary":{"near_sign_boundary":false,"near_nakshatra_boundary":true,"confidence":"medium"}},"provenance":{"zodiac_system":"sidereal","ayanamsha":"Lahiri (Chitrapaksha)","ayanamsha_value_deg":23.7192,"ephemeris":{"library":"pyswisseph","version":"2.10.3.2","source":"Swiss Ephemeris"},"location_resolution":"client-supplied coordinates (Nominatim/OpenStreetMap upstream)","timezone_resolution":"IANA timezone identifier","dst_applied":false,"calculation_version":"1.0.0","birth_time_known":true,"uncertainty":null},"methodology_url":"https://vedara.me/tools/vedic-moon-sign-calculator#methodology","calculated_at":"2026-08-12T11:07:23Z","disclaimer":"Traditional Vedic framework for reflection, not a prediction or professional advice."}}}},"400":{"description":"Validation error (malformed JSON body or field-level failures)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"tool":"vedic-moon-sign-calculator","error":{"code":"invalid_input","message":"One or more fields failed validation.","field_errors":[{"field":"birth_date","message":"must be an ISO 8601 date (YYYY-MM-DD)"}]},"calculated_at":"2026-07-24T12:00:00Z"}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"Input passed schema validation but the calculation engine rejected it (e.g. unresolvable timezone or out-of-ephemeris date)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limited (30 requests per minute per IP per tool)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}},"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}}},"500":{"description":"Unexpected server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"Calculation engine temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/public/tools/vedic-ascendant-calculator":{"get":{"operationId":"describe_vedic_ascendant_calculator","summary":"Describe Vedic Ascendant (Lagna) Calculator","responses":{"200":{"description":"Tool metadata + input schema","content":{"application/json":{"schema":{"type":"object","required":["tool","title","summary","calculation_version","methodology_url","operationId","input_schema","example_request","disclaimer"],"properties":{"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"calculation_version":{"type":"string"},"methodology_url":{"type":"string"},"operationId":{"type":"string"},"input_schema":{"type":"object","description":"JSON Schema for the POST request body."},"example_request":{"type":"object"},"disclaimer":{"type":"string"}}}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"post":{"operationId":"calculate_vedic_ascendant_calculator","summary":"Calculate Vedic Ascendant (Lagna) Calculator","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birth_date","birth_time","latitude","longitude"],"additionalProperties":false,"properties":{"birth_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"ISO 8601 date (YYYY-MM-DD)","example":"1990-06-15"},"birth_time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","description":"Local 24h time HH:MM. Required; the ascendant is time-sensitive.","example":"09:00"},"birth_timezone":{"type":"string","description":"IANA timezone id","example":"Asia/Kolkata"},"latitude":{"type":"number","minimum":-90,"maximum":90,"example":28.6139},"longitude":{"type":"number","minimum":-180,"maximum":180,"example":77.209}}},"example":{"birth_date":"1990-06-15","birth_time":"09:00","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209}}}},"responses":{"200":{"description":"Success envelope. `result` is tool-specific; the example below is a real captured response for the example request.","headers":{"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"},"example":{"tool":"vedic-ascendant-calculator","calculation_version":"1.0.0","input":{"birth_date":"1990-06-15","birth_time":"09:00","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209},"result":{"ascendant_longitude_sidereal":106.6834,"lagna":{"sign":"Cancer","number":4,"degree_in_sign":16.6834,"ruler":"Moon","nakshatra":{"name":"Ashlesha","number":9,"pada":1,"ruler":"Mercury"}},"time_sensitivity":{"minutes_to_previous":78.2,"minutes_to_next":62.2,"nearest_boundary_minutes":62.2,"previous_boundary_local":"1990-06-15T07:41","next_boundary_local":"1990-06-15T10:02","variation":{"minus_15":"Cancer","minus_10":"Cancer","minus_5":"Cancer","plus_5":"Cancer","plus_10":"Cancer","plus_15":"Cancer"},"confidence":"high"}},"provenance":{"zodiac_system":"sidereal","ayanamsha":"Lahiri (Chitrapaksha)","ayanamsha_value_deg":23.7237,"ephemeris":{"library":"pyswisseph","version":"2.10.3.2","source":"Swiss Ephemeris"},"location_resolution":"client-supplied coordinates (Nominatim/OpenStreetMap upstream)","timezone_resolution":"IANA timezone identifier","dst_applied":false,"calculation_version":"1.0.0","birth_time_known":true,"uncertainty":null,"house_system":"Ascendant from Swiss Ephemeris (Placidus cusp); Vedic charts use Whole Sign houses"},"methodology_url":"https://vedara.me/tools/vedic-ascendant-calculator#methodology","calculated_at":"2026-08-12T11:07:24Z","disclaimer":"Traditional Vedic framework for reflection, not a prediction or professional advice."}}}},"400":{"description":"Validation error (malformed JSON body or field-level failures)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"tool":"vedic-ascendant-calculator","error":{"code":"invalid_input","message":"One or more fields failed validation.","field_errors":[{"field":"birth_time","message":"is required"}]},"calculated_at":"2026-07-24T12:00:00Z"}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"Input passed schema validation but the calculation engine rejected it (e.g. unresolvable timezone or out-of-ephemeris date)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limited (30 requests per minute per IP per tool)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}},"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}}},"500":{"description":"Unexpected server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"Calculation engine temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/public/tools/navamsa-chart-calculator":{"get":{"operationId":"describe_navamsa_chart_calculator","summary":"Describe Navamsa (D9) Chart Calculator","responses":{"200":{"description":"Tool metadata + input schema","content":{"application/json":{"schema":{"type":"object","required":["tool","title","summary","calculation_version","methodology_url","operationId","input_schema","example_request","disclaimer"],"properties":{"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"calculation_version":{"type":"string"},"methodology_url":{"type":"string"},"operationId":{"type":"string"},"input_schema":{"type":"object","description":"JSON Schema for the POST request body."},"example_request":{"type":"object"},"disclaimer":{"type":"string"}}}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"post":{"operationId":"calculate_navamsa_chart_calculator","summary":"Calculate Navamsa (D9) Chart Calculator","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birth_date","birth_time","latitude","longitude"],"additionalProperties":false,"properties":{"birth_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"ISO 8601 date (YYYY-MM-DD)","example":"1990-06-15"},"birth_time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","description":"Local 24h time HH:MM. Required; the navamsa ascendant is time-sensitive.","example":"09:00"},"birth_timezone":{"type":"string","description":"IANA timezone id","example":"Asia/Kolkata"},"latitude":{"type":"number","minimum":-90,"maximum":90,"example":28.6139},"longitude":{"type":"number","minimum":-180,"maximum":180,"example":77.209}}},"example":{"birth_date":"1990-06-15","birth_time":"09:00","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209}}}},"responses":{"200":{"description":"Success envelope. `result` is tool-specific; the example below is a real captured response for the example request.","headers":{"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"},"example":{"tool":"navamsa-chart-calculator","calculation_version":"1.0.0","input":{"birth_date":"1990-06-15","birth_time":"09:00","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209},"result":{"navamsa_ascendant":{"sign":"Sagittarius","sign_number":9,"degree":0.1507,"d1_sign":"Cancer","d1_degree":16.6834},"placements":[{"planet":"Sun","d1_sign":"Gemini","d1_sign_number":3,"d1_longitude":60.2075,"d9_sign":"Libra","d9_sign_number":7,"d9_degree":1.8673,"vargottama":false},{"planet":"Moon","d1_sign":"Aquarius","d1_sign_number":11,"d1_longitude":317.0584,"d9_sign":"Pisces","d9_sign_number":12,"d9_degree":3.5253,"vargottama":false},{"planet":"Mercury","d1_sign":"Taurus","d1_sign_number":2,"d1_longitude":41.5018,"d9_sign":"Aries","d9_sign_number":1,"d9_degree":13.5161,"vargottama":false},{"planet":"Venus","d1_sign":"Aries","d1_sign_number":1,"d1_longitude":24.7764,"d9_sign":"Scorpio","d9_sign_number":8,"d9_degree":12.9872,"vargottama":false},{"planet":"Mars","d1_sign":"Pisces","d1_sign_number":12,"d1_longitude":347.1989,"d9_sign":"Sagittarius","d9_sign_number":9,"d9_degree":4.7898,"vargottama":false},{"planet":"Jupiter","d1_sign":"Gemini","d1_sign_number":3,"d1_longitude":82.2286,"d9_sign":"Aries","d9_sign_number":1,"d9_degree":20.0574,"vargottama":false},{"planet":"Saturn","d1_sign":"Capricorn","d1_sign_number":10,"d1_longitude":270.4585,"d9_sign":"Capricorn","d9_sign_number":10,"d9_degree":4.1261,"vargottama":true},{"planet":"Rahu","d1_sign":"Capricorn","d1_sign_number":10,"d1_longitude":285.9939,"d9_sign":"Taurus","d9_sign_number":2,"d9_degree":23.9448,"vargottama":false},{"planet":"Ketu","d1_sign":"Cancer","d1_sign_number":4,"d1_longitude":105.9939,"d9_sign":"Scorpio","d9_sign_number":8,"d9_degree":23.9448,"vargottama":false}],"vargottama_planets":["Saturn"],"vargottama_count":1},"provenance":{"zodiac_system":"sidereal","ayanamsha":"Lahiri (Chitrapaksha)","ayanamsha_value_deg":23.7192,"ephemeris":{"library":"pyswisseph","version":"2.10.3.2","source":"Swiss Ephemeris"},"location_resolution":"client-supplied coordinates (Nominatim/OpenStreetMap upstream)","timezone_resolution":"IANA timezone identifier","dst_applied":false,"calculation_version":"1.0.0","birth_time_known":true,"uncertainty":"The navamsa ascendant depends on the exact rising degree, which moves about one degree every four minutes. An approximate birth time can change the navamsa ascendant and the sign of fast-moving points.","house_system":"Navamsa (D9) divisional chart. Planetary positions sidereal (Lahiri linear model); ascendant from Swiss Ephemeris sidereal mode; Vedic charts use Whole Sign houses."},"methodology_url":"https://vedara.me/tools/navamsa-chart-calculator#methodology","calculated_at":"2026-08-12T11:07:24Z","disclaimer":"Traditional Vedic framework for reflection, not a prediction or professional advice."}}}},"400":{"description":"Validation error (malformed JSON body or field-level failures)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"tool":"navamsa-chart-calculator","error":{"code":"invalid_input","message":"One or more fields failed validation.","field_errors":[{"field":"birth_time","message":"is required"}]},"calculated_at":"2026-07-24T12:00:00Z"}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"Input passed schema validation but the calculation engine rejected it (e.g. unresolvable timezone or out-of-ephemeris date)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limited (30 requests per minute per IP per tool)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}},"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}}},"500":{"description":"Unexpected server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"Calculation engine temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/public/tools/sade-sati-calculator":{"get":{"operationId":"describe_sade_sati_calculator","summary":"Describe Sade Sati Calculator","responses":{"200":{"description":"Tool metadata + input schema","content":{"application/json":{"schema":{"type":"object","required":["tool","title","summary","calculation_version","methodology_url","operationId","input_schema","example_request","disclaimer"],"properties":{"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"calculation_version":{"type":"string"},"methodology_url":{"type":"string"},"operationId":{"type":"string"},"input_schema":{"type":"object","description":"JSON Schema for the POST request body."},"example_request":{"type":"object"},"disclaimer":{"type":"string"}}}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"post":{"operationId":"calculate_sade_sati_calculator","summary":"Calculate Sade Sati Calculator","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birth_date","latitude","longitude"],"additionalProperties":false,"properties":{"birth_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"ISO 8601 date (YYYY-MM-DD)","example":"1990-06-15"},"birth_time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","nullable":true,"description":"Local 24h time HH:MM; optional (the natal Moon sign is stable within a day)","example":"09:00"},"birth_timezone":{"type":"string","description":"IANA timezone id","example":"Asia/Kolkata"},"latitude":{"type":"number","minimum":-90,"maximum":90,"example":28.6139},"longitude":{"type":"number","minimum":-180,"maximum":180,"example":77.209},"calculation_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Date to evaluate Saturn against; defaults to today (UTC)","example":"2026-07-24"}}},"example":{"birth_date":"1990-06-15","birth_time":"09:00","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209}}}},"responses":{"200":{"description":"Success envelope. `result` is tool-specific; the example below is a real captured response for the example request.","headers":{"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"},"example":{"tool":"sade-sati-calculator","calculation_version":"1.0.0","input":{"birth_date":"1990-06-15","birth_time":"09:00","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209,"calculation_date":"2026-07-24"},"result":{"natal_moon_sign":"Aquarius","natal_moon_sign_number":11,"current_saturn_sign":"Pisces","calculation_date":"2026-07-24","is_active":true,"current_phase":"setting","sade_sati_signs":{"rising_12th":"Capricorn","peak_1st":"Aquarius","setting_2nd":"Pisces"},"current_cycle":{"start":"2020-01-24","end":"2028-02-23","phases":[{"phase":"rising","sign":"Capricorn","from_natal_moon":"12th","start":"2020-01-24"},{"phase":"peak","sign":"Aquarius","from_natal_moon":"1st","start":"2022-04-29"},{"phase":"setting","sign":"Pisces","from_natal_moon":"2nd","start":"2025-03-29"}],"retrograde_crossings":[{"date":"2022-07-12","from":"Aquarius","to":"Capricorn"},{"date":"2027-10-20","from":"Aries","to":"Pisces"}]},"previous_cycle":{"start":"1990-03-20","end":"1998-04-17"},"next_cycle":{"start":"2049-03-06","end":"2057-04-07","phases":[{"phase":"rising","sign":"Capricorn","from_natal_moon":"12th","start":"2049-03-06"},{"phase":"peak","sign":"Aquarius","from_natal_moon":"1st","start":"2052-02-24"},{"phase":"setting","sign":"Pisces","from_natal_moon":"2nd","start":"2054-05-14"}],"retrograde_crossings":[{"date":"2049-07-09","from":"Capricorn","to":"Sagittarius"},{"date":"2054-09-01","from":"Pisces","to":"Aquarius"}]}},"provenance":{"zodiac_system":"sidereal","ayanamsha":"Lahiri (Chitrapaksha)","ayanamsha_value_deg":24.2281,"ephemeris":{"library":"pyswisseph","version":"2.10.3.2","source":"Swiss Ephemeris"},"location_resolution":"client-supplied coordinates (Nominatim/OpenStreetMap upstream)","timezone_resolution":"IANA timezone identifier","dst_applied":false,"calculation_version":"1.0.0","birth_time_known":true,"uncertainty":null,"house_system":"Saturn transit cycle relative to the natal Moon sign. Saturn positions and ingress dates from Swiss Ephemeris sidereal mode (Lahiri); natal Moon sign from the Vedara Moon engine. Boundary dates are UTC."},"methodology_url":"https://vedara.me/tools/sade-sati-calculator#methodology","calculated_at":"2026-08-12T11:07:25Z","disclaimer":"Traditional Vedic framework for reflection, not a prediction or professional advice."}}}},"400":{"description":"Validation error (malformed JSON body or field-level failures)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"tool":"sade-sati-calculator","error":{"code":"invalid_input","message":"One or more fields failed validation.","field_errors":[{"field":"birth_date","message":"must be an ISO 8601 date (YYYY-MM-DD)"}]},"calculated_at":"2026-07-24T12:00:00Z"}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"Input passed schema validation but the calculation engine rejected it (e.g. unresolvable timezone or out-of-ephemeris date)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limited (30 requests per minute per IP per tool)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}},"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}}},"500":{"description":"Unexpected server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"Calculation engine temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/public/tools/vedic-compatibility-calculator":{"get":{"operationId":"describe_vedic_compatibility_calculator","summary":"Describe Vedic Compatibility Calculator (Ashtakoota / Guna Milan)","responses":{"200":{"description":"Tool metadata + input schema","content":{"application/json":{"schema":{"type":"object","required":["tool","title","summary","calculation_version","methodology_url","operationId","input_schema","example_request","disclaimer"],"properties":{"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"calculation_version":{"type":"string"},"methodology_url":{"type":"string"},"operationId":{"type":"string"},"input_schema":{"type":"object","description":"JSON Schema for the POST request body."},"example_request":{"type":"object"},"disclaimer":{"type":"string"}}}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"post":{"operationId":"calculate_vedic_compatibility_calculator","summary":"Calculate Vedic Compatibility Calculator (Ashtakoota / Guna Milan)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["person_a_birth_date","person_a_latitude","person_a_longitude","person_b_birth_date","person_b_latitude","person_b_longitude"],"additionalProperties":false,"properties":{"person_a_birth_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Person A ISO 8601 birth date (YYYY-MM-DD)","example":"1990-06-15"},"person_a_birth_time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","nullable":true,"description":"Person A local 24h time HH:MM; omit if unknown (noon is used)","example":"09:00"},"person_a_birth_timezone":{"type":"string","description":"Person A IANA timezone id","example":"Asia/Kolkata"},"person_a_latitude":{"type":"number","minimum":-90,"maximum":90,"example":28.6139},"person_a_longitude":{"type":"number","minimum":-180,"maximum":180,"example":77.209},"person_b_birth_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Person B ISO 8601 birth date (YYYY-MM-DD)","example":"1988-03-20"},"person_b_birth_time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","nullable":true,"description":"Person B local 24h time HH:MM; omit if unknown (noon is used)","example":"14:30"},"person_b_birth_timezone":{"type":"string","description":"Person B IANA timezone id","example":"Asia/Kolkata"},"person_b_latitude":{"type":"number","minimum":-90,"maximum":90,"example":19.076},"person_b_longitude":{"type":"number","minimum":-180,"maximum":180,"example":72.8777}}},"example":{"person_a_birth_date":"1990-06-15","person_a_birth_time":"09:00","person_a_birth_timezone":"Asia/Kolkata","person_a_latitude":28.6139,"person_a_longitude":77.209,"person_b_birth_date":"1988-03-20","person_b_birth_time":"14:30","person_b_birth_timezone":"Asia/Kolkata","person_b_latitude":19.076,"person_b_longitude":72.8777}}}},"responses":{"200":{"description":"Success envelope. `result` is tool-specific; the example below is a real captured response for the example request.","headers":{"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"},"example":{"tool":"vedic-compatibility-calculator","calculation_version":"1.0.0","input":{"person_a_birth_date":"1990-06-15","person_a_birth_time":"09:00","person_a_birth_timezone":"Asia/Kolkata","person_a_latitude":28.6139,"person_a_longitude":77.209,"person_b_birth_date":"1988-03-20","person_b_birth_time":"14:30","person_b_birth_timezone":"Asia/Kolkata","person_b_latitude":19.076,"person_b_longitude":72.8777},"result":{"person_a":{"moon_sign":"Aquarius","nakshatra":"Shatabhisha","pada":4},"person_b":{"moon_sign":"Aries","nakshatra":"Ashwini","pada":3},"ashtakoota":{"total_score":14.5,"maximum_score":36,"percentage":40.28,"components":[{"key":"varna","name":"Varna","score":0,"maximum":1,"explanation":"Compares the temperament grouping derived from each Moon sign. Worth 1 point."},{"key":"vashya","name":"Vashya","score":0,"maximum":2,"explanation":"Reflects the traditional mutual-attraction grouping of the two Moon signs. Worth 2 points."},{"key":"tara","name":"Tara","score":1.5,"maximum":3,"explanation":"Compares the two birth stars for health and general fortune, counted both ways. Worth 3 points."},{"key":"yoni","name":"Yoni","score":4,"maximum":4,"explanation":"Compares the animal symbol of each birth star, a traditional measure of instinctive compatibility. Worth 4 points."},{"key":"graha_maitri","name":"Graha Maitri","score":1,"maximum":5,"explanation":"Looks at the friendship between the planetary lords of the two Moon signs, a traditional measure of mental affinity. Worth 5 points."},{"key":"gana","name":"Gana","score":1,"maximum":6,"explanation":"Compares temperament type (Deva, Manushya or Rakshasa) taken from the birth star. Worth 6 points."},{"key":"bhakoot","name":"Bhakoot","score":7,"maximum":7,"explanation":"Considers the distance between the two Moon signs, where a few distances are traditionally flagged. Worth 7 points."},{"key":"nadi","name":"Nadi","score":0,"maximum":8,"explanation":"Compares the constitutional nadi of the two birth stars. Sharing the same nadi is the traditional Nadi dosha and scores zero. Worth 8 points."}]},"interpretation_band":{"code":"below_customary_threshold","label":"Below the customary 18 of 36 threshold","summary":"In the traditional Ashtakoota system a total of at least 18 out of 36 is the customary minimum looked for before proceeding. This pairing scores below that line on the Moon-based koota factors. Ashtakoota is one traditional signal among many and is not a verdict on the relationship."},"nadi_dosha":true,"convention_note":"By convention Person A is read in the groom position and Person B in the bride position. Most kootas are symmetric, but Varna, Vashya, Tara, Gana and Graha Maitri are read directionally, so swapping the two people can change the total by a few points."},"provenance":{"zodiac_system":"sidereal","ayanamsha":"Lahiri (Chitrapaksha)","ayanamsha_value_deg":23.7192,"ephemeris":{"library":"pyswisseph","version":"2.10.3.2","source":"Swiss Ephemeris"},"location_resolution":"client-supplied coordinates (Nominatim/OpenStreetMap upstream)","timezone_resolution":"IANA timezone identifier","dst_applied":false,"calculation_version":"1.0.0","birth_time_known":true,"uncertainty":null,"house_system":"Ashtakoota (Guna Milan) 36-point Moon compatibility. Each person's Moon sign, nakshatra and pada come from the Vedara Moon engine in the sidereal zodiac with the Lahiri ayanamsha; the eight kootas follow the classical Brihat Parashara Hora Shastra and Muhurta Chintamani tables. Person A is read in the groom position."},"methodology_url":"https://vedara.me/tools/vedic-compatibility-calculator#methodology","calculated_at":"2026-08-12T11:07:26Z","disclaimer":"Traditional Vedic framework for reflection, not a relationship verdict or professional advice."}}}},"400":{"description":"Validation error (malformed JSON body or field-level failures)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"tool":"vedic-compatibility-calculator","error":{"code":"invalid_input","message":"One or more fields failed validation.","field_errors":[{"field":"person_b_birth_date","message":"must be an ISO 8601 date (YYYY-MM-DD)"}]},"calculated_at":"2026-07-25T12:00:00Z"}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"Input passed schema validation but the calculation engine rejected it (e.g. unresolvable timezone or out-of-ephemeris date)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limited (30 requests per minute per IP per tool)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}},"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}}},"500":{"description":"Unexpected server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"Calculation engine temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/public/tools/current-transits-calculator":{"get":{"operationId":"describe_current_transits_calculator","summary":"Describe Current Transits to My Birth Chart","responses":{"200":{"description":"Tool metadata + input schema","content":{"application/json":{"schema":{"type":"object","required":["tool","title","summary","calculation_version","methodology_url","operationId","input_schema","example_request","disclaimer"],"properties":{"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"calculation_version":{"type":"string"},"methodology_url":{"type":"string"},"operationId":{"type":"string"},"input_schema":{"type":"object","description":"JSON Schema for the POST request body."},"example_request":{"type":"object"},"disclaimer":{"type":"string"}}}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"post":{"operationId":"calculate_current_transits_calculator","summary":"Calculate Current Transits to My Birth Chart","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birth_date","birth_time","latitude","longitude"],"additionalProperties":false,"properties":{"birth_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"ISO 8601 birth date (YYYY-MM-DD)","example":"1990-06-15"},"birth_time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","description":"Local 24h birth time HH:MM. Required; transits to the natal ascendant and precise degrees depend on it.","example":"09:00"},"birth_timezone":{"type":"string","description":"IANA timezone id for the birth place","example":"Asia/Kolkata"},"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"Birth latitude","example":28.6139},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"Birth longitude","example":77.209},"calculation_datetime":{"type":"string","nullable":true,"description":"UTC moment to evaluate the sky against, ISO 8601 (YYYY-MM-DD or YYYY-MM-DDTHH:MM). Defaults to now.","example":"2026-03-14T12:00:00Z"},"current_latitude":{"type":"number","minimum":-90,"maximum":90,"nullable":true,"description":"Optional current latitude. Accepted but does not change transit-to-natal aspects in v1 (no house overlay).","example":28.6139},"current_longitude":{"type":"number","minimum":-180,"maximum":180,"nullable":true,"description":"Optional current longitude. Accepted but does not change transit-to-natal aspects in v1 (no house overlay).","example":77.209}}},"example":{"birth_date":"1990-06-15","birth_time":"09:00","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209}}}},"responses":{"200":{"description":"Success envelope. `result` is tool-specific; the example below is a real captured response for the example request.","headers":{"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"},"example":{"tool":"current-transits-calculator","calculation_version":"1.0.0","input":{"birth_date":"1990-06-15","birth_time":"09:00","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209,"calculation_datetime":"2026-07-24T12:00:00Z"},"result":{"calculation_datetime":"2026-07-24T12:00:00Z","aspect_system":"vedara_transit_v1","natal_chart":{"ascendant":{"sign":"Cancer","longitude":106.6834},"sun":{"sign":"Gemini","longitude":60.064},"moon":{"sign":"Aquarius","longitude":316.9204},"mars":{"sign":"Pisces","longitude":347.0593},"mercury":{"sign":"Taurus","longitude":41.3586},"venus":{"sign":"Aries","longitude":24.6339},"jupiter":{"sign":"Gemini","longitude":82.0855},"saturn":{"sign":"Capricorn","longitude":270.3254}},"transiting_positions":{"sun":{"sign":"Cancer","longitude":97.3919,"retrograde":false},"moon":{"sign":"Scorpio","longitude":221.167,"retrograde":false},"mars":{"sign":"Taurus","longitude":53.7368,"retrograde":false},"mercury":{"sign":"Gemini","longitude":82.0999,"retrograde":false},"venus":{"sign":"Leo","longitude":141.923,"retrograde":false},"jupiter":{"sign":"Cancer","longitude":101.0703,"retrograde":false},"saturn":{"sign":"Pisces","longitude":350.5147,"retrograde":false},"rahu":{"sign":"Aquarius","longitude":307.112,"retrograde":true},"ketu":{"sign":"Leo","longitude":127.112,"retrograde":true}},"active_transits":[{"transiting_planet":"Mercury","natal_point":"Jupiter","relationship":"conjunction","relationship_angle_deg":0,"orb_degrees":0.014,"motion":"separating","exact_passes":[],"window_start":"2026-07-17T00:59:42Z","window_end":"2026-07-30T07:46:55Z","significance_score":8,"significance_rules":[{"rule":"transiting_planet_weight","detail":"Mercury","points":1},{"rule":"natal_point_weight","detail":"Jupiter","points":2},{"rule":"aspect_weight","detail":"conjunction","points":3},{"rule":"tight_orb_within_1deg","detail":"orb 0.01 deg","points":2}]},{"transiting_planet":"Moon","natal_point":"Mercury","relationship":"opposition","relationship_angle_deg":180,"orb_degrees":0.192,"motion":"separating","exact_passes":["2026-07-24T12:23:12Z"],"window_start":"2026-07-24T10:22:06Z","window_end":"2026-07-24T14:24:22Z","significance_score":6.5,"significance_rules":[{"rule":"transiting_planet_weight","detail":"Moon","points":0.5},{"rule":"natal_point_weight","detail":"Mercury","points":1},{"rule":"aspect_weight","detail":"opposition","points":3},{"rule":"tight_orb_within_1deg","detail":"orb 0.19 deg","points":2}]}],"has_major_transit":false,"significance_threshold":9,"current_location_note":"Current location does not change transit-to-natal aspects in this version: graha drishti compares zodiac longitudes, which are the same worldwide. House overlays for your current location are not part of v1."},"provenance":{"zodiac_system":"sidereal","ayanamsha":"Lahiri (Chitrapaksha)","ayanamsha_value_deg":24.2281,"ephemeris":{"library":"pyswisseph","version":"2.10.3.2","source":"Swiss Ephemeris"},"location_resolution":"client-supplied coordinates (Nominatim/OpenStreetMap upstream)","timezone_resolution":"IANA timezone identifier","dst_applied":false,"calculation_version":"1.0.0","birth_time_known":true,"uncertainty":null,"house_system":"Transit-to-natal Vedic graha drishti (aspect system vedara_transit_v1), degree-based and sidereal. All natal and transiting positions come from Swiss Ephemeris sidereal mode (Lahiri); the natal ascendant from Swiss Ephemeris houses. This is a different Lahiri path from the Vedara Moon engine used by the Moon Sign tool, so a natal Moon within a hair of a sign boundary can differ slightly between tools. Dates and times are UTC."},"methodology_url":"https://vedara.me/tools/current-transits-calculator#methodology","calculated_at":"2026-08-12T11:07:26Z","disclaimer":"Traditional Vedic framework for reflection, not a prediction or professional advice."}}}},"400":{"description":"Validation error (malformed JSON body or field-level failures)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"tool":"current-transits-calculator","error":{"code":"invalid_input","message":"One or more fields failed validation.","field_errors":[{"field":"birth_time","message":"is required"}]},"calculated_at":"2026-07-25T12:00:00Z"}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"Input passed schema validation but the calculation engine rejected it (e.g. unresolvable timezone or out-of-ephemeris date)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limited (30 requests per minute per IP per tool)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}},"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}}},"500":{"description":"Unexpected server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"Calculation engine temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/public/tools/manglik-dosha-calculator":{"get":{"operationId":"describe_manglik_dosha_calculator","summary":"Describe Manglik Dosha (Mangal Dosha) Calculator","responses":{"200":{"description":"Tool metadata + input schema","content":{"application/json":{"schema":{"type":"object","required":["tool","title","summary","calculation_version","methodology_url","operationId","input_schema","example_request","disclaimer"],"properties":{"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"calculation_version":{"type":"string"},"methodology_url":{"type":"string"},"operationId":{"type":"string"},"input_schema":{"type":"object","description":"JSON Schema for the POST request body."},"example_request":{"type":"object"},"disclaimer":{"type":"string"}}}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"post":{"operationId":"calculate_manglik_dosha_calculator","summary":"Calculate Manglik Dosha (Mangal Dosha) Calculator","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birth_date","birth_time","latitude","longitude"],"additionalProperties":false,"properties":{"birth_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"ISO 8601 birth date (YYYY-MM-DD)","example":"1990-06-15"},"birth_time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","description":"Local 24h birth time HH:MM. Required; the Lagna and its houses depend on it.","example":"09:00"},"birth_timezone":{"type":"string","description":"IANA timezone id for the birth place","example":"Asia/Kolkata"},"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"Birth latitude","example":28.6139},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"Birth longitude","example":77.209}}},"example":{"birth_date":"1990-06-15","birth_time":"09:00","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209}}}},"responses":{"200":{"description":"Success envelope. `result` is tool-specific; the example below is a real captured response for the example request.","headers":{"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"},"example":{"tool":"manglik-dosha-calculator","calculation_version":"1.0.0","input":{"birth_date":"1990-06-15","birth_time":"09:00","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209},"result":{"method":"vedara_manglik_v1","is_manglik":true,"mars_sign":"Pisces","positions":{"ascendant":"Cancer","moon":"Aquarius","mars":"Pisces","jupiter":"Gemini"},"references":[{"reference":"lagna","reference_label":"Lagna (Ascendant)","reference_sign":"Cancer","mars_house":9,"flagged":false,"detail":"Mars is in the 9th house from the Lagna (Ascendant), not a Manglik house."},{"reference":"moon","reference_label":"Moon","reference_sign":"Aquarius","mars_house":2,"flagged":true,"detail":"Mars is in the 2nd house from the Moon, a Manglik house."}],"manglik_houses":[1,2,4,7,8,12],"mitigating_factors":[],"context_notes":["Mangal Dosha is very common: counting six houses from two reference points, a large share of birth charts show it in some form.","The 'both partners Manglik' rule, when both people in a match have Mangal Dosha, is traditionally held to cancel it; that needs both charts and is not evaluated here."],"venus_reference_note":"This tool checks Mars from the Lagna and the Moon. Some traditions also check from Venus; vedara_manglik_v1 does not, a deliberate scope choice.","disclaimer":"This is not a verdict on your marriage or character. Mangal Dosha is a traditional factor, not a deterministic outcome; traditions vary and mitigating factors exist."},"provenance":{"zodiac_system":"sidereal","ayanamsha":"Lahiri (Chitrapaksha)","ayanamsha_value_deg":23.7237,"ephemeris":{"library":"pyswisseph","version":"2.10.3.2","source":"Swiss Ephemeris"},"location_resolution":"client-supplied coordinates (Nominatim/OpenStreetMap upstream)","timezone_resolution":"IANA timezone identifier","dst_applied":false,"calculation_version":"1.0.0","birth_time_known":true,"uncertainty":null,"house_system":"Whole-sign houses. Mangal Dosha (method vedara_manglik_v1): Mars in houses 1, 2, 4, 7, 8, 12 counted from the Lagna and from the Moon; the Venus reference is not used. Ascendant via Swiss Ephemeris houses; Mars/Moon/Jupiter via Swiss Ephemeris sidereal (Lahiri). This is a different Lahiri path from the Vedara Moon engine used by the Moon Sign tool. Only the rashi (sign) of each body is used."},"methodology_url":"https://vedara.me/tools/manglik-dosha-calculator#methodology","calculated_at":"2026-08-12T11:07:26Z","disclaimer":"Traditional Vedic framework for reflection, not a prediction or professional advice."}}}},"400":{"description":"Validation error (malformed JSON body or field-level failures)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"tool":"manglik-dosha-calculator","error":{"code":"invalid_input","message":"One or more fields failed validation.","field_errors":[{"field":"birth_time","message":"is required"}]},"calculated_at":"2026-07-25T12:00:00Z"}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"Input passed schema validation but the calculation engine rejected it (e.g. unresolvable timezone or out-of-ephemeris date)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limited (30 requests per minute per IP per tool)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}},"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}}},"500":{"description":"Unexpected server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"Calculation engine temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}},"/api/public/tools/vedic-baby-name-letter":{"get":{"operationId":"describe_vedic_baby_name_letter","summary":"Describe Vedic Baby Name Letter (Nakshatra Naming Sound)","responses":{"200":{"description":"Tool metadata + input schema","content":{"application/json":{"schema":{"type":"object","required":["tool","title","summary","calculation_version","methodology_url","operationId","input_schema","example_request","disclaimer"],"properties":{"tool":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"calculation_version":{"type":"string"},"methodology_url":{"type":"string"},"operationId":{"type":"string"},"input_schema":{"type":"object","description":"JSON Schema for the POST request body."},"example_request":{"type":"object"},"disclaimer":{"type":"string"}}}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}},"post":{"operationId":"calculate_vedic_baby_name_letter","summary":"Calculate Vedic Baby Name Letter (Nakshatra Naming Sound)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birth_date","latitude","longitude"],"additionalProperties":false,"properties":{"birth_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"ISO 8601 birth date (YYYY-MM-DD)","example":"1990-06-15"},"birth_time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","nullable":true,"description":"Local 24h time HH:MM; optional. If omitted, noon is used and every pada the Moon crossed that day is listed.","example":"09:00"},"birth_timezone":{"type":"string","description":"IANA timezone id for the birth place","example":"Asia/Kolkata"},"latitude":{"type":"number","minimum":-90,"maximum":90,"description":"Birth latitude","example":28.6139},"longitude":{"type":"number","minimum":-180,"maximum":180,"description":"Birth longitude","example":77.209}}},"example":{"birth_date":"1990-06-15","birth_time":"09:00","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209}}}},"responses":{"200":{"description":"Success envelope. `result` is tool-specific; the example below is a real captured response for the example request.","headers":{"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope"},"example":{"tool":"vedic-baby-name-letter","calculation_version":"1.0.0","input":{"birth_date":"1990-06-15","birth_time":"09:00","birth_timezone":"Asia/Kolkata","latitude":28.6139,"longitude":77.209},"result":{"naming_sound":{"nakshatra":"Shatabhisha","nakshatra_number":24,"pada":4,"pada_index":95,"devanagari":"सू","iast":"sū","latin_variants":["Soo"]},"moon_longitude_sidereal":316.9204,"birth_time_known":true,"confidence":"high","day_alternates":[],"dataset":{"id":"nakshatra_syllables_v1","version":"1.0.0"},"note":"In Vedic tradition a birth name is sometimes chosen to begin with the sound of the Moon's nakshatra pada at birth. This is a naming custom, not a rule, and it points to a sound rather than a specific name. Many families use it loosely or not at all."},"provenance":{"zodiac_system":"sidereal","ayanamsha":"Lahiri (Chitrapaksha)","ayanamsha_value_deg":23.7237,"ephemeris":{"library":"pyswisseph","version":"2.10.3.2","source":"Swiss Ephemeris"},"location_resolution":"client-supplied coordinates (Nominatim/OpenStreetMap upstream)","timezone_resolution":"IANA timezone identifier","dst_applied":false,"calculation_version":"1.0.0","birth_time_known":true,"uncertainty":null,"house_system":"Nakshatra pada of the natal Moon. Moon sidereal longitude via Swiss Ephemeris sidereal mode (Lahiri); pada_index = floor(longitude_arcsec / 12000), each pada 3deg20'. Naming sound from the Swar Siddhanta naming-sound dataset (nakshatra_syllables_v1 v1.0.0); Drik Panchang consulted as a modern secondary source and Wikipedia as a devanagari cross-check, not as classical doctrine."},"methodology_url":"https://vedara.me/tools/vedic-baby-name-letter#methodology","calculated_at":"2026-08-12T11:07:26Z","disclaimer":"Traditional Vedic naming custom for reflection, not a rule, prediction or professional advice."}}}},"400":{"description":"Validation error (malformed JSON body or field-level failures)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"},"example":{"tool":"vedic-baby-name-letter","error":{"code":"invalid_input","message":"One or more fields failed validation.","field_errors":[{"field":"birth_date","message":"must be an ISO 8601 date (YYYY-MM-DD)"}]},"calculated_at":"2026-07-26T12:00:00Z"}}}},"404":{"description":"Unknown tool slug","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"422":{"description":"Input passed schema validation but the calculation engine rejected it (e.g. unresolvable timezone or out-of-ephemeris date)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"429":{"description":"Rate limited (30 requests per minute per IP per tool)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}},"RateLimit-Limit":{"description":"Requests allowed per 60-second window (per IP, per tool).","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests left in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the window frees a slot.","schema":{"type":"integer"}}}},"500":{"description":"Unexpected server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}},"502":{"description":"Calculation engine temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}},"components":{"schemas":{"FieldError":{"type":"object","required":["field","message"],"properties":{"field":{"type":"string"},"message":{"type":"string"}}},"ErrorEnvelope":{"type":"object","required":["tool","error","calculated_at"],"properties":{"tool":{"type":"string"},"error":{"type":"object","required":["code","message","field_errors"],"properties":{"code":{"type":"string","description":"One of: invalid_input, not_found, rate_limited, engine_unavailable, engine_error, internal_error."},"message":{"type":"string"},"field_errors":{"type":"array","items":{"$ref":"#/components/schemas/FieldError"}}}},"calculated_at":{"type":"string","format":"date-time"}}},"Provenance":{"type":"object","description":"How the result was computed: zodiac frame, ayanamsha, ephemeris and input-resolution details.","required":["zodiac_system","ayanamsha","ayanamsha_value_deg","ephemeris","location_resolution","timezone_resolution","dst_applied","calculation_version","birth_time_known","uncertainty"],"properties":{"zodiac_system":{"type":"string"},"ayanamsha":{"type":"string"},"ayanamsha_value_deg":{"type":"number"},"ephemeris":{"type":"object","required":["library","version","source"],"properties":{"library":{"type":"string"},"version":{"type":"string"},"source":{"type":"string"}}},"location_resolution":{"type":"string"},"timezone_resolution":{"type":"string"},"dst_applied":{"type":"boolean"},"calculation_version":{"type":"string"},"birth_time_known":{"type":"boolean"},"uncertainty":{"type":["string","null"]},"house_system":{"type":"string"}}},"SuccessEnvelope":{"type":"object","required":["tool","calculation_version","input","result","provenance","methodology_url","calculated_at","disclaimer"],"properties":{"tool":{"type":"string","description":"Tool slug."},"calculation_version":{"type":"string"},"input":{"type":"object","description":"Echo of the validated input."},"result":{"type":"object","description":"Tool-specific calculation result; see the per-operation response example for the exact shape."},"provenance":{"$ref":"#/components/schemas/Provenance"},"methodology_url":{"type":"string","description":"Human-readable methodology for this calculation."},"calculated_at":{"type":"string","format":"date-time"},"disclaimer":{"type":"string"}}}}}}