{"openapi":"3.1.0","info":{"title":"Astro Engine Universal API","version":"0.1.0","description":"Universal Multi-tradition Astrological Calculation Engine (Vedic, Western, Chinese BaZi, Numerology, Human Design, Divination, Transits, Compatibility, Biorhythm)."},"servers":[{"url":"/"}],"paths":{"/v1/health":{"get":{"summary":"Engine health check","responses":{"200":{"description":"Operational health summary","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"status":{"type":"string","description":"Always 'ok'","example":"ok"},"version":{"type":"string","description":"Engine version","example":"0.1.0"},"ephemerisMode":{"type":"string","description":"SE1_FILES when ephemeris files are configured, else MOSHIER","enum":["SE1_FILES","MOSHIER"]},"rulesLoaded":{"type":"number","description":"Number of bundled conflict rules","example":233}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Operational status, engine version, ephemeris mode, and loaded rule count.","operationId":"getHealth","tags":["System"]}},"/v1/ready":{"get":{"summary":"Readiness check","responses":{"200":{"description":"Readiness confirmation (503 + error body with reasons when not ready)","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"status":{"type":"string","description":"Always 'ready'","example":"ready"},"version":{"type":"string","description":"Engine version","example":"0.1.0"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Validates required configuration (API_KEY, ephemeris adapter) and returns 503 with reasons when not ready.","operationId":"getReady","tags":["System"],"security":[{"ApiKeyAuth":[]}]}},"/v1/openapi.json":{"get":{"summary":"OpenAPI 3.1 specification","responses":{"200":{"description":"OpenAPI 3.1 document generated from the route registry","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"openapi":{"type":"string","description":"OpenAPI version","example":"3.1.0"},"info":{"type":"object","description":"API metadata (title, version, description)"},"paths":{"type":"object","description":"Path definitions with operations, parameters, and schemas"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Machine-readable API document generated from the route registry.","operationId":"getOpenapiJson","tags":["System"]}},"/v1/learning/feedback":{"post":{"summary":"Record rule feedback","responses":{"200":{"description":"The stored feedback entry with timestamp","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"ruleId":{"type":"string","description":"Rule identifier","example":"gajakesari_yoga"},"astrologerRating":{"type":"number","description":"Rating 0-5","example":4},"userVerification":{"type":"boolean","description":"Whether a user verified the reading"},"notes":{"type":"string","description":"Free-form notes"},"timestamp":{"type":"string","description":"ISO-8601 timestamp","example":"2026-08-05T04:00:00.000Z","format":"date-time"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Stores astrologer ratings and user verification for a rule (L5 learning loop).","operationId":"postLearningFeedback","tags":["System"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ruleId","astrologerRating"],"properties":{"ruleId":{"type":"string","description":"Rule identifier","example":"gajakesari_yoga"},"astrologerRating":{"type":"number","description":"Rating 0-5","example":4},"userVerification":{"type":"boolean","description":"Whether a user verified the reading"},"notes":{"type":"string","description":"Free-form notes"}}}}}}}},"/v1/learning/stats/:ruleId":{"get":{"summary":"Rule feedback statistics","responses":{"200":{"description":"Aggregated feedback statistics for the rule","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"ruleId":{"type":"string","description":"Rule identifier","example":"gajakesari_yoga"},"triggerCount":{"type":"number","description":"Times the rule triggered","example":12},"avgRating":{"type":"number","description":"Average astrologer rating (0-5)","example":4.2},"verificationRate":{"type":"number","description":"Fraction of feedback with user verification","example":0.5},"suggestedWeightDelta":{"type":"number","description":"Learned weight adjustment","example":0.15}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Aggregated feedback stats for a rule.","operationId":"getLearningStatsRuleId","tags":["System"],"security":[{"ApiKeyAuth":[]}]}},"/v1/rules":{"get":{"summary":"List rule definitions","responses":{"200":{"description":"Public rule summary (conditions and interpretations are never exposed)","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"total":{"type":"number","description":"Number of rules","example":233},"rules":{"type":"array","description":"Public rule summaries","items":{"type":"object","properties":{"id":{"type":"string","description":"Rule identifier","example":"gajakesari_yoga"},"name":{"type":"string","description":"Human-readable name","example":"Gaja Kesari Yoga"},"tradition":{"type":"string","description":"VEDIC, WESTERN, or CHINESE","enum":["VEDIC","WESTERN","CHINESE"]},"category":{"type":"string","description":"Rule category","example":"yoga"},"salience":{"type":"number","description":"Rule salience weight","example":4}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"All bundled, schema-validated rule definitions (edge-safe compiled bundle).","operationId":"getRules","tags":["System"]}},"/v1/usage":{"get":{"summary":"API usage","responses":{"200":{"description":"Current usage against the monthly allowance","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"plan":{"type":"string","description":"Billing plan name","example":"Pro"},"usedThisMonth":{"type":"number","description":"Requests used this month","example":4231},"requestsPerMonth":{"type":"number","description":"Monthly allowance","example":100000},"remainingThisMonth":{"type":"number","description":"Requests remaining","example":95769},"email":{"type":"string","description":"Account email","example":"user@example.com"},"status":{"type":"string","description":"Account status","example":"active"},"endDate":{"type":"string","description":"Billing period end (YYYY-MM-DD)","example":"2026-08-31"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Usage statistics: plan, requests used this month, allowance, remaining, and reset date.","operationId":"getUsage","tags":["System"]}},"/v1/languages":{"get":{"summary":"Supported languages","responses":{"200":{"description":"Supported language codes with native names","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"languages":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"ISO language code","example":"en"},"name":{"type":"string","description":"English name","example":"English"},"nativeName":{"type":"string","description":"Native name","example":"English"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"List of the 8 language codes accepted by the lang query parameter with native names.","operationId":"getLanguages","tags":["System"]}},"/v1/ephemeris/positions":{"post":{"summary":"Raw planetary positions","responses":{"200":{"description":"Raw L1 ephemeris computation (EphemerisResult)","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"positions":{"type":"array","description":"One entry per celestial body (14 bodies)","items":{"type":"object","properties":{"body":{"type":"string","description":"Celestial body name","example":"SUN"},"longitude":{"type":"number","description":"Ecliptic longitude 0-360 (tropical or sidereal per ayanamsa)","example":54.6139},"latitude":{"type":"number","description":"Ecliptic latitude in degrees, positive = north","example":0},"distanceAU":{"type":"number","description":"Distance from Earth in AU","example":1.0102},"speedDegPerDay":{"type":"number","description":"Daily motion deg/day, negative = retrograde","example":0.9548},"isRetrograde":{"type":"boolean","description":"True when speed < 0","example":false},"julianDay":{"type":"number","description":"Julian Day used for this position","example":2448021},"available":{"type":"boolean","description":"False when the ephemeris could not produce a real value (e.g. CHIRON in Moshier mode)","example":true}},"required":[]}},"houses":{"type":"object","description":"House cusps for the requested house system","properties":{"cusps":{"type":"array","description":"12 cusp longitudes, index 0 = house 1 cusp","items":{"type":"number"}},"ascendant":{"type":"number","description":"Ascendant longitude","example":12.34},"midheaven":{"type":"number","description":"Midheaven longitude","example":212.34},"vertex":{"type":"number","description":"Vertex longitude (when computable)","example":8.12},"eastPoint":{"type":"number","description":"East point longitude (when computable)","example":188.12}},"required":[]},"ayanamsaApplied":{"type":"number","description":"Ayanamsa degrees subtracted from tropical longitude; 0 for NONE","example":23.845},"julianDay":{"type":"number","description":"Julian Day of the computed instant","example":2448021.5},"siderealTime":{"type":"number","description":"Local sidereal time in degrees","example":187.42}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"L1 ephemeris longitudes, latitudes, distances, speeds, retrograde flags, house cusps, and ayanamsa for a birth moment.","operationId":"postEphemerisPositions","tags":["Ephemeris"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"ayanamsa":{"type":"string","description":"Sidereal ayanamsa mode","enum":["LAHIRI","RAMAN","KRISHNAMURTI","NONE"]},"houseSystem":{"type":"string","description":"House system","enum":["PLACIDUS","WHOLE_SIGN","KOCH","EQUAL","CAMPANUS","REGIOMONTANUS"]}}}}}}}},"/v1/chart/universal":{"post":{"summary":"Universal multi-tradition chart","responses":{"200":{"description":"Full universal chart profile across all traditions","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"metadata":{"type":"object","description":"Chart metadata","properties":{"chartId":{"type":"string","description":"Stable chart identifier"},"datetimeUtc":{"type":"string","description":"UTC birth instant","example":"1990-05-15T12:00:00Z"},"localTime":{"type":"string","description":"Local wall-clock birth time"},"location":{"type":"object","description":"Birth place","properties":{"latitude":{"type":"number","description":"Geographic latitude"},"longitude":{"type":"number","description":"Geographic longitude"},"timezone":{"type":"string","description":"IANA timezone"},"name":{"type":"string","description":"Native name when supplied"}},"required":[]},"ayanamsaUsed":{"type":"string","description":"Ayanamsa mode requested"},"ayanamsaValue":{"type":"number","description":"Ayanamsa degrees applied"},"houseSystemUsed":{"type":"string","description":"House system requested"},"julianDay":{"type":"number","description":"Julian Day of the instant"},"engineVersion":{"type":"string","description":"Rule engine version"}},"required":[]},"capabilities":{"type":"object","description":"Computed block capability flags","properties":{"western":{"type":"object","description":"Western block flags"},"vedic":{"type":"object","description":"Vedic block flags"},"chinese":{"type":"object","description":"Chinese block flags"},"numerology":{"type":"boolean","description":"true when a name was supplied, else the string UNAVAILABLE_NO_NAME"}},"required":[]},"western":{"type":"object","description":"Western placements, aspects, patterns, distributions","properties":{"planets":{"type":"object","description":"Map of planet name to western placement"},"aspects":{"type":"array","description":"Inter-planetary aspects","items":{"type":"object","properties":{"planet1":{"type":"string"},"planet2":{"type":"string"},"aspectType":{"type":"string"},"orbDegrees":{"type":"number"},"isApplying":{"type":"boolean"},"strength":{"type":"number"}},"required":[]}},"aspectPatterns":{"type":"array","description":"Detected aspect patterns"},"dispositorTree":{"type":"object","description":"Dispositor chains","properties":{"chains":{"type":"object","description":"Planet to chain string"},"finalDispositors":{"type":"array","items":{"type":"string"}},"mutualReceptions":{"type":"array","description":"Mutually receptive pairs","items":{"type":"array","items":{"type":"string"}}},"brokenChains":{"type":"array","items":{"type":"string"}}},"required":[]},"elementDistribution":{"type":"object","description":"Element counts plus dominant/weakest"},"modalityDistribution":{"type":"object","description":"Modality counts plus dominant"},"polarityDistribution":{"type":"object","description":"YANG/YIN counts"},"angles":{"type":"object","description":"Four chart angles with sign and degree","properties":{"ascendant":{"type":"object","description":"Ascendant: longitude, sign, house"},"midheaven":{"type":"object","description":"Midheaven: longitude, sign, house"},"descendant":{"type":"object","description":"Descendant: longitude, sign, house"},"imumCoeli":{"type":"object","description":"Imum Coeli: longitude, sign, house"}},"required":[]},"stelliums":{"type":"array","description":"Sign stelliums","items":{"type":"object","properties":{"location":{"type":"string","description":"Sign name"},"planets":{"type":"array","items":{"type":"string"}},"type":{"type":"string","description":"SIGN"}},"required":[]}}},"required":[]},"vedic":{"type":"object","description":"Vedic lagna, planets, strengths, dashas, panchang","properties":{"lagna":{"type":"object","description":"Ascendant details","properties":{"sign":{"type":"string"},"longitude":{"type":"number"},"degree":{"type":"number"},"nakshatra":{"type":"object","description":"Nakshatra position"},"lord":{"type":"string","description":"Sign lord"}},"required":[]},"planets":{"type":"object","description":"Map of planet to vedic placement"},"shadbala":{"type":"object","description":"Six-fold strength results","properties":{"planets":{"type":"array","description":"Per-planet strength"}},"required":[]},"ashtakavarga":{"type":"object","description":"Bindu tables per planet"},"vargas":{"type":"object","description":"Divisional chart coordinates by varga"},"yogas":{"type":"array","description":"Active vedic yogas"},"panchang":{"type":"object","description":"Five limbs of the Hindu calendar"},"vimshottariDasha":{"type":"object","description":"Vimshottari timeline"}},"required":[]},"chinese":{"type":"object","description":"BaZi pillars, five elements, ziwei","properties":{"bazi":{"type":"object","description":"Four pillars chart","properties":{"yearPillar":{"type":"object","description":"Year pillar"},"monthPillar":{"type":"object","description":"Month pillar"},"dayPillar":{"type":"object","description":"Day pillar"},"hourPillar":{"type":"object","description":"Hour pillar"},"dayMaster":{"type":"object","description":"Day master analysis"},"elementBalance":{"type":"object","description":"Five element counts"},"luckPillars":{"type":"array","description":"Da Yun luck pillars"}},"required":[]},"chineseZodiac":{"type":"string","description":"Zodiac animal","example":"HORSE"},"lunarDate":{"type":"object","description":"Lunar calendar date","properties":{"year":{"type":"number"},"month":{"type":"number"},"day":{"type":"number"},"isLeapMonth":{"type":"boolean"}},"required":[]},"ziwei":{"type":"object","description":"Ziwei chart"}},"required":[]},"numerology":{"type":"object","description":"Numerology chart or null when no name given","properties":{"lifePath":{"type":"object","description":"Life path number"},"expression":{"type":"object","description":"Expression number"},"soulUrge":{"type":"object","description":"Soul urge number"},"personality":{"type":"object","description":"Personality number"},"birthday":{"type":"object","description":"Birthday number"},"maturity":{"type":"object","description":"Maturity number"},"nameUsed":{"type":"string","description":"Name used for computation"}},"required":[]},"resolvedRules":{"type":"array","description":"L3 rules resolved for this chart","items":{"type":"object","properties":{"id":{"type":"string","description":"Rule id"},"name":{"type":"string","description":"Rule name"},"tradition":{"type":"string","description":"Rule tradition"},"primaryPlanet":{"type":"string","description":"Primary planet when set"},"staticStrength":{"type":"number"},"temporalActivation":{"type":"number"},"effectiveScore":{"type":"number"},"salience":{"type":"number"},"sourceAgreement":{"type":"number"},"cancels":{"type":"array","items":{"type":"string"}},"cancelledBy":{"type":"array","items":{"type":"string"}},"interpretationHints":{"type":"array","items":{"type":"string"}}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Full profile: western placements/aspects/patterns/dispositors, vedic lagna/planets/vargas/shadbala/ashtakavarga/dashas/panchang, Chinese BaZi, and numerology.","operationId":"postChartUniversal","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"name":{"type":"string","description":"Native name (enables numerology)","example":"Native"}}}}}}}},"/v1/western/natal-chart":{"post":{"summary":"Western natal chart","responses":{"200":{"description":"Western planets, angles, house cusps, aspects, and aspect patterns","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"system":{"type":"string","description":"House system used","example":"PLACIDUS"},"planets":{"type":"object","description":"Map of planet name to western placement","properties":{"SUN":{"type":"object","description":"Placement for one planet (SUN shown as example key)","properties":{"name":{"type":"string","description":"Planet name"},"sign":{"type":"string","description":"Zodiac sign"},"signIndex":{"type":"number","description":"Sign index 0-11"},"degreeInSign":{"type":"number","description":"Degrees within the sign"},"house":{"type":"number","description":"House number 1-12"},"dignity":{"type":"string","description":"Dignity state (domicile, exaltation, etc.)"},"element":{"type":"string","description":"Element of the sign"},"modality":{"type":"string","description":"Modality of the sign"},"polarity":{"type":"string","description":"Polarity of the sign"},"longitude":{"type":"number","description":"Tropical longitude"},"isRetrograde":{"type":"boolean"},"speedDegPerDay":{"type":"number","description":"Daily motion in degrees"}},"required":[]}},"required":[]},"angles":{"type":"object","description":"Ascendant and midheaven angles","properties":{"ascendant":{"type":"object","description":"Longitude, sign, signIndex, degreeInSign, house 1","properties":{"longitude":{"type":"number"},"sign":{"type":"string"},"signIndex":{"type":"number"},"degreeInSign":{"type":"number"},"house":{"type":"number"}},"required":[]},"midheaven":{"type":"object","description":"Longitude, sign, signIndex, degreeInSign, house 10","properties":{"longitude":{"type":"number"},"sign":{"type":"string"},"signIndex":{"type":"number"},"degreeInSign":{"type":"number"},"house":{"type":"number"}},"required":[]}},"required":[]},"cusps":{"type":"array","description":"Twelve house cusps with sign and sign lord","items":{"type":"object","properties":{"house":{"type":"number","description":"House number 1-12"},"longitude":{"type":"number"},"sign":{"type":"string"},"signIndex":{"type":"number"},"degreeInSign":{"type":"number"},"signLord":{"type":"string"}},"required":[]}},"aspects":{"type":"array","description":"Inter-planetary aspects","items":{"type":"object","properties":{"planet1":{"type":"string"},"planet2":{"type":"string"},"aspectType":{"type":"string"},"orbDegrees":{"type":"number"},"isApplying":{"type":"boolean"},"strength":{"type":"number"}},"required":[]}},"aspectPatterns":{"type":"array","description":"Detected aspect patterns","items":{"type":"object","properties":{"patternType":{"type":"string"},"planets":{"type":"array","items":{"type":"string"}},"averageOrb":{"type":"number"},"strength":{"type":"number"},"apexPlanet":{"type":"string"},"focalPlanet":{"type":"string"},"element":{"type":"string"},"modality":{"type":"string"}},"required":[]}},"count":{"type":"number","description":"Count of aspects and patterns"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Western slice: planets with sign/house/dignity, house cusps, aspects, and aspect patterns.","operationId":"postWesternNatalChart","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude","timezone"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/western/houses":{"post":{"summary":"House cusps","responses":{"200":{"description":"House cusps with sign and sign lord for the requested system","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"system":{"type":"string","description":"House system used","example":"PLACIDUS"},"cusps":{"type":"array","description":"Twelve house cusps with sign and sign lord","items":{"type":"object","properties":{"house":{"type":"number","description":"House number 1-12"},"longitude":{"type":"number"},"sign":{"type":"string"},"signIndex":{"type":"number"},"degreeInSign":{"type":"number"},"signLord":{"type":"string"}},"required":[]}},"angles":{"type":"object","description":"Ascendant and midheaven longitudes","properties":{"ascendant":{"type":"number","description":"Ascendant longitude"},"midheaven":{"type":"number","description":"Midheaven longitude"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"House cusps with sign and sign lord for the requested system.","operationId":"postWesternHouses","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude","timezone"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"houseSystem":{"type":"string","description":"House system","enum":["PLACIDUS","WHOLE_SIGN","KOCH","EQUAL","CAMPANUS","REGIOMONTANUS"]}}}}}}}},"/v1/western/aspects":{"post":{"summary":"Western aspects","responses":{"200":{"description":"All inter-planetary aspects with orbs","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"system":{"type":"string","description":"House system used","example":"PLACIDUS"},"aspects":{"type":"array","description":"Inter-planetary aspects","items":{"type":"object","properties":{"planet1":{"type":"string"},"planet2":{"type":"string"},"aspectType":{"type":"string"},"orbDegrees":{"type":"number"},"isApplying":{"type":"boolean"},"strength":{"type":"number"}},"required":[]}},"count":{"type":"number","description":"Number of aspects"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"All inter-planetary aspects with orbs.","operationId":"postWesternAspects","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude","timezone"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/western/aspect-patterns":{"post":{"summary":"Aspect patterns","responses":{"200":{"description":"Detected aspect patterns with their member planets","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"system":{"type":"string","description":"House system used","example":"PLACIDUS"},"aspectPatterns":{"type":"array","description":"Detected aspect patterns","items":{"type":"object","properties":{"patternType":{"type":"string"},"planets":{"type":"array","items":{"type":"string"}},"averageOrb":{"type":"number"},"strength":{"type":"number"},"apexPlanet":{"type":"string"},"focalPlanet":{"type":"string"},"element":{"type":"string"},"modality":{"type":"string"}},"required":[]}},"count":{"type":"number","description":"Number of patterns"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Complex geometries (Grand Trines, T-Squares, Kites, Yods, Mystic Rectangles).","operationId":"postWesternAspectPatterns","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude","timezone"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/western/fixed-stars":{"post":{"summary":"Fixed stars","responses":{"200":{"description":"Precessed fixed star catalog with conjunctions to natal points","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDetails":{"type":"object","description":"Echo of the chart moment","properties":{"date":{"type":"string","description":"Local birth date"},"time":{"type":"string","description":"Local birth time"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"UTC offset hours"}},"required":[]},"orb":{"type":"number","description":"Conjunction orb in degrees used"},"stars":{"type":"array","description":"Fixed stars precessed to the birth year","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"},"magnitude":{"type":"number"},"nature":{"type":"string"},"conjunctions":{"type":"array","description":"Natal points within orb","items":{"type":"object","properties":{"point":{"type":"string"},"pointLongitude":{"type":"number"},"orb":{"type":"number"}},"required":[]}}},"required":[]}},"conjunctions":{"type":"array","description":"Flat list of star-point conjunctions with interpretations","items":{"type":"object","properties":{"star":{"type":"string"},"point":{"type":"string"},"orb":{"type":"number"},"interpretation":{"type":"string"}},"required":[]}},"summary":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Precessed fixed star catalog (Regulus, Spica, Algol and more) with conjunctions to natal points within an orb.","operationId":"postWesternFixedStars","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude","timezone"],"properties":{"date":{"type":"string","description":"Local birth date (YYYY-MM-DD)","example":"1990-05-15"},"time":{"type":"string","description":"Local birth time (HH:MM:SS)","example":"17:30:00"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier or UTC offset","example":"Asia/Kolkata"},"orb":{"type":"number","description":"Conjunction orb in degrees","example":1}}}}}}}},"/v1/western/asteroids":{"post":{"summary":"Asteroids","responses":{"200":{"description":"Ceres, Pallas, Juno, and Vesta natal positions","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDetails":{"type":"object","description":"Echo of the chart moment","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"UTC offset hours"}},"required":[]},"houseSystem":{"type":"string","description":"House system used"},"asteroids":{"type":"array","description":"The four goddess asteroids","items":{"type":"object","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"latitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"},"house":{"type":"number"},"speed":{"type":"number"},"isRetrograde":{"type":"boolean"},"interpretation":{"type":"string"}},"required":[]}},"summary":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Ceres, Pallas, Juno, and Vesta natal positions with sign, degree, house, and interpretation.","operationId":"postWesternAsteroids","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude","timezone"],"properties":{"date":{"type":"string","description":"Local birth date (YYYY-MM-DD)","example":"1990-05-15"},"time":{"type":"string","description":"Local birth time (HH:MM:SS)","example":"17:30:00"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier or UTC offset","example":"Asia/Kolkata"}}}}}}}},"/v1/western/profections":{"post":{"summary":"Annual profections","responses":{"200":{"description":"Lord of the year with profected house and sign","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDetails":{"type":"object","description":"Echo of the chart moment","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"UTC offset hours"}},"required":[]},"targetDate":{"type":"string","description":"Date the profection year is computed for"},"age":{"type":"number","description":"Age at the target date"},"profectedHouse":{"type":"number","description":"Profected house number 1-12"},"profectedSign":{"type":"string","description":"Profected sign"},"lordOfYear":{"type":"string","description":"Ruling planet of the year"},"lordNatalPosition":{"type":"object","description":"Natal placement of the lord of the year, or null","properties":{"sign":{"type":"string"},"house":{"type":"number"}},"required":[]},"interpretation":{"type":"string"},"summary":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Lord of the year: profected house and sign for a target date with the ruling planet's natal position.","operationId":"postWesternProfections","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude","timezone"],"properties":{"date":{"type":"string","description":"Local birth date (YYYY-MM-DD)","example":"1990-05-15"},"time":{"type":"string","description":"Local birth time (HH:MM:SS)","example":"17:30:00"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier or UTC offset","example":"Asia/Kolkata"},"targetDate":{"type":"string","description":"YYYY-MM-DD to compute the profection year for","example":"2026-08-04"}}}}}}}},"/v1/western/planets":{"post":{"summary":"Isolated planetary positions","responses":{"200":{"description":"Raw planetary positions for the Western frame","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"planets":{"type":"array","description":"Planet positions with sign, degree, and retrograde status","items":{"type":"object","properties":{"name":{"type":"string"},"longitude":{"type":"number","description":"Tropical longitude"},"sign":{"type":"string"},"degree":{"type":"number","description":"Degrees within the sign"},"speed":{"type":"number","description":"Daily motion in degrees"},"isRetrograde":{"type":"boolean"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Raw planetary positions (Longitude, Sign, House, Retrograde status) for Western astrology.","operationId":"postWesternPlanets","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude","timezone"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/western/transits":{"post":{"summary":"Transit chart","responses":{"200":{"description":"Transit chart with natal and transit positions and aspects","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"transitDate":{"type":"string","description":"UTC date the transits were computed for"},"frame":{"type":"string","description":"NONE (tropical) or SIDEREAL"},"ayanamsa":{"type":"string","description":"Ayanamsa mode used"},"houseSystem":{"type":"string","description":"House system used"},"natalPlanets":{"type":"array","description":"Natal planet positions","items":{"type":"object","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"}},"required":[]}},"transitPlanets":{"type":"array","description":"Transit planet positions","items":{"type":"object","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"}},"required":[]}},"count":{"type":"number","description":"Number of transit-to-natal aspects"},"aspects":{"type":"array","description":"Transit-to-natal aspects","items":{"type":"object","properties":{"transitPlanet":{"type":"string"},"natalPlanet":{"type":"string"},"aspectType":{"type":"string"},"orbDegrees":{"type":"number"},"isApplying":{"type":"boolean"},"strength":{"type":"number"}},"required":[]}},"summary":{"type":"object","description":"Aspect rollup","properties":{"total":{"type":"number"},"applying":{"type":"number"},"separating":{"type":"number"},"strongest":{"type":"object","description":"Strongest aspect, or null","properties":{"transitPlanet":{"type":"string"},"natalPlanet":{"type":"string"},"aspectType":{"type":"string"},"orbDegrees":{"type":"number"},"isApplying":{"type":"boolean"},"strength":{"type":"number"}},"required":[]}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Current real-time planetary positions overlaid on the natal chart.","operationId":"postWesternTransits","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude","timezone"],"properties":{"datetime":{"type":"string","description":"ISO-8601 natal birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"targetDate":{"type":"string","description":"Target date (YYYY-MM-DD) or ISO datetime for transits; defaults to now","example":"2026-08-04"},"frame":{"type":"string","description":"NONE (tropical) or SIDEREAL","example":"NONE"},"houseSystem":{"type":"string","description":"House system code or name","example":"P"},"ayanamsa":{"type":"string","description":"Ayanamsa mode when frame is SIDEREAL","example":"LAHIRI"}}}}}}}},"/v1/western/transit-aspects":{"post":{"summary":"Transit aspect map","responses":{"200":{"description":"Transit-to-natal aspect map consumed by the rule engine","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"transitDate":{"type":"string","description":"UTC date the transits were computed for"},"frame":{"type":"string","description":"NONE (tropical) or SIDEREAL"},"ayanamsa":{"type":"string","description":"Ayanamsa mode used"},"houseSystem":{"type":"string","description":"House system used"},"count":{"type":"number","description":"Number of transit-to-natal aspects"},"aspects":{"type":"array","description":"Transit-to-natal aspects","items":{"type":"object","properties":{"transitPlanet":{"type":"string"},"natalPlanet":{"type":"string"},"aspectType":{"type":"string"},"orbDegrees":{"type":"number"},"isApplying":{"type":"boolean"},"strength":{"type":"number"}},"required":[]}},"map":{"type":"object","description":"Per-transit-planet aspect flags (e.g. SUN.OPPOSITION true), orb, and natalPlanet","properties":{"SUN":{"type":"object","description":"Example transit planet entry","properties":{"OPPOSITION":{"type":"boolean","description":"Aspect flag keyed by aspect type"},"orb":{"type":"number"},"natalPlanet":{"type":"string"}},"required":[]}},"required":[]},"summary":{"type":"object","description":"Aspect rollup","properties":{"total":{"type":"number"},"applying":{"type":"number"},"separating":{"type":"number"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Transit-to-natal aspects with orbs, applying/separating status, and the per-planet aspect map consumed by the rule engine.","operationId":"postWesternTransitAspects","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude","targetDate"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"targetDate":{"type":"string","description":"Target date for transits","example":"2026-08-04"},"frame":{"type":"string","description":"NONE (tropical) or SIDEREAL","example":"NONE"},"houseSystem":{"type":"string","description":"House system code or name","example":"P"},"ayanamsa":{"type":"string","description":"Ayanamsa mode when frame is SIDEREAL","example":"LAHIRI"},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/western/progressions":{"post":{"summary":"Secondary progressions","responses":{"200":{"description":"Secondary progressed chart positions and angles","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDetails":{"type":"object","description":"Echo of the natal moment","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"UTC offset hours"}},"required":[]},"targetDate":{"type":"string","description":"Date the progression is computed for"},"progressedDate":{"type":"string","description":"Equivalent progressed ephemeris date"},"elapsedYears":{"type":"number","description":"Years elapsed from birth to target"},"ayanamsa":{"type":"string"},"houseSystem":{"type":"string"},"planets":{"type":"array","description":"Progressed planet positions","items":{"type":"object","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"string","description":"Degrees within sign (formatted)"},"house":{"type":"number"},"isRetrograde":{"type":"boolean"},"interpretation":{"type":"string"}},"required":[]}},"ascendant":{"type":"object","description":"Progressed ascendant","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"}},"required":[]},"midheaven":{"type":"object","description":"Progressed midheaven","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"}},"required":[]},"summary":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Secondary progressions (1 day = 1 year calculation mapping).","operationId":"postWesternProgressions","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude"],"properties":{"date":{"type":"string","description":"Natal date YYYY-MM-DD","example":"1990-05-15"},"time":{"type":"string","description":"Natal time HH:MM or HH:MM:SS","example":"12:00"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"targetDate":{"type":"string","description":"Target date (YYYY-MM-DD) or ISO datetime for the progression","example":"2026-08-04"},"houseSystem":{"type":"string","description":"House system code or name","example":"P"},"ayanamsa":{"type":"string","description":"Ayanamsa mode","example":"NONE"}}}}}}}},"/v1/western/returns/solar":{"post":{"summary":"Solar return chart","responses":{"200":{"description":"Exact solar return moment with the return chart","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDate":{"type":"string","description":"Natal date echoed"},"solarReturnDate":{"type":"string","description":"Exact solar return moment (local)"},"solarReturnYear":{"type":"number"},"ayanamsa":{"type":"string"},"houseSystem":{"type":"string"},"chart":{"type":"object","description":"Solar return chart","properties":{"birthDetails":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"Timezone as given (IANA string or UTC offset)"}},"required":[]},"ascendant":{"type":"object","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"}},"required":[]},"planets":{"type":"array","description":"Return chart planet positions","items":{"type":"object","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"},"isRetrograde":{"type":"boolean"},"speed":{"type":"number"}},"required":[]}}},"required":[]},"summary":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Annual birthday forecast chart: exact solar return moment, full chart with planets, houses, aspects.","operationId":"postWesternReturnsSolar","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthDate","returnYear"],"properties":{"birthDate":{"type":"string","description":"Natal date YYYY-MM-DD","example":"1990-05-15"},"birthTime":{"type":"string","description":"Natal time HH:MM or HH:MM:SS","example":"12:00"},"returnYear":{"type":"number","description":"Return year","example":2026},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"houseSystem":{"type":"string","description":"House system code or name","example":"P"},"ayanamsa":{"type":"string","description":"Ayanamsa mode","example":"NONE"}}}}}}}},"/v1/western/returns/lunar":{"post":{"summary":"Lunar return chart","responses":{"200":{"description":"Exact lunar return moment with the return chart","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDate":{"type":"string","description":"Natal date echoed"},"lunarReturnDate":{"type":"string","description":"Exact lunar return moment (local)"},"location":{"type":"object","description":"Chart location","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":[]},"ayanamsa":{"type":"string"},"houseSystem":{"type":"string"},"chart":{"type":"object","description":"Lunar return chart","properties":{"birthDetails":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"Timezone as given (IANA string or UTC offset)"}},"required":[]},"ascendant":{"type":"object","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"}},"required":[]},"planets":{"type":"array","description":"Return chart planet positions","items":{"type":"object","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"},"isRetrograde":{"type":"boolean"},"speed":{"type":"number"}},"required":[]}}},"required":[]},"summary":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Monthly forecast chart: exact lunar return moment, full chart.","operationId":"postWesternReturnsLunar","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthDate","returnDate"],"properties":{"birthDate":{"type":"string","description":"Natal date YYYY-MM-DD","example":"1990-05-15"},"birthTime":{"type":"string","description":"Natal time HH:MM or HH:MM:SS","example":"12:00"},"returnDate":{"type":"string","description":"Window date YYYY-MM-DD near the expected lunar return","example":"2026-08-01"},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"houseSystem":{"type":"string","description":"House system code or name","example":"P"},"ayanamsa":{"type":"string","description":"Ayanamsa mode","example":"NONE"}}}}}}}},"/v1/western/synastry/composite":{"post":{"summary":"Composite relationship chart","responses":{"200":{"description":"Composite midpoint chart between two individuals","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"person1":{"type":"object","description":"Birth details for person 1","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"UTC offset hours"}},"required":[]},"person2":{"type":"object","description":"Birth details for person 2","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"UTC offset hours"}},"required":[]},"compositePlanets":{"type":"array","description":"Midpoint planets","items":{"type":"object","properties":{"name":{"type":"string"},"symbol":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"}},"required":[]}},"compositeHouses":{"type":"array","description":"Midpoint house cusps","items":{"type":"object","properties":{"number":{"type":"number"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"}},"required":[]}},"compositeAscendant":{"type":"object","properties":{"sign":{"type":"string"},"degree":{"type":"number"},"longitude":{"type":"number"}},"required":[]},"compositeMidheaven":{"type":"object","properties":{"sign":{"type":"string"},"degree":{"type":"number"},"longitude":{"type":"number"}},"required":[]},"aspects":{"type":"array","description":"Aspects between composite planets","items":{"type":"object","properties":{"planet1":{"type":"string"},"planet2":{"type":"string"},"aspectType":{"type":"string"},"orbDegrees":{"type":"number"},"isApplying":{"type":"boolean"},"strength":{"type":"number"}},"required":[]}},"interpretation":{"type":"object","description":"Relationship interpretation","properties":{"summary":{"type":"string"},"strengths":{"type":"array","items":{"type":"string"}},"challenges":{"type":"array","items":{"type":"string"}}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Mathematical midpoint relationship chart between two individuals.","operationId":"postWesternSynastryComposite","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["person1","person2"],"properties":{"person1":{"type":"object","description":"Birth details for person 1: { date (YYYY-MM-DD), time (HH:MM or HH:MM:SS), latitude, longitude, timezone }","example":{"date":"1990-05-15","time":"12:00","latitude":28.6139,"longitude":77.209,"timezone":"Asia/Kolkata"}},"person2":{"type":"object","description":"Birth details for person 2: { date (YYYY-MM-DD), time (HH:MM or HH:MM:SS), latitude, longitude, timezone }","example":{"date":"1995-10-25","time":"14:30","latitude":0,"longitude":0,"timezone":"UTC"}},"houseSystem":{"type":"string","description":"House system code or name (whole-sign, placidus, equal, koch)","example":"whole-sign"}}}}}}}},"/v1/western/synastry/davison":{"post":{"summary":"Davison relationship chart","responses":{"200":{"description":"Davison time/space midpoint chart","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"person1":{"type":"object","description":"Raw person 1 request echo"},"person2":{"type":"object","description":"Raw person 2 request echo"},"person1Utc":{"type":"string","description":"Person 1 UTC instant"},"person2Utc":{"type":"string","description":"Person 2 UTC instant"},"davisonLocation":{"type":"object","description":"Midpoint coordinates and time","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"datetime":{"type":"string","description":"Midpoint UTC instant"}},"required":[]},"ayanamsa":{"type":"string"},"tropical":{"type":"boolean"},"positions":{"type":"array","description":"Raw ephemeris positions at the midpoint","items":{"type":"object","properties":{"body":{"type":"string"},"longitude":{"type":"number"},"latitude":{"type":"number"},"distanceAU":{"type":"number"},"speedDegPerDay":{"type":"number"},"isRetrograde":{"type":"boolean"},"julianDay":{"type":"number"},"available":{"type":"boolean"}},"required":[]}},"houses":{"type":"object","description":"House cusps at the midpoint","properties":{"cusps":{"type":"array","description":"Twelve cusp longitudes","items":{"type":"number"}},"ascendant":{"type":"number"},"midheaven":{"type":"number"},"vertex":{"type":"number"},"eastPoint":{"type":"number"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Time/Space midpoint relationship chart (using the average datetime and coordinates).","operationId":"postWesternSynastryDavison","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["person1","person2"],"properties":{"person1":{"type":"object","description":"Birth details for person 1: { date (YYYY-MM-DD), time (HH:MM or HH:MM:SS), latitude, longitude, timezone }","example":{"date":"1990-05-15","time":"12:00","latitude":28.6139,"longitude":77.209,"timezone":"Asia/Kolkata"}},"person2":{"type":"object","description":"Birth details for person 2: { date (YYYY-MM-DD), time (HH:MM or HH:MM:SS), latitude, longitude, timezone }","example":{"date":"1995-10-25","time":"14:30","latitude":0,"longitude":0,"timezone":"UTC"}},"houseSystem":{"type":"string","description":"House system code or name; defaults to placidus","example":"placidus"}}}}}}}},"/v1/western/horoscope":{"post":{"summary":"Western horoscopes","responses":{"200":{"description":"Dynamic horoscope reading derived from transit-to-natal rules","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"date":{"type":"string","description":"Best day within the window"},"type":{"type":"string","description":"daily, weekly, or monthly"},"reading":{"type":"string","description":"Generated reading text"},"activeTransits":{"type":"array","description":"Active transit rule names","items":{"type":"string"}},"transitAspects":{"type":"array","description":"Transit-to-natal aspects on the best day","items":{"type":"object","properties":{"transitPlanet":{"type":"string"},"natalPlanet":{"type":"string"},"aspectType":{"type":"string"},"orbDegrees":{"type":"number"},"isApplying":{"type":"boolean"},"strength":{"type":"number"}},"required":[]}},"summary":{"type":"object","description":"Aspect rollup","properties":{"total":{"type":"number"},"applying":{"type":"number"},"separating":{"type":"number"},"strongest":{"type":"object","description":"Strongest aspect with label, or null","properties":{"transitPlanet":{"type":"string"},"natalPlanet":{"type":"string"},"aspectType":{"type":"string"},"orbDegrees":{"type":"number"},"isApplying":{"type":"boolean"},"strength":{"type":"number"},"aspectLabel":{"type":"string"}},"required":[]}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Daily, weekly, monthly horoscopes generated dynamically via transit-to-natal L3 rules.","operationId":"postWesternHoroscope","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthData","type","targetDate"],"properties":{"birthData":{"type":"object","description":"Birth details"},"type":{"type":"string","description":"daily, weekly, or monthly","example":"daily"},"targetDate":{"type":"string","description":"YYYY-MM-DD","example":"2026-08-04"}}}}}}}},"/v1/western/signs":{"get":{"summary":"Zodiac signs","responses":{"200":{"description":"All 12 zodiac signs with meanings and element/modality","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"symbolName":{"type":"string"},"element":{"type":"string"},"modality":{"type":"string"},"rulingPlanet":{"type":"string"},"dates":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"famous":{"type":"array","items":{"type":"string"}},"strengths":{"type":"array","items":{"type":"string"}},"motto":{"type":"string"},"gifts":{"type":"array","items":{"type":"string"}},"challenges":{"type":"array","items":{"type":"string"}},"weapon":{"type":"string"},"compatibleSigns":{"type":"array","items":{"type":"string"}}},"required":[]}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"List all 12 zodiac signs with basic meanings and element/modality.","operationId":"getWesternSigns","tags":["Western"]}},"/v1/western/signs/:id":{"get":{"summary":"Zodiac sign details","responses":{"200":{"description":"Detailed metadata for one zodiac sign","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"id":{"type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"symbolName":{"type":"string"},"element":{"type":"string"},"modality":{"type":"string"},"rulingPlanet":{"type":"string"},"dates":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"famous":{"type":"array","items":{"type":"string"}},"strengths":{"type":"array","items":{"type":"string"}},"motto":{"type":"string"},"gifts":{"type":"array","items":{"type":"string"}},"challenges":{"type":"array","items":{"type":"string"}},"weapon":{"type":"string"},"compatibleSigns":{"type":"array","items":{"type":"string"}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Detailed metadata for a specific zodiac sign.","operationId":"getWesternSignsId","tags":["Western"]}},"/v1/western/planet-meanings":{"get":{"summary":"Planet meanings","responses":{"200":{"description":"All planets with their astrological meanings","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"tagline":{"type":"string"},"category":{"type":"string"},"temperature":{"type":"string"},"orbit":{"type":"string"},"retrograde":{"type":"string"},"rulership":{"type":"string"},"detriment":{"type":"string"},"exaltation":{"type":"string"},"fall":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}},"description":{"type":"string"}},"required":[]}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"List all planets with their astrological meanings.","operationId":"getWesternPlanetMeanings","tags":["Western"]}},"/v1/western/planet-meanings/:id":{"get":{"summary":"Planet details","responses":{"200":{"description":"Detailed metadata for one planet","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"id":{"type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"tagline":{"type":"string"},"category":{"type":"string"},"temperature":{"type":"string"},"orbit":{"type":"string"},"retrograde":{"type":"string"},"rulership":{"type":"string"},"detriment":{"type":"string"},"exaltation":{"type":"string"},"fall":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}},"description":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Detailed metadata for a specific planet.","operationId":"getWesternPlanetMeaningsId","tags":["Western"]}},"/v1/western/horoscope/:sign/daily":{"get":{"summary":"Daily horoscope for sign","responses":{"200":{"description":"Daily horoscope reading for the sign","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"sign":{"type":"string","description":"Zodiac sign, title-cased"},"date":{"type":"string","description":"Horoscope date"},"overview":{"type":"string"},"love":{"type":"string"},"career":{"type":"string"},"health":{"type":"string"},"finance":{"type":"string"},"advice":{"type":"string"},"luckyNumber":{"type":"number"},"luckyColor":{"type":"string"},"compatibleSigns":{"type":"array","items":{"type":"string"}},"activeTransits":{"type":"array","items":{"type":"string"}},"moonSign":{"type":"string"},"moonPhase":{"type":"string"},"energyRating":{"type":"number","description":"Energy score 1-10"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Get today's horoscope for a specific zodiac sign.","operationId":"getWesternHoroscopeSignDaily","tags":["Western"]}},"/v1/western/horoscope/:sign/weekly":{"get":{"summary":"Weekly horoscope for sign","responses":{"200":{"description":"Weekly horoscope reading for the sign","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"sign":{"type":"string","description":"Zodiac sign, title-cased"},"date":{"type":"string","description":"Horoscope date"},"overview":{"type":"string"},"love":{"type":"string"},"career":{"type":"string"},"health":{"type":"string"},"finance":{"type":"string"},"advice":{"type":"string"},"luckyNumber":{"type":"number"},"luckyColor":{"type":"string"},"compatibleSigns":{"type":"array","items":{"type":"string"}},"activeTransits":{"type":"array","items":{"type":"string"}},"moonSign":{"type":"string"},"moonPhase":{"type":"string"},"energyRating":{"type":"number","description":"Energy score 1-10"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Get this week's horoscope for a specific zodiac sign.","operationId":"getWesternHoroscopeSignWeekly","tags":["Western"]}},"/v1/western/horoscope/:sign/monthly":{"get":{"summary":"Monthly horoscope for sign","responses":{"200":{"description":"Monthly horoscope reading for the sign","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"sign":{"type":"string","description":"Zodiac sign, title-cased"},"date":{"type":"string","description":"Horoscope date"},"overview":{"type":"string"},"love":{"type":"string"},"career":{"type":"string"},"health":{"type":"string"},"finance":{"type":"string"},"advice":{"type":"string"},"luckyNumber":{"type":"number"},"luckyColor":{"type":"string"},"compatibleSigns":{"type":"array","items":{"type":"string"}},"activeTransits":{"type":"array","items":{"type":"string"}},"moonSign":{"type":"string"},"moonPhase":{"type":"string"},"energyRating":{"type":"number","description":"Energy score 1-10"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Get this month's horoscope for a specific zodiac sign.","operationId":"getWesternHoroscopeSignMonthly","tags":["Western"]}},"/v1/western/planetary-returns":{"post":{"summary":"Planetary returns","responses":{"200":{"description":"Planetary return chart with interpretation","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDate":{"type":"string"},"planet":{"type":"string","description":"Returning planet"},"returnDate":{"type":"string","description":"Exact return moment (local)"},"approximateCycle":{"type":"string","description":"Cycle length label"},"location":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":[]},"ayanamsa":{"type":"string"},"houseSystem":{"type":"string"},"chart":{"type":"object","description":"Return chart","properties":{"birthDetails":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"Timezone as given (IANA string or UTC offset)"}},"required":[]},"planets":{"type":"array","description":"Return chart planet positions","items":{"type":"object","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"},"isRetrograde":{"type":"boolean"},"speed":{"type":"number"}},"required":[]}}},"required":[]},"natalPlanetPosition":{"type":"object","description":"Natal longitude of the returning planet","properties":{"longitude":{"type":"number"}},"required":[]},"interpretation":{"type":"object","properties":{"summary":{"type":"string"},"themes":{"type":"array","items":{"type":"string"}},"opportunities":{"type":"array","items":{"type":"string"}},"challenges":{"type":"array","items":{"type":"string"}}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Calculate returns for any planet (Jupiter, Saturn, etc.).","operationId":"postWesternPlanetaryReturns","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthDate","planet"],"properties":{"birthDate":{"type":"string","description":"Natal date YYYY-MM-DD","example":"1990-05-15"},"birthTime":{"type":"string","description":"Natal time HH:MM or HH:MM:SS","example":"12:00"},"planet":{"type":"string","description":"Planet name (Sun, Moon, Mercury, Venus, Mars, Jupiter, Saturn)","example":"Jupiter"},"approximateDate":{"type":"string","description":"Approximate return date YYYY-MM-DD to seed the search","example":"2026-01-01"},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"houseSystem":{"type":"string","description":"House system code or name","example":"P"},"ayanamsa":{"type":"string","description":"Ayanamsa mode","example":"NONE"}}}}}}}},"/v1/western/arabic-lots":{"post":{"summary":"Arabic lots","responses":{"200":{"description":"Seven Hermetic lots cast from the ascendant","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDetails":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"Timezone as given (IANA string or UTC offset)"}},"required":[]},"sect":{"type":"string","description":"Day or night chart"},"lots":{"type":"array","description":"Computed Arabic lots","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"},"formula":{"type":"string","description":"Casting formula"},"interpretation":{"type":"string"}},"required":[]}},"summary":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Calculate Part of Fortune, Spirit, Eros, etc.","operationId":"postWesternArabicLots","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude"],"properties":{"date":{"type":"string","description":"Chart date YYYY-MM-DD","example":"1990-05-15"},"time":{"type":"string","description":"Chart time HH:MM or HH:MM:SS","example":"12:00"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"houseSystem":{"type":"string","description":"House system code or name","example":"P"},"ayanamsa":{"type":"string","description":"Ayanamsa mode","example":"NONE"}}}}}}}},"/v1/western/lilith":{"post":{"summary":"Black Moon Lilith","responses":{"200":{"description":"Mean and true Black Moon Lilith positions","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDetails":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"Timezone as given (IANA string or UTC offset)"}},"required":[]},"houseSystem":{"type":"string"},"ayanamsa":{"type":"string"},"lilith":{"type":"array","description":"Lilith variants","items":{"type":"object","properties":{"variant":{"type":"string","description":"mean or true"},"longitude":{"type":"number"},"latitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"},"house":{"type":"number"},"speed":{"type":"number"},"isRetrograde":{"type":"boolean"},"interpretation":{"type":"string"},"note":{"type":"string"}},"required":[]}},"summary":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Calculate Mean and True Black Moon Lilith.","operationId":"postWesternLilith","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude"],"properties":{"date":{"type":"string","description":"Chart date YYYY-MM-DD","example":"1990-05-15"},"time":{"type":"string","description":"Chart time HH:MM or HH:MM:SS","example":"12:00"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"houseSystem":{"type":"string","description":"House system code or name","example":"P"},"ayanamsa":{"type":"string","description":"Ayanamsa mode","example":"NONE"}}}}}}}},"/v1/western/solar-arc":{"post":{"summary":"Solar Arc directions","responses":{"200":{"description":"Solar arc directed positions","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDetails":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"Timezone as given (IANA string or UTC offset)"}},"required":[]},"targetDate":{"type":"string","description":"Date the direction is computed for"},"solarArc":{"type":"number","description":"Arc degrees applied"},"ayanamsa":{"type":"string"},"houseSystem":{"type":"string"},"summary":{"type":"string"},"directed":{"type":"array","description":"Directed natal points","items":{"type":"object","properties":{"name":{"type":"string"},"natalLongitude":{"type":"number"},"directedLongitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"},"interpretation":{"type":"string"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Calculate Solar Arc directed positions.","operationId":"postWesternSolarArc","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude"],"properties":{"date":{"type":"string","description":"Chart date YYYY-MM-DD","example":"1990-05-15"},"time":{"type":"string","description":"Chart time HH:MM or HH:MM:SS","example":"12:00"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"targetDate":{"type":"string","description":"Target date (YYYY-MM-DD) or ISO datetime for the solar arc direction","example":"2026-08-04"},"houseSystem":{"type":"string","description":"House system code or name","example":"P"},"ayanamsa":{"type":"string","description":"Ayanamsa mode","example":"NONE"}}}}}}}},"/v1/horoscope/reading":{"post":{"summary":"Horoscope reading","responses":{"200":{"description":"Structured horoscope reading for a sign and timeframe","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"sign":{"type":"string","description":"Zodiac sign"},"timeframe":{"type":"string","description":"DAILY, WEEKLY, or MONTHLY"},"dateOrPeriod":{"type":"string","description":"Date or period the reading covers"},"element":{"type":"string"},"modality":{"type":"string"},"themes":{"type":"array","items":{"type":"string"}},"luckScore":{"type":"number","description":"Luck score 1-100"},"loveReading":{"type":"string"},"careerReading":{"type":"string"},"spiritualityReading":{"type":"string"},"luckyNumbers":{"type":"array","items":{"type":"number"}},"compatibleSign":{"type":"string"},"summary":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Daily, weekly, or monthly reading for a zodiac sign with luck score and guidance sections.","operationId":"postHoroscopeReading","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["sign","timeframe"],"properties":{"sign":{"type":"string","description":"Zodiac sign (Aries..Pisces)","example":"ARIES","enum":["ARIES","TAURUS","GEMINI","CANCER","LEO","VIRGO","LIBRA","SCORPIO","SAGITTARIUS","CAPRICORN","AQUARIUS","PISCES"]},"timeframe":{"type":"string","description":"Reading period","example":"DAILY","enum":["DAILY","WEEKLY","MONTHLY"]}}}}}}}},"/v1/western/compatibility-score":{"post":{"summary":"Compatibility score","responses":{"200":{"description":"Compatibility score between two charts","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"overallScore":{"type":"number","description":"Compatibility score"},"categories":{"type":"object","description":"Category scores keyed by category name","properties":{"example":{"type":"number","description":"Score for one category"}},"required":[]},"persons":{"type":"object","description":"Per-person placements","properties":{"person1":{"type":"object","description":"Map of planet to sign and degree"},"person2":{"type":"object","description":"Map of planet to sign and degree"}},"required":[]},"signCompatibility":{"type":"object","description":"Per-planet sign compatibility descriptions"},"elementBalance":{"type":"object","description":"Element distribution per person","properties":{"person1":{"type":"object","description":"Element counts"},"person2":{"type":"object","description":"Element counts"},"sharedElement":{"type":"string","description":"Shared dominant element, or null"},"description":{"type":"string"}},"required":[]},"archetype":{"type":"object","properties":{"label":{"type":"string"},"description":{"type":"string"}},"required":[]},"summary":{"type":"string"},"interpretation":{"type":"string"},"aspectBreakdown":{"type":"object","properties":{"total":{"type":"number"},"harmonious":{"type":"number"},"challenging":{"type":"number"},"neutral":{"type":"number"}},"required":[]},"keyAspects":{"type":"array","description":"Key inter-chart aspects","items":{"type":"object","properties":{"planet1":{"type":"string"},"planet2":{"type":"string"},"type":{"type":"string"},"orb":{"type":"number"},"interpretation":{"type":"string"},"description":{"type":"string"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Calculate a compatibility score between two charts.","operationId":"postWesternCompatibilityScore","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["person1","person2"],"properties":{"person1":{"type":"object","description":"Birth details for person 1"},"person2":{"type":"object","description":"Birth details for person 2"}}}}}}}},"/v1/western/astrocartography":{"post":{"summary":"Astrocartography lines","responses":{"200":{"description":"Planetary lines for world mapping","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDetails":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"UTC offset hours"}},"required":[]},"lines":{"type":"array","description":"Per-planet MC, IC, ASC, and DESC lines","items":{"type":"object","properties":{"planet":{"type":"string"},"symbol":{"type":"string"},"rightAscension":{"type":"number"},"declination":{"type":"number"},"mc":{"type":"object","properties":{"longitude":{"type":"number"},"interpretation":{"type":"string"}},"required":[]},"ic":{"type":"object","properties":{"longitude":{"type":"number"},"interpretation":{"type":"string"}},"required":[]},"ascendant":{"type":"object","properties":{"points":{"type":"array","items":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":[]}},"circumpolarBeyond":{"type":"number","description":"Latitude beyond which the line is circumpolar, or null"},"interpretation":{"type":"string"}},"required":[]},"descendant":{"type":"object","properties":{"points":{"type":"array","items":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":[]}},"circumpolarBeyond":{"type":"number","description":"Latitude beyond which the line is circumpolar, or null"},"interpretation":{"type":"string"}},"required":[]}},"required":[]}},"summary":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Calculate planetary lines (Asc, Desc, IC, MC) for world mapping.","operationId":"postWesternAstrocartography","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude","timezone"],"properties":{"date":{"type":"string","description":"Local birth date (YYYY-MM-DD)","example":"1990-05-15"},"time":{"type":"string","description":"Local birth time (HH:MM:SS)","example":"17:30:00"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier or UTC offset","example":"Asia/Kolkata"}}}}}}}},"/v1/western/relocation-chart":{"post":{"summary":"Relocation chart","responses":{"200":{"description":"Natal chart cast for a new location","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDetails":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"UTC offset hours"}},"required":[]},"relocation":{"type":"object","description":"Relocation coordinates","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":[]},"planets":{"type":"array","description":"Relocated planet positions","items":{"type":"object","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"latitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"},"house":{"type":"number"},"speed":{"type":"number"},"isRetrograde":{"type":"boolean"},"interpretation":{"type":"object","properties":{"summary":{"type":"string"},"detailed":{"type":"string"}},"required":[]}},"required":[]}},"houses":{"type":"array","description":"Relocated house cusps","items":{"type":"object","properties":{"number":{"type":"number"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"}},"required":[]}},"houseSystem":{"type":"string"},"ascendant":{"type":"object","properties":{"sign":{"type":"string"},"degree":{"type":"number"},"longitude":{"type":"number"}},"required":[]},"midheaven":{"type":"object","properties":{"sign":{"type":"string"},"degree":{"type":"number"},"longitude":{"type":"number"}},"required":[]},"vertex":{"type":"object","properties":{"sign":{"type":"string"},"degree":{"type":"number"},"longitude":{"type":"number"}},"required":[]},"changes":{"type":"object","description":"Chart changes from the relocation","properties":{"ascendantSignChanged":{"type":"boolean"},"planetsChangedHouse":{"type":"array","items":{"type":"object","properties":{"planet":{"type":"string"},"natalHouse":{"type":"number"},"relocatedHouse":{"type":"number"}},"required":[]}},"distanceKm":{"type":"number"},"direction":{"type":"string"}},"required":[]},"interpretation":{"type":"object","properties":{"summary":{"type":"string"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Calculate a natal chart cast for a new location.","operationId":"postWesternRelocationChart","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","birthLatitude","birthLongitude","relocationLatitude","relocationLongitude","timezone"],"properties":{"date":{"type":"string","description":"Local birth date (YYYY-MM-DD)","example":"1990-05-15"},"time":{"type":"string","description":"Local birth time (HH:MM:SS)","example":"17:30:00"},"birthLatitude":{"type":"number","description":"Birth place latitude","example":28.6139},"birthLongitude":{"type":"number","description":"Birth place longitude","example":77.209},"relocationLatitude":{"type":"number","description":"New location latitude","example":40.7128},"relocationLongitude":{"type":"number","description":"New location longitude","example":-74.006},"timezone":{"type":"string","description":"IANA timezone identifier or UTC offset","example":"Asia/Kolkata"}}}}}}}},"/v1/western/local-space":{"post":{"summary":"Local Space astrology","responses":{"200":{"description":"Local space azimuth and altitude for each body","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDetails":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"UTC offset hours"}},"required":[]},"bodies":{"type":"array","description":"Local space bodies with azimuth lines","items":{"type":"object","properties":{"planet":{"type":"string"},"symbol":{"type":"string"},"azimuth":{"type":"number"},"altitude":{"type":"number"},"compassDirection":{"type":"string"},"aboveHorizon":{"type":"boolean"},"line":{"type":"object","properties":{"points":{"type":"array","items":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":[]}}},"required":[]},"interpretation":{"type":"string"}},"required":[]}},"summary":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Calculate azimuth and altitude for local space lines.","operationId":"postWesternLocalSpace","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude","timezone"],"properties":{"date":{"type":"string","description":"Local birth date (YYYY-MM-DD)","example":"1990-05-15"},"time":{"type":"string","description":"Local birth time (HH:MM:SS)","example":"17:30:00"},"latitude":{"type":"number","description":"Latitude","example":28.6139},"longitude":{"type":"number","description":"Longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier or UTC offset","example":"Asia/Kolkata"}}}}}}}},"/v1/forecast/solar-return":{"post":{"summary":"Legacy Solar Return","responses":{"200":{"description":"Full solar return chart for the requested year","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDate":{"type":"string"},"solarReturnDate":{"type":"string","description":"Exact solar return moment (local)"},"solarReturnYear":{"type":"number"},"location":{"type":"object","properties":{"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number","description":"UTC offset hours"}},"required":[]},"natalSunPosition":{"type":"object","properties":{"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"}},"required":[]},"chart":{"type":"object","description":"Solar return chart","properties":{"birthDetails":{"type":"object","properties":{"date":{"type":"string"},"time":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"number"}},"required":[]},"planets":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"longitude":{"type":"number"},"latitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"},"house":{"type":"number"},"speed":{"type":"number"},"isRetrograde":{"type":"boolean"}},"required":[]}},"houses":{"type":"array","items":{"type":"object","properties":{"number":{"type":"number"},"longitude":{"type":"number"},"sign":{"type":"string"},"degree":{"type":"number"}},"required":[]}},"houseSystem":{"type":"string"},"aspects":{"type":"array","items":{"type":"object","properties":{"planet1":{"type":"string"},"planet2":{"type":"string"},"aspectType":{"type":"string"},"orbDegrees":{"type":"number"},"isApplying":{"type":"boolean"},"strength":{"type":"number"}},"required":[]}},"partOfFortune":{"type":"object","properties":{"sign":{"type":"string"},"degree":{"type":"number"},"longitude":{"type":"number"},"sect":{"type":"string"}},"required":[]},"vertex":{"type":"object","properties":{"sign":{"type":"string"},"degree":{"type":"number"},"longitude":{"type":"number"}},"required":[]}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Legacy endpoint for solar return.","operationId":"postForecastSolarReturn","tags":["Western"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthData","year"],"properties":{"birthData":{"type":"object","description":"Birth details: { date (YYYY-MM-DD), time (HH:MM or HH:MM:SS), latitude, longitude, timezone }"},"year":{"type":"number","description":"Target year for the solar return chart","example":2026},"houseSystem":{"type":"string","description":"placidus, equal, koch, or whole-sign","example":"whole-sign"}}}}}}}},"/v1/vedic/dasha":{"post":{"summary":"Vedic dasha timeline","responses":{"200":{"description":"Dasha timeline for the requested system","content":{"application/json":{"schema":{"type":"object","required":["system"],"properties":{"system":{"type":"string","description":"VIMSHOTTARI, YOGINI or CHARA","example":"VIMSHOTTARI"},"periods":{"type":"array","description":"Periods ordered chronologically","items":{"type":"object","description":"Period","properties":{"lord":{"type":"string","description":"Period lord"},"startDate":{"type":"string","description":"ISO date YYYY-MM-DD"},"endDate":{"type":"string","description":"ISO date YYYY-MM-DD"},"level":{"type":"number","description":"1=Maha, 2=Antar, 3=Pratyantar, 4=Sookshma, 5=Prana"}},"required":["level"]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Vimshottari (default), Yogini, or Jaimini Chara dasha timeline for the birth moment.","operationId":"postVedicDasha","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"system":{"type":"string","description":"Dasha system","enum":["VIMSHOTTARI","YOGINI","CHARA"]}}}}}}}},"/v1/vedic/dasha/sub/:mahadasha":{"post":{"summary":"Dasha antardashas","responses":{"200":{"description":"Sub-period timeline under the requested parent periods","content":{"application/json":{"schema":{"type":"object","required":["system","level","levelName"],"properties":{"system":{"type":"string","description":"Always VIMSHOTTARI"},"level":{"type":"number","description":"Period depth","example":1},"levelName":{"type":"string","description":"Level label","example":"MAHADASHA"},"path":{"type":"object","description":"Parent periods matched by URL params","properties":{"mahadasha":{"type":"string","description":"Mahadasha lord"},"antardasha":{"type":"string","description":"Antardasha lord"},"pratyantardasha":{"type":"string","description":"Pratyantardasha lord"},"sookshma":{"type":"string","description":"Sookshma lord"}},"required":[]},"subPeriods":{"type":"array","description":"Next-level periods","items":{"type":"object","description":"Period","properties":{"lord":{"type":"string","description":"Period lord"},"startDate":{"type":"string","description":"ISO date YYYY-MM-DD"},"endDate":{"type":"string","description":"ISO date YYYY-MM-DD"},"level":{"type":"number","description":"1=Maha, 2=Antar, 3=Pratyantar, 4=Sookshma, 5=Prana"}},"required":["level"]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Antardasha periods of one mahadasha (404 if not in the chart timeline).","operationId":"postVedicDashaSubMahadasha","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209}}}}}}}},"/v1/vedic/dasha/sub/:mahadasha/:antardasha":{"post":{"summary":"Dasha pratyantardashas","responses":{"200":{"description":"Sub-period timeline under the requested parent periods","content":{"application/json":{"schema":{"type":"object","required":["system","level","levelName"],"properties":{"system":{"type":"string","description":"Always VIMSHOTTARI"},"level":{"type":"number","description":"Period depth","example":2},"levelName":{"type":"string","description":"Level label","example":"ANTARDASHA"},"path":{"type":"object","description":"Parent periods matched by URL params","properties":{"mahadasha":{"type":"string","description":"Mahadasha lord"},"antardasha":{"type":"string","description":"Antardasha lord"},"pratyantardasha":{"type":"string","description":"Pratyantardasha lord"},"sookshma":{"type":"string","description":"Sookshma lord"}},"required":[]},"subPeriods":{"type":"array","description":"Next-level periods","items":{"type":"object","description":"Period","properties":{"lord":{"type":"string","description":"Period lord"},"startDate":{"type":"string","description":"ISO date YYYY-MM-DD"},"endDate":{"type":"string","description":"ISO date YYYY-MM-DD"},"level":{"type":"number","description":"1=Maha, 2=Antar, 3=Pratyantar, 4=Sookshma, 5=Prana"}},"required":["level"]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Pratyantardasha periods of one antardasha (404 if not in the chart timeline).","operationId":"postVedicDashaSubMahadashaAntardasha","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209}}}}}}}},"/v1/vedic/dasha/sub/:mahadasha/:antardasha/:pratyantardasha":{"post":{"summary":"Dasha sookshma periods","responses":{"200":{"description":"Sub-period timeline under the requested parent periods","content":{"application/json":{"schema":{"type":"object","required":["system","level","levelName"],"properties":{"system":{"type":"string","description":"Always VIMSHOTTARI"},"level":{"type":"number","description":"Period depth","example":3},"levelName":{"type":"string","description":"Level label","example":"PRATYANTARDASHA"},"path":{"type":"object","description":"Parent periods matched by URL params","properties":{"mahadasha":{"type":"string","description":"Mahadasha lord"},"antardasha":{"type":"string","description":"Antardasha lord"},"pratyantardasha":{"type":"string","description":"Pratyantardasha lord"},"sookshma":{"type":"string","description":"Sookshma lord"}},"required":[]},"subPeriods":{"type":"array","description":"Next-level periods","items":{"type":"object","description":"Period","properties":{"lord":{"type":"string","description":"Period lord"},"startDate":{"type":"string","description":"ISO date YYYY-MM-DD"},"endDate":{"type":"string","description":"ISO date YYYY-MM-DD"},"level":{"type":"number","description":"1=Maha, 2=Antar, 3=Pratyantar, 4=Sookshma, 5=Prana"}},"required":["level"]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Sookshma periods of one pratyantardasha (404 if not in the chart timeline).","operationId":"postVedicDashaSubMahadashaAntardashaPratyantardasha","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209}}}}}}}},"/v1/vedic/dasha/sub/:mahadasha/:antardasha/:pratyantardasha/:sookshma":{"post":{"summary":"Dasha prana periods","responses":{"200":{"description":"Sub-period timeline under the requested parent periods","content":{"application/json":{"schema":{"type":"object","required":["system","level","levelName"],"properties":{"system":{"type":"string","description":"Always VIMSHOTTARI"},"level":{"type":"number","description":"Period depth","example":4},"levelName":{"type":"string","description":"Level label","example":"SOOKSHMA"},"path":{"type":"object","description":"Parent periods matched by URL params","properties":{"mahadasha":{"type":"string","description":"Mahadasha lord"},"antardasha":{"type":"string","description":"Antardasha lord"},"pratyantardasha":{"type":"string","description":"Pratyantardasha lord"},"sookshma":{"type":"string","description":"Sookshma lord"}},"required":[]},"subPeriods":{"type":"array","description":"Next-level periods","items":{"type":"object","description":"Period","properties":{"lord":{"type":"string","description":"Period lord"},"startDate":{"type":"string","description":"ISO date YYYY-MM-DD"},"endDate":{"type":"string","description":"ISO date YYYY-MM-DD"},"level":{"type":"number","description":"1=Maha, 2=Antar, 3=Pratyantar, 4=Sookshma, 5=Prana"}},"required":["level"]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Prana periods of one sookshma dasha (404 if not in the chart timeline).","operationId":"postVedicDashaSubMahadashaAntardashaPratyantardashaSookshma","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209}}}}}}}},"/v1/vedic/dasha/current":{"post":{"summary":"Current Vimshottari period (maha to prana)","responses":{"200":{"description":"Active Vimshottari periods at the given date","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"frame":{"type":"object","description":"Calculation frame","properties":{"date":{"type":"string","description":"Requested date"},"time":{"type":"string","description":"Requested time"},"timezone":{"type":"string","description":"Timezone"},"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"ayanamsa":{"type":"string","description":"Ayanamsa mode"},"ayanamsaValue":{"type":"number","description":"Ayanamsa degrees"}},"required":[]},"moonNakshatra":{"type":"number","description":"Nakshatra index 0-26"},"nakshatraName":{"type":"string","description":"Nakshatra name"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"},"moonLongitude":{"type":"number","description":"Sidereal Moon longitude"},"mahadasha":{"type":"object","description":"Period with remaining balance","properties":{"lord":{"type":"string","description":"Period lord"},"startDate":{"type":"string","description":"Start ISO date"},"endDate":{"type":"string","description":"End ISO date"},"remaining":{"type":"object","description":"Remaining fraction","properties":{"fraction":{"type":"number","description":"Remaining fraction 0-1"},"text":{"type":"string","description":"Human-readable balance"}},"required":[]}},"required":[]},"antardasha":{"type":"object","description":"Period with remaining balance","properties":{"lord":{"type":"string","description":"Period lord"},"startDate":{"type":"string","description":"Start ISO date"},"endDate":{"type":"string","description":"End ISO date"},"remaining":{"type":"object","description":"Remaining fraction","properties":{"fraction":{"type":"number","description":"Remaining fraction 0-1"},"text":{"type":"string","description":"Human-readable balance"}},"required":[]}},"required":[]},"pratyantardasha":{"type":"object","description":"Period with remaining balance","properties":{"lord":{"type":"string","description":"Period lord"},"startDate":{"type":"string","description":"Start ISO date"},"endDate":{"type":"string","description":"End ISO date"},"remaining":{"type":"object","description":"Remaining fraction","properties":{"fraction":{"type":"number","description":"Remaining fraction 0-1"},"text":{"type":"string","description":"Human-readable balance"}},"required":[]}},"required":[]},"sookshmaDasha":{"type":"object","description":"Period with remaining balance","properties":{"lord":{"type":"string","description":"Period lord"},"startDate":{"type":"string","description":"Start ISO date"},"endDate":{"type":"string","description":"End ISO date"},"remaining":{"type":"object","description":"Remaining fraction","properties":{"fraction":{"type":"number","description":"Remaining fraction 0-1"},"text":{"type":"string","description":"Human-readable balance"}},"required":[]}},"required":[]},"pranaDasha":{"type":"object","description":"Period with remaining balance","properties":{"lord":{"type":"string","description":"Period lord"},"startDate":{"type":"string","description":"Start ISO date"},"endDate":{"type":"string","description":"End ISO date"},"remaining":{"type":"object","description":"Remaining fraction","properties":{"fraction":{"type":"number","description":"Remaining fraction 0-1"},"text":{"type":"string","description":"Human-readable balance"}},"required":[]}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Active Mahadasha, Antardasha, Pratyantardasha, Sookshma, and Prana periods with remaining balances.","operationId":"postVedicDashaCurrent","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"currentDate":{"type":"string","description":"Override the evaluation date (defaults to now)","example":"2026-08-03T00:00:00Z"}}}}}}}},"/v1/vedic/dasha/major":{"post":{"summary":"All 9 Vimshottari Mahadashas","responses":{"200":{"description":"All Vimshottari mahadashas for the lifetime","content":{"application/json":{"schema":{"type":"object","required":["totalYears"],"properties":{"frame":{"type":"object","description":"Calculation frame","properties":{"date":{"type":"string","description":"Requested date"},"time":{"type":"string","description":"Requested time"},"timezone":{"type":"string","description":"Timezone"},"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"ayanamsa":{"type":"string","description":"Ayanamsa mode"},"ayanamsaValue":{"type":"number","description":"Ayanamsa degrees"}},"required":[]},"moonNakshatra":{"type":"number","description":"Nakshatra index 0-26"},"nakshatraName":{"type":"string","description":"Nakshatra name"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"},"moonLongitude":{"type":"number","description":"Sidereal Moon longitude"},"birthDashaBalance":{"type":"string","description":"Balance text at birth"},"mahadashas":{"type":"array","description":"Mahadasha periods","items":{"type":"object","description":"Period","properties":{"lord":{"type":"string","description":"Period lord"},"startDate":{"type":"string","description":"ISO date YYYY-MM-DD"},"endDate":{"type":"string","description":"ISO date YYYY-MM-DD"},"level":{"type":"number","description":"1=Maha, 2=Antar, 3=Pratyantar, 4=Sookshma, 5=Prana"}},"required":["level"]}},"totalYears":{"type":"number","description":"Total timeline length in years","example":120}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"The full 120-year cycle: 9 mahadasha periods plus birth balance.","operationId":"postVedicDashaMajor","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209}}}}}}}},"/v1/vedic/kp/sublord":{"post":{"summary":"KP sub-lord for a longitude","responses":{"200":{"description":"KP sub-lord breakdown for a longitude","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"longitude":{"type":"number","description":"Absolute longitude 0-360"},"sign":{"type":"string","description":"Sign name"},"signLord":{"type":"string","description":"Sign lord"},"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"},"subLord":{"type":"string","description":"Sub-lord"},"subSubLord":{"type":"string","description":"Sub-sub-lord"},"degreeWithinNakshatra":{"type":"number","description":"Degrees within the nakshatra"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Sign lord, star lord, sub-lord, and sub-sub-lord for a sidereal longitude.","operationId":"postVedicKpSublord","tags":["Vedic KP"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["longitude"],"properties":{"longitude":{"type":"number","description":"Sidereal longitude in degrees","example":193.5}}}}}}}},"/v1/vedic/kp/chart":{"post":{"summary":"Complete KP birth chart","responses":{"200":{"description":"Composite KP birth chart","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"chartTime":{"type":"string","description":"Chart instant"},"location":{"type":"object","description":"Place","properties":{"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"timezone":{"type":"string","description":"Timezone"}},"required":[]},"ayanamsaType":{"type":"string","description":"Ayanamsa mode","example":"KRISHNAMURTI"},"ayanamsaDegrees":{"type":"number","description":"Ayanamsa offset degrees"},"houseSystem":{"type":"string","description":"House system","example":"PLACIDUS"},"ascendant":{"type":"object","description":"Lagna with KP lords","properties":{"longitude":{"type":"number","description":"Absolute longitude 0-360"},"sign":{"type":"string","description":"Sign name"},"signLord":{"type":"string","description":"Sign lord"},"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"},"subLord":{"type":"string","description":"Sub-lord"},"subSubLord":{"type":"string","description":"Sub-sub-lord"},"degreeWithinNakshatra":{"type":"number","description":"Degrees within the nakshatra"},"kpNumber":{"type":"number","description":"KP segment number 1-249"},"spanFrom":{"type":"number","description":"Segment start longitude 0-360"},"spanTo":{"type":"number","description":"Segment end longitude 0-360"},"degreeInSign":{"type":"number","description":"Degrees within sign"}},"required":[]},"cusps":{"type":"array","description":"House cusps","items":{"type":"object","description":"Cusp","properties":{"house":{"type":"number","description":"House number 1-12"},"longitude":{"type":"number","description":"Absolute longitude 0-360"},"sign":{"type":"string","description":"Sign name"},"signLord":{"type":"string","description":"Sign lord"},"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"},"subLord":{"type":"string","description":"Sub-lord"},"subSubLord":{"type":"string","description":"Sub-sub-lord"},"degreeWithinNakshatra":{"type":"number","description":"Degrees within the nakshatra"},"kpNumber":{"type":"number","description":"KP segment number 1-249"},"spanFrom":{"type":"number","description":"Segment start longitude 0-360"},"spanTo":{"type":"number","description":"Segment end longitude 0-360"}},"required":[]}},"planets":{"type":"array","description":"Planets","items":{"type":"object","description":"Planet","properties":{"planet":{"type":"string","description":"Planet title"},"house":{"type":"number","description":"House number"},"isRetrograde":{"type":"boolean","description":"Retrograde flag"},"longitude":{"type":"number","description":"Absolute longitude 0-360"},"sign":{"type":"string","description":"Sign name"},"signLord":{"type":"string","description":"Sign lord"},"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"},"subLord":{"type":"string","description":"Sub-lord"},"subSubLord":{"type":"string","description":"Sub-sub-lord"},"degreeWithinNakshatra":{"type":"number","description":"Degrees within the nakshatra"},"kpNumber":{"type":"number","description":"KP segment number 1-249"},"spanFrom":{"type":"number","description":"Segment start longitude 0-360"},"spanTo":{"type":"number","description":"Segment end longitude 0-360"}},"required":[]}},"rulingPlanets":{"type":"object","description":"Ruling planets","properties":{"dayLord":{"type":"string","description":"Day lord"},"moonSignLord":{"type":"string","description":"Moon sign lord"},"moonStarLord":{"type":"string","description":"Moon star lord"},"moonSublord":{"type":"string","description":"Moon sub-lord"},"moonSubSublord":{"type":"string","description":"Moon sub-sub-lord"},"lagnaSignLord":{"type":"string","description":"Lagna sign lord"},"lagnaStarLord":{"type":"string","description":"Lagna star lord"},"lagnaSublord":{"type":"string","description":"Lagna sub-lord"},"lagnaSubSublord":{"type":"string","description":"Lagna sub-sub-lord"},"rulingPlanets":{"type":"array","description":"Deduped ruling planet list","items":{"type":"string","description":"Planet title"}}},"required":[]},"significators":{"type":"object","description":"Significator breakdown","properties":{"houseWise":{"type":"object","description":"House-wise significators (dynamic keys)"},"planetWise":{"type":"object","description":"Planet-wise significators (dynamic keys)"}},"required":[]},"houseThemes":{"type":"object","description":"House themes (dynamic keys)"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Composite Krishnamurti Padhdhati chart: per-planet and per-cusp sub-lords, lagna KP details, ruling planets, and significators.","operationId":"postVedicKpChart","tags":["Vedic KP"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"ayanamsa":{"type":"string","description":"Ayanamsa mode (default KRISHNAMURTI)","example":"KRISHNAMURTI"},"houseSystem":{"type":"string","description":"House system (default PLACIDUS)","example":"PLACIDUS"}}}}}}}},"/v1/vedic/kp/planets":{"post":{"summary":"KP sub-lords for all planets","responses":{"200":{"description":"KP sub-lords for all nine grahas","content":{"application/json":{"schema":{"type":"object","required":["count"],"properties":{"count":{"type":"number","description":"Number of planets"},"planets":{"type":"array","description":"Planet KP breakdown","items":{"type":"object","description":"Planet","properties":{"body":{"type":"string","description":"Celestial body id"},"longitude":{"type":"number","description":"Absolute longitude 0-360"},"sign":{"type":"string","description":"Sign name"},"signLord":{"type":"string","description":"Sign lord"},"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"},"subLord":{"type":"string","description":"Sub-lord"},"subSubLord":{"type":"string","description":"Sub-sub-lord"},"degreeWithinNakshatra":{"type":"number","description":"Degrees within the nakshatra"},"speedDegPerDay":{"type":"number","description":"Daily speed"},"isRetrograde":{"type":"boolean","description":"Retrograde flag"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"KP sub-lords for every planet in a birth chart.","operationId":"postVedicKpPlanets","tags":["Vedic KP"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209}}}}}}}},"/v1/vedic/kp/cusps":{"post":{"summary":"KP sub-lords for house cusps","responses":{"200":{"description":"KP sub-lords for each house cusp","content":{"application/json":{"schema":{"type":"object","required":["count"],"properties":{"system":{"type":"string","description":"House system used","example":"PLACIDUS"},"count":{"type":"number","description":"Number of cusps"},"cusps":{"type":"array","description":"Cusp KP breakdown","items":{"type":"object","description":"Cusp","properties":{"house":{"type":"number","description":"House number 1-12"},"longitude":{"type":"number","description":"Absolute longitude 0-360"},"sign":{"type":"string","description":"Sign name"},"signLord":{"type":"string","description":"Sign lord"},"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"},"subLord":{"type":"string","description":"Sub-lord"},"subSubLord":{"type":"string","description":"Sub-sub-lord"},"degreeWithinNakshatra":{"type":"number","description":"Degrees within the nakshatra"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"KP sub-lords for every house cusp of a birth chart.","operationId":"postVedicKpCusps","tags":["Vedic KP"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209}}}}}}}},"/v1/vedic/kp/ruling-planets":{"post":{"summary":"KP ruling planets of the moment","responses":{"200":{"description":"KP ruling planets and significators","content":{"application/json":{"schema":{"type":"object","required":["datetime"],"properties":{"datetime":{"type":"string","description":"Chart instant"},"location":{"type":"object","description":"Place","properties":{"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"timezone":{"type":"string","description":"Timezone"}},"required":[]},"dayLord":{"type":"string","description":"Day lord"},"moonSignLord":{"type":"string","description":"Moon sign lord"},"moonStarLord":{"type":"string","description":"Moon star lord"},"moonSublord":{"type":"string","description":"Moon sub-lord"},"moonSubSublord":{"type":"string","description":"Moon sub-sub-lord"},"lagnaSignLord":{"type":"string","description":"Lagna sign lord"},"lagnaStarLord":{"type":"string","description":"Lagna star lord"},"lagnaSublord":{"type":"string","description":"Lagna sub-lord"},"lagnaSubSublord":{"type":"string","description":"Lagna sub-sub-lord"},"rulingPlanets":{"type":"array","description":"Deduped ruling planet list","items":{"type":"string","description":"Planet title"}},"significators":{"type":"array","description":"Lagna and Moon breakdowns","items":{"type":"object","description":"Significator","properties":{"scope":{"type":"string","description":"LAGNA or MOON"},"longitude":{"type":"number","description":"Absolute longitude 0-360"},"sign":{"type":"string","description":"Sign name"},"signLord":{"type":"string","description":"Sign lord"},"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"},"subLord":{"type":"string","description":"Sub-lord"},"subSubLord":{"type":"string","description":"Sub-sub-lord"},"degreeWithinNakshatra":{"type":"number","description":"Degrees within the nakshatra"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Day lord, Lagna and Moon star/sub lords, and the derived ruling-planet set (KP tradition).","operationId":"postVedicKpRulingPlanets","tags":["Vedic KP"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209}}}}}}}},"/v1/vedic/kp/horary":{"post":{"summary":"KP horary (Prashna) chart from a number","responses":{"200":{"description":"KP horary (Prashna) analysis for a 1-249 number","content":{"application/json":{"schema":{"type":"object","required":["horaryNumber"],"properties":{"horaryNumber":{"type":"number","description":"Horary number 1-249"},"questionTime":{"type":"string","description":"UTC question instant"},"ayanamsaType":{"type":"string","description":"Ayanamsa mode","example":"KRISHNAMURTI"},"ayanamsaDegrees":{"type":"number","description":"Ayanamsa offset degrees"},"ascendant":{"type":"object","description":"Horary lagna","properties":{"longitude":{"type":"number","description":"Absolute longitude 0-360"},"sign":{"type":"string","description":"Sign name"},"signLord":{"type":"string","description":"Sign lord"},"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"},"subLord":{"type":"string","description":"Sub-lord"},"subSubLord":{"type":"string","description":"Sub-sub-lord"},"degreeWithinNakshatra":{"type":"number","description":"Degrees within the nakshatra"},"kpNumber":{"type":"number","description":"KP segment number 1-249"},"spanFrom":{"type":"number","description":"Segment start longitude 0-360"},"spanTo":{"type":"number","description":"Segment end longitude 0-360"},"degreeInSign":{"type":"number","description":"Degrees within sign"}},"required":[]},"cusps":{"type":"array","description":"House cusps","items":{"type":"object","description":"Cusp","properties":{"house":{"type":"number","description":"House number 1-12"},"longitude":{"type":"number","description":"Absolute longitude 0-360"},"sign":{"type":"string","description":"Sign name"},"signLord":{"type":"string","description":"Sign lord"},"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"},"subLord":{"type":"string","description":"Sub-lord"},"subSubLord":{"type":"string","description":"Sub-sub-lord"},"degreeWithinNakshatra":{"type":"number","description":"Degrees within the nakshatra"},"kpNumber":{"type":"number","description":"KP segment number 1-249"},"spanFrom":{"type":"number","description":"Segment start longitude 0-360"},"spanTo":{"type":"number","description":"Segment end longitude 0-360"}},"required":[]}},"planets":{"type":"array","description":"Planets","items":{"type":"object","description":"Planet","properties":{"planet":{"type":"string","description":"Planet title"},"house":{"type":"number","description":"House number"},"isRetrograde":{"type":"boolean","description":"Retrograde flag"},"longitude":{"type":"number","description":"Absolute longitude 0-360"},"sign":{"type":"string","description":"Sign name"},"signLord":{"type":"string","description":"Sign lord"},"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"},"subLord":{"type":"string","description":"Sub-lord"},"subSubLord":{"type":"string","description":"Sub-sub-lord"},"degreeWithinNakshatra":{"type":"number","description":"Degrees within the nakshatra"},"kpNumber":{"type":"number","description":"KP segment number 1-249"},"spanFrom":{"type":"number","description":"Segment start longitude 0-360"},"spanTo":{"type":"number","description":"Segment end longitude 0-360"}},"required":[]}},"rulingPlanets":{"type":"object","description":"Ruling planets","properties":{"dayLord":{"type":"string","description":"Day lord"},"moonSignLord":{"type":"string","description":"Moon sign lord"},"moonStarLord":{"type":"string","description":"Moon star lord"},"moonSublord":{"type":"string","description":"Moon sub-lord"},"moonSubSublord":{"type":"string","description":"Moon sub-sub-lord"},"lagnaSignLord":{"type":"string","description":"Lagna sign lord"},"lagnaStarLord":{"type":"string","description":"Lagna star lord"},"lagnaSublord":{"type":"string","description":"Lagna sub-lord"},"lagnaSubSublord":{"type":"string","description":"Lagna sub-sub-lord"},"rulingPlanets":{"type":"array","description":"Deduped ruling planet list","items":{"type":"string","description":"Planet title"}}},"required":[]},"significators":{"type":"object","description":"Significator breakdown","properties":{"houseWise":{"type":"object","description":"House-wise significators (dynamic keys)"},"planetWise":{"type":"object","description":"Planet-wise significators (dynamic keys)"}},"required":[]},"houseThemes":{"type":"object","description":"House themes (dynamic keys)"},"focus":{"type":"string","description":"Question focus","example":"general"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Casts a horary chart from a KP number (1-249): horary ascendant, cusps, planets, ruling planets, and significators at the moment of the question.","operationId":"postVedicKpHorary","tags":["Vedic KP"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["horaryNumber","date","time","latitude","longitude"],"properties":{"horaryNumber":{"type":"number","description":"KP horary number 1-249","example":193},"date":{"type":"string","description":"Question date YYYY-MM-DD","example":"2026-08-03"},"time":{"type":"string","description":"Question time HH:MM","example":"12:00"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone or numeric offset","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/kp/planets-interval":{"post":{"summary":"KP planet sub-lords at time intervals","responses":{"200":{"description":"KP sub-lord evolution across a time interval","content":{"application/json":{"schema":{"type":"object","required":["startDatetime","endDatetime","intervalMinutes","totalIntervals"],"properties":{"startDatetime":{"type":"string","description":"Start UTC instant"},"endDatetime":{"type":"string","description":"End UTC instant"},"intervalMinutes":{"type":"number","description":"Minutes per interval"},"totalIntervals":{"type":"number","description":"Number of intervals"},"ayanamsa":{"type":"string","description":"Ayanamsa mode","example":"KRISHNAMURTI"},"ayanamsaValue":{"type":"number","description":"Ayanamsa offset degrees"},"intervals":{"type":"array","description":"Snapshots","items":{"type":"object","description":"Interval","properties":{"date":{"type":"string","description":"Local date YYYY-MM-DD"},"time":{"type":"string","description":"Local time HH:MM"},"datetime":{"type":"string","description":"Full local datetime"},"planets":{"type":"object","description":"Per-planet KP breakdown (dynamic keys)"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Sweeps a time range at a fixed interval and returns the full KP subdivision (sign, star, sub, sub-sub, kpNumber) for all nine grahas at each step.","operationId":"postVedicKpPlanetsInterval","tags":["Vedic KP"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["startDatetime","endDatetime","intervalMinutes","latitude","longitude"],"properties":{"startDatetime":{"type":"string","description":"ISO-8601 start","example":"2026-08-01T00:00:00Z"},"endDatetime":{"type":"string","description":"ISO-8601 end","example":"2026-08-01T06:00:00Z"},"intervalMinutes":{"type":"number","description":"Step in minutes","example":60},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209}}}}}}}},"/v1/vedic/kp/sublord-changes":{"post":{"summary":"KP sub-lord change times for a planet","responses":{"200":{"description":"KP sub-lord boundary crossings for a planet","content":{"application/json":{"schema":{"type":"object","required":["planet","startDate","endDate","totalChanges"],"properties":{"planet":{"type":"string","description":"Planet title"},"startDate":{"type":"string","description":"Start UTC instant"},"endDate":{"type":"string","description":"End UTC instant"},"totalChanges":{"type":"number","description":"Number of changes"},"changes":{"type":"array","description":"Boundary events","items":{"type":"object","description":"Change","properties":{"date":{"type":"string","description":"Local date YYYY-MM-DD"},"time":{"type":"string","description":"Local time HH:MM"},"datetime":{"type":"string","description":"Full local datetime"},"fromSign":{"type":"string","description":"Sign leaving"},"fromSignLord":{"type":"string","description":"Lord of sign leaving"},"toSign":{"type":"string","description":"Sign entering"},"toSignLord":{"type":"string","description":"Lord of sign entering"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Finds every moment a planet crosses a KP 249-division sub-lord boundary in a date range, bisected to ~1 minute accuracy.","operationId":"postVedicKpSublordChanges","tags":["Vedic KP"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["planet","startDate","endDate"],"properties":{"planet":{"type":"string","description":"Graha: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu","example":"Moon"},"startDate":{"type":"string","description":"Start YYYY-MM-DD","example":"2026-08-01"},"endDate":{"type":"string","description":"End YYYY-MM-DD","example":"2026-08-04"}}}}}}}},"/v1/vedic/kp/rasi-changes":{"post":{"summary":"KP rasi (sign) ingress times for a planet","responses":{"200":{"description":"KP sign (rasi) boundary crossings for a planet","content":{"application/json":{"schema":{"type":"object","required":["planet","startDate","endDate","totalChanges"],"properties":{"planet":{"type":"string","description":"Planet title"},"startDate":{"type":"string","description":"Start UTC instant"},"endDate":{"type":"string","description":"End UTC instant"},"totalChanges":{"type":"number","description":"Number of changes"},"changes":{"type":"array","description":"Boundary events","items":{"type":"object","description":"Change","properties":{"date":{"type":"string","description":"Local date YYYY-MM-DD"},"time":{"type":"string","description":"Local time HH:MM"},"datetime":{"type":"string","description":"Full local datetime"},"fromSign":{"type":"string","description":"Sign leaving"},"fromSignLord":{"type":"string","description":"Lord of sign leaving"},"toSign":{"type":"string","description":"Sign entering"},"toSignLord":{"type":"string","description":"Lord of sign entering"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Finds every sign-change (rasi parivartan) moment for a planet in a date range, bisected to ~1 minute accuracy.","operationId":"postVedicKpRasiChanges","tags":["Vedic KP"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["planet","startDate","endDate"],"properties":{"planet":{"type":"string","description":"Graha: Sun, Moon, Mars, Mercury, Jupiter, Venus, Saturn, Rahu, Ketu","example":"Moon"},"startDate":{"type":"string","description":"Start YYYY-MM-DD","example":"2026-08-01"},"endDate":{"type":"string","description":"End YYYY-MM-DD","example":"2026-08-04"}}}}}}}},"/v1/vedic/kp/ruling-planets-interval":{"post":{"summary":"KP ruling planets at time intervals","responses":{"200":{"description":"KP ruling planets across a time interval","content":{"application/json":{"schema":{"type":"object","required":["startDatetime","endDatetime","intervalMinutes","totalIntervals"],"properties":{"startDatetime":{"type":"string","description":"Start UTC instant"},"endDatetime":{"type":"string","description":"End UTC instant"},"intervalMinutes":{"type":"number","description":"Minutes per interval"},"location":{"type":"object","description":"Place","properties":{"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"timezone":{"type":"number","description":"Timezone offset"}},"required":[]},"totalIntervals":{"type":"number","description":"Number of intervals"},"intervals":{"type":"array","description":"Snapshots","items":{"type":"object","description":"Interval","properties":{"date":{"type":"string","description":"Local date YYYY-MM-DD"},"time":{"type":"string","description":"Local time HH:MM"},"datetime":{"type":"string","description":"Full local datetime"},"dayLord":{"type":"string","description":"Day lord"},"moonSignLord":{"type":"string","description":"Moon sign lord"},"moonStarLord":{"type":"string","description":"Moon star lord"},"moonSublord":{"type":"string","description":"Moon sub-lord"},"moonSubSublord":{"type":"string","description":"Moon sub-sub-lord"},"lagnaSignLord":{"type":"string","description":"Lagna sign lord"},"lagnaStarLord":{"type":"string","description":"Lagna star lord"},"lagnaSublord":{"type":"string","description":"Lagna sub-lord"},"lagnaSubSublord":{"type":"string","description":"Lagna sub-sub-lord"},"rulingPlanets":{"type":"array","description":"Deduped ruling planet list","items":{"type":"string","description":"Planet title"}},"significators":{"type":"object","description":"Significator breakdown","properties":{"houseWise":{"type":"object","description":"House-wise significators (dynamic keys)"},"planetWise":{"type":"object","description":"Planet-wise significators (dynamic keys)"}},"required":[]},"moonSignLordSignifies":{"type":"object","description":"Houses signified by moon sign lord","properties":{"L1":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}},"L2":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}},"L3":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}},"L4":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}}},"required":[]},"moonStarLordSignifies":{"type":"object","description":"Houses signified by moon star lord","properties":{"L1":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}},"L2":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}},"L3":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}},"L4":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}}},"required":[]},"moonSublordSignifies":{"type":"object","description":"Houses signified by moon sub-lord","properties":{"L1":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}},"L2":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}},"L3":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}},"L4":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}}},"required":[]},"moonSignifies":{"type":"object","description":"Houses signified by the Moon","properties":{"L1":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}},"L2":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}},"L3":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}},"L4":{"type":"array","description":"Numbers","items":{"type":"number","description":"House"}}},"required":[]}},"required":[]}},"houseThemes":{"type":"object","description":"House themes (dynamic keys)"},"focus":{"type":"string","description":"Question focus","example":"general"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Sweeps a time range and returns day lord, Moon/Lagna KP lords, ruling-planet set, and 4-level significator breakdowns at each step.","operationId":"postVedicKpRulingPlanetsInterval","tags":["Vedic KP"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["startDatetime","endDatetime","intervalMinutes","latitude","longitude"],"properties":{"startDatetime":{"type":"string","description":"ISO-8601 start","example":"2026-08-03T00:00:00Z"},"endDatetime":{"type":"string","description":"ISO-8601 end","example":"2026-08-03T02:00:00Z"},"intervalMinutes":{"type":"number","description":"Step in minutes","example":60},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209}}}}}}}},"/v1/vedic/transit":{"post":{"summary":"Vedic Gochar transit analysis","responses":{"200":{"description":"Natal and transiting placements with key slow-planet transits","content":{"application/json":{"schema":{"type":"object","required":["birthDatetime","transitDatetime"],"properties":{"birthDatetime":{"type":"string","description":"UTC birth instant"},"transitDatetime":{"type":"string","description":"UTC transit instant"},"natalPlanets":{"type":"array","description":"Natal placements for the 9 grahas","items":{"type":"object","description":"Placement","properties":{"name":{"type":"string","description":"Planet title","example":"Jupiter"},"longitude":{"type":"number","description":"Longitude (sidereal)","example":120.5},"sign":{"type":"string","description":"Sign name","example":"Cancer"},"house":{"type":"number","description":"Whole-sign house from lagna"}},"required":[]}},"transitingPlanets":{"type":"array","description":"Transit placements for the 9 grahas","items":{"type":"object","description":"Placement","properties":{"name":{"type":"string","description":"Planet title"},"longitude":{"type":"number","description":"Longitude (sidereal)"},"sign":{"type":"string","description":"Sign name"},"house":{"type":"number","description":"Whole-sign house from lagna"}},"required":[]}},"keyTransits":{"type":"array","description":"Transits of Jupiter, Saturn, Rahu and Ketu","items":{"type":"object","description":"Key transit","properties":{"planet":{"type":"string","description":"Transiting planet"},"description":{"type":"string","description":"Human-readable transit summary"},"natalHouse":{"type":"number","description":"Natal whole-sign house transited"},"aspects":{"type":"array","description":"Formed aspects","items":{"type":"string","description":"Aspect text"}}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Compares the transit chart against the natal chart: natal and transiting placements plus key transits of the slow planets (Jupiter, Saturn, Rahu, Ketu).","operationId":"postVedicTransit","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthDate","birthTime","transitDate","transitTime","latitude","longitude"],"properties":{"birthDate":{"type":"string","description":"Birth date YYYY-MM-DD","example":"1990-05-15"},"birthTime":{"type":"string","description":"Birth time HH:MM","example":"12:00"},"transitDate":{"type":"string","description":"Transit date YYYY-MM-DD","example":"2026-08-03"},"transitTime":{"type":"string","description":"Transit time HH:MM","example":"12:00"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone or numeric offset","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/transit/monthly":{"post":{"summary":"Monthly Vedic transit sign changes","responses":{"200":{"description":"Monthly sign-ingress transit events","content":{"application/json":{"schema":{"type":"object","required":["year","month"],"properties":{"year":{"type":"number","description":"Requested year"},"month":{"type":"number","description":"Requested month 1-12"},"timezone":{"type":"number","description":"Timezone offset used"},"startingPositions":{"type":"array","description":"Positions at month start","items":{"type":"object","description":"Position","properties":{"planet":{"type":"string","description":"Planet title"},"sign":{"type":"string","description":"Sign name"},"longitude":{"type":"number","description":"Longitude"}},"required":[]}},"transitEvents":{"type":"array","description":"Sign-ingress events sorted by datetime","items":{"type":"object","description":"Event","properties":{"planet":{"type":"string","description":"Planet title"},"fromSign":{"type":"string","description":"Sign leaving"},"toSign":{"type":"string","description":"Sign entering"},"date":{"type":"string","description":"Local date"},"time":{"type":"string","description":"Local time HH:MM"},"datetime":{"type":"string","description":"Local datetime"},"isRetrograde":{"type":"boolean","description":"True when the planet is retrograde at the boundary"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Planetary sign changes (rashi ingresses) for an entire month, with retrograde flags and month-start positions.","operationId":"postVedicTransitMonthly","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["year","month"],"properties":{"year":{"type":"number","description":"Calendar year","example":2026},"month":{"type":"number","description":"Month 1-12","example":8},"timezone":{"type":"string","description":"IANA timezone or numeric offset","example":"+05:30"}}}}}}}},"/v1/vedic/aspects/monthly":{"post":{"summary":"Monthly exact aspect moments","responses":{"200":{"description":"Monthly exact aspect events between the 9 grahas","content":{"application/json":{"schema":{"type":"object","required":["year","month"],"properties":{"year":{"type":"number","description":"Requested year"},"month":{"type":"number","description":"Requested month 1-12"},"timezone":{"type":"number","description":"Timezone offset used"},"events":{"type":"array","description":"Exact aspect events sorted by datetime","items":{"type":"object","description":"Event","properties":{"planet1":{"type":"string","description":"First planet"},"planet2":{"type":"string","description":"Second planet"},"aspect":{"type":"string","description":"Aspect name","example":"trine"},"date":{"type":"string","description":"Local date"},"time":{"type":"string","description":"Local time HH:MM"},"datetime":{"type":"string","description":"Local datetime"},"orb":{"type":"number","description":"Orb in degrees at exactness"},"distance":{"type":"number","description":"Angular separation at exactness"},"planet1Longitude":{"type":"number","description":"Longitude of planet1"},"planet2Longitude":{"type":"number","description":"Longitude of planet2"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Every exact major and minor aspect between the nine grahas during a month, bisected to ~1 minute accuracy with orb and distance at closest approach.","operationId":"postVedicAspectsMonthly","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["year","month"],"properties":{"year":{"type":"number","description":"Calendar year","example":2026},"month":{"type":"number","description":"Month 1-12","example":8},"timezone":{"type":"string","description":"IANA timezone or numeric offset","example":"+05:30"}}}}}}}},"/v1/vedic/panchang":{"post":{"summary":"Vedic Panchang (5 limbs)","responses":{"200":{"description":"The five limbs of the Hindu almanac","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"tithi":{"type":"object","description":"Lunar day","properties":{"number":{"type":"number","description":"Tithi 1-30"},"name":{"type":"string","description":"Tithi name","example":"Pratipada"},"paksha":{"type":"string","description":"Shukla or Krishna","example":"Shukla"}},"required":[]},"vara":{"type":"object","description":"Weekday","properties":{"number":{"type":"number","description":"0=Sunday..6=Saturday"},"name":{"type":"string","description":"Weekday name","example":"Monday"}},"required":[]},"nakshatra":{"type":"object","description":"Lunar mansion","properties":{"number":{"type":"number","description":"Nakshatra 1-27"},"name":{"type":"string","description":"Nakshatra name","example":"Rohini"},"pada":{"type":"number","description":"Pada 1-4"}},"required":[]},"yoga":{"type":"object","description":"Soli-lunar yoga","properties":{"number":{"type":"number","description":"Yoga 1-27"},"name":{"type":"string","description":"Yoga name"},"isSuspicious":{"type":"boolean","description":"Inauspicious yoga flag"}},"required":[]},"karana":{"type":"object","description":"Half-tithi","properties":{"number":{"type":"number","description":"Karana 1-60"},"name":{"type":"string","description":"Karana name"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Tithi, vara, nakshatra, yoga, and karana for a birth moment.","operationId":"postVedicPanchang","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/ashtakavarga":{"post":{"summary":"Vedic Ashtakavarga","responses":{"200":{"description":"Bindu tables for each of the 7 classical planets plus LAGNA","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"planetBindus":{"type":"object","description":"Per-planet 12-house bindu arrays"},"sarvashtakavarga":{"type":"array","description":"Total bindu count per house (12)","items":{"type":"number","description":"Bindu count"}},"totalBindus":{"type":"object","description":"Total bindus per planet"},"grandTotal":{"type":"number","description":"Grand total (expected 337)","example":337},"trikonaShodhana":{"type":"object","description":"Post trikona-shodhana reductions"},"ekadhipatyaShodhana":{"type":"object","description":"Post ekadhipatya-shodhana reductions"},"reducedSarvashtakavarga":{"type":"array","description":"Reduced sarvashtakavarga bindu totals","items":{"type":"number","description":"Bindu count"}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Per-planet bindu tables (real computation, no placeholders).","operationId":"postVedicAshtakavarga","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/shadbala":{"post":{"summary":"Vedic Shadbala","responses":{"200":{"description":"Six-fold strength breakdown per classical planet","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"SUN":{"type":"object","description":"Shadbala breakdown for the Sun","properties":{"sthanaBala":{"type":"number","description":"Positional strength"},"digBala":{"type":"number","description":"Directional strength"},"kalaBala":{"type":"number","description":"Temporal strength"},"cheshtaBala":{"type":"number","description":"Motional strength"},"naisargikaBala":{"type":"number","description":"Natural strength"},"drikBala":{"type":"number","description":"Aspectual strength"},"totalVirupas":{"type":"number","description":"Total virupas"},"totalRupas":{"type":"number","description":"Total rupas (1 rupa = 60 virupas)"},"requiredRupas":{"type":"number","description":"Minimum required rupas"},"relativeRatio":{"type":"number","description":"Total / required ratio"},"isStrong":{"type":"boolean","description":"Whether the planet meets its requirement"}},"required":[]},"MOON":{"type":"object","description":"Shadbala breakdown for the Moon","properties":{"sthanaBala":{"type":"number","description":"Positional strength"},"digBala":{"type":"number","description":"Directional strength"},"kalaBala":{"type":"number","description":"Temporal strength"},"cheshtaBala":{"type":"number","description":"Motional strength"},"naisargikaBala":{"type":"number","description":"Natural strength"},"drikBala":{"type":"number","description":"Aspectual strength"},"totalVirupas":{"type":"number","description":"Total virupas"},"totalRupas":{"type":"number","description":"Total rupas (1 rupa = 60 virupas)"},"requiredRupas":{"type":"number","description":"Minimum required rupas"},"relativeRatio":{"type":"number","description":"Total / required ratio"},"isStrong":{"type":"boolean","description":"Whether the planet meets its requirement"}},"required":[]},"MARS":{"type":"object","description":"Shadbala breakdown for Mars","properties":{"sthanaBala":{"type":"number","description":"Positional strength"},"digBala":{"type":"number","description":"Directional strength"},"kalaBala":{"type":"number","description":"Temporal strength"},"cheshtaBala":{"type":"number","description":"Motional strength"},"naisargikaBala":{"type":"number","description":"Natural strength"},"drikBala":{"type":"number","description":"Aspectual strength"},"totalVirupas":{"type":"number","description":"Total virupas"},"totalRupas":{"type":"number","description":"Total rupas (1 rupa = 60 virupas)"},"requiredRupas":{"type":"number","description":"Minimum required rupas"},"relativeRatio":{"type":"number","description":"Total / required ratio"},"isStrong":{"type":"boolean","description":"Whether the planet meets its requirement"}},"required":[]},"MERCURY":{"type":"object","description":"Shadbala breakdown for Mercury","properties":{"sthanaBala":{"type":"number","description":"Positional strength"},"digBala":{"type":"number","description":"Directional strength"},"kalaBala":{"type":"number","description":"Temporal strength"},"cheshtaBala":{"type":"number","description":"Motional strength"},"naisargikaBala":{"type":"number","description":"Natural strength"},"drikBala":{"type":"number","description":"Aspectual strength"},"totalVirupas":{"type":"number","description":"Total virupas"},"totalRupas":{"type":"number","description":"Total rupas (1 rupa = 60 virupas)"},"requiredRupas":{"type":"number","description":"Minimum required rupas"},"relativeRatio":{"type":"number","description":"Total / required ratio"},"isStrong":{"type":"boolean","description":"Whether the planet meets its requirement"}},"required":[]},"JUPITER":{"type":"object","description":"Shadbala breakdown for Jupiter","properties":{"sthanaBala":{"type":"number","description":"Positional strength"},"digBala":{"type":"number","description":"Directional strength"},"kalaBala":{"type":"number","description":"Temporal strength"},"cheshtaBala":{"type":"number","description":"Motional strength"},"naisargikaBala":{"type":"number","description":"Natural strength"},"drikBala":{"type":"number","description":"Aspectual strength"},"totalVirupas":{"type":"number","description":"Total virupas"},"totalRupas":{"type":"number","description":"Total rupas (1 rupa = 60 virupas)"},"requiredRupas":{"type":"number","description":"Minimum required rupas"},"relativeRatio":{"type":"number","description":"Total / required ratio"},"isStrong":{"type":"boolean","description":"Whether the planet meets its requirement"}},"required":[]},"VENUS":{"type":"object","description":"Shadbala breakdown for Venus","properties":{"sthanaBala":{"type":"number","description":"Positional strength"},"digBala":{"type":"number","description":"Directional strength"},"kalaBala":{"type":"number","description":"Temporal strength"},"cheshtaBala":{"type":"number","description":"Motional strength"},"naisargikaBala":{"type":"number","description":"Natural strength"},"drikBala":{"type":"number","description":"Aspectual strength"},"totalVirupas":{"type":"number","description":"Total virupas"},"totalRupas":{"type":"number","description":"Total rupas (1 rupa = 60 virupas)"},"requiredRupas":{"type":"number","description":"Minimum required rupas"},"relativeRatio":{"type":"number","description":"Total / required ratio"},"isStrong":{"type":"boolean","description":"Whether the planet meets its requirement"}},"required":[]},"SATURN":{"type":"object","description":"Shadbala breakdown for Saturn","properties":{"sthanaBala":{"type":"number","description":"Positional strength"},"digBala":{"type":"number","description":"Directional strength"},"kalaBala":{"type":"number","description":"Temporal strength"},"cheshtaBala":{"type":"number","description":"Motional strength"},"naisargikaBala":{"type":"number","description":"Natural strength"},"drikBala":{"type":"number","description":"Aspectual strength"},"totalVirupas":{"type":"number","description":"Total virupas"},"totalRupas":{"type":"number","description":"Total rupas (1 rupa = 60 virupas)"},"requiredRupas":{"type":"number","description":"Minimum required rupas"},"relativeRatio":{"type":"number","description":"Total / required ratio"},"isStrong":{"type":"boolean","description":"Whether the planet meets its requirement"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Six-fold planetary strength for the seven classical planets.","operationId":"postVedicShadbala","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/yogas/detect":{"post":{"summary":"Detect active Vedic yogas","responses":{"200":{"description":"Detected raja, dhana, mahapurusha, solar and lunar yogas","content":{"application/json":{"schema":{"type":"object","required":["count"],"properties":{"yogas":{"type":"array","description":"All evaluated yogas with active flags","items":{"type":"object","description":"Yoga","properties":{"id":{"type":"string","description":"Yoga identifier","example":"gaja_kesari_yoga"},"name":{"type":"string","description":"Yoga name"},"category":{"type":"string","description":"MAHAPURUSHA, RAJA, DHANA, SOLAR, LUNAR or CANCELLATION"},"isActive":{"type":"boolean","description":"Whether the yoga is formed"},"participatingPlanets":{"type":"array","description":"Forming planets","items":{"type":"string","description":"Planet"}},"description":{"type":"string","description":"Yoga description"},"prediction":{"type":"string","description":"Faladesh (prediction) prose for the yoga"}},"required":[]}},"count":{"type":"number","description":"Number of active yogas"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Evaluates major raja, dhana, mahapurusha, solar, and lunar yogas for a birth chart.","operationId":"postVedicYogasDetect","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/rashis":{"get":{"summary":"Vedic rashi catalog","responses":{"200":{"description":"Zodiac sign catalog","content":{"application/json":{"schema":{"type":"object","required":["count"],"properties":{"count":{"type":"number","description":"Number of signs","example":12},"rashis":{"type":"array","description":"Sign entries","items":{"type":"object","properties":{"id":{"type":"string","description":"Sign identifier","example":"aries"},"name":{"type":"string","description":"Sign name","example":"Aries"},"index":{"type":"number","description":"Sign index 0-11"},"lord":{"type":"string","description":"Sign lord","example":"MARS"},"element":{"type":"string","description":"FIRE, EARTH, AIR or WATER"},"modality":{"type":"string","description":"CARDINAL, FIXED or MUTABLE"},"range":{"type":"string","description":"Degree range"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"All 12 sidereal signs with lord, element, modality, and degree range.","operationId":"getVedicRashis","tags":["Vedic"]}},"/v1/vedic/rashis/:id":{"get":{"summary":"Single rashi","responses":{"200":{"description":"Single zodiac sign entry","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"id":{"type":"string","description":"Sign identifier","example":"aries"},"name":{"type":"string","description":"Sign name","example":"Aries"},"index":{"type":"number","description":"Sign index 0-11"},"lord":{"type":"string","description":"Sign lord","example":"MARS"},"element":{"type":"string","description":"FIRE, EARTH, AIR or WATER"},"modality":{"type":"string","description":"CARDINAL, FIXED or MUTABLE"},"range":{"type":"string","description":"Degree range"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"One sign by name or index (1-12).","operationId":"getVedicRashisId","tags":["Vedic"]}},"/v1/vedic/nakshatras":{"get":{"summary":"Nakshatra catalog","responses":{"200":{"description":"Nakshatra catalog","content":{"application/json":{"schema":{"type":"object","required":["count"],"properties":{"count":{"type":"number","description":"Number of nakshatras","example":27},"nakshatras":{"type":"array","description":"Nakshatra entries","items":{"type":"object","properties":{"index":{"type":"number","description":"Nakshatra index 1-27"},"name":{"type":"string","description":"Nakshatra name"},"lord":{"type":"string","description":"Dasha lord planet"},"startDegree":{"type":"number","description":"Start longitude 0-360"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"All 27 lunar mansions with dasha lord and start degree.","operationId":"getVedicNakshatras","tags":["Vedic"]}},"/v1/vedic/nakshatras/:id":{"get":{"summary":"Single nakshatra","responses":{"200":{"description":"Single nakshatra entry (by index or name)","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"index":{"type":"number","description":"Nakshatra index 1-27"},"name":{"type":"string","description":"Nakshatra name"},"lord":{"type":"string","description":"Dasha lord planet"},"startDegree":{"type":"number","description":"Start longitude 0-360"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"One lunar mansion by index (1-27) or name.","operationId":"getVedicNakshatrasId","tags":["Vedic"]}},"/v1/vedic/yogas":{"get":{"summary":"Vedic yoga catalog","responses":{"200":{"description":"Vedic yoga catalog","content":{"application/json":{"schema":{"type":"object","required":["count"],"properties":{"count":{"type":"number","description":"Number of yogas"},"yogas":{"type":"array","description":"Yoga entries","items":{"type":"object","properties":{"id":{"type":"string","description":"Yoga identifier"},"name":{"type":"string","description":"Yoga name"},"category":{"type":"string","description":"Category"},"description":{"type":"string","description":"Description"},"condition":{"type":"string","description":"Formation condition"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"All yogas detectable by the engine with their formation conditions.","operationId":"getVedicYogas","tags":["Vedic"]}},"/v1/vedic/yogas/:id":{"get":{"summary":"Single yoga definition","responses":{"200":{"description":"Single yoga catalog entry","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"id":{"type":"string","description":"Yoga identifier"},"name":{"type":"string","description":"Yoga name"},"category":{"type":"string","description":"Category"},"description":{"type":"string","description":"Description"},"condition":{"type":"string","description":"Formation condition"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"One yoga by its catalog id.","operationId":"getVedicYogasId","tags":["Vedic"]}},"/v1/vedic/aspects":{"post":{"summary":"Vedic graha drishti","responses":{"200":{"description":"Vedic drishti aspects between all planets","content":{"application/json":{"schema":{"type":"object","required":["system","count"],"properties":{"system":{"type":"string","description":"Aspect system","example":"DRISHTI"},"lunarOnly":{"type":"boolean","description":"False for full aspect set"},"count":{"type":"number","description":"Number of aspects"},"aspects":{"type":"array","description":"Drishti aspects","items":{"type":"object","description":"Aspect","properties":{"source":{"type":"string","description":"Aspiring planet"},"target":{"type":"string","description":"Target planet"},"aspectType":{"type":"string","description":"FULL_3RD, FULL_4TH, FULL_5TH, FULL_7TH, FULL_8TH, FULL_9TH or FULL_10TH"},"sourceSign":{"type":"string","description":"Source sign"},"targetSign":{"type":"string","description":"Target sign"},"sourceDegree":{"type":"number","description":"Source longitude"},"targetDegree":{"type":"number","description":"Target longitude"},"description":{"type":"string","description":"Aspect description"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Classical Vedic sign-based planetary aspects (special drishtis for Mars, Jupiter, Saturn, Rahu, Ketu).","operationId":"postVedicAspects","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude","timezone"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/aspects/lunar":{"post":{"summary":"Lunar graha drishti","responses":{"200":{"description":"Vedic drishti aspects sourced from the Moon only","content":{"application/json":{"schema":{"type":"object","required":["system","count"],"properties":{"system":{"type":"string","description":"Aspect system","example":"DRISHTI"},"lunarOnly":{"type":"boolean","description":"Always true"},"count":{"type":"number","description":"Number of lunar aspects"},"aspects":{"type":"array","description":"Lunar drishti aspects","items":{"type":"object","description":"Aspect","properties":{"source":{"type":"string","description":"Aspiring planet"},"target":{"type":"string","description":"Target planet"},"aspectType":{"type":"string","description":"Aspect type"},"sourceSign":{"type":"string","description":"Source sign"},"targetSign":{"type":"string","description":"Target sign"},"sourceDegree":{"type":"number","description":"Source longitude"},"targetDegree":{"type":"number","description":"Target longitude"},"description":{"type":"string","description":"Aspect description"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Aspects cast by the Moon only.","operationId":"postVedicAspectsLunar","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude","timezone"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/birth-chart":{"post":{"summary":"Vedic birth chart (D1)","responses":{"200":{"description":"Full D1 rasi chart: lagna, rashi, planets, houses, active yogas, panchang and dasha snapshot","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"frame":{"type":"object","description":"Ayanamsa frame","properties":{"ayanamsa":{"type":"string","description":"Ayanamsa mode"},"ayanamsaDegrees":{"type":"number","description":"Ayanamsa applied in degrees"}},"required":[]},"lagna":{"type":"object","description":"Ascendant","properties":{"sign":{"type":"string","description":"Sign name"},"longitude":{"type":"number","description":"Longitude"},"degree":{"type":"number","description":"Degree within sign"},"nakshatra":{"type":"object","description":"Nakshatra placement","properties":{"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraPada":{"type":"number","description":"Pada 1-4"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"}},"required":[]},"lord":{"type":"string","description":"Sign lord"}},"required":[]},"janmaRashi":{"type":"object","description":"Moon sign","properties":{"sign":{"type":"string","description":"Sign name"},"nakshatra":{"type":"object","description":"Nakshatra placement","properties":{"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraPada":{"type":"number","description":"Pada 1-4"},"nakshatraLord":{"type":"string","description":"Nakshatra lord"}},"required":[]},"lord":{"type":"string","description":"Sign lord"}},"required":[]},"planets":{"type":"object","description":"Planet map keyed by body name"},"houses":{"type":"array","description":"12 houses with signs and occupants","items":{"type":"object","description":"House","properties":{"house":{"type":"number","description":"House number 1-12"},"sign":{"type":"string","description":"Sign on the house"},"signIndex":{"type":"number","description":"Sign index 0-11"},"signLord":{"type":"string","description":"Sign lord"},"planets":{"type":"array","description":"Bodies placed in the house","items":{"type":"string","description":"Body name"}}},"required":[]}},"bySign":{"type":"object","description":"Planets grouped by sign"},"yogas":{"type":"array","description":"Active yogas","items":{"type":"object","description":"Yoga","properties":{"id":{"type":"string","description":"Yoga identifier"},"name":{"type":"string","description":"Yoga name"},"category":{"type":"string","description":"Category"},"isActive":{"type":"boolean","description":"Always true"},"participatingPlanets":{"type":"array","description":"Forming planets","items":{"type":"string","description":"Planet"}},"description":{"type":"string","description":"Yoga description"}},"required":[]}},"panchang":{"type":"object","description":"Panchang for the birth moment","properties":{"tithi":{"type":"object","description":"Tithi","properties":{"number":{"type":"number","description":"Tithi 1-30"},"name":{"type":"string","description":"Name"},"paksha":{"type":"string","description":"Paksha"}},"required":[]},"vara":{"type":"object","description":"Vara","properties":{"number":{"type":"number","description":"Weekday index"},"name":{"type":"string","description":"Weekday"}},"required":[]},"nakshatra":{"type":"object","description":"Nakshatra","properties":{"number":{"type":"number","description":"1-27"},"name":{"type":"string","description":"Name"},"pada":{"type":"number","description":"Pada 1-4"}},"required":[]},"yoga":{"type":"object","description":"Yoga","properties":{"number":{"type":"number","description":"1-27"},"name":{"type":"string","description":"Name"},"isSuspicious":{"type":"boolean","description":"Flag"}},"required":[]},"karana":{"type":"object","description":"Karana","properties":{"number":{"type":"number","description":"1-60"},"name":{"type":"string","description":"Name"}},"required":[]}},"required":[]},"vimshottariDasha":{"type":"object","description":"Dasha snapshot","properties":{"currentMahadasha":{"type":"object","description":"Mahadasha","properties":{"planet":{"type":"string","description":"Planet"},"startDate":{"type":"string","description":"Start"},"endDate":{"type":"string","description":"End"}},"required":[]},"currentAntardasha":{"type":"object","description":"Antardasha","properties":{"planet":{"type":"string","description":"Planet"},"startDate":{"type":"string","description":"Start"},"endDate":{"type":"string","description":"End"}},"required":[]},"birthDashaBalance":{"type":"number","description":"Years remaining of birth mahadasha at birth"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Lagna, janma rashi, planets with nakshatras and bhavas, planets by sign, active yogas, and panchang.","operationId":"postVedicBirthChart","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/navamsa":{"post":{"summary":"Vedic Navamsa chart (D9)","responses":{"200":{"description":"D9 navamsa chart with vargottama detection","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"frame":{"type":"object","description":"Ayanamsa frame","properties":{"ayanamsa":{"type":"string","description":"Mode"},"ayanamsaDegrees":{"type":"number","description":"Degrees"}},"required":[]},"chart":{"type":"object","description":"Navamsa chart","properties":{"bySign":{"type":"object","description":"Planets grouped by navamsa sign"}},"required":[]},"planets":{"type":"object","description":"Navamsa placements keyed by body"},"vargottama":{"type":"array","description":"Bodies in the same sign in D1 and D9","items":{"type":"string","description":"Body name"}},"vargottamaExplanation":{"type":"string","description":"Human-readable explanation"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Navamsa (D9) sign placement for every planet plus the vargottama list.","operationId":"postVedicNavamsa","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/divisional-chart":{"post":{"summary":"Vedic divisional chart (varga)","responses":{"200":{"description":"Any divisional chart (D1-D60) for the 9 grahas","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"division":{"type":"object","description":"Varga division","properties":{"key":{"type":"string","description":"Varga key","example":"D9"},"number":{"type":"number","description":"Division number","example":9}},"required":[]},"frame":{"type":"object","description":"Ayanamsa frame","properties":{"ayanamsa":{"type":"string","description":"Mode"},"ayanamsaDegrees":{"type":"number","description":"Degrees"}},"required":[]},"planets":{"type":"object","description":"Varga placements keyed by body"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Divisional positions for a selected varga: D1, D2, D3, D9, D10, or D60.","operationId":"postVedicDivisionalChart","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"varga":{"type":"string","description":"Varga key","example":"D9","enum":["D1","D2","D3","D9","D10","D60"]}}}}}}}},"/v1/vedic/muhurtha":{"post":{"summary":"Auspicious timing (Muhurtha)","responses":{"200":{"description":"Electional timing: Rahu Kala, Yamaganda, Gulika, Abhijit and overall rating","content":{"application/json":{"schema":{"type":"object","required":["date","panchangScore","overallRating","summary"],"properties":{"date":{"type":"string","description":"Evaluated date"},"panchangScore":{"type":"number","description":"Overall panchang score 0-100"},"abhijitMuhurtha":{"type":"object","description":"Abhijit Muhurtha window","properties":{"name":{"type":"string","description":"Window name","example":"Rahu Kala"},"type":{"type":"string","description":"AUSPICIOUS, INAUSPICIOUS or NEUTRAL"},"startTime":{"type":"string","description":"Start time"},"endTime":{"type":"string","description":"End time"},"description":{"type":"string","description":"Description"}},"required":[]},"rahuKala":{"type":"object","description":"Rahu Kala window","properties":{"name":{"type":"string","description":"Window name","example":"Rahu Kala"},"type":{"type":"string","description":"AUSPICIOUS, INAUSPICIOUS or NEUTRAL"},"startTime":{"type":"string","description":"Start time"},"endTime":{"type":"string","description":"End time"},"description":{"type":"string","description":"Description"}},"required":[]},"yamagandaKala":{"type":"object","description":"Yamaganda Kala window","properties":{"name":{"type":"string","description":"Window name","example":"Rahu Kala"},"type":{"type":"string","description":"AUSPICIOUS, INAUSPICIOUS or NEUTRAL"},"startTime":{"type":"string","description":"Start time"},"endTime":{"type":"string","description":"End time"},"description":{"type":"string","description":"Description"}},"required":[]},"gulikaKala":{"type":"object","description":"Gulika Kala window","properties":{"name":{"type":"string","description":"Window name","example":"Rahu Kala"},"type":{"type":"string","description":"AUSPICIOUS, INAUSPICIOUS or NEUTRAL"},"startTime":{"type":"string","description":"Start time"},"endTime":{"type":"string","description":"End time"},"description":{"type":"string","description":"Description"}},"required":[]},"windows":{"type":"array","description":"All computed muhurtha windows","items":{"type":"object","description":"Window","properties":{"name":{"type":"string","description":"Window name","example":"Rahu Kala"},"type":{"type":"string","description":"AUSPICIOUS, INAUSPICIOUS or NEUTRAL"},"startTime":{"type":"string","description":"Start time"},"endTime":{"type":"string","description":"End time"},"description":{"type":"string","description":"Description"}},"required":[]}},"overallRating":{"type":"string","description":"EXCELLENT, GOOD, NEUTRAL or INAUSPICIOUS"},"summary":{"type":"string","description":"Human-readable summary"},"solarEventsApproximated":{"type":"boolean","description":"True when polar day/night forced nominal solar events"},"solarEventsNote":{"type":"string","description":"Note about solar event approximation"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Rahu Kala, Yamaganda, Abhijit Muhurtha, and overall timing rating for a target date.","operationId":"postVedicMuhurtha","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude"],"properties":{"date":{"type":"string","description":"ISO date for the timing analysis","example":"2026-09-01"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209}}}}}}}},"/v1/vedic/planetary-positions":{"post":{"summary":"Planetary positions","responses":{"200":{"description":"Sidereal (or tropical) positions card for the 9 grahas with nakshatra","content":{"application/json":{"schema":{"type":"object","required":["date","time","timezone","ayanamsa","coordinateSystem","count"],"properties":{"date":{"type":"string","description":"Requested date"},"time":{"type":"string","description":"Requested time HH:MM"},"timezone":{"type":"string","description":"Timezone label"},"ayanamsa":{"type":"string","description":"Ayanamsa mode"},"coordinateSystem":{"type":"string","description":"sidereal or tropical"},"count":{"type":"number","description":"Number of grahas","example":9},"positions":{"type":"array","description":"Graha position cards","items":{"type":"object","description":"Graha card","properties":{"planet":{"type":"string","description":"Planet title","example":"Rahu"},"longitude":{"type":"number","description":"Sidereal longitude"},"sign":{"type":"number","description":"Sign index 0-11"},"degree":{"type":"number","description":"Degree within sign"},"speed":{"type":"number","description":"Daily motion deg/day"},"retrograde":{"type":"boolean","description":"Retrograde flag"},"nakshatra":{"type":"string","description":"Nakshatra name"},"nakshatraPada":{"type":"number","description":"Nakshatra pada 1-4"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Sidereal/tropical longitudes of the nine grahas for a single moment with nakshatra and pada.","operationId":"postVedicPlanetaryPositions","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date"],"properties":{"date":{"type":"string","description":"YYYY-MM-DD","example":"2026-02-03"},"time":{"type":"string","description":"HH:MM local wall time","example":"12:00"},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"coordinateSystem":{"type":"string","description":"sidereal or tropical","example":"sidereal"}}}}}}}},"/v1/vedic/planetary-positions/monthly":{"post":{"summary":"Monthly planetary positions","responses":{"200":{"description":"Daily graha position cards for one month","content":{"application/json":{"schema":{"type":"object","required":["year","month"],"properties":{"year":{"type":"number","description":"Requested year"},"month":{"type":"number","description":"Requested month 1-12"},"days":{"type":"array","description":"One entry per day","items":{"type":"object","description":"Day","properties":{"date":{"type":"string","description":"Date YYYY-MM-DD"},"positions":{"type":"array","description":"Graha position cards","items":{"type":"object","description":"Graha card","properties":{"planet":{"type":"string","description":"Planet title"},"longitude":{"type":"number","description":"Sidereal longitude"},"sign":{"type":"number","description":"Sign index 0-11"},"degree":{"type":"number","description":"Degree within sign"},"speed":{"type":"number","description":"Daily motion deg/day"},"retrograde":{"type":"boolean","description":"Retrograde flag"}},"required":[]}}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Daily noon sidereal/tropical positions of the nine grahas for a month.","operationId":"postVedicPlanetaryPositionsMonthly","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["year","month"],"properties":{"year":{"type":"number","description":"Calendar year","example":2026},"month":{"type":"number","description":"Calendar month 1-12","example":2},"coordinateSystem":{"type":"string","description":"sidereal or tropical","example":"sidereal"}}}}}}}},"/v1/vedic/panchang/choghadiya":{"post":{"summary":"Choghadiya muhurta periods","responses":{"200":{"description":"Day and night choghadiya segments with solar events","content":{"application/json":{"schema":{"type":"object","required":["date"],"properties":{"date":{"type":"string","description":"Requested date"},"dayChoghadiya":{"type":"array","description":"8 day segments","items":{"type":"object","properties":{"name":{"type":"string","description":"Choghadiya name"},"lord":{"type":"string","description":"Planet lord"},"effect":{"type":"string","description":"Effect description"},"start":{"type":"string","description":"Start ISO instant"},"end":{"type":"string","description":"End ISO instant"}},"required":[]}},"nightChoghadiya":{"type":"array","description":"8 night segments","items":{"type":"object","properties":{"name":{"type":"string","description":"Choghadiya name"},"lord":{"type":"string","description":"Planet lord"},"effect":{"type":"string","description":"Effect description"},"start":{"type":"string","description":"Start ISO instant"},"end":{"type":"string","description":"End ISO instant"}},"required":[]}},"solarEvents":{"type":"object","description":"Computed solar events","properties":{"sunrise":{"type":"string","description":"Sunrise ISO instant"},"sunset":{"type":"string","description":"Sunset ISO instant"},"solarNoon":{"type":"string","description":"Solar noon ISO instant"},"approximated":{"type":"boolean","description":"Approximation flag"},"note":{"type":"string","description":"Approximation note"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Eight day and eight night choghadiya periods with lord and effect.","operationId":"postVedicPanchangChoghadiya","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude"],"properties":{"date":{"type":"string","description":"YYYY-MM-DD","example":"2026-02-03"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/panchang/hora":{"post":{"summary":"Hora planetary hours","responses":{"200":{"description":"12 day horas and 12 night horas with solar events","content":{"application/json":{"schema":{"type":"object","required":["date"],"properties":{"date":{"type":"string","description":"Requested date"},"dayHoras":{"type":"array","description":"12 day horas","items":{"type":"object","properties":{"planet":{"type":"string","description":"Planet lord"},"number":{"type":"number","description":"Hora number 1-12"},"start":{"type":"string","description":"Start ISO instant"},"end":{"type":"string","description":"End ISO instant"}},"required":[]}},"nightHoras":{"type":"array","description":"12 night horas","items":{"type":"object","properties":{"planet":{"type":"string","description":"Planet lord"},"number":{"type":"number","description":"Hora number 1-12"},"start":{"type":"string","description":"Start ISO instant"},"end":{"type":"string","description":"End ISO instant"}},"required":[]}},"solarEvents":{"type":"object","description":"Computed solar events","properties":{"sunrise":{"type":"string","description":"Sunrise ISO instant"},"sunset":{"type":"string","description":"Sunset ISO instant"},"solarNoon":{"type":"string","description":"Solar noon ISO instant"},"approximated":{"type":"boolean","description":"Approximation flag"},"note":{"type":"string","description":"Approximation note"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Twelve day and twelve night hora periods in Chaldean planetary order.","operationId":"postVedicPanchangHora","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude"],"properties":{"date":{"type":"string","description":"YYYY-MM-DD","example":"2026-02-03"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/dosha/manglik":{"post":{"summary":"Manglik dosha","responses":{"200":{"description":"Manglik dosha evaluation","content":{"application/json":{"schema":{"type":"object","required":["severity","description"],"properties":{"frame":{"type":"object","description":"Calculation frame","properties":{"date":{"type":"string","description":"Requested date"},"time":{"type":"string","description":"Requested time"},"timezone":{"type":"string","description":"Timezone"},"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"ayanamsa":{"type":"string","description":"Ayanamsa mode"},"ayanamsaValue":{"type":"number","description":"Ayanamsa degrees"}},"required":[]},"present":{"type":"boolean","description":"Whether the dosha is active"},"severity":{"type":"string","description":"NONE, MODERATE or SEVERE"},"description":{"type":"string","description":"Explanation"},"exceptions":{"type":"array","description":"Neutralising conditions","items":{"type":"string","description":"Exception"}},"remedies":{"type":"array","description":"Suggested remedies","items":{"type":"string","description":"Remedy"}},"effects":{"type":"object","description":"Domain effects","properties":{"career":{"type":"string","description":"Career effect"},"marriage":{"type":"string","description":"Marriage effect"},"health":{"type":"string","description":"Health effect"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Mars placement from lagna (houses 1/2/4/7/8/12), severity, exceptions, remedies, effects.","operationId":"postVedicDoshaManglik","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/dosha/kalsarpa":{"post":{"summary":"Kalsarpa dosha","responses":{"200":{"description":"Kalsarpa dosha evaluation","content":{"application/json":{"schema":{"type":"object","required":["severity","type","description"],"properties":{"frame":{"type":"object","description":"Calculation frame","properties":{"date":{"type":"string","description":"Requested date"},"time":{"type":"string","description":"Requested time"},"timezone":{"type":"string","description":"Timezone"},"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"ayanamsa":{"type":"string","description":"Ayanamsa mode"},"ayanamsaValue":{"type":"number","description":"Ayanamsa degrees"}},"required":[]},"present":{"type":"boolean","description":"Whether the dosha is active"},"severity":{"type":"string","description":"NONE, MODERATE or SEVERE"},"type":{"type":"string","description":"Kalsarpa type (Anant, Kulik, ...) or NONE"},"description":{"type":"string","description":"Explanation"},"remedies":{"type":"array","description":"Suggested remedies","items":{"type":"string","description":"Remedy"}},"effects":{"type":"object","description":"Domain effects","properties":{"career":{"type":"string","description":"Career effect"},"marriage":{"type":"string","description":"Marriage effect"},"health":{"type":"string","description":"Health effect"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Rahu-Ketu arc containment of the seven classical grahas with type and severity.","operationId":"postVedicDoshaKalsarpa","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/dosha/sadhesati":{"post":{"summary":"Sade Sati","responses":{"200":{"description":"Sade Sati evaluation from current Saturn transit","content":{"application/json":{"schema":{"type":"object","required":["severity","type","description"],"properties":{"frame":{"type":"object","description":"Calculation frame","properties":{"date":{"type":"string","description":"Requested date"},"time":{"type":"string","description":"Requested time"},"timezone":{"type":"string","description":"Timezone"},"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"ayanamsa":{"type":"string","description":"Ayanamsa mode"},"ayanamsaValue":{"type":"number","description":"Ayanamsa degrees"}},"required":[]},"present":{"type":"boolean","description":"Whether Sade Sati is active"},"severity":{"type":"string","description":"NONE, MODERATE or SEVERE"},"type":{"type":"string","description":"RISING, PEAK, SETTING or NONE"},"description":{"type":"string","description":"Explanation"},"remedies":{"type":"array","description":"Suggested remedies","items":{"type":"string","description":"Remedy"}},"effects":{"type":"object","description":"Domain effects","properties":{"career":{"type":"string","description":"Career effect"},"finance":{"type":"string","description":"Finance effect"},"health":{"type":"string","description":"Health effect"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Saturn transit through the 12th, 1st, and 2nd houses from the natal Moon.","operationId":"postVedicDoshaSadhesati","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/kp/ayanamsa":{"get":{"summary":"KP ayanamsa value","responses":{"200":{"description":"KP Krishnamurti ayanamsa for a date","content":{"application/json":{"schema":{"type":"object","required":["date","instant","ayanamsa","type","formula","calculated"],"properties":{"date":{"type":"string","description":"Requested date"},"instant":{"type":"string","description":"UTC instant"},"ayanamsa":{"type":"number","description":"Ayanamsa degrees"},"type":{"type":"string","description":"KP_KRISHNAMURTI"},"formula":{"type":"string","description":"Formula used"},"calculated":{"type":"string","description":"Calculation instant"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Krishnamurti ayanamsa for a date, computed from the ephemeris.","operationId":"getVedicKpAyanamsa","tags":["Vedic KP"]}},"/v1/vedic/parallels":{"post":{"summary":"Planetary parallels","responses":{"200":{"description":"Declination parallels between planets for a birth moment","content":{"application/json":{"schema":{"type":"object","required":["datetime"],"properties":{"datetime":{"type":"string","description":"UTC instant"},"planets":{"type":"array","description":"Planets with declinations","items":{"type":"object","description":"Planet declination","properties":{"name":{"type":"string","description":"Planet title"},"declination":{"type":"number","description":"Declination degrees"}},"required":[]}},"parallels":{"type":"array","description":"Detected parallels within orb","items":{"type":"object","description":"Parallel","properties":{"planet1":{"type":"string","description":"First planet"},"planet2":{"type":"string","description":"Second planet"},"orb":{"type":"number","description":"Orb degrees"},"type":{"type":"string","description":"parallel"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Declinations and parallel/contraparallel aspects of the seven classical planets within orb.","operationId":"postVedicParallels","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"orb":{"type":"number","description":"Orb in degrees","example":1}}}}}}}},"/v1/vedic/parallels/monthly":{"post":{"summary":"Monthly parallels","responses":{"200":{"description":"Monthly parallels with closest approach dates","content":{"application/json":{"schema":{"type":"object","required":["year","month"],"properties":{"year":{"type":"number","description":"Requested year"},"month":{"type":"number","description":"Requested month 1-12"},"events":{"type":"array","description":"Parallels within 1.5 degrees","items":{"type":"object","description":"Parallel event","properties":{"date":{"type":"string","description":"Local date of closest approach"},"time":{"type":"string","description":"Local time"},"planet1":{"type":"string","description":"First planet"},"planet2":{"type":"string","description":"Second planet"},"declination":{"type":"number","description":"Declination difference"},"orb":{"type":"number","description":"Orb degrees"},"type":{"type":"string","description":"parallel"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Closest parallel approaches per planet pair across a month.","operationId":"postVedicParallelsMonthly","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["year","month"],"properties":{"year":{"type":"number","description":"Calendar year","example":2026},"month":{"type":"number","description":"Calendar month 1-12","example":3},"timezone":{"type":"string","description":"IANA timezone identifier","example":"UTC"}}}}}}}},"/v1/vedic/ecliptic-crossings":{"post":{"summary":"Ecliptic crossings","responses":{"200":{"description":"Ecliptic latitude zero-crossings for the year","content":{"application/json":{"schema":{"type":"object","required":["year"],"properties":{"year":{"type":"number","description":"Requested year"},"timezone":{"type":"number","description":"Timezone offset used"},"events":{"type":"array","description":"North-south crossings","items":{"type":"object","description":"Crossing","properties":{"planet":{"type":"string","description":"Planet title"},"date":{"type":"string","description":"Local date"},"time":{"type":"string","description":"Local time HH:MM"},"datetime":{"type":"string","description":"Local datetime"},"latitude":{"type":"number","description":"Latitude at crossing","example":0}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Latitude zero crossings (nodal events) of the classical planets across a year.","operationId":"postVedicEclipticCrossings","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["year"],"properties":{"year":{"type":"number","description":"Calendar year","example":2026},"timezone":{"type":"string","description":"IANA timezone identifier","example":"UTC"},"coordinateSystem":{"type":"string","description":"sidereal or tropical","example":"tropical"}}}}}}}},"/v1/vedic/upagraha":{"post":{"summary":"Upagrahas","responses":{"200":{"description":"Time-based and Sun-based upagraha positions","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"frame":{"type":"object","description":"Calculation frame","properties":{"date":{"type":"string","description":"Requested date"},"time":{"type":"string","description":"Requested time"},"timezone":{"type":"string","description":"Timezone"},"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"ayanamsa":{"type":"string","description":"Ayanamsa mode"},"ayanamsaValue":{"type":"number","description":"Ayanamsa degrees"}},"required":[]},"timeBased":{"type":"array","description":"Time-based upagrahas","items":{"type":"object","description":"Upagraha","properties":{"name":{"type":"string","description":"Upagraha name","example":"Dhooma"},"longitude":{"type":"number","description":"Longitude"}},"required":[]}},"sunBased":{"type":"array","description":"Sun-based upagrahas at lagna","items":{"type":"object","description":"Upagraha","properties":{"name":{"type":"string","description":"Name"},"longitude":{"type":"number","description":"Longitude"},"rashi":{"type":"string","description":"Sign name"},"degreeInSign":{"type":"number","description":"Degree in sign"},"nakshatra":{"type":"string","description":"Nakshatra"},"nakshatraPada":{"type":"number","description":"Pada 1-4"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Time-based upagrahas from the Sun (Dhooma, Vyatipata, Parivesha, Chapa, Upaketu) and sun-based upagrahas from the lagna (Gulika, Yamaghanta, Ardhaprahara).","operationId":"postVedicUpagraha","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/avasthas":{"get":{"summary":"Avastha states","responses":{"200":{"description":"Avastha catalog (jagaradi and baladi systems)","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","description":"Avastha entry","properties":{"id":{"type":"string","description":"Avastha identifier"},"name":{"type":"string","description":"Avastha name"},"system":{"type":"string","description":"jagaradi or baladi"},"meaning":{"type":"string","description":"Meaning"},"interpretation":{"type":"string","description":"Interpretation"}},"required":[]}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Catalog of planetary avastha states (jagaradi and baladi systems).","operationId":"getVedicAvasthas","tags":["Vedic"]}},"/v1/vedic/avasthas/:id":{"get":{"summary":"Single avastha","responses":{"200":{"description":"Single avastha entry","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"id":{"type":"string","description":"Avastha identifier"},"name":{"type":"string","description":"Avastha name"},"system":{"type":"string","description":"jagaradi or baladi"},"meaning":{"type":"string","description":"Meaning"},"interpretation":{"type":"string","description":"Interpretation"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"One avastha state by id; 404 on unknown.","operationId":"getVedicAvasthasId","tags":["Vedic"]}},"/v1/vedic/arudha":{"post":{"summary":"Arudha padas","responses":{"200":{"description":"Arudha padas from lagna and the grahas","content":{"application/json":{"schema":{"type":"object","required":["lagnaRashi","arudhaLagna","upapada"],"properties":{"frame":{"type":"object","description":"Calculation frame","properties":{"date":{"type":"string","description":"Requested date"},"time":{"type":"string","description":"Requested time"},"timezone":{"type":"string","description":"Timezone"},"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"ayanamsa":{"type":"string","description":"Ayanamsa mode"},"ayanamsaValue":{"type":"number","description":"Ayanamsa degrees"}},"required":[]},"lagnaRashi":{"type":"string","description":"Lagna sign"},"arudhaLagna":{"type":"string","description":"Arudha lagna sign"},"upapada":{"type":"string","description":"Upapada sign"},"padas":{"type":"array","description":"Arudha padas per planet","items":{"type":"object","description":"Pada","properties":{"planet":{"type":"string","description":"Body name"},"sign":{"type":"string","description":"Arudha sign"},"longitude":{"type":"number","description":"Arudha longitude"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Arudha lagna, upapada, and all twelve padas with lords and exceptions.","operationId":"postVedicArudha","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/vedic/chara-karakas":{"post":{"summary":"Chara karakas","responses":{"200":{"description":"Chara karakas (Jaimini) for the grahas","content":{"application/json":{"schema":{"type":"object","required":["scheme","atmakaraka","darakaraka"],"properties":{"frame":{"type":"object","description":"Calculation frame","properties":{"date":{"type":"string","description":"Requested date"},"time":{"type":"string","description":"Requested time"},"timezone":{"type":"string","description":"Timezone"},"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"ayanamsa":{"type":"string","description":"Ayanamsa mode"},"ayanamsaValue":{"type":"number","description":"Ayanamsa degrees"}},"required":[]},"scheme":{"type":"string","description":"chara or fixed","example":"chara"},"atmakaraka":{"type":"string","description":"Atmakaraka planet"},"darakaraka":{"type":"string","description":"Darakaraka planet"},"karakas":{"type":"array","description":"Karaka sequence","items":{"type":"object","description":"Karaka","properties":{"planet":{"type":"string","description":"Body name"},"karaka":{"type":"string","description":"Karaka role"},"longitude":{"type":"number","description":"Longitude"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Jaimini chara karakas ranked by degree-in-sign, with atmakaraka and darakaraka.","operationId":"postVedicCharaKarakas","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"scheme":{"type":"string","description":"chara (7) or ashtaka (8)","example":"chara"}}}}}}}},"/v1/vedic/bhava-bala":{"post":{"summary":"Bhava bala","responses":{"200":{"description":"Bhava bala (house strength) with house themes","content":{"application/json":{"schema":{"type":"object","required":["houseSystem","focus"],"properties":{"frame":{"type":"object","description":"Calculation frame","properties":{"date":{"type":"string","description":"Requested date"},"time":{"type":"string","description":"Requested time"},"timezone":{"type":"string","description":"Timezone"},"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"ayanamsa":{"type":"string","description":"Ayanamsa mode"},"ayanamsaValue":{"type":"number","description":"Ayanamsa degrees"}},"required":[]},"houseSystem":{"type":"string","description":"House system used","example":"whole-sign"},"bhavas":{"type":"array","description":"House strength breakdowns","items":{"type":"object","description":"Bhava","properties":{"house":{"type":"number","description":"House number 1-12"},"strength":{"type":"number","description":"Bala virupas"},"relativeStrength":{"type":"number","description":"Ratio"},"strongest":{"type":"boolean","description":"Whether this is the strongest house"}},"required":[]}},"focus":{"type":"string","description":"Requested focus","example":"all"},"houseThemes":{"type":"object","description":"Themes keyed by house number"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Twelve house strengths with bhavadhipati, dig, and drishti bala in virupas and rupas.","operationId":"postVedicBhavaBala","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"focus":{"type":"string","description":"all or strength","example":"all"}}}}}}}},"/v1/vedic/bhav-chalit":{"post":{"summary":"Bhav-chalit","responses":{"200":{"description":"Bhav chalit: Placidus placements of planets against whole-sign houses","content":{"application/json":{"schema":{"type":"object","required":["houseSystem","ascendant","midheaven","focus"],"properties":{"frame":{"type":"object","description":"Calculation frame","properties":{"date":{"type":"string","description":"Requested date"},"time":{"type":"string","description":"Requested time"},"timezone":{"type":"string","description":"Timezone"},"latitude":{"type":"number","description":"Latitude"},"longitude":{"type":"number","description":"Longitude"},"ayanamsa":{"type":"string","description":"Ayanamsa mode"},"ayanamsaValue":{"type":"number","description":"Ayanamsa degrees"}},"required":[]},"houseSystem":{"type":"string","description":"placidus","example":"placidus"},"ascendant":{"type":"number","description":"Ascendant longitude"},"midheaven":{"type":"number","description":"Midheaven longitude"},"bhavas":{"type":"array","description":"Chalit house cusps","items":{"type":"object","description":"Bhava cusp","properties":{"house":{"type":"number","description":"House number"},"cusp":{"type":"number","description":"Cusp longitude"},"sign":{"type":"string","description":"Sign on cusp"}},"required":[]}},"grahas":{"type":"array","description":"Planets with chalit houses","items":{"type":"object","description":"Graha","properties":{"planet":{"type":"string","description":"Body name"},"longitude":{"type":"number","description":"Longitude"},"house":{"type":"number","description":"Chalit house"},"wholeSignHouse":{"type":"number","description":"Whole-sign house"}},"required":[]}},"movedCount":{"type":"number","description":"Planets moved by the chalit calculation"},"houseThemes":{"type":"object","description":"Themes keyed by house number"},"focus":{"type":"string","description":"Requested focus","example":"all"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Cuspal house placements with moved planets against rashi houses, ascendant and midheaven.","operationId":"postVedicBhavChalit","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"},"focus":{"type":"string","description":"all or strength","example":"all"}}}}}}}},"/v1/vedic/heliacal":{"post":{"summary":"Heliacal visibility","responses":{"200":{"description":"Heliacal rising/setting events for the grahas","content":{"application/json":{"schema":{"type":"object","required":["date"],"properties":{"date":{"type":"string","description":"Reference date"},"grahas":{"type":"array","description":"Heliacal events per planet","items":{"type":"object","description":"Graha event","properties":{"planet":{"type":"string","description":"Body name"},"longitude":{"type":"number","description":"Longitude"},"eventType":{"type":"string","description":"Heliacal event type"},"date":{"type":"string","description":"Event date"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Morning/evening star status, kalamsa, and elongation of the seven classical planets.","operationId":"postVedicHeliacal","tags":["Vedic"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["date","latitude","longitude"],"properties":{"date":{"type":"string","description":"YYYY-MM-DD","example":"2026-02-03"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/chinese/bazi":{"post":{"summary":"Chinese BaZi Four Pillars","responses":{"200":{"description":"BaZi four pillars with five-element balance","content":{"application/json":{"schema":{"type":"object","required":["chineseZodiac"],"properties":{"bazi":{"type":"object","description":"Four pillars chart","properties":{"yearPillar":{"type":"object","description":"Year pillar","properties":{"stem":{"type":"object","description":"Heavenly stem","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"YANG or YIN"}},"required":[]},"branch":{"type":"object","description":"Earthly branch","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"animal":{"type":"string","description":"Zodiac animal"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"YANG or YIN"},"hiddenStems":{"type":"array","description":"Hidden stems","items":{"type":"object","description":"Hidden stem","properties":{"stem":{"type":"object","description":"Stem detail","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"Polarity"}},"required":[]},"role":{"type":"string","description":"CHIEF, MIDDLE or RESIDUAL"},"percentage":{"type":"number","description":"Share 0-1"}},"required":[]}}},"required":[]},"nayin":{"type":"string","description":"Na Yin"},"tenGodRelation":{"type":"string","description":"Ten-god relation"}},"required":[]},"monthPillar":{"type":"object","description":"Month pillar","properties":{"stem":{"type":"object","description":"Heavenly stem","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"YANG or YIN"}},"required":[]},"branch":{"type":"object","description":"Earthly branch","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"animal":{"type":"string","description":"Zodiac animal"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"YANG or YIN"},"hiddenStems":{"type":"array","description":"Hidden stems","items":{"type":"object","description":"Hidden stem","properties":{"stem":{"type":"object","description":"Stem detail","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"Polarity"}},"required":[]},"role":{"type":"string","description":"CHIEF, MIDDLE or RESIDUAL"},"percentage":{"type":"number","description":"Share 0-1"}},"required":[]}}},"required":[]},"nayin":{"type":"string","description":"Na Yin"},"tenGodRelation":{"type":"string","description":"Ten-god relation"}},"required":[]},"dayPillar":{"type":"object","description":"Day pillar","properties":{"stem":{"type":"object","description":"Heavenly stem","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"YANG or YIN"}},"required":[]},"branch":{"type":"object","description":"Earthly branch","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"animal":{"type":"string","description":"Zodiac animal"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"YANG or YIN"},"hiddenStems":{"type":"array","description":"Hidden stems","items":{"type":"object","description":"Hidden stem","properties":{"stem":{"type":"object","description":"Stem detail","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"Polarity"}},"required":[]},"role":{"type":"string","description":"CHIEF, MIDDLE or RESIDUAL"},"percentage":{"type":"number","description":"Share 0-1"}},"required":[]}}},"required":[]},"nayin":{"type":"string","description":"Na Yin"},"tenGodRelation":{"type":"string","description":"Ten-god relation"}},"required":[]},"hourPillar":{"type":"object","description":"Hour pillar","properties":{"stem":{"type":"object","description":"Heavenly stem","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"YANG or YIN"}},"required":[]},"branch":{"type":"object","description":"Earthly branch","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"animal":{"type":"string","description":"Zodiac animal"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"YANG or YIN"},"hiddenStems":{"type":"array","description":"Hidden stems","items":{"type":"object","description":"Hidden stem","properties":{"stem":{"type":"object","description":"Stem detail","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"Polarity"}},"required":[]},"role":{"type":"string","description":"CHIEF, MIDDLE or RESIDUAL"},"percentage":{"type":"number","description":"Share 0-1"}},"required":[]}}},"required":[]},"nayin":{"type":"string","description":"Na Yin"},"tenGodRelation":{"type":"string","description":"Ten-god relation"}},"required":[]},"dayMaster":{"type":"object","description":"Day master","properties":{"stem":{"type":"string","description":"Stem character"},"element":{"type":"string","description":"Element","example":"EARTH"},"polarity":{"type":"string","description":"YANG or YIN"},"strength":{"type":"string","description":"Strength rating"},"strengthScore":{"type":"number","description":"Strength 0-1"},"supportingElements":{"type":"array","description":"Elements","items":{"type":"string","description":"Element"}},"weakeningElements":{"type":"array","description":"Elements","items":{"type":"string","description":"Element"}},"favorableElements":{"type":"array","description":"Elements","items":{"type":"string","description":"Element"}},"unfavorableElements":{"type":"array","description":"Elements","items":{"type":"string","description":"Element"}}},"required":[]},"elementBalance":{"type":"object","description":"Counts per element (WOOD/FIRE/EARTH/METAL/WATER)"},"tenGodDistribution":{"type":"object","description":"Ten-god relation counts"},"luckPillars":{"type":"array","description":"Up to 10 Da Yun pillars","items":{"type":"object","description":"Luck pillar","properties":{"pillar":{"type":"object","description":"Luck pillar","properties":{"stem":{"type":"object","description":"Heavenly stem","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"YANG or YIN"}},"required":[]},"branch":{"type":"object","description":"Earthly branch","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"animal":{"type":"string","description":"Zodiac animal"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"YANG or YIN"},"hiddenStems":{"type":"array","description":"Hidden stems","items":{"type":"object","description":"Hidden stem","properties":{"stem":{"type":"object","description":"Stem detail","properties":{"chineseChar":{"type":"string","description":"Character"},"pinyin":{"type":"string","description":"Pinyin"},"element":{"type":"string","description":"Element"},"polarity":{"type":"string","description":"Polarity"}},"required":[]},"role":{"type":"string","description":"CHIEF, MIDDLE or RESIDUAL"},"percentage":{"type":"number","description":"Share 0-1"}},"required":[]}}},"required":[]},"nayin":{"type":"string","description":"Na Yin"},"tenGodRelation":{"type":"string","description":"Ten-god relation"}},"required":[]},"startAge":{"type":"number","description":"Start age"},"startYear":{"type":"number","description":"Start year"},"endYear":{"type":"number","description":"End year"}},"required":[]}},"solarTermBoundary":{"type":"object","description":"Previous jie boundary","properties":{"name":{"type":"string","description":"Solar term"},"date":{"type":"string","description":"Date"}},"required":[]}},"required":[]},"chineseZodiac":{"type":"string","description":"English zodiac animal"},"lunarDate":{"type":"object","description":"Lunar date","properties":{"year":{"type":"number","description":"Lunar year"},"month":{"type":"number","description":"Lunar month"},"day":{"type":"number","description":"Lunar day"},"isLeapMonth":{"type":"boolean","description":"Leap month flag"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Year/Month/Day/Hour stems and branches, five-element distribution, and Chinese zodiac.","operationId":"postChineseBazi","tags":["Chinese"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/numerology/life-path":{"post":{"summary":"Life Path number","responses":{"200":{"description":"Life Path number with input echo","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"string","description":"Route name","example":"life-path"},"birthdateUsed":{"type":"string","description":"Birthdate as used","example":"1990-06-15T14:30:00Z"},"nameUsed":{"type":"string","description":"Name as used, when provided","example":"Ada Lovelace"},"value":{"type":"integer","description":"Reduced Life Path number","example":7},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":34},"label":{"type":"string","description":"Number label","example":"Life Path Number"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"The Life Path number alone from a birthdate.","operationId":"postNumerologyLifePath","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthdate"],"properties":{"birthdate":{"type":"string","description":"ISO-8601 birth moment","example":"1990-06-15T14:30:00Z"}}}}}}}},"/v1/numerology/expression":{"post":{"summary":"Expression number","responses":{"200":{"description":"Expression number with input echo","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"string","description":"Route name","example":"expression"},"birthdateUsed":{"type":"string","description":"Birthdate as used","example":"1815-12-10T00:00:00Z"},"nameUsed":{"type":"string","description":"Name as used, when provided","example":"Ada Lovelace"},"value":{"type":"integer","description":"Reduced Expression number","example":6},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":24},"label":{"type":"string","description":"Number label","example":"Expression Number"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"The Expression number alone from name and birthdate.","operationId":"postNumerologyExpression","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","birthdate"],"properties":{"name":{"type":"string","description":"Full name at birth","example":"Ada Lovelace"},"birthdate":{"type":"string","description":"ISO-8601 birth moment","example":"1815-12-10T00:00:00Z"}}}}}}}},"/v1/numerology/soul-urge":{"post":{"summary":"Soul Urge number","responses":{"200":{"description":"Soul Urge number with input echo","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"string","description":"Route name","example":"soul-urge"},"birthdateUsed":{"type":"string","description":"Birthdate as used","example":"1815-12-10T00:00:00Z"},"nameUsed":{"type":"string","description":"Name as used, when provided","example":"Ada Lovelace"},"value":{"type":"integer","description":"Reduced Soul Urge number","example":7},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":16},"label":{"type":"string","description":"Number label","example":"Soul Urge Number"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"The Soul Urge (heart desire) number alone.","operationId":"postNumerologySoulUrge","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","birthdate"],"properties":{"name":{"type":"string","description":"Full name at birth","example":"Ada Lovelace"},"birthdate":{"type":"string","description":"ISO-8601 birth moment","example":"1815-12-10T00:00:00Z"}}}}}}}},"/v1/numerology/personality":{"post":{"summary":"Personality number","responses":{"200":{"description":"Personality number with input echo","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"string","description":"Route name","example":"personality"},"birthdateUsed":{"type":"string","description":"Birthdate as used","example":"1815-12-10T00:00:00Z"},"nameUsed":{"type":"string","description":"Name as used, when provided","example":"Ada Lovelace"},"value":{"type":"integer","description":"Reduced Personality number","example":8},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":17},"label":{"type":"string","description":"Number label","example":"Personality Number"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"The Personality number alone.","operationId":"postNumerologyPersonality","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","birthdate"],"properties":{"name":{"type":"string","description":"Full name at birth","example":"Ada Lovelace"},"birthdate":{"type":"string","description":"ISO-8601 birth moment","example":"1815-12-10T00:00:00Z"}}}}}}}},"/v1/numerology/birth-day":{"post":{"summary":"Birthday number","responses":{"200":{"description":"Birthday number with input echo","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"string","description":"Route name","example":"birth-day"},"birthdateUsed":{"type":"string","description":"Birthdate as used","example":"1990-06-15T14:30:00Z"},"nameUsed":{"type":"string","description":"Name as used, when provided","example":"Ada Lovelace"},"value":{"type":"integer","description":"Reduced Birthday number","example":6},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":15},"label":{"type":"string","description":"Number label","example":"Birthday Number"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"The Birthday number alone from a birthdate.","operationId":"postNumerologyBirthDay","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthdate"],"properties":{"birthdate":{"type":"string","description":"ISO-8601 birth moment","example":"1990-06-15T14:30:00Z"}}}}}}}},"/v1/numerology/maturity":{"post":{"summary":"Maturity number","responses":{"200":{"description":"Maturity number with input echo","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"string","description":"Route name","example":"maturity"},"birthdateUsed":{"type":"string","description":"Birthdate as used","example":"1815-12-10T00:00:00Z"},"nameUsed":{"type":"string","description":"Name as used, when provided","example":"Ada Lovelace"},"value":{"type":"integer","description":"Reduced Maturity number","example":4},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":13},"label":{"type":"string","description":"Number label","example":"Maturity Number"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"The Maturity number (life path + expression) alone.","operationId":"postNumerologyMaturity","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","birthdate"],"properties":{"name":{"type":"string","description":"Full name at birth","example":"Ada Lovelace"},"birthdate":{"type":"string","description":"ISO-8601 birth moment","example":"1815-12-10T00:00:00Z"}}}}}}}},"/v1/numerology/bridge":{"post":{"summary":"Bridge number","responses":{"200":{"description":"Bridge number with input echo","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"string","description":"Route name","example":"bridge"},"birthdateUsed":{"type":"string","description":"Birthdate as used","example":"1815-12-10T00:00:00Z"},"nameUsed":{"type":"string","description":"Name as used, when provided","example":"Ada Lovelace"},"bridgeNumber":{"type":"integer","description":"Absolute gap between Expression and Life Path","example":1},"lifePath":{"type":"integer","description":"Life Path number value","example":7},"expression":{"type":"integer","description":"Expression number value","example":6}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"The Bridge number (gap between Life Path and Expression) alone.","operationId":"postNumerologyBridge","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","birthdate"],"properties":{"name":{"type":"string","description":"Full name at birth","example":"Ada Lovelace"},"birthdate":{"type":"string","description":"ISO-8601 birth moment","example":"1815-12-10T00:00:00Z"}}}}}}}},"/v1/numerology/chart":{"post":{"summary":"Numerology chart","responses":{"200":{"description":"Full Pythagorean numerology chart","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"lifePath":{"type":"object","description":"Life Path number","properties":{"value":{"type":"integer","description":"Reduced number","example":7},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":34},"label":{"type":"string","description":"Number label","example":"Life Path Number"}},"required":[]},"expression":{"type":"object","description":"Expression number","properties":{"value":{"type":"integer","description":"Reduced number","example":6},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":24},"label":{"type":"string","description":"Number label","example":"Expression Number"}},"required":[]},"soulUrge":{"type":"object","description":"Soul Urge number","properties":{"value":{"type":"integer","description":"Reduced number","example":7},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":16},"label":{"type":"string","description":"Number label","example":"Soul Urge Number"}},"required":[]},"personality":{"type":"object","description":"Personality number","properties":{"value":{"type":"integer","description":"Reduced number","example":8},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":17},"label":{"type":"string","description":"Number label","example":"Personality Number"}},"required":[]},"birthday":{"type":"object","description":"Birthday number","properties":{"value":{"type":"integer","description":"Reduced number","example":6},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":15},"label":{"type":"string","description":"Number label","example":"Birthday Number"}},"required":[]},"maturity":{"type":"object","description":"Maturity number","properties":{"value":{"type":"integer","description":"Reduced number","example":4},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":13},"label":{"type":"string","description":"Number label","example":"Maturity Number"}},"required":[]},"pinnacles":{"type":"object","description":"Four life pinnacles","properties":{"first":{"type":"object","description":"First pinnacle","properties":{"value":{"type":"integer","description":"Reduced number","example":4},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":22},"label":{"type":"string","description":"Number label","example":"First Pinnacle"}},"required":[]},"second":{"type":"object","description":"Second pinnacle","properties":{"value":{"type":"integer","description":"Reduced number","example":3},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":21},"label":{"type":"string","description":"Number label","example":"Second Pinnacle"}},"required":[]},"third":{"type":"object","description":"Third pinnacle","properties":{"value":{"type":"integer","description":"Reduced number","example":7},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":7},"label":{"type":"string","description":"Number label","example":"Third Pinnacle"}},"required":[]},"fourth":{"type":"object","description":"Fourth pinnacle","properties":{"value":{"type":"integer","description":"Reduced number","example":9},"isMasterNumber":{"type":"boolean","description":"True when master number 11/22/33","example":false},"preReductionSum":{"type":"integer","description":"Sum before reduction","example":27},"label":{"type":"string","description":"Number label","example":"Fourth Pinnacle"}},"required":[]}},"required":[]},"challenges":{"type":"object","description":"Four challenge numbers","properties":{"first":{"type":"integer","description":"First challenge","example":2},"second":{"type":"integer","description":"Second challenge","example":5},"main":{"type":"integer","description":"Main challenge","example":3},"fourth":{"type":"integer","description":"Fourth challenge","example":4}},"required":[]},"nameUsed":{"type":"string","description":"Name as used","example":"Ada Lovelace"},"birthdateUsed":{"type":"string","description":"Birthdate as used","example":"1815-12-10T00:00:00Z"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Life path, expression, soul urge, personality, birthday, maturity, pinnacles, challenges, and master numbers from a name and birthdate.","operationId":"postNumerologyChart","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","birthdate"],"properties":{"name":{"type":"string","description":"Full name at birth","example":"Ada Lovelace"},"birthdate":{"type":"string","description":"ISO-8601 birth moment","example":"1815-12-10T00:00:00Z"}}}}}}}},"/v1/numerology/karmic-lessons":{"post":{"summary":"Karmic lessons","responses":{"200":{"description":"Missing numbers and their lessons","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"missingNumbers":{"type":"array","description":"Numbers 1-9 absent from the name","items":{"type":"integer"}},"lessons":{"type":"array","description":"Lesson per missing number","items":{"type":"object","properties":{"number":{"type":"integer","description":"Missing number","example":2},"meaning":{"type":"string","description":"Meaning of the number"},"advice":{"type":"string","description":"Practice advice"}},"required":[]}},"presentNumbers":{"type":"array","description":"Numbers 1-9 present in the name","items":{"type":"integer"}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Missing Pythagorean numbers in a name and the lessons they imply.","operationId":"postNumerologyKarmicLessons","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["fullName"],"properties":{"fullName":{"type":"string","description":"Full birth name"}}}}}}}},"/v1/numerology/karmic-debt":{"post":{"summary":"Karmic debt numbers","responses":{"200":{"description":"Karmic debt detection","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"hasKarmicDebt":{"type":"boolean","description":"True when any debt number present","example":false},"debtNumbers":{"type":"array","description":"Debt numbers 13/14/16/19 found","items":{"type":"integer"}},"meanings":{"type":"array","description":"Meaning per debt number","items":{"type":"object","properties":{"number":{"type":"integer","description":"Debt number","example":16},"meaning":{"type":"string","description":"Debt meaning"}},"required":[]}},"message":{"type":"string","description":"Summary message"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Detects karmic debt numbers 13, 14, 16, 19 in the birth date and life path.","operationId":"postNumerologyKarmicDebt","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["year","month","day"],"properties":{"year":{"type":"integer"},"month":{"type":"integer"},"day":{"type":"integer"},"fullName":{"type":"string"}}}}}}}},"/v1/numerology/personal-year":{"post":{"summary":"Personal year number","responses":{"200":{"description":"Personal year cycle","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"personalYear":{"type":"integer","description":"Personal year number 1-9","example":7},"cycle":{"type":"string","description":"Position in the nine-year cycle","example":"7 of the nine-year cycle"},"theme":{"type":"string","description":"Year theme"},"forecast":{"type":"string","description":"Cycle forecast"},"opportunities":{"type":"array","description":"Growth opportunities","items":{"type":"string"}},"challenges":{"type":"array","description":"Challenges to watch","items":{"type":"string"}},"advice":{"type":"string","description":"Guiding advice"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Universal year cycle number for a birth date in the current year.","operationId":"postNumerologyPersonalYear","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["year","month","day"],"properties":{"year":{"type":"integer"},"month":{"type":"integer"},"day":{"type":"integer"}}}}}}}},"/v1/numerology/personal-month":{"post":{"summary":"Personal month number","responses":{"200":{"description":"Personal month cycle","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"personalMonth":{"type":"integer","description":"Personal month number 1-9","example":3},"theme":{"type":"string","description":"Month theme"},"focus":{"type":"string","description":"Month energy focus"},"calendarMonth":{"type":"integer","description":"Calendar month used","example":6},"personalYear":{"type":"integer","description":"Underlying personal year","example":7},"personalYearTheme":{"type":"string","description":"Personal year energy"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Monthly cycle number from birth date and calendar month.","operationId":"postNumerologyPersonalMonth","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["year","month","day","targetMonth"],"properties":{"year":{"type":"integer"},"month":{"type":"integer"},"day":{"type":"integer"},"targetMonth":{"type":"integer"}}}}}}}},"/v1/numerology/personal-day":{"post":{"summary":"Personal day number","responses":{"200":{"description":"Personal day cycle","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"personalDay":{"type":"integer","description":"Personal day number 1-9","example":5},"theme":{"type":"string","description":"Day theme"},"guidance":{"type":"string","description":"Daily guidance"},"targetDate":{"type":"string","description":"Target date used","example":"2026-06-15"},"personalMonth":{"type":"integer","description":"Personal month number","example":3},"personalMonthTheme":{"type":"string","description":"Personal month energy"},"personalYear":{"type":"integer","description":"Personal year number","example":7},"personalYearTheme":{"type":"string","description":"Personal year energy"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Daily cycle number from birth month/day and a target date.","operationId":"postNumerologyPersonalDay","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["month","day","targetDate"],"properties":{"month":{"type":"integer"},"day":{"type":"integer"},"targetDate":{"type":"string","description":"YYYY-MM-DD"}}}}}}}},"/v1/numerology/compatibility":{"post":{"summary":"Numerology compatibility","responses":{"200":{"description":"Two-person numerology compatibility","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"overallScore":{"type":"integer","description":"Compatibility score 0-100","example":82},"rating":{"type":"string","description":"Rating band","example":"Strong"},"lifePath":{"type":"object","description":"Life path numbers","properties":{"person1":{"type":"integer","description":"Person 1 life path","example":7},"person2":{"type":"integer","description":"Person 2 life path","example":3}},"required":[]},"expression":{"type":"object","description":"Expression numbers","properties":{"person1":{"type":"integer","description":"Person 1 expression","example":6},"person2":{"type":"integer","description":"Person 2 expression","example":5}},"required":[]},"soulUrge":{"type":"object","description":"Soul urge numbers","properties":{"person1":{"type":"integer","description":"Person 1 soul urge","example":7},"person2":{"type":"integer","description":"Person 2 soul urge","example":1}},"required":[]},"strengths":{"type":"array","description":"Relationship strengths","items":{"type":"string"}},"challenges":{"type":"array","description":"Relationship challenges","items":{"type":"string"}},"advice":{"type":"string","description":"Compatibility advice"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Score and rating between two people via life path / expression / soul urge.","operationId":"postNumerologyCompatibility","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["person1","person2"],"properties":{"person1":{"type":"object"},"person2":{"type":"object"}}}}}}}},"/v1/numerology/meanings/:number":{"get":{"summary":"Number meaning","responses":{"200":{"description":"Pythagorean number meaning","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"integer","description":"Number 1-9 or master","example":7},"type":{"type":"string","description":"Energy type","example":"Seeker"},"meaning":{"type":"string","description":"Full meaning"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Pythagorean meaning for 1-9, 11, 22, 33; 404 otherwise.","operationId":"getNumerologyMeaningsNumber","tags":["Numerology"]}},"/v1/numerology/daily":{"post":{"summary":"Daily numerology number","responses":{"200":{"description":"Seeded daily numerology","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"date":{"type":"string","description":"Date used","example":"2026-08-05"},"seed":{"type":"string","description":"Seed used","example":"daily"},"number":{"type":"integer","description":"Daily number 1-9 or master","example":3},"type":{"type":"string","description":"Energy type","example":"Creator"},"dailyMessage":{"type":"string","description":"Daily message"},"meaning":{"type":"string","description":"Number meaning"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Deterministic daily number and message from a seed + date.","operationId":"postNumerologyDaily","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"seed":{"type":"string","description":"Arbitrary user seed"},"date":{"type":"string","description":"YYYY-MM-DD"}}}}}}}},"/v1/numerology/chaldean":{"post":{"summary":"Chaldean numerology","responses":{"200":{"description":"Chaldean numerology reading","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Name analyzed","example":"Ada"},"destiny":{"type":"integer","description":"Chaldean destiny number","example":7},"soulUrge":{"type":"integer","description":"Chaldean soul urge","example":2},"personality":{"type":"integer","description":"Chaldean personality","example":5},"numberMeaning":{"type":"string","description":"Destiny number meaning"},"caution":{"type":"string","description":"Chaldean alphabet note"},"summary":{"type":"string","description":"Reading summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Chaldean destiny, soul urge, and personality from a name.","operationId":"postNumerologyChaldean","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}}}}}},"/v1/numerology/compound-number/:number":{"get":{"summary":"Compound number meaning","responses":{"200":{"description":"Chaldean compound number meaning","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"integer","description":"Compound number 10-52","example":16},"name":{"type":"string","description":"Compound name","example":"The Shattered Pillar"},"nature":{"type":"string","description":"Nature descriptor","example":"a fall from a height"},"meaning":{"type":"string","description":"Full meaning"},"root":{"type":"integer","description":"Digit-sum root","example":7},"sameAs":{"type":"string","description":"Equivalent root meaning","example":"7 Seeker"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Chaldean compound number 10-52 with name, nature, root, sameAs; 404 otherwise.","operationId":"getNumerologyCompoundNumberNumber","tags":["Numerology"]}},"/v1/numerology/dual":{"post":{"summary":"Dual system comparison","responses":{"200":{"description":"Pythagorean vs Chaldean comparison","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Name analyzed","example":"Ada"},"pythagorean":{"type":"integer","description":"Pythagorean destiny","example":7},"chaldean":{"type":"integer","description":"Chaldean destiny","example":3},"agreement":{"type":"boolean","description":"True when systems agree","example":false},"note":{"type":"string","description":"Comparison note"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Pythagorean vs Chaldean destiny for a name with agreement flag.","operationId":"postNumerologyDual","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}}}}}},"/v1/numerology/business-name":{"post":{"summary":"Business name numerology","responses":{"200":{"description":"Business name vibration analysis","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"Business name","example":"Lumina"},"total":{"type":"integer","description":"Pythagorean letter sum","example":27},"compound":{"type":"integer","description":"Compound number","example":27},"root":{"type":"integer","description":"Reduced root 1-9","example":9},"planet":{"type":"string","description":"Ruling planet","example":"Mars"},"rating":{"type":"integer","description":"Favorability 55-100","example":78},"favorableCompound":{"type":"array","description":"Favorable compound numbers","items":{"type":"integer"}},"industries":{"type":"array","description":"Favored industries","items":{"type":"string"}},"guidance":{"type":"string","description":"Naming guidance"},"calculation":{"type":"string","description":"Calculation breakdown"},"compoundMeaning":{"type":"string","description":"Compound number meaning"},"summary":{"type":"string","description":"Overall summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Business name vibration, root, ruling planet, and guidance.","operationId":"postNumerologyBusinessName","tags":["Numerology"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}}}}}}},"/v1/biorhythm/calculate":{"post":{"summary":"Biorhythm calculation","responses":{"200":{"description":"Biorhythm cycle percentages","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthdate":{"type":"string","description":"Birthdate used","example":"1990-05-15T00:00:00Z"},"targetDate":{"type":"string","description":"Target date used","example":"2026-09-01T00:00:00Z"},"daysAlive":{"type":"integer","description":"Days since birth","example":13266},"physical":{"type":"object","description":"Physical cycle","properties":{"name":{"type":"string","description":"Cycle name","example":"Physical"},"cycleDays":{"type":"integer","description":"Cycle period in days","example":23},"value":{"type":"integer","description":"Cycle value -100 to 100","example":64},"phase":{"type":"string","description":"Cycle phase","example":"HIGH","enum":["HIGH","LOW","CRITICAL"]},"description":{"type":"string","description":"Cycle description"}},"required":[]},"emotional":{"type":"object","description":"Emotional cycle","properties":{"name":{"type":"string","description":"Cycle name","example":"Emotional"},"cycleDays":{"type":"integer","description":"Cycle period in days","example":28},"value":{"type":"integer","description":"Cycle value -100 to 100","example":58},"phase":{"type":"string","description":"Cycle phase","example":"HIGH","enum":["HIGH","LOW","CRITICAL"]},"description":{"type":"string","description":"Cycle description"}},"required":[]},"intellectual":{"type":"object","description":"Intellectual cycle","properties":{"name":{"type":"string","description":"Cycle name","example":"Intellectual"},"cycleDays":{"type":"integer","description":"Cycle period in days","example":33},"value":{"type":"integer","description":"Cycle value -100 to 100","example":-30},"phase":{"type":"string","description":"Cycle phase","example":"LOW","enum":["HIGH","LOW","CRITICAL"]},"description":{"type":"string","description":"Cycle description"}},"required":[]},"intuitive":{"type":"object","description":"Intuitive cycle","properties":{"name":{"type":"string","description":"Cycle name","example":"Intuitive"},"cycleDays":{"type":"integer","description":"Cycle period in days","example":38},"value":{"type":"integer","description":"Cycle value -100 to 100","example":44},"phase":{"type":"string","description":"Cycle phase","example":"HIGH","enum":["HIGH","LOW","CRITICAL"]},"description":{"type":"string","description":"Cycle description"}},"required":[]},"overallAverage":{"type":"integer","description":"Mean cycle value -100 to 100","example":34},"summary":{"type":"string","description":"Overall summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Physical, emotional, intellectual, and intuitive cycle percentages for a target date.","operationId":"postBiorhythmCalculate","tags":["Biorhythm"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthdate"],"properties":{"birthdate":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T00:00:00Z"},"targetDate":{"type":"string","description":"ISO-8601 target date","example":"2026-09-01T00:00:00Z"}}}}}}}},"/v1/biorhythm/compatibility":{"post":{"summary":"Two-person biorhythm compatibility","responses":{"200":{"description":"Per-cycle alignment between two people","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"person1":{"type":"object","description":"First person","properties":{"birthDate":{"type":"string","description":"Birth date used","example":"1990-05-15"}},"required":[]},"person2":{"type":"object","description":"Second person","properties":{"birthDate":{"type":"string","description":"Birth date used","example":"1988-11-02"}},"required":[]},"targetDate":{"type":"string","description":"Target date used","example":"2026-09-01"},"overallScore":{"type":"integer","description":"Overall alignment 0-100","example":72},"rating":{"type":"string","description":"Alignment rating","example":"Well Aligned"},"cycles":{"type":"object","description":"Per-cycle alignment keyed by cycle","properties":{"physical":{"type":"object","description":"Physical alignment","properties":{"person1Value":{"type":"integer","description":"Person 1 cycle value","example":64},"person2Value":{"type":"integer","description":"Person 2 cycle value","example":-20},"difference":{"type":"integer","description":"Absolute value gap","example":84},"alignment":{"type":"integer","description":"Alignment 0-100","example":16},"phase":{"type":"string","description":"Sync status","example":"out_of_sync","enum":["in_sync","moderately_synced","out_of_sync"]}},"required":[]},"emotional":{"type":"object","description":"Emotional alignment","properties":{"person1Value":{"type":"integer","description":"Person 1 cycle value","example":58},"person2Value":{"type":"integer","description":"Person 2 cycle value","example":12},"difference":{"type":"integer","description":"Absolute value gap","example":46},"alignment":{"type":"integer","description":"Alignment 0-100","example":54},"phase":{"type":"string","description":"Sync status","example":"moderately_synced","enum":["in_sync","moderately_synced","out_of_sync"]}},"required":[]},"intellectual":{"type":"object","description":"Intellectual alignment","properties":{"person1Value":{"type":"integer","description":"Person 1 cycle value","example":-30},"person2Value":{"type":"integer","description":"Person 2 cycle value","example":-35},"difference":{"type":"integer","description":"Absolute value gap","example":5},"alignment":{"type":"integer","description":"Alignment 0-100","example":95},"phase":{"type":"string","description":"Sync status","example":"in_sync","enum":["in_sync","moderately_synced","out_of_sync"]}},"required":[]},"intuitive":{"type":"object","description":"Intuitive alignment","properties":{"person1Value":{"type":"integer","description":"Person 1 cycle value","example":44},"person2Value":{"type":"integer","description":"Person 2 cycle value","example":-70},"difference":{"type":"integer","description":"Absolute value gap","example":114},"alignment":{"type":"integer","description":"Alignment 0-100","example":0},"phase":{"type":"string","description":"Sync status","example":"out_of_sync","enum":["in_sync","moderately_synced","out_of_sync"]}},"required":[]}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Per-cycle alignment and overall score between two birth dates on a target date.","operationId":"postBiorhythmCompatibility","tags":["Biorhythm"]}},"/v1/biorhythm/critical-days":{"post":{"summary":"Critical day detection","responses":{"200":{"description":"Critical day events in range","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDate":{"type":"string","description":"Birth date used","example":"1990-05-15"},"startDate":{"type":"string","description":"Range start","example":"2026-08-01"},"endDate":{"type":"string","description":"Range end","example":"2026-08-31"},"totalCriticalDays":{"type":"integer","description":"Number of events","example":4},"criticalDays":{"type":"array","description":"Zero-crossing events","items":{"type":"object","properties":{"date":{"type":"string","description":"Event date YYYY-MM-DD","example":"2026-08-05"},"cycle":{"type":"string","description":"Cycle key","example":"physical"},"period":{"type":"integer","description":"Cycle period in days","example":23},"direction":{"type":"string","description":"Zero-crossing direction","example":"ascending","enum":["ascending","descending"]},"severity":{"type":"string","description":"Concurrent cycles on the date","example":"single","enum":["single","double","triple"]},"advisory":{"type":"string","description":"Safety advisory"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Zero-crossing events for all four cycles within a date range (max 180 days).","operationId":"postBiorhythmCriticalDays","tags":["Biorhythm"]}},"/v1/biorhythm/daily":{"post":{"summary":"Seeded daily biorhythm","responses":{"200":{"description":"Seeded daily biorhythm reading","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"date":{"type":"string","description":"Date used","example":"2026-08-05"},"seed":{"type":"string","description":"Full seed used","example":"anonymous-2026-08-05"},"energyRating":{"type":"integer","description":"Energy rating 1-10","example":6},"overallPhase":{"type":"string","description":"Overall phase","example":"mixed","enum":["critical","high_energy","recovery","mixed"]},"spotlight":{"type":"object","description":"Dominant cycle of the day","properties":{"cycle":{"type":"string","description":"Cycle key","example":"emotional"},"value":{"type":"integer","description":"Cycle value -100 to 100","example":58},"phase":{"type":"string","description":"Cycle phase","example":"high"},"message":{"type":"string","description":"Day message"}},"required":[]},"quickRead":{"type":"object","description":"All four cycle values","properties":{"physical":{"type":"integer","description":"Physical value","example":12},"emotional":{"type":"integer","description":"Emotional value","example":58},"intellectual":{"type":"integer","description":"Intellectual value","example":-30},"intuitive":{"type":"integer","description":"Intuitive value","example":44}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Deterministic daily reading from an optional seed and date.","operationId":"postBiorhythmDaily","tags":["Biorhythm"]}},"/v1/biorhythm/forecast":{"post":{"summary":"Biorhythm forecast","responses":{"200":{"description":"Multi-day biorhythm forecast","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDate":{"type":"string","description":"Birth date used","example":"1990-05-15"},"startDate":{"type":"string","description":"Forecast start","example":"2026-08-01"},"endDate":{"type":"string","description":"Forecast end","example":"2026-08-31"},"totalDays":{"type":"integer","description":"Number of days","example":31},"summary":{"type":"object","description":"Period summary","properties":{"bestDay":{"type":"string","description":"Highest-energy date","example":"2026-08-12"},"worstDay":{"type":"string","description":"Lowest-energy date","example":"2026-08-19"},"criticalDayCount":{"type":"integer","description":"Critical days","example":3},"averageEnergy":{"type":"integer","description":"Average energy 1-10","example":6},"periodAdvice":{"type":"string","description":"Period advice"}},"required":[]},"days":{"type":"array","description":"Per-day values","items":{"type":"object","properties":{"date":{"type":"string","description":"Day date","example":"2026-08-01"},"daysSinceBirth":{"type":"integer","description":"Days since birth","example":13266},"physical":{"type":"integer","description":"Physical value","example":12},"emotional":{"type":"integer","description":"Emotional value","example":58},"intellectual":{"type":"integer","description":"Intellectual value","example":-30},"intuitive":{"type":"integer","description":"Intuitive value","example":44},"average":{"type":"integer","description":"Mean cycle value","example":21},"critical":{"type":"boolean","description":"Any cycle near zero","example":false}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Multi-day cycle forecast with best/worst day and critical-day summary (max 90 days).","operationId":"postBiorhythmForecast","tags":["Biorhythm"]}},"/v1/biorhythm/phases":{"post":{"summary":"Biorhythm phase info","responses":{"200":{"description":"Per-cycle phase details","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthDate":{"type":"string","description":"Birth date used","example":"1990-05-15"},"targetDate":{"type":"string","description":"Target date used","example":"2026-08-05"},"daysSinceBirth":{"type":"integer","description":"Days since birth","example":13266},"phases":{"type":"object","description":"Phase per cycle","properties":{"physical":{"type":"object","description":"Physical cycle phase","properties":{"value":{"type":"integer","description":"Cycle value -100 to 100","example":12},"phase":{"type":"string","description":"Cycle phase","example":"high","enum":["high","low","critical"]},"phaseLabel":{"type":"string","description":"Human phase label","example":"High Energy"},"dayInCycle":{"type":"integer","description":"Day within the cycle period","example":9},"totalDays":{"type":"integer","description":"Cycle period in days","example":23}},"required":[]},"emotional":{"type":"object","description":"Emotional cycle phase","properties":{"value":{"type":"integer","description":"Cycle value -100 to 100","example":58},"phase":{"type":"string","description":"Cycle phase","example":"high","enum":["high","low","critical"]},"phaseLabel":{"type":"string","description":"Human phase label","example":"High Energy"},"dayInCycle":{"type":"integer","description":"Day within the cycle period","example":9},"totalDays":{"type":"integer","description":"Cycle period in days","example":28}},"required":[]},"intellectual":{"type":"object","description":"Intellectual cycle phase","properties":{"value":{"type":"integer","description":"Cycle value -100 to 100","example":-30},"phase":{"type":"string","description":"Cycle phase","example":"low","enum":["high","low","critical"]},"phaseLabel":{"type":"string","description":"Human phase label","example":"Recharge"},"dayInCycle":{"type":"integer","description":"Day within the cycle period","example":24},"totalDays":{"type":"integer","description":"Cycle period in days","example":33}},"required":[]},"intuitive":{"type":"object","description":"Intuitive cycle phase","properties":{"value":{"type":"integer","description":"Cycle value -100 to 100","example":44},"phase":{"type":"string","description":"Cycle phase","example":"high","enum":["high","low","critical"]},"phaseLabel":{"type":"string","description":"Human phase label","example":"High Energy"},"dayInCycle":{"type":"integer","description":"Day within the cycle period","example":18},"totalDays":{"type":"integer","description":"Cycle period in days","example":38}},"required":[]}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Lightweight per-cycle phase, value, and day-in-cycle for dashboards.","operationId":"postBiorhythmPhases","tags":["Biorhythm"]}},"/v1/divination/tarot":{"post":{"summary":"Draw a tarot spread","responses":{"200":{"description":"Drawn tarot spread with cards and interpretations","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"spreadType":{"type":"string","enum":["SINGLE","THREE_CARD","CELTIC_CROSS","LOVE","CAREER"]},"cards":{"type":"array","description":"Drawn cards per position","items":{"type":"object","properties":{"positionName":{"type":"string","description":"Position label"},"card":{"type":"object","description":"Drawn card","properties":{"id":{"type":"string","description":"Card id"},"name":{"type":"string","description":"Card name"},"arcana":{"type":"string","enum":["MAJOR","MINOR"]},"suit":{"type":"string","enum":["WANDS","CUPS","SWORDS","PENTACLES"]},"number":{"type":"integer","description":"Card number"},"uprightKeywords":{"type":"array","items":{"type":"string"}},"reversedKeywords":{"type":"array","items":{"type":"string"}},"uprightMeaning":{"type":"string"},"reversedMeaning":{"type":"string"},"astrologicalAssociation":{"type":"string"},"element":{"type":"string"}},"required":[]},"isReversed":{"type":"boolean","description":"Card drawn reversed"},"interpretation":{"type":"string","description":"Position interpretation"}},"required":[]}},"summary":{"type":"string","description":"Spread summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Draws SINGLE, THREE_CARD, CELTIC_CROSS, LOVE, or CAREER spread with upright/reversed cards and interpretations.","operationId":"postDivinationTarot","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"spreadType":{"type":"string","description":"Spread type","enum":["SINGLE","THREE_CARD","CELTIC_CROSS","LOVE","CAREER"]}}}}}}}},"/v1/divination/tarot/cards":{"get":{"summary":"Tarot card catalog","responses":{"200":{"description":"Full tarot card catalog","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"count":{"type":"integer","description":"Number of cards"},"cards":{"type":"array","description":"Tarot cards","items":{"type":"object","properties":{"id":{"type":"string","description":"Card id","example":"m00"},"name":{"type":"string","description":"Card name","example":"The Fool"},"arcana":{"type":"string","enum":["MAJOR","MINOR"]},"suit":{"type":"string","description":"Minor arcana suit","enum":["WANDS","CUPS","SWORDS","PENTACLES"]},"number":{"type":"integer","description":"Card number"},"uprightKeywords":{"type":"array","items":{"type":"string"}},"reversedKeywords":{"type":"array","items":{"type":"string"}},"uprightMeaning":{"type":"string","description":"Upright interpretation"},"reversedMeaning":{"type":"string","description":"Reversed interpretation"},"astrologicalAssociation":{"type":"string","description":"Associated planet or sign"},"element":{"type":"string","description":"Elemental association"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Full catalog of tarot cards with arcana, upright and reversed meanings.","operationId":"getDivinationTarotCards","tags":["Divination"]}},"/v1/divination/tarot/yes-no":{"post":{"summary":"Yes/no tarot answer","responses":{"200":{"description":"Single-card yes/no answer","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"question":{"type":"string","description":"Question echo"},"card":{"type":"object","description":"Drawn card","properties":{"id":{"type":"string","description":"Card id"},"name":{"type":"string","description":"Card name"},"arcana":{"type":"string","enum":["MAJOR","MINOR"]},"suit":{"type":"string","enum":["WANDS","CUPS","SWORDS","PENTACLES"]},"number":{"type":"integer","description":"Card number"},"uprightKeywords":{"type":"array","items":{"type":"string"}},"reversedKeywords":{"type":"array","items":{"type":"string"}},"uprightMeaning":{"type":"string"},"reversedMeaning":{"type":"string"},"astrologicalAssociation":{"type":"string"},"element":{"type":"string"}},"required":[]},"isReversed":{"type":"boolean","description":"Card drawn reversed"},"answer":{"type":"string","enum":["YES","NO","AMBIGUOUS"]},"leaning":{"type":"string","enum":["POSITIVE","NEGATIVE"]},"interpretation":{"type":"string","description":"Answer interpretation"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Single-card yes/no draw with upright/reversed leaning.","operationId":"postDivinationTarotYesNo","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"question":{"type":"string","description":"Question to ask the cards","example":"Should I move to Berlin?"}}}}}}}},"/v1/divination/iching":{"post":{"summary":"Cast an I-Ching hexagram","responses":{"200":{"description":"I-Ching cast result","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"primaryHexagram":{"type":"object","description":"Primary hexagram","properties":{"number":{"type":"integer","description":"Hexagram number 1-64"},"binary":{"type":"string","description":"6-char binary line string"},"nameChinese":{"type":"string","description":"Chinese name"},"nameEnglish":{"type":"string","description":"English name"},"trigramUpper":{"type":"string","description":"Upper trigram"},"trigramLower":{"type":"string","description":"Lower trigram"},"judgment":{"type":"string","description":"Judgment text"},"image":{"type":"string","description":"Image text"},"keywords":{"type":"array","items":{"type":"string"}}},"required":[]},"changingLines":{"type":"array","description":"Changing line positions 1-6","items":{"type":"integer"}},"transformedHexagram":{"type":"object","description":"Hexagram after changing lines","properties":{"number":{"type":"integer","description":"Hexagram number 1-64"},"binary":{"type":"string","description":"6-char binary line string"},"nameChinese":{"type":"string","description":"Chinese name"},"nameEnglish":{"type":"string","description":"English name"},"trigramUpper":{"type":"string","description":"Upper trigram"},"trigramLower":{"type":"string","description":"Lower trigram"},"judgment":{"type":"string","description":"Judgment text"},"image":{"type":"string","description":"Image text"},"keywords":{"type":"array","items":{"type":"string"}}},"required":[]},"castLines":{"type":"array","description":"Line values 6-9","items":{"type":"integer"}},"guidance":{"type":"string","description":"Reading guidance"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Casts six lines with changing lines and the transformed hexagram.","operationId":"postDivinationIching","tags":["Divination"]}},"/v1/divination/iching/hexagrams":{"get":{"summary":"I-Ching hexagram catalog","responses":{"200":{"description":"Full hexagram catalog","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"count":{"type":"integer","description":"Number of hexagrams"},"hexagrams":{"type":"array","description":"Hexagram entries","items":{"type":"object","properties":{"number":{"type":"integer","description":"Hexagram number 1-64"},"binary":{"type":"string","description":"6-char binary line string"},"nameChinese":{"type":"string","description":"Chinese name"},"nameEnglish":{"type":"string","description":"English name"},"trigramUpper":{"type":"string","description":"Upper trigram"},"trigramLower":{"type":"string","description":"Lower trigram"},"judgment":{"type":"string","description":"Judgment text"},"image":{"type":"string","description":"Image text"},"keywords":{"type":"array","items":{"type":"string"}}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"All 64 hexagrams with binaries, trigrams, judgments, and images.","operationId":"getDivinationIchingHexagrams","tags":["Divination"]}},"/v1/divination/iching/hexagrams/:number":{"get":{"summary":"Single hexagram","responses":{"200":{"description":"Hexagram detail","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"integer","description":"Hexagram number 1-64"},"binary":{"type":"string","description":"6-char binary line string"},"nameChinese":{"type":"string","description":"Chinese name"},"nameEnglish":{"type":"string","description":"English name"},"trigramUpper":{"type":"string","description":"Upper trigram"},"trigramLower":{"type":"string","description":"Lower trigram"},"judgment":{"type":"string","description":"Judgment text"},"image":{"type":"string","description":"Image text"},"keywords":{"type":"array","items":{"type":"string"}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"One hexagram by number (1-64), 404 for unknown numbers.","operationId":"getDivinationIchingHexagramsNumber","tags":["Divination"]}},"/v1/divination/iching/trigrams":{"get":{"summary":"I-Ching trigram catalog","responses":{"200":{"description":"Full trigram catalog","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"count":{"type":"integer","description":"Number of trigrams"},"trigrams":{"type":"array","description":"Trigram entries","items":{"type":"object","properties":{"name":{"type":"string","description":"Trigram name"},"binary":{"type":"string","description":"3-char binary line string"},"element":{"type":"string","description":"Associated element"},"nature":{"type":"string","description":"Trigram nature"},"familyRelation":{"type":"string","description":"Family member role"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"The eight trigrams with binary, element, nature, and family relation.","operationId":"getDivinationIchingTrigrams","tags":["Divination"]}},"/v1/divination/crystals":{"get":{"summary":"Crystal healing properties","responses":{"200":{"description":"Matching crystals as a bare array","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Crystal name","example":"Amethyst"},"chakra":{"type":"string","enum":["Root","Sacral","Solar Plexus","Heart","Throat","Third Eye","Crown"]},"zodiacSigns":{"type":"array","items":{"type":"string"}},"element":{"type":"string","description":"Elemental association"},"healingProperties":{"type":"array","items":{"type":"string"}},"cleansingMethod":{"type":"string","description":"Recommended cleansing"},"color":{"type":"string","description":"Crystal color"},"planet":{"type":"string","description":"Associated planet"}},"required":[]}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Crystals filtered by zodiac sign, chakra, element, or birthstone month.","operationId":"getDivinationCrystals","tags":["Divination"]}},"/v1/divination/dreams":{"post":{"summary":"Dream interpretation","responses":{"200":{"description":"Dream symbol matches and overall interpretation","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"matches":{"type":"array","description":"Matched dream symbols","items":{"type":"object","properties":{"symbol":{"type":"string","description":"Symbol name"},"category":{"type":"string","enum":["ANIMALS","ELEMENTS","ACTIONS","OBJECTS","PLACES"]},"meanings":{"type":"object","description":"Meanings by lens","properties":{"general":{"type":"string"},"psychological":{"type":"string"},"spiritual":{"type":"string"}},"required":[]},"guidance":{"type":"string","description":"Practical guidance"}},"required":[]}},"overallInterpretation":{"type":"string","description":"Overall dream interpretation"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Symbolic analysis of a dream description.","operationId":"postDivinationDreams","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["dreamText"],"properties":{"dreamText":{"type":"string","description":"Dream description","example":"I was flying over a mountain"}}}}}}}},"/v1/divination/dreams/daily":{"post":{"summary":"Daily dream guidance","responses":{"200":{"description":"Seeded daily dream guidance","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"seed":{"type":"string","description":"Seed used"},"symbols":{"type":"array","description":"Drawn symbols","items":{"type":"object","properties":{"id":{"type":"string","description":"Symbol id"},"name":{"type":"string","description":"Symbol name"},"letter":{"type":"string","description":"Starting letter"},"meaning":{"type":"string","description":"General meaning"}},"required":[]}},"overallInterpretation":{"type":"string","description":"Overall interpretation"},"guidance":{"type":"array","description":"Per-symbol guidance","items":{"type":"string"}},"affirmation":{"type":"string","description":"Suggested affirmation"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Seeded deterministic daily dream: hash of date (+ optional seed) selects a symbol set with interpretation and guidance.","operationId":"postDivinationDreamsDaily","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"date":{"type":"string","description":"YYYY-MM-DD (defaults to today UTC)","example":"2026-08-04"},"seed":{"type":"string","description":"Optional seed for stable selection","example":"anonymous"}}}}}}}},"/v1/divination/dreams/symbols":{"get":{"summary":"Dream symbol catalog","responses":{"200":{"description":"Full dream symbol dictionary","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"count":{"type":"integer","description":"Number of symbols"},"symbols":{"type":"array","description":"Dream symbol entries","items":{"type":"object","properties":{"symbol":{"type":"string","description":"Symbol name","example":"Flying"},"category":{"type":"string","enum":["ANIMALS","ELEMENTS","ACTIONS","OBJECTS","PLACES"]},"meanings":{"type":"object","description":"Meanings by lens","properties":{"general":{"type":"string","description":"General meaning"},"psychological":{"type":"string","description":"Psychological meaning"},"spiritual":{"type":"string","description":"Spiritual meaning"}},"required":[]},"guidance":{"type":"string","description":"Practical guidance"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"All dream symbols with general, psychological, and spiritual meanings.","operationId":"getDivinationDreamsSymbols","tags":["Divination"]}},"/v1/divination/angel-numbers/:number":{"get":{"summary":"Angel number meaning","responses":{"200":{"description":"Angel number meaning","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"string","description":"Angel number","example":"111"},"title":{"type":"string","description":"Number title"},"spiritualMeaning":{"type":"string","description":"Spiritual interpretation"},"loveGuidance":{"type":"string","description":"Love guidance"},"careerGuidance":{"type":"string","description":"Career guidance"},"affirmation":{"type":"string","description":"Suggested affirmation"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Spiritual meaning for an angel number.","operationId":"getDivinationAngelNumbersNumber","tags":["Divination"]}},"/v1/divination/angel-numbers/lookup":{"get":{"summary":"Angel number lookup","responses":{"200":{"description":"Angel number meaning","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"string","description":"Angel number","example":"111"},"title":{"type":"string","description":"Number title"},"spiritualMeaning":{"type":"string","description":"Spiritual interpretation"},"loveGuidance":{"type":"string","description":"Love guidance"},"careerGuidance":{"type":"string","description":"Career guidance"},"affirmation":{"type":"string","description":"Suggested affirmation"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Spiritual meaning for an angel number passed as a query parameter.","operationId":"getDivinationAngelNumbersLookup","tags":["Divination"]}},"/v1/divination/crystals/catalog":{"get":{"summary":"List crystals","responses":{"200":{"description":"Paginated crystal list","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"total":{"type":"integer","description":"Total crystals"},"limit":{"type":"integer","description":"Page size"},"offset":{"type":"integer","description":"Page offset"},"crystals":{"type":"array","description":"Crystal cards","items":{"type":"object","properties":{"id":{"type":"string","description":"Crystal id","example":"amethyst"},"name":{"type":"string","description":"Crystal name"},"chakra":{"type":"string","description":"Associated chakra"},"zodiacSigns":{"type":"array","items":{"type":"string"}},"element":{"type":"string","description":"Elemental association"},"color":{"type":"string","description":"Crystal color"},"planet":{"type":"string","description":"Associated planet"},"healingProperties":{"type":"array","items":{"type":"string"}}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Paginated crystal catalog with filters via query params.","operationId":"getDivinationCrystalsCatalog","tags":["Divination"]}},"/v1/divination/crystals/search":{"get":{"summary":"Search crystals","responses":{"200":{"description":"Search results with pagination","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"query":{"type":"string","description":"Search query echo"},"total":{"type":"integer","description":"Total matching crystals"},"limit":{"type":"integer","description":"Page size"},"offset":{"type":"integer","description":"Page offset"},"crystals":{"type":"array","description":"Matching crystal cards","items":{"type":"object","properties":{"id":{"type":"string","description":"Crystal id"},"name":{"type":"string","description":"Crystal name"},"chakra":{"type":"string","description":"Associated chakra"},"zodiacSigns":{"type":"array","items":{"type":"string"}},"element":{"type":"string","description":"Elemental association"},"color":{"type":"string","description":"Crystal color"},"planet":{"type":"string","description":"Associated planet"},"healingProperties":{"type":"array","items":{"type":"string"}}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Full-text search across name, chakra, element, planet, properties, and signs.","operationId":"getDivinationCrystalsSearch","tags":["Divination"]}},"/v1/divination/crystals/random":{"get":{"summary":"Random crystal","responses":{"200":{"description":"Random crystal card","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"id":{"type":"string","description":"Crystal id"},"name":{"type":"string","description":"Crystal name"},"chakra":{"type":"string","description":"Associated chakra"},"zodiacSigns":{"type":"array","items":{"type":"string"}},"element":{"type":"string","description":"Elemental association"},"color":{"type":"string","description":"Crystal color"},"planet":{"type":"string","description":"Associated planet"},"healingProperties":{"type":"array","items":{"type":"string"}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Random crystal selection with healing properties.","operationId":"getDivinationCrystalsRandom","tags":["Divination"]}},"/v1/divination/crystals/daily":{"post":{"summary":"Daily crystal","responses":{"200":{"description":"Deterministic crystal of the day","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"seed":{"type":"string","description":"Full seed used"},"id":{"type":"string","description":"Crystal id"},"name":{"type":"string","description":"Crystal name"},"healingProperties":{"type":"array","items":{"type":"string"}},"message":{"type":"string","description":"Daily crystal message"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Seeded deterministic crystal of the day.","operationId":"postDivinationCrystalsDaily","tags":["Divination"]}},"/v1/divination/crystals/colors":{"get":{"summary":"Crystal colors","responses":{"200":{"description":"Unique crystal colors","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"count":{"type":"integer","description":"Number of colors"},"colors":{"type":"array","description":"Color values","items":{"type":"string"}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Unique color values across the catalog.","operationId":"getDivinationCrystalsColors","tags":["Divination"]}},"/v1/divination/crystals/planets":{"get":{"summary":"Crystal planets","responses":{"200":{"description":"Unique crystal planets","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"count":{"type":"integer","description":"Number of planets"},"planets":{"type":"array","description":"Planet values","items":{"type":"string"}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Unique planetary associations across the catalog.","operationId":"getDivinationCrystalsPlanets","tags":["Divination"]}},"/v1/divination/crystals/pairings/:id":{"get":{"summary":"Crystal pairings","responses":{"200":{"description":"Complementary crystal pairings","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"crystal":{"type":"string","description":"Source crystal id"},"name":{"type":"string","description":"Source crystal name"},"count":{"type":"integer","description":"Number of pairings"},"pairings":{"type":"array","description":"Recommended crystals","items":{"type":"object","properties":{"name":{"type":"string","description":"Crystal name"},"id":{"type":"string","description":"Crystal id"},"reason":{"type":"string","description":"Pairing rationale"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Recommended complementary crystals for a given crystal id.","operationId":"getDivinationCrystalsPairingsId","tags":["Divination"]}},"/v1/divination/crystals/chakra/:chakra":{"get":{"summary":"Crystals by chakra","responses":{"200":{"description":"Crystals for the chakra with pagination","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"chakra":{"type":"string","description":"Chakra echo"},"total":{"type":"integer","description":"Total matching crystals"},"limit":{"type":"integer","description":"Page size"},"offset":{"type":"integer","description":"Page offset"},"crystals":{"type":"array","description":"Crystal cards","items":{"type":"object","properties":{"id":{"type":"string","description":"Crystal id"},"name":{"type":"string","description":"Crystal name"},"chakra":{"type":"string","description":"Associated chakra"},"zodiacSigns":{"type":"array","items":{"type":"string"}},"element":{"type":"string","description":"Elemental association"},"color":{"type":"string","description":"Crystal color"},"planet":{"type":"string","description":"Associated planet"},"healingProperties":{"type":"array","items":{"type":"string"}}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Crystals matching a chakra; 404 for unknown chakra.","operationId":"getDivinationCrystalsChakraChakra","tags":["Divination"]}},"/v1/divination/crystals/element/:element":{"get":{"summary":"Crystals by element","responses":{"200":{"description":"Crystals for the element with pagination","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"element":{"type":"string","description":"Element echo"},"total":{"type":"integer","description":"Total matching crystals"},"limit":{"type":"integer","description":"Page size"},"offset":{"type":"integer","description":"Page offset"},"crystals":{"type":"array","description":"Crystal cards","items":{"type":"object","properties":{"id":{"type":"string","description":"Crystal id"},"name":{"type":"string","description":"Crystal name"},"chakra":{"type":"string","description":"Associated chakra"},"zodiacSigns":{"type":"array","items":{"type":"string"}},"element":{"type":"string","description":"Elemental association"},"color":{"type":"string","description":"Crystal color"},"planet":{"type":"string","description":"Associated planet"},"healingProperties":{"type":"array","items":{"type":"string"}}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Crystals matching an element; 404 for unknown element.","operationId":"getDivinationCrystalsElementElement","tags":["Divination"]}},"/v1/divination/crystals/zodiac/:sign":{"get":{"summary":"Crystals by zodiac","responses":{"200":{"description":"Crystals for the zodiac sign with pagination","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"sign":{"type":"string","description":"Zodiac sign echo"},"total":{"type":"integer","description":"Total matching crystals"},"limit":{"type":"integer","description":"Page size"},"offset":{"type":"integer","description":"Page offset"},"crystals":{"type":"array","description":"Crystal cards","items":{"type":"object","properties":{"id":{"type":"string","description":"Crystal id"},"name":{"type":"string","description":"Crystal name"},"chakra":{"type":"string","description":"Associated chakra"},"zodiacSigns":{"type":"array","items":{"type":"string"}},"element":{"type":"string","description":"Elemental association"},"color":{"type":"string","description":"Crystal color"},"planet":{"type":"string","description":"Associated planet"},"healingProperties":{"type":"array","items":{"type":"string"}}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Crystals associated with a zodiac sign; 404 if none.","operationId":"getDivinationCrystalsZodiacSign","tags":["Divination"]}},"/v1/divination/crystals/birthstone/:month":{"get":{"summary":"Birthstones by month","responses":{"200":{"description":"Birthstones for the month with pagination","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"month":{"type":"integer","description":"Month number 1-12"},"monthName":{"type":"string","description":"Month name"},"total":{"type":"integer","description":"Total birthstones"},"limit":{"type":"integer","description":"Page size"},"offset":{"type":"integer","description":"Page offset"},"crystals":{"type":"array","description":"Birthstone crystal cards","items":{"type":"object","properties":{"id":{"type":"string","description":"Crystal id"},"name":{"type":"string","description":"Crystal name"},"chakra":{"type":"string","description":"Associated chakra"},"zodiacSigns":{"type":"array","items":{"type":"string"}},"element":{"type":"string","description":"Elemental association"},"color":{"type":"string","description":"Crystal color"},"planet":{"type":"string","description":"Associated planet"},"healingProperties":{"type":"array","items":{"type":"string"}}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Birthstones for month number (1-12) or month name.","operationId":"getDivinationCrystalsBirthstoneMonth","tags":["Divination"]}},"/v1/divination/crystals/:id":{"get":{"summary":"Crystal detail","responses":{"200":{"description":"Full crystal detail","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"id":{"type":"string","description":"Crystal id"},"name":{"type":"string","description":"Crystal name"},"chakra":{"type":"string","description":"Associated chakra"},"zodiacSigns":{"type":"array","items":{"type":"string"}},"element":{"type":"string","description":"Elemental association"},"color":{"type":"string","description":"Crystal color"},"planet":{"type":"string","description":"Associated planet"},"healingProperties":{"type":"array","items":{"type":"string"}},"cleansingMethod":{"type":"string","description":"Recommended cleansing"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Full healing properties for a crystal id; 404 if unknown.","operationId":"getDivinationCrystalsId","tags":["Divination"]}},"/v1/divination/tarot/cards/:id":{"get":{"summary":"Single tarot card","responses":{"200":{"description":"Full tarot card definition","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"id":{"type":"string","description":"Card id","example":"m00"},"name":{"type":"string","description":"Card name"},"arcana":{"type":"string","enum":["MAJOR","MINOR"]},"suit":{"type":"string","description":"Minor arcana suit","enum":["WANDS","CUPS","SWORDS","PENTACLES"]},"number":{"type":"integer","description":"Card number"},"keywords":{"type":"object","description":"Keywords by orientation","properties":{"upright":{"type":"array","items":{"type":"string"}},"reversed":{"type":"array","items":{"type":"string"}}},"required":[]},"upright":{"type":"object","description":"Upright reading","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string","description":"Upright meaning"},"element":{"type":"string","description":"Elemental association"}},"required":[]},"reversed":{"type":"object","description":"Reversed reading","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string","description":"Reversed meaning"},"element":{"type":"string","description":"Elemental association"}},"required":[]},"imageUrl":{"type":"string","description":"Card image URL"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Full card definition by id, with upright/reversed keywords and meanings.","operationId":"getDivinationTarotCardsId","tags":["Divination"]}},"/v1/divination/tarot/daily":{"post":{"summary":"Daily tarot card","responses":{"200":{"description":"Deterministic tarot card of the day","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"seed":{"type":"string","description":"Seed used"},"card":{"type":"object","description":"Drawn card with orientation","properties":{"id":{"type":"string","description":"Card id"},"name":{"type":"string","description":"Card name"},"arcana":{"type":"string","enum":["MAJOR","MINOR"]},"suit":{"type":"string","enum":["WANDS","CUPS","SWORDS","PENTACLES"]},"number":{"type":"integer","description":"Card number"},"keywords":{"type":"object","properties":{"upright":{"type":"array","items":{"type":"string"}},"reversed":{"type":"array","items":{"type":"string"}}},"required":[]},"upright":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string"},"element":{"type":"string"}},"required":[]},"reversed":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string"},"element":{"type":"string"}},"required":[]},"imageUrl":{"type":"string","description":"Card image URL"},"isReversed":{"type":"boolean","description":"Card drawn reversed"},"interpretation":{"type":"string","description":"Daily interpretation"}},"required":[]},"dailyMessage":{"type":"string","description":"Daily message"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Deterministic card of the day from a seed and date.","operationId":"postDivinationTarotDaily","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["seed","date"],"properties":{"seed":{"type":"string","description":"Stable user seed","example":"user123"},"date":{"type":"string","description":"YYYY-MM-DD","example":"2026-03-06"}}}}}}}},"/v1/divination/tarot/spreads/three-card":{"post":{"summary":"Three card tarot spread","responses":{"200":{"description":"Deterministic three-card spread","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"spread":{"type":"string","description":"Spread type"},"question":{"type":"string","description":"Question echo"},"seed":{"type":"string","description":"Seed used"},"positions":{"type":"array","description":"Spread positions with drawn cards","items":{"type":"object","properties":{"position":{"type":"integer","description":"Position number"},"name":{"type":"string","description":"Position name"},"interpretation":{"type":"string","description":"Position interpretation"},"card":{"type":"object","description":"Drawn card","properties":{"id":{"type":"string"},"name":{"type":"string"},"arcana":{"type":"string","enum":["MAJOR","MINOR"]},"suit":{"type":"string","enum":["WANDS","CUPS","SWORDS","PENTACLES"]},"number":{"type":"integer"},"keywords":{"type":"object","properties":{"upright":{"type":"array","items":{"type":"string"}},"reversed":{"type":"array","items":{"type":"string"}}},"required":[]},"upright":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string"},"element":{"type":"string"}},"required":[]},"reversed":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string"},"element":{"type":"string"}},"required":[]},"imageUrl":{"type":"string"},"isReversed":{"type":"boolean","description":"Card drawn reversed"}},"required":[]}},"required":[]}},"summary":{"type":"string","description":"Spread summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Past/Present/Future spread drawn deterministically from question + seed.","operationId":"postDivinationTarotSpreadsThreeCard","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["seed"],"properties":{"question":{"type":"string","description":"Question for the reading","example":"What do I need to know about my career?"},"seed":{"type":"string","description":"Stable user seed","example":"reading-2f9c1a"}}}}}}}},"/v1/divination/tarot/spreads/celtic-cross":{"post":{"summary":"Celtic cross tarot spread","responses":{"200":{"description":"Deterministic celtic cross spread","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"spread":{"type":"string","description":"Spread type"},"question":{"type":"string","description":"Question echo"},"seed":{"type":"string","description":"Seed used"},"positions":{"type":"array","description":"Spread positions with drawn cards","items":{"type":"object","properties":{"position":{"type":"integer","description":"Position number"},"name":{"type":"string","description":"Position name"},"interpretation":{"type":"string","description":"Position interpretation"},"card":{"type":"object","description":"Drawn card","properties":{"id":{"type":"string"},"name":{"type":"string"},"arcana":{"type":"string","enum":["MAJOR","MINOR"]},"suit":{"type":"string","enum":["WANDS","CUPS","SWORDS","PENTACLES"]},"number":{"type":"integer"},"keywords":{"type":"object","properties":{"upright":{"type":"array","items":{"type":"string"}},"reversed":{"type":"array","items":{"type":"string"}}},"required":[]},"upright":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string"},"element":{"type":"string"}},"required":[]},"reversed":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string"},"element":{"type":"string"}},"required":[]},"imageUrl":{"type":"string"},"isReversed":{"type":"boolean","description":"Card drawn reversed"}},"required":[]}},"required":[]}},"summary":{"type":"string","description":"Spread summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"10-position Celtic Cross drawn deterministically from question + seed.","operationId":"postDivinationTarotSpreadsCelticCross","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["seed"],"properties":{"question":{"type":"string","description":"Question for the reading","example":"What should I know about this situation?"},"seed":{"type":"string","description":"Stable user seed","example":"reading-2f9c1a"}}}}}}}},"/v1/divination/tarot/spreads/love":{"post":{"summary":"Love tarot spread","responses":{"200":{"description":"Deterministic love spread","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"spread":{"type":"string","description":"Spread type"},"question":{"type":"string","description":"Question echo"},"seed":{"type":"string","description":"Seed used"},"positions":{"type":"array","description":"Spread positions with drawn cards","items":{"type":"object","properties":{"position":{"type":"integer","description":"Position number"},"name":{"type":"string","description":"Position name"},"interpretation":{"type":"string","description":"Position interpretation"},"card":{"type":"object","description":"Drawn card","properties":{"id":{"type":"string"},"name":{"type":"string"},"arcana":{"type":"string","enum":["MAJOR","MINOR"]},"suit":{"type":"string","enum":["WANDS","CUPS","SWORDS","PENTACLES"]},"number":{"type":"integer"},"keywords":{"type":"object","properties":{"upright":{"type":"array","items":{"type":"string"}},"reversed":{"type":"array","items":{"type":"string"}}},"required":[]},"upright":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string"},"element":{"type":"string"}},"required":[]},"reversed":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string"},"element":{"type":"string"}},"required":[]},"imageUrl":{"type":"string"},"isReversed":{"type":"boolean","description":"Card drawn reversed"}},"required":[]}},"required":[]}},"summary":{"type":"string","description":"Spread summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"5-position relationship spread drawn deterministically from question + seed.","operationId":"postDivinationTarotSpreadsLove","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["seed"],"properties":{"question":{"type":"string","description":"Question for the reading","example":"What do I need to know about my relationship?"},"seed":{"type":"string","description":"Stable user seed","example":"reading-2f9c1a"}}}}}}}},"/v1/divination/tarot/spreads/career":{"post":{"summary":"Career tarot spread","responses":{"200":{"description":"Deterministic career spread","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"spread":{"type":"string","description":"Spread type"},"question":{"type":"string","description":"Question echo"},"seed":{"type":"string","description":"Seed used"},"positions":{"type":"array","description":"Spread positions with drawn cards","items":{"type":"object","properties":{"position":{"type":"integer","description":"Position number"},"name":{"type":"string","description":"Position name"},"interpretation":{"type":"string","description":"Position interpretation"},"card":{"type":"object","description":"Drawn card","properties":{"id":{"type":"string"},"name":{"type":"string"},"arcana":{"type":"string","enum":["MAJOR","MINOR"]},"suit":{"type":"string","enum":["WANDS","CUPS","SWORDS","PENTACLES"]},"number":{"type":"integer"},"keywords":{"type":"object","properties":{"upright":{"type":"array","items":{"type":"string"}},"reversed":{"type":"array","items":{"type":"string"}}},"required":[]},"upright":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string"},"element":{"type":"string"}},"required":[]},"reversed":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string"},"element":{"type":"string"}},"required":[]},"imageUrl":{"type":"string"},"isReversed":{"type":"boolean","description":"Card drawn reversed"}},"required":[]}},"required":[]}},"summary":{"type":"string","description":"Spread summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"5-position career spread drawn deterministically from question + seed.","operationId":"postDivinationTarotSpreadsCareer","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["seed"],"properties":{"question":{"type":"string","description":"Question for the reading","example":"What do I need to know about my career path?"},"seed":{"type":"string","description":"Stable user seed","example":"reading-2f9c1a"}}}}}}}},"/v1/divination/tarot/spreads/custom":{"post":{"summary":"Custom tarot spread","responses":{"200":{"description":"Custom spread with drawn cards","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"spread":{"type":"string","description":"Spread name"},"question":{"type":"string","description":"Question echo"},"seed":{"type":"string","description":"Seed used"},"positions":{"type":"array","description":"Custom positions with drawn cards","items":{"type":"object","properties":{"position":{"type":"integer","description":"Position number"},"name":{"type":"string","description":"Position name"},"interpretation":{"type":"string","description":"Position interpretation"},"card":{"type":"object","description":"Drawn card","properties":{"id":{"type":"string"},"name":{"type":"string"},"arcana":{"type":"string","enum":["MAJOR","MINOR"]},"suit":{"type":"string","enum":["WANDS","CUPS","SWORDS","PENTACLES"]},"number":{"type":"integer"},"keywords":{"type":"object","properties":{"upright":{"type":"array","items":{"type":"string"}},"reversed":{"type":"array","items":{"type":"string"}}},"required":[]},"upright":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string"},"element":{"type":"string"}},"required":[]},"reversed":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"meaning":{"type":"string"},"element":{"type":"string"}},"required":[]},"imageUrl":{"type":"string"},"isReversed":{"type":"boolean","description":"Card drawn reversed"}},"required":[]}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"One card per caller-defined position, drawn deterministically.","operationId":"postDivinationTarotSpreadsCustom","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["positions","seed"],"properties":{"spreadName":{"type":"string","description":"Name of the spread","example":"My Custom Spread"},"question":{"type":"string","description":"Question for the reading","example":"How do I move forward?"},"positions":{"type":"array","description":"Position names and interpretations"},"seed":{"type":"string","description":"Stable user seed","example":"reading-2f9c1a"}}}}}}}},"/v1/divination/iching/daily":{"post":{"summary":"Daily I-Ching hexagram","responses":{"200":{"description":"Deterministic hexagram of the day","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"seed":{"type":"string","description":"Seed used"},"hexagram":{"type":"object","description":"Daily hexagram with interpretation","properties":{"number":{"type":"integer","description":"Hexagram number 1-64"},"symbol":{"type":"string","description":"Hexagram unicode symbol"},"chinese":{"type":"string","description":"Chinese name"},"english":{"type":"string","description":"English name"},"pinyin":{"type":"string","description":"Pinyin transliteration"},"binary":{"type":"string","description":"6-char binary line string"},"upperTrigram":{"type":"string"},"lowerTrigram":{"type":"string"},"judgment":{"type":"string","description":"Judgment text"},"image":{"type":"string","description":"Image text"},"interpretation":{"type":"string","description":"Interpretation text"},"changingLines":{"type":"array","description":"Line-by-line meanings","items":{"type":"object","properties":{"position":{"type":"integer","description":"Line position 1-6"},"text":{"type":"string"},"meaning":{"type":"string"}},"required":[]}}},"required":[]},"dailyMessage":{"type":"string","description":"Daily message"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Deterministic hexagram of the day from a seed and date.","operationId":"postDivinationIchingDaily","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["seed","date"],"properties":{"seed":{"type":"string","description":"Stable user seed","example":"user123"},"date":{"type":"string","description":"YYYY-MM-DD","example":"2026-03-06"}}}}}}}},"/v1/divination/iching/daily/cast":{"post":{"summary":"Seeded I-Ching cast","responses":{"200":{"description":"Deterministic cast with transformed hexagram","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"seed":{"type":"string","description":"Seed used"},"hexagram":{"type":"object","description":"Primary hexagram with interpretation","properties":{"number":{"type":"integer","description":"Hexagram number 1-64"},"symbol":{"type":"string","description":"Hexagram unicode symbol"},"chinese":{"type":"string"},"english":{"type":"string"},"pinyin":{"type":"string"},"binary":{"type":"string","description":"6-char binary line string"},"upperTrigram":{"type":"string"},"lowerTrigram":{"type":"string"},"judgment":{"type":"string"},"image":{"type":"string"},"interpretation":{"type":"string"},"changingLines":{"type":"array","description":"Line-by-line meanings","items":{"type":"object","properties":{"position":{"type":"integer","description":"Line position 1-6"},"text":{"type":"string"},"meaning":{"type":"string"}},"required":[]}}},"required":[]},"lines":{"type":"array","description":"Cast line values 6-9","items":{"type":"integer"}},"changingLinePositions":{"type":"array","description":"Changing line positions","items":{"type":"integer"}},"changingLines":{"type":"array","description":"Changing line details","items":{"type":"object","properties":{"position":{"type":"integer"},"text":{"type":"string"},"meaning":{"type":"string"}},"required":[]}},"resultingHexagram":{"type":"object","description":"Hexagram after transformation","properties":{"number":{"type":"integer"},"symbol":{"type":"string"},"chinese":{"type":"string"},"english":{"type":"string"},"pinyin":{"type":"string"},"binary":{"type":"string"},"upperTrigram":{"type":"string"},"lowerTrigram":{"type":"string"},"judgment":{"type":"string"},"image":{"type":"string"},"interpretation":{"type":"string"},"changingLines":{"type":"array","items":{"type":"object","properties":{"position":{"type":"integer"},"text":{"type":"string"},"meaning":{"type":"string"}},"required":[]}}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Deterministic 6-line cast with changing lines and resulting hexagram.","operationId":"postDivinationIchingDailyCast","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["seed","date"],"properties":{"seed":{"type":"string","description":"Stable user seed","example":"user123"},"date":{"type":"string","description":"YYYY-MM-DD","example":"2026-03-06"}}}}}}}},"/v1/divination/iching/hexagrams/random":{"get":{"summary":"Random hexagram","responses":{"200":{"description":"Full hexagram interpretation","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"integer","description":"Hexagram number 1-64"},"symbol":{"type":"string","description":"Hexagram unicode symbol"},"chinese":{"type":"string","description":"Chinese name"},"english":{"type":"string","description":"English name"},"pinyin":{"type":"string","description":"Pinyin transliteration"},"binary":{"type":"string","description":"6-char binary line string"},"upperTrigram":{"type":"string","description":"Upper trigram"},"lowerTrigram":{"type":"string","description":"Lower trigram"},"judgment":{"type":"string","description":"Judgment text"},"image":{"type":"string","description":"Image text"},"interpretation":{"type":"string","description":"Interpretation text"},"changingLines":{"type":"array","description":"Line-by-line meanings","items":{"type":"object","properties":{"position":{"type":"integer","description":"Line position 1-6"},"text":{"type":"string","description":"Line label"},"meaning":{"type":"string","description":"Line meaning"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"A random hexagram from the 64, with full interpretation fields.","operationId":"getDivinationIchingHexagramsRandom","tags":["Divination"]}},"/v1/divination/iching/hexagrams/lookup":{"get":{"summary":"Hexagram binary lookup","responses":{"200":{"description":"Resolved hexagram interpretation","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"integer","description":"Hexagram number 1-64"},"symbol":{"type":"string","description":"Hexagram unicode symbol"},"chinese":{"type":"string","description":"Chinese name"},"english":{"type":"string","description":"English name"},"pinyin":{"type":"string","description":"Pinyin transliteration"},"binary":{"type":"string","description":"6-char binary line string"},"upperTrigram":{"type":"string","description":"Upper trigram"},"lowerTrigram":{"type":"string","description":"Lower trigram"},"judgment":{"type":"string","description":"Judgment text"},"image":{"type":"string","description":"Image text"},"interpretation":{"type":"string","description":"Interpretation text"},"changingLines":{"type":"array","description":"Line-by-line meanings","items":{"type":"object","properties":{"position":{"type":"integer","description":"Line position 1-6"},"text":{"type":"string","description":"Line label"},"meaning":{"type":"string","description":"Line meaning"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Resolve a 6-character binary line string to a hexagram; 422 on malformed input.","operationId":"getDivinationIchingHexagramsLookup","tags":["Divination"]}},"/v1/divination/iching/trigrams/:id":{"get":{"summary":"Single trigram","responses":{"200":{"description":"Full trigram detail","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"integer","description":"Trigram number 1-8"},"symbol":{"type":"string","description":"Binary line string"},"chinese":{"type":"string","description":"Trigram name"},"english":{"type":"string","description":"Trigram name"},"pinyin":{"type":"string","description":"Trigram name"},"binary":{"type":"string","description":"3-char binary line string"},"element":{"type":"string","description":"Associated element"},"attribute":{"type":"string","description":"Trigram nature"},"familyMember":{"type":"string","description":"Family member role"},"direction":{"type":"string","description":"Associated direction"},"bodyPart":{"type":"string","description":"Associated body part"},"animal":{"type":"string","description":"Associated animal"},"season":{"type":"string","description":"Associated season"},"quality":{"type":"string","description":"Associated quality"},"meaning":{"type":"string","description":"Trigram meaning"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Trigram by name or number with element, family member, direction, animal, season.","operationId":"getDivinationIchingTrigramsId","tags":["Divination"]}},"/v1/divination/dreams/symbols/random":{"get":{"summary":"Random dream symbols","responses":{"200":{"description":"Random dream symbol draws","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"symbols":{"type":"array","description":"Drawn symbols","items":{"type":"object","properties":{"id":{"type":"string","description":"Symbol id"},"name":{"type":"string","description":"Symbol name"},"letter":{"type":"string","description":"Starting letter"},"meaning":{"type":"string","description":"General meaning"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Random dream symbols from the dictionary, count 1-10.","operationId":"getDivinationDreamsSymbolsRandom","tags":["Divination"]}},"/v1/divination/dreams/symbols/letters":{"get":{"summary":"Dream symbols by letter","responses":{"200":{"description":"Dream symbols grouped by letter","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"letters":{"type":"object","description":"Letter to symbol names map"},"total":{"type":"integer","description":"Total symbols"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Symbols grouped by starting letter with total count.","operationId":"getDivinationDreamsSymbolsLetters","tags":["Divination"]}},"/v1/divination/dreams/symbols/:id":{"get":{"summary":"Single dream symbol","responses":{"200":{"description":"Dream symbol summary","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"id":{"type":"string","description":"Symbol id"},"name":{"type":"string","description":"Symbol name"},"letter":{"type":"string","description":"Starting letter"},"meaning":{"type":"string","description":"General meaning"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Dream symbol by id; 404 on unknown.","operationId":"getDivinationDreamsSymbolsId","tags":["Divination"]}},"/v1/divination/angel-numbers/numbers":{"get":{"summary":"Angel number catalog","responses":{"200":{"description":"Paginated angel number catalog","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"total":{"type":"integer","description":"Total numbers"},"limit":{"type":"integer","description":"Page size"},"offset":{"type":"integer","description":"Page offset"},"numbers":{"type":"array","description":"Angel number readings","items":{"type":"object","properties":{"number":{"type":"string","description":"Angel number"},"title":{"type":"string","description":"Number title"},"coreMessage":{"type":"string","description":"Core spiritual message"},"type":{"type":"string","description":"Number pattern type","enum":["TRIPLE","REPETITIVE"]},"digitRoot":{"type":"integer","description":"Sum of digits"},"energy":{"type":"string","description":"Energy description"},"meaning":{"type":"object","description":"Meanings by life area","properties":{"spiritual":{"type":"string"},"love":{"type":"string"},"career":{"type":"string"}},"required":[]},"biblical":{"type":"string","description":"Scriptural association"},"shadow":{"type":"string","description":"Shadow-side caution"},"keywords":{"type":"array","items":{"type":"string"}},"affirmation":{"type":"string","description":"Suggested affirmation"},"actionSteps":{"type":"array","items":{"type":"string"}}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Paginated angel numbers with core message, type, digit root, and keywords.","operationId":"getDivinationAngelNumbersNumbers","tags":["Divination"]}},"/v1/divination/angel-numbers/daily":{"post":{"summary":"Daily angel number","responses":{"200":{"description":"Deterministic daily angel number reading","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"seed":{"type":"string","description":"Seed used"},"number":{"type":"string","description":"Angel number"},"title":{"type":"string","description":"Number title"},"coreMessage":{"type":"string","description":"Core spiritual message"},"type":{"type":"string","enum":["TRIPLE","REPETITIVE"]},"digitRoot":{"type":"integer","description":"Sum of digits"},"energy":{"type":"string","description":"Energy description"},"meaning":{"type":"object","description":"Meanings by life area","properties":{"spiritual":{"type":"string"},"love":{"type":"string"},"career":{"type":"string"}},"required":[]},"biblical":{"type":"string","description":"Scriptural association"},"shadow":{"type":"string","description":"Shadow-side caution"},"keywords":{"type":"array","items":{"type":"string"}},"affirmation":{"type":"string","description":"Suggested affirmation"},"actionSteps":{"type":"array","items":{"type":"string"}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Deterministic angel number reading from a seed and date.","operationId":"postDivinationAngelNumbersDaily","tags":["Divination"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["seed","date"],"properties":{"seed":{"type":"string","description":"Stable user seed","example":"user123"},"date":{"type":"string","description":"YYYY-MM-DD","example":"2026-03-06"}}}}}}}},"/v1/humandesign/profile":{"post":{"summary":"Human Design profile","responses":{"200":{"description":"Profile lines and keynotes","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"profile":{"type":"string","description":"Profile line pair","example":"1/3"},"personalityLine":{"type":"integer","description":"Personality Sun line 1-6","example":1},"designLine":{"type":"integer","description":"Design Sun line 1-6","example":3},"personalityKeynote":{"type":"string","description":"Personality line keynote"},"designKeynote":{"type":"string","description":"Design line keynote"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"64 gates, 9 centers, energy type, profile, and authority computed from the birth chart.","operationId":"postHumandesignProfile","tags":["Human Design"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/humandesign/bodygraph":{"post":{"summary":"Full Human Design bodygraph","responses":{"200":{"description":"Complete Human Design bodygraph","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"type":{"type":"string","description":"Energy type","example":"Generator"},"typeDescription":{"type":"string","description":"Type description"},"aura":{"type":"string","description":"Aura description"},"strategy":{"type":"string","description":"Life strategy","example":"To respond"},"strategyDescription":{"type":"string","description":"Strategy explanation"},"authority":{"type":"string","description":"Inner authority","example":"Sacral"},"authorityDescription":{"type":"string","description":"Authority explanation"},"signature":{"type":"string","description":"Success signature","example":"Satisfaction"},"notSelf":{"type":"string","description":"Not-self theme","example":"Frustration"},"profile":{"type":"string","description":"Profile line pair","example":"1/3"},"profileKeynotes":{"type":"object","description":"Profile line keynotes","properties":{"personality":{"type":"string","description":"Personality keynote"},"design":{"type":"string","description":"Design keynote"}},"required":[]},"profileDescription":{"type":"string","description":"Profile description"},"definition":{"type":"string","description":"Definition type","example":"Single"},"definitionDescription":{"type":"string","description":"Definition explanation"},"sides":{"type":"object","description":"Chart side descriptions","properties":{"personality":{"type":"string","description":"Personality side description"},"design":{"type":"string","description":"Design side description"}},"required":[]},"incarnationCross":{"type":"object","description":"Incarnation cross","properties":{"gates":{"type":"array","description":"Four cross gates","items":{"type":"integer"}},"angle":{"type":"string","description":"Cross angle","example":"Right Angle"},"angleCode":{"type":"string","description":"Angle code","example":"RAX"},"name":{"type":"string","description":"Cross name"},"description":{"type":"string","description":"Cross description"}},"required":[]},"centers":{"type":"array","description":"Nine centers","items":{"type":"object","properties":{"id":{"type":"string","description":"Center id","example":"head"},"name":{"type":"string","description":"Center name","example":"Head"},"defined":{"type":"boolean","description":"Defined state","example":false},"motor":{"type":"boolean","description":"Motor center","example":false},"awareness":{"type":"boolean","description":"Awareness center","example":false},"theme":{"type":"string","description":"Center theme"},"notSelfQuestion":{"type":"string","description":"Not-self question"},"biology":{"type":"string","description":"Biological correlate"},"gates":{"type":"array","description":"Active gate numbers","items":{"type":"integer"}}},"required":[]}},"channels":{"type":"array","description":"Defined channels","items":{"type":"object","properties":{"gateA":{"type":"integer","description":"First gate","example":1},"gateB":{"type":"integer","description":"Second gate","example":8},"name":{"type":"string","description":"Channel name","example":"Inspiration"},"circuit":{"type":"string","description":"Circuit","enum":["Individual","Collective","Tribal"]},"centers":{"type":"array","description":"Connected centers","items":{"type":"string"}},"description":{"type":"string","description":"Channel description"},"circuitDescription":{"type":"string","description":"Circuit description"}},"required":[]}},"gates":{"type":"array","description":"All activations (personality + design)","items":{"type":"object","properties":{"planet":{"type":"string","description":"Planet","example":"Sun"},"side":{"type":"string","description":"Chart side","enum":["personality","design"]},"gate":{"type":"integer","description":"Gate number 1-64","example":25},"line":{"type":"integer","description":"Line 1-6","example":1},"gateName":{"type":"string","description":"Gate name","example":"Spirit of Self"},"gateDescription":{"type":"string","description":"Gate description"},"lineMeaning":{"type":"string","description":"Line meaning"},"planetDescription":{"type":"string","description":"Planet description"},"ichingHexagram":{"type":"object","description":"I-Ching reference","properties":{"number":{"type":"integer","description":"Hexagram number","example":25},"english":{"type":"string","description":"Hexagram name"}},"required":[]}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Complete bodygraph: type, authority, profile with keynotes, definition, incarnation cross, 9 centers with defined state and themes, defined channels with circuits, and all 26 activations (13 Personality at birth + 13 Design 88 degrees of solar arc earlier) with gate names, descriptions, line meanings, and I-Ching cross-references.","operationId":"postHumandesignBodygraph","tags":["Human Design"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/humandesign/type":{"post":{"summary":"Human Design energy type","responses":{"200":{"description":"Energy type details","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"type":{"type":"string","description":"Energy type","example":"Generator"},"typeDescription":{"type":"string","description":"Type description"},"aura":{"type":"string","description":"Aura description"},"strategy":{"type":"string","description":"Life strategy","example":"To respond"},"strategyDescription":{"type":"string","description":"Strategy explanation"},"authority":{"type":"string","description":"Inner authority","example":"Sacral"},"authorityDescription":{"type":"string","description":"Authority explanation"},"signature":{"type":"string","description":"Success signature","example":"Satisfaction"},"notSelf":{"type":"string","description":"Not-self theme","example":"Frustration"},"profile":{"type":"string","description":"Profile line pair","example":"1/3"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Energy type, strategy, authority, signature, not-self theme, and profile from the birth chart.","operationId":"postHumandesignType","tags":["Human Design"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/humandesign/gates":{"post":{"summary":"Human Design gate activations","responses":{"200":{"description":"Gate activations by chart side","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"personality":{"type":"array","description":"Personality activations","items":{"type":"object","properties":{"planet":{"type":"string","description":"Planet","example":"Sun"},"side":{"type":"string","description":"Chart side","enum":["personality","design"]},"gate":{"type":"integer","description":"Gate number 1-64","example":25},"line":{"type":"integer","description":"Line 1-6","example":1},"gateName":{"type":"string","description":"Gate name","example":"Spirit of Self"},"gateDescription":{"type":"string","description":"Gate description"},"lineMeaning":{"type":"string","description":"Line meaning"},"planetDescription":{"type":"string","description":"Planet description"},"ichingHexagram":{"type":"integer","description":"I-Ching hexagram number","example":25}},"required":[]}},"design":{"type":"array","description":"Design activations","items":{"type":"object","properties":{"planet":{"type":"string","description":"Planet","example":"Sun"},"side":{"type":"string","description":"Chart side","enum":["personality","design"]},"gate":{"type":"integer","description":"Gate number 1-64","example":25},"line":{"type":"integer","description":"Line 1-6","example":1},"gateName":{"type":"string","description":"Gate name","example":"Spirit of Self"},"gateDescription":{"type":"string","description":"Gate description"},"lineMeaning":{"type":"string","description":"Line meaning"},"planetDescription":{"type":"string","description":"Planet description"},"ichingHexagram":{"type":"integer","description":"I-Ching hexagram number","example":25}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Personality and design gate activations with planet, line, and I-Ching hexagram.","operationId":"postHumandesignGates","tags":["Human Design"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/humandesign/gates/:number":{"get":{"summary":"Single gate definition","responses":{"200":{"description":"Gate definition","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"number":{"type":"integer","description":"Gate number 1-64","example":25},"name":{"type":"string","description":"Gate name","example":"Spirit of Self"},"center":{"type":"string","description":"Center key","example":"G_Center"},"centerName":{"type":"string","description":"Center display name","example":"G Center"},"ichingHexagram":{"type":"integer","description":"I-Ching hexagram number","example":25},"channelPartners":{"type":"array","description":"Channel partner gates","items":{"type":"integer"}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Gate name, center, I-Ching hexagram, and channel partners by gate number (1-64).","operationId":"getHumandesignGatesNumber","tags":["Human Design"]}},"/v1/humandesign/channels":{"post":{"summary":"Human Design defined channels","responses":{"200":{"description":"Defined channels and definition","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"channels":{"type":"array","description":"Fully defined channels","items":{"type":"object","properties":{"gateA":{"type":"integer","description":"First gate","example":1},"gateB":{"type":"integer","description":"Second gate","example":8},"name":{"type":"string","description":"Channel name","example":"Inspiration"},"circuit":{"type":"string","description":"Circuit","enum":["Individual","Collective","Tribal"]},"centers":{"type":"array","description":"Connected centers","items":{"type":"string"}},"description":{"type":"string","description":"Channel description"},"circuitDescription":{"type":"string","description":"Circuit description"}},"required":[]}},"total":{"type":"integer","description":"Number of defined channels","example":3},"definedCenters":{"type":"array","description":"Defined center names","items":{"type":"string"}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Channels fully defined by the chart's active gates, with circuit and centers.","operationId":"postHumandesignChannels","tags":["Human Design"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/humandesign/centers":{"post":{"summary":"Human Design centers","responses":{"200":{"description":"Nine centers with defined state","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"centers":{"type":"array","description":"Center states","items":{"type":"object","properties":{"id":{"type":"string","description":"Center id","example":"head"},"name":{"type":"string","description":"Center name","example":"Head"},"defined":{"type":"boolean","description":"Defined state","example":false},"motor":{"type":"boolean","description":"Motor center","example":false},"awareness":{"type":"boolean","description":"Awareness center","example":false},"theme":{"type":"string","description":"Center theme"},"notSelfQuestion":{"type":"string","description":"Not-self question"},"biology":{"type":"string","description":"Biological correlate"},"gates":{"type":"array","description":"Active gate numbers","items":{"type":"integer"}}},"required":[]}},"definedCount":{"type":"integer","description":"Number of defined centers","example":4}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"The nine centers with defined/undefined status, motor/awareness flags, and gate counts.","operationId":"postHumandesignCenters","tags":["Human Design"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/humandesign/centers/:id":{"get":{"summary":"Single center definition","responses":{"200":{"description":"Center definition","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"id":{"type":"string","description":"Center id","example":"head"},"name":{"type":"string","description":"Center name","example":"Head"},"motor":{"type":"boolean","description":"Motor center","example":false},"awareness":{"type":"boolean","description":"Awareness center","example":false},"definedMeaning":{"type":"string","description":"Meaning when defined"},"undefinedMeaning":{"type":"string","description":"Meaning when undefined"},"notSelfQuestion":{"type":"string","description":"Not-self question"},"biology":{"type":"string","description":"Biological correlate"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Center name, motor/awareness flags, and defined/undefined meanings by center id.","operationId":"getHumandesignCentersId","tags":["Human Design"]}},"/v1/humandesign/variables":{"post":{"summary":"Human Design variables (four arrows)","responses":{"200":{"description":"Cognitive variables (four arrows)","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"arrows":{"type":"array","description":"Four cognitive arrows","items":{"type":"object","properties":{"direction":{"type":"string","description":"Arrow direction","example":"left","enum":["left","right"]},"name":{"type":"string","description":"Arrow theme","example":"Mind"},"meaning":{"type":"string","description":"Arrow meaning"}},"required":[]}},"confident":{"type":"boolean","description":"Confidence in the reading","example":true},"confidenceMarginDeg":{"type":"number","description":"Margin of error in degrees","example":0.5},"baseDescription":{"type":"string","description":"Cognitive design summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Cognitive design arrows, confidence margin, and base description.","operationId":"postHumandesignVariables","tags":["Human Design"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude"],"properties":{"datetime":{"type":"string","description":"ISO-8601 birth moment","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Geographic latitude","example":28.6139},"longitude":{"type":"number","description":"Geographic longitude","example":77.209},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/humandesign/connection":{"post":{"summary":"Human Design connection","responses":{"200":{"description":"Two-chart connection","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"totalChannels":{"type":"integer","description":"Shared channels","example":2},"channels":{"type":"array","description":"Bridging channels","items":{"type":"object","properties":{"gateA":{"type":"integer","description":"First gate","example":1},"gateB":{"type":"integer","description":"Second gate","example":8},"name":{"type":"string","description":"Channel name","example":"Inspiration"},"description":{"type":"string","description":"Channel description"}},"required":[]}},"centers":{"type":"array","description":"Combined defined centers","items":{"type":"string"}},"combinedDefinition":{"type":"string","description":"Definition type","example":"Single Definition"},"summary":{"type":"string","description":"Connection summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Composite definition of two charts: shared channels, combined centers, and definition type.","operationId":"postHumandesignConnection","tags":["Human Design"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["personA","personB"],"properties":{"personA":{"type":"object","description":"First chart"},"personB":{"type":"object","description":"Second chart"}}}}}}}},"/v1/humandesign/penta":{"post":{"summary":"Human Design penta","responses":{"200":{"description":"Group penta dynamics","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"memberCount":{"type":"integer","description":"Charts analyzed","example":3},"channels":{"type":"array","description":"Pentan channels","items":{"type":"object","properties":{"gateA":{"type":"integer","description":"First gate","example":1},"gateB":{"type":"integer","description":"Second gate","example":8},"name":{"type":"string","description":"Channel name","example":"Inspiration"}},"required":[]}},"gates":{"type":"array","description":"Shared gate numbers","items":{"type":"integer"}},"summary":{"type":"string","description":"Penta summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Group dynamic of 3-5 charts: shared gates, pentan channels, and summary.","operationId":"postHumandesignPenta","tags":["Human Design"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["members"],"properties":{"members":{"type":"array","description":"3-5 member charts"}}}}}}}},"/v1/humandesign/transit":{"post":{"summary":"Human Design transit","responses":{"200":{"description":"Transit vs natal comparison","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"date":{"type":"string","description":"Transit date","example":"2026-08-03"},"time":{"type":"string","description":"Transit time","example":"12:00:00"},"timezone":{"type":"string","description":"Timezone used","example":"UTC"},"activations":{"type":"array","description":"Transit gate activations","items":{"type":"object","properties":{"planet":{"type":"string","description":"Planet","example":"Sun"},"gate":{"type":"integer","description":"Gate number","example":25},"line":{"type":"integer","description":"Line 1-6","example":1},"gateName":{"type":"string","description":"Gate name","example":"Spirit of Self"},"isNatalActivation":{"type":"boolean","description":"Also active in natal","example":false}},"required":[]}},"completedChannels":{"type":"array","description":"Channels completed by transit","items":{"type":"object","properties":{"gateA":{"type":"integer","description":"First gate","example":1},"gateB":{"type":"integer","description":"Second gate","example":8},"name":{"type":"string","description":"Channel name","example":"Inspiration"}},"required":[]}},"temporaryCenters":{"type":"array","description":"Centers defined only in transit","items":{"type":"string"}},"summary":{"type":"string","description":"Transit summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Transit chart against the natal chart: activations, completed channels, and temporary centers.","operationId":"postHumandesignTransit","tags":["Human Design"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthData"],"properties":{"birthData":{"type":"object","description":"Natal chart data"},"date":{"type":"string","description":"Transit date YYYY-MM-DD","example":"2026-08-03"},"time":{"type":"string","description":"Transit time HH:mm:ss","example":"12:00:00"},"timezone":{"type":"string","description":"IANA timezone identifier","example":"Asia/Kolkata"}}}}}}}},"/v1/synastry/compatibility":{"post":{"summary":"Synastry compatibility","responses":{"200":{"description":"Vedic Ashta Kuta match plus Western inter-chart aspects","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"person1Name":{"type":"string","description":"First person name"},"person2Name":{"type":"string","description":"Second person name"},"vedicKuta":{"type":"object","description":"Ashta Kuta 36-point match scores","properties":{"dinaKuta":{"type":"number","description":"Day compatibility, max 3"},"ganaKuta":{"type":"number","description":"Temperament compatibility, max 6"},"yoniKuta":{"type":"number","description":"Animal compatibility, max 4"},"rasiKuta":{"type":"number","description":"Moon sign compatibility, max 7"},"rasyadhipatiKuta":{"type":"number","description":"Sign lord compatibility, max 5"},"vasyaKuta":{"type":"number","description":"Mutual attraction, max 2"},"mahendraKuta":{"type":"number","description":"Longevity score 0 or 5"},"streeDeergha":{"type":"number","description":"Harmony score 0 or 5"},"rajjuKutaPass":{"type":"boolean","description":"Rajju dosha check"},"vedhaKutaPass":{"type":"boolean","description":"Vedha dosha check"},"totalScore":{"type":"number","description":"Total of 36 points"},"totalPercentage":{"type":"number","description":"Match percentage 0-100"},"compatibilityGrade":{"type":"string","enum":["EXCELLENT","GOOD","AVERAGE","POOR"]}},"required":[]},"westernSynastry":{"type":"object","description":"Western inter-chart aspect comparison","properties":{"aspects":{"type":"array","description":"Inter-chart planetary aspects","items":{"type":"object","properties":{"person1Planet":{"type":"string","description":"First chart planet"},"person2Planet":{"type":"string","description":"Second chart planet"},"aspectType":{"type":"string","enum":["CONJUNCTION","SEXTILE","SQUARE","TRINE","OPPOSITION"]},"orbDegrees":{"type":"number","description":"Orb in degrees"},"isHarmonious":{"type":"boolean","description":"Harmonious vs challenging"}},"required":[]}},"harmoniousCount":{"type":"integer","description":"Harmonious aspects"},"challengingCount":{"type":"integer","description":"Challenging aspects"},"overallSynastryScore":{"type":"number","description":"Overall score 0-100"}},"required":[]},"overallCompatibilityGrade":{"type":"string","enum":["EXCELLENT","GOOD","AVERAGE","POOR"]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Vedic Ashta Kuta match (36 points) plus Western inter-chart planetary aspects between two charts.","operationId":"postSynastryCompatibility","tags":["Synastry"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["person1","person2"],"properties":{"person1":{"type":"object","description":"First chart: datetime, latitude, longitude, timezone"},"person2":{"type":"object","description":"Second chart: datetime, latitude, longitude, timezone"}}}}}}}},"/v1/retrodiction/scan":{"post":{"summary":"Past-event retrodiction signal scan","responses":{"200":{"description":"Top candidate event windows per event type with evidence","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"predictionId":{"type":"string","description":"Scan batch prediction id","example":"retro_1a2b3c4d"},"engineVersion":{"type":"string","description":"Engine version"},"modelVersion":{"type":"string","description":"Rule model version"},"ayanamsa":{"type":"string","description":"Ayanamsa used"},"houseSystem":{"type":"string","description":"House system used"},"ephemerisMode":{"type":"string","description":"Ephemeris mode"},"calibrationStatus":{"type":"string","enum":["EXPLORATORY_UNCALIBRATED"]},"birthData":{"type":"object","description":"Echo of birth data used","properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"time":{"type":"string","description":"HH:mm or HH:mm:ss"},"timezone":{"type":"string","description":"IANA timezone or offset"}},"required":[]},"range":{"type":"object","description":"Scanned month range","properties":{"from":{"type":"string","description":"YYYY-MM"},"to":{"type":"string","description":"YYYY-MM"}},"required":[]},"predictions":{"type":"array","description":"Top candidate event windows","items":{"type":"object","properties":{"predictionId":{"type":"string","description":"Prediction id"},"eventType":{"type":"string","description":"Event category"},"window":{"type":"object","properties":{"from":{"type":"string","description":"YYYY-MM"},"to":{"type":"string","description":"YYYY-MM"},"granularity":{"type":"string","enum":["MONTH"]}},"required":[]},"signalScore":{"type":"number","description":"Raw signal score 0-100"},"confidenceLabel":{"type":"string","enum":["HIGH_SIGNAL_NOT_PROBABILITY"]},"rank":{"type":"integer","description":"Rank within its event type"},"evidence":{"type":"array","description":"Supporting rule evidence","items":{"type":"object","properties":{"ruleId":{"type":"string","description":"Rule identifier"},"contribution":{"type":"number","description":"Raw contribution 0-1"},"details":{"type":"object","description":"Rule-specific detail fields"}},"required":[]}},"birthTimeSensitivity":{"type":"string","enum":["LOW","MEDIUM","HIGH"]}},"required":[]}},"disclaimer":{"type":"string","description":"Exploratory/uncalibrated disclaimer"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Scans natal chart against historic planetary transits and Vimshottari dasha periods to identify top candidate event windows across career, relationship, relocation, education, and finance.","operationId":"postRetrodictionScan","tags":["Retrodiction"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthData","range","eventTypes"],"properties":{"birthData":{"type":"object","description":"Birth date, time, location, and timezone"},"range":{"type":"object","description":"Historic scan range {from: \"YYYY-MM\", to: \"YYYY-MM\"}"},"eventTypes":{"type":"array","description":"Event categories to scan"},"topK":{"type":"number","description":"Number of top candidate windows to return (1-5, default 3)"},"ayanamsa":{"type":"string","description":"Ayanamsa mode (default LAHIRI)"},"houseSystem":{"type":"string","description":"House system (default W for Whole Sign)"}}}}}}}},"/v1/retrodiction/verify":{"post":{"summary":"Record past-event prediction feedback","responses":{"200":{"description":"Feedback recording receipt","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"verificationId":{"type":"string","description":"Verification record id","example":"verify_m1abc2xyz"},"predictionId":{"type":"string","description":"Prediction id verified"},"accepted":{"type":"boolean","description":"Whether feedback was recorded"},"storedAs":{"type":"string","enum":["WEAK_USER_LABEL"]},"storage":{"type":"string","enum":["NON_PERSISTENT_IN_MEMORY"]},"message":{"type":"string","description":"Storage disposition message"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Records user verification answers (YES/NO/UNSURE) for retrodiction predictions as weak labels for offline evaluation.","operationId":"postRetrodictionVerify","tags":["Retrodiction"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["predictionId","answers"],"properties":{"predictionId":{"type":"string","description":"Prediction ID from scan output"},"answers":{"type":"array","description":"Array of user event verification answers"},"consentVersion":{"type":"string","description":"User privacy/consent agreement version"}}}}}}}},"/v1/forecast/transits":{"post":{"summary":"Planetary transits and forecast","responses":{"200":{"description":"Active transit aspects and energy forecast summary","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"targetDate":{"type":"string","description":"ISO-8601 forecast date"},"activeTransits":{"type":"array","description":"Active transit-to-natal aspects","items":{"type":"object","properties":{"transitPlanet":{"type":"string","description":"Transiting planet"},"natalPlanet":{"type":"string","description":"Natal planet"},"aspectType":{"type":"string","enum":["CONJUNCTION","OPPOSITION","TRINE","SQUARE","SEXTILE"]},"orbDegrees":{"type":"number","description":"Orb in degrees"},"isExact":{"type":"boolean","description":"Exact if orb <= 1 degree"},"influenceType":{"type":"string","enum":["BENEFIC","CHALLENGING","NEUTRAL"]},"transitSign":{"type":"string","description":"Transit sign of the transiting planet"},"natalHouse":{"type":"integer","description":"Natal house affected"},"description":{"type":"string","description":"Aspect description"}},"required":[]}},"transitCounts":{"type":"object","description":"Aspect counts by influence","properties":{"total":{"type":"integer","description":"Total active aspects"},"benefic":{"type":"integer","description":"Benefic aspects"},"challenging":{"type":"integer","description":"Challenging aspects"},"exact":{"type":"integer","description":"Exact aspects"}},"required":[]},"forecastSummary":{"type":"string","description":"Energy forecast summary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Active transit aspects against the natal chart for a target date, with an energy forecast summary.","operationId":"postForecastTransits","tags":["Forecast"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["datetime","latitude","longitude","targetDate"],"properties":{"datetime":{"type":"string","description":"Natal chart moment (ISO-8601)","example":"1990-05-15T12:00:00Z"},"latitude":{"type":"number","description":"Natal latitude","example":28.6139},"longitude":{"type":"number","description":"Natal longitude","example":77.209},"timezone":{"type":"string","description":"Natal IANA timezone","example":"Asia/Kolkata"},"targetDate":{"type":"string","description":"ISO-8601 forecast date","example":"2026-09-01T12:00:00Z"}}}}}}}},"/v1/forecast/timeline":{"post":{"summary":"Forecast timeline","responses":{"200":{"description":"Cross-domain forecast events sorted by date","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthData":{"type":"object","description":"Echo of birth data used","properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"time":{"type":"string","description":"Local time"},"timezone":{"type":"number","description":"UTC offset hours"},"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":[]},"startDate":{"type":"string","description":"YYYY-MM-DD start of range"},"endDate":{"type":"string","description":"YYYY-MM-DD end of range"},"count":{"type":"integer","description":"Number of events"},"events":{"type":"array","description":"Forecast events across all domains","items":{"type":"object","properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"datetime":{"type":"string","description":"ISO-8601 event time"},"domain":{"type":"string","enum":["western","vedic","biorhythm"]},"type":{"type":"string","description":"Event type, e.g. transit-aspect"},"body":{"type":"string","description":"Primary body"},"target":{"type":"string","description":"Aspect target"},"aspect":{"type":"string","description":"Aspect name if applicable"},"orb":{"type":"number","description":"Aspect orb in degrees"},"station":{"type":"string","description":"Retrograde station direction"},"kind":{"type":"string","description":"Event kind"},"obscuration":{"type":"number","description":"Eclipse obscuration fraction"},"phase":{"type":"string","description":"Lunar phase if applicable"},"description":{"type":"string","description":"Human-readable event description"},"significance":{"type":"number","description":"Weighted significance 0-1"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Cross-domain forecast timeline: transit aspects, sign ingresses, retrograde stations, lunar phases, eclipses, dasha changes, and critical days.","operationId":"postForecastTimeline","tags":["Forecast"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthData"],"properties":{"birthData":{"type":"object","description":"Birth details (date, time, latitude, longitude, timezone)"},"startDate":{"type":"string","description":"YYYY-MM-DD start of range","example":"2026-08-01"},"endDate":{"type":"string","description":"YYYY-MM-DD end of range (max 400 days)","example":"2026-10-29"},"minSignificance":{"type":"number","description":"Minimum significance filter 0-1","example":0.1},"domainWeights":{"type":"object","description":"Optional western/vedic/biorhythm weights"}}}}}}}},"/v1/forecast/significant-dates":{"post":{"summary":"Significant dates","responses":{"200":{"description":"High-significance forecast events sorted by significance","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthData":{"type":"object","description":"Echo of birth data used","properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"time":{"type":"string","description":"Local time"},"timezone":{"type":"number","description":"UTC offset hours"},"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":[]},"startDate":{"type":"string","description":"YYYY-MM-DD start of range"},"endDate":{"type":"string","description":"YYYY-MM-DD end of range"},"count":{"type":"integer","description":"Number of significant events"},"events":{"type":"array","description":"Forecast events with significance at or above the floor","items":{"type":"object","properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"datetime":{"type":"string","description":"ISO-8601 event time"},"domain":{"type":"string","enum":["western","vedic","biorhythm"]},"type":{"type":"string","description":"Event type"},"body":{"type":"string","description":"Primary body"},"target":{"type":"string","description":"Aspect target"},"aspect":{"type":"string","description":"Aspect name if applicable"},"orb":{"type":"number","description":"Aspect orb in degrees"},"station":{"type":"string","description":"Retrograde station direction"},"kind":{"type":"string","description":"Event kind"},"obscuration":{"type":"number","description":"Eclipse obscuration fraction"},"phase":{"type":"string","description":"Lunar phase if applicable"},"description":{"type":"string","description":"Human-readable event description"},"significance":{"type":"number","description":"Weighted significance 0-1"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"High-significance cross-domain forecast highlights, sorted by significance.","operationId":"postForecastSignificantDates","tags":["Forecast"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthData"],"properties":{"birthData":{"type":"object","description":"Birth details"},"startDate":{"type":"string","description":"YYYY-MM-DD","example":"2026-08-01"},"endDate":{"type":"string","description":"YYYY-MM-DD","example":"2026-12-01"},"minSignificance":{"type":"number","description":"Floor (minimum 0.6 applied)","example":0.6}}}}}}}},"/v1/forecast/digest":{"post":{"summary":"Forecast digest","responses":{"200":{"description":"Rollup windows (24h, 7d, 30d, 90d) with event counts and top events","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"birthData":{"type":"object","description":"Echo of birth data used","properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"time":{"type":"string","description":"Local time"},"timezone":{"type":"number","description":"UTC offset hours"},"latitude":{"type":"number"},"longitude":{"type":"number"}},"required":[]},"startDate":{"type":"string","description":"YYYY-MM-DD anchor date"},"endDate":{"type":"string","description":"YYYY-MM-DD end of the 90d window"},"windows":{"type":"array","description":"Digest rollup windows","items":{"type":"object","properties":{"days":{"type":"integer","description":"Window length in days"},"from":{"type":"string","description":"YYYY-MM-DD window start"},"to":{"type":"string","description":"YYYY-MM-DD window end"},"count":{"type":"integer","description":"Events in window"},"byDomain":{"type":"object","description":"Event counts per domain","properties":{"western":{"type":"integer"},"vedic":{"type":"integer"},"biorhythm":{"type":"integer"}},"required":[]},"byType":{"type":"object","description":"Event counts per type"},"top":{"type":"array","description":"Top events by significance","items":{"type":"object","properties":{"date":{"type":"string","description":"YYYY-MM-DD"},"datetime":{"type":"string","description":"ISO-8601 event time"},"domain":{"type":"string","enum":["western","vedic","biorhythm"]},"type":{"type":"string","description":"Event type"},"body":{"type":"string","description":"Primary body"},"target":{"type":"string","description":"Aspect target"},"aspect":{"type":"string","description":"Aspect name if applicable"},"orb":{"type":"number","description":"Aspect orb in degrees"},"station":{"type":"string","description":"Retrograde station direction"},"kind":{"type":"string","description":"Event kind"},"obscuration":{"type":"number","description":"Eclipse obscuration fraction"},"phase":{"type":"string","description":"Lunar phase if applicable"},"description":{"type":"string","description":"Human-readable event description"},"significance":{"type":"number","description":"Weighted significance 0-1"}},"required":[]}}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Pre-summarized 24h, 7d, 30d, and 90d rollups with event counts by domain and type plus top events.","operationId":"postForecastDigest","tags":["Forecast"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["birthData"],"properties":{"birthData":{"type":"object","description":"Birth details"},"startDate":{"type":"string","description":"YYYY-MM-DD anchor","example":"2026-08-01"},"minSignificance":{"type":"number","description":"Minimum significance","example":0.1},"top":{"type":"number","description":"Top events per window (1-10)","example":5}}}}}}}},"/v1/forecast/moon-phase/current":{"get":{"summary":"Current lunar phase","responses":{"200":{"description":"Current lunar phase and next phase boundary","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"phase":{"type":"string","enum":["NEW_MOON","WAXING_CRESCENT","FIRST_QUARTER","WAXING_GIBBOUS","FULL_MOON","WANING_GIBBOUS","LAST_QUARTER","WANING_CRESCENT"]},"phaseIndex":{"type":"integer","description":"Phase index 0-7","minimum":0,"maximum":7},"illumination":{"type":"number","description":"Illuminated fraction 0-1"},"elongationDeg":{"type":"number","description":"Sun-Moon elongation 0-360"},"nextPhase":{"type":"string","enum":["NEW_MOON","WAXING_CRESCENT","FIRST_QUARTER","WAXING_GIBBOUS","FULL_MOON","WANING_GIBBOUS","LAST_QUARTER","WANING_CRESCENT"]},"timestamp":{"type":"string","description":"ISO-8601 measurement time"},"nextPhaseAt":{"type":"string","description":"ISO-8601 next phase boundary"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Phase, illumination, elongation, and the next phase boundary for the current time.","operationId":"getForecastMoonPhaseCurrent","tags":["Forecast"]}},"/v1/forecast/moon-phase/upcoming":{"get":{"summary":"Upcoming lunar phases","responses":{"200":{"description":"Next phase boundary events","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"count":{"type":"integer","description":"Number of events returned"},"events":{"type":"array","description":"Upcoming phase boundaries","items":{"type":"object","properties":{"phase":{"type":"string","enum":["NEW_MOON","WAXING_CRESCENT","FIRST_QUARTER","WAXING_GIBBOUS","FULL_MOON","WANING_GIBBOUS","LAST_QUARTER","WANING_CRESCENT"]},"phaseIndex":{"type":"integer","description":"Phase index 0-7"},"at":{"type":"string","description":"ISO-8601 phase boundary time"},"illumination":{"type":"number","description":"Illuminated fraction 0-1"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"The next N phase boundaries (new moon, first quarter, full moon, last quarter, etc.).","operationId":"getForecastMoonPhaseUpcoming","tags":["Forecast"]}},"/v1/forecast/moon-phase/calendar/:year/:month":{"get":{"summary":"Monthly moon calendar","responses":{"200":{"description":"New and full moon events for the requested month","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"year":{"type":"integer","description":"Calendar year"},"month":{"type":"integer","description":"Calendar month 1-12"},"count":{"type":"integer","description":"Number of events"},"events":{"type":"array","description":"New and full moon events","items":{"type":"object","properties":{"phase":{"type":"string","enum":["NEW_MOON","WAXING_CRESCENT","FIRST_QUARTER","WAXING_GIBBOUS","FULL_MOON","WANING_GIBBOUS","LAST_QUARTER","WANING_CRESCENT"]},"phaseIndex":{"type":"integer","description":"Phase index 0-7"},"at":{"type":"string","description":"ISO-8601 phase boundary time"},"illumination":{"type":"number","description":"Illuminated fraction 0-1"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"New moons and full moons occurring in a given calendar month.","operationId":"getForecastMoonPhaseCalendarYearMonth","tags":["Forecast"]}},"/v1/location/search":{"get":{"summary":"City search","responses":{"200":{"description":"Paginated city matches","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"total":{"type":"integer","description":"Total matching cities"},"limit":{"type":"integer","description":"Page size"},"offset":{"type":"integer","description":"Page offset"},"cities":{"type":"array","description":"Matching cities","items":{"type":"object","properties":{"city":{"type":"string","description":"City name"},"province":{"type":"string","description":"Province or state"},"country":{"type":"string","description":"Country name"},"iso2":{"type":"string","description":"ISO 3166-1 alpha-2 code"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"string","description":"IANA timezone"},"utcOffset":{"type":"number","description":"Standard UTC offset hours"},"population":{"type":"integer","description":"Approximate population"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Geocoding autocomplete with coordinates, timezone, and population. Supports bare city or city+country queries.","operationId":"getLocationSearch","tags":["Location"]}},"/v1/location/countries":{"get":{"summary":"List countries","responses":{"200":{"description":"Paginated country list","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"total":{"type":"integer","description":"Total countries"},"limit":{"type":"integer","description":"Page size"},"offset":{"type":"integer","description":"Page offset"},"countries":{"type":"array","description":"Country entries","items":{"type":"object","properties":{"name":{"type":"string","description":"Country name"},"iso2":{"type":"string","description":"ISO 3166-1 alpha-2 code"},"iso3":{"type":"string","description":"ISO 3166-1 alpha-3 code"},"cityCount":{"type":"integer","description":"Cities covered"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"All countries with ISO 3166-1 codes and city coverage counts, paginated.","operationId":"getLocationCountries","tags":["Location"]}},"/v1/location/countries/:iso2":{"get":{"summary":"Cities in a country","responses":{"200":{"description":"Paginated cities for the country","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"total":{"type":"integer","description":"Total cities for the country"},"limit":{"type":"integer","description":"Page size"},"offset":{"type":"integer","description":"Page offset"},"country":{"type":"object","description":"Country entry","properties":{"name":{"type":"string","description":"Country name"},"iso2":{"type":"string","description":"ISO 3166-1 alpha-2 code"},"iso3":{"type":"string","description":"ISO 3166-1 alpha-3 code"},"cityCount":{"type":"integer","description":"Cities covered"}},"required":[]},"cities":{"type":"array","description":"Cities sorted by population","items":{"type":"object","properties":{"city":{"type":"string","description":"City name"},"province":{"type":"string","description":"Province or state"},"country":{"type":"string","description":"Country name"},"iso2":{"type":"string","description":"ISO 3166-1 alpha-2 code"},"latitude":{"type":"number"},"longitude":{"type":"number"},"timezone":{"type":"string","description":"IANA timezone"},"utcOffset":{"type":"number","description":"Standard UTC offset hours"},"population":{"type":"integer","description":"Approximate population"}},"required":[]}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Cities for an ISO 3166-1 alpha-2 country code, sorted by population, paginated.","operationId":"getLocationCountriesIso2","tags":["Location"]}},"/v1/admin/overview":{"get":{"summary":"Admin overview","responses":{"200":{"description":"Admin overview totals","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"totals":{"type":"object","description":"Aggregate key store totals","properties":{"totalKeys":{"type":"number"},"activeKeys":{"type":"number"},"internalKeys":{"type":"number"},"b2bKeys":{"type":"number"},"revokedKeys":{"type":"number"},"requestsToday":{"type":"number"},"requestsThisMonth":{"type":"number"}},"required":[]},"topKeys":{"type":"array","description":"Top 5 keys by monthly usage","items":{"type":"object"}},"expiringSoon":{"type":"array","description":"Keys expiring within 30 days","items":{"type":"object"}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Operational totals from the D1 key store: keys by scope, requests today/month, top keys, keys expiring soon. Requires ADMIN_KEY.","operationId":"getAdminOverview","tags":["Admin"],"security":[{"ApiKeyAuth":[]}]}},"/v1/admin/keys":{"get":{"summary":"List API keys","responses":{"200":{"description":"Key list","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"keys":{"type":"array","description":"Keys with usage and limits","items":{"type":"object"}}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"List keys with optional scope/owner filters. Requires ADMIN_KEY.","operationId":"getAdminKeys","tags":["Admin"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"scope","in":"query","required":false,"schema":{"type":"string","description":"internal|b2b","enum":["internal","b2b"]},"description":"internal|b2b"},{"name":"owner","in":"query","required":false,"schema":{"type":"string","description":"Owner filter"},"description":"Owner filter"}]},"post":{"summary":"Create API key","responses":{"200":{"description":"Created key (plaintext once)","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"id":{"type":"string"},"key":{"type":"string","description":"Plaintext secret — shown once"},"scope":{"type":"string"},"name":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Create a key; the plaintext secret is returned exactly once. Requires ADMIN_KEY.","operationId":"postAdminCreateKey","tags":["Admin"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["scope"],"properties":{"name":{"type":"string","description":"Human label"},"scope":{"type":"string","description":"internal|b2b","enum":["internal","b2b"]},"plan":{"type":"string","description":"free|pro"},"owner":{"type":"string","description":"Owner identifier"},"dailyLimit":{"type":"number","description":"Requests per day"},"monthlyLimit":{"type":"number","description":"Requests per month"},"expiresInDays":{"type":"number","description":"Expiry in days from now"}}}}}}}},"/v1/admin/keys/:id/revoke":{"post":{"summary":"Revoke API key","responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"ok":{"type":"boolean"},"id":{"type":"string"},"action":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Permanently revoke a key. Requires ADMIN_KEY.","operationId":"postAdminRevokeKey","tags":["Admin"],"security":[{"ApiKeyAuth":[]}]}},"/v1/admin/keys/:id/enable":{"post":{"summary":"Enable API key","responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"ok":{"type":"boolean"},"id":{"type":"string"},"action":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Re-enable a soft-disabled key. Requires ADMIN_KEY.","operationId":"postAdminEnableKey","tags":["Admin"],"security":[{"ApiKeyAuth":[]}]}},"/v1/admin/keys/:id/disable":{"post":{"summary":"Disable API key","responses":{"200":{"description":"Result","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"ok":{"type":"boolean"},"id":{"type":"string"},"action":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Soft-disable a key (reversible). Requires ADMIN_KEY.","operationId":"postAdminDisableKey","tags":["Admin"],"security":[{"ApiKeyAuth":[]}]}},"/v1/keys/me":{"get":{"summary":"My API key","responses":{"200":{"description":"Sanitized key view","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"key":{"type":"object","description":"Key record without hash","properties":{"id":{"type":"string"},"name":{"type":"string"},"scope":{"type":"string"},"plan":{"type":"string"}},"required":[]}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Inspect the authenticated key: plan, scope, limits, usage.","operationId":"getMyKey","tags":["Keys"],"security":[{"ApiKeyAuth":[]}]}},"/v1/keys/me/regenerate":{"post":{"summary":"Regenerate my API key","responses":{"200":{"description":"New key","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"id":{"type":"string"},"key":{"type":"string","description":"New plaintext secret — shown once"},"revokedOldId":{"type":"string"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Issue a new secret with the same configuration; the old secret is revoked immediately. New plaintext returned once.","operationId":"postRegenerateKey","tags":["Keys"],"security":[{"ApiKeyAuth":[]}]}},"/v1/usage/me":{"get":{"summary":"My usage","responses":{"200":{"description":"Usage breakdown","content":{"application/json":{"schema":{"type":"object","required":[],"properties":{"keyId":{"type":"string"},"usage":{"type":"object","description":"Daily and monthly usage with remaining and ratio"},"lastUsedAt":{"type":"number"}}}}}},"400":{"description":"Invalid input"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Request body too large"},"422":{"description":"Validation failed (envelope: error.code / error.message / error.requestId)"},"429":{"description":"Rate limit exceeded"},"500":{"description":"Internal error (envelope)"}},"description":"Usage vs daily/monthly limits for the authenticated key.","operationId":"getMyUsage","tags":["Keys"],"security":[{"ApiKeyAuth":[]}]}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Optional unless an API_KEY binding is configured."}}}}