{"openapi":"3.1.0","info":{"title":"SIA API","description":"The SIA API: eleven products, each its own call with its own credit weight — the classical kundali milan (the first thousand couples a month included), one person's svabhāva (constitution) and the same person in a period, the mapping of two svabhāvas and the pair's years, the common wedding days for both and the good hours of a day, what each chart says of the other, the highest-probability time of having a child, the detailed assessment of one matter, and the whole milan document as HTML or PDF — computed by SIA's inference engine from the classical doctrine. Results only: the derivation stays with SIA. Send your key as `X-SIA-Key`. A call draws its weight in credits from the key's balance (`GET /v1/products` lists the weights and your balance; `GET /v1/usage` the ledger); an empty balance answers 402 `credits_exhausted`. Every reply carries `meta` with the source, the attribution clause, the engine's build stamp and the credits spent, and the headers `X-SIA-Credits-Used` / `X-SIA-Credits-Remaining`.","version":"1.2.0"},"paths":{"/v1/milan":{"post":{"tags":["SIA API v1"],"summary":"Kundali milan — the classical match","description":"The aṣṭakūṭa 36-guṇa score from the two birth Moons, the doṣa panel and the maṅgala-doṣa\ncomparison. Deterministic; no model. The partners' own chart-read marriage indications are NOT\nincluded (see `not_included`).","operationId":"v1_milan_v1_milan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MilanIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MilanOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/svabhava":{"post":{"tags":["SIA API v1"],"summary":"Svabhāva — one person's constitution","description":"Fourteen named parameters with their poles and bands, the guṇa spine, tattva, rāśi and dṛṣṭi.\nThe fixed constitution read from the natal chart. For the person in a PERIOD ask /v1/svabhava_kala.\nResults only: no verse, no derivation, no raw score leaves (the module note).","operationId":"v1_svabhava_v1_svabhava_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SvabhavaIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SvabhavaOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/svabhava_kala":{"post":{"tags":["SIA API v1"],"summary":"Svabhāva kāla — the same person in a period","description":"What the daśā the person stands in brings out — the running mahā, antar and pratyantar, the bands\ninside the year with their lean, and the composed sentences. A second layer over /v1/svabhava, never a\nreplacement; print them under separate labels. `silent: true` is a real answer (the period has no\nstated expression), not an empty one.","operationId":"v1_svabhava_kala_v1_svabhava_kala_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KalaIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KalaOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/svabhava_pair":{"post":{"tags":["SIA API v1"],"summary":"Two constitutions mapped — the relational rows","description":"The two constitutions parameter by parameter: a pole both assert is shared (a strength or a burden\nby its polarity); opposite poles on the two sides is a difference; a negative pole on one side only is\na one-sided caution. Never the two panels. Cautions ship only with `consent_both: true`; otherwise\n`withheld` says how many and why. For the pair's years ask /v1/svabhava_years.","operationId":"v1_svabhava_pair_v1_svabhava_pair_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PairIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PairOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/svabhava_years":{"post":{"tags":["SIA API v1"],"summary":"The pair's years — one row a calendar year","description":"From this calendar year forward: for each person the running mahā and antar, their age, the share of\nthe year under adverse pressure (0–1); for the pair `match` — easy, uneven or hard_both — and `tension`\nwhere both are under pressure at once. The per-year inner words of each person ship only with\n`consent_both: true`.","operationId":"v1_svabhava_years_v1_svabhava_years_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/YearsIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/YearsOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/vivaha_dates":{"post":{"tags":["SIA API v1"],"summary":"Common wedding days for both","description":"Each person's marriage windows, intersected; inside the common spans the open wedding DAYS for both,\nranked, with the months, the closed stretches and the alternatives. The hours of a day are\n/v1/vivaha_hours. Below the tradition's threshold `applies` is false and nothing is computed; two windows\nthat never meet come back as an empty `common` WITH each side's windows.","operationId":"v1_vivaha_dates_v1_vivaha_dates_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatesIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatesOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/vivaha_hours":{"post":{"tags":["SIA API v1"],"summary":"The good hours of one wedding day","description":"One day /v1/vivaha_dates offered: its quarter-hours ranked, each with the reasons a pandit would give\n(the hour's lord, the choghaḍiyā, the muhūrta of the day, the rising sign and what relieves it, each\npartner's tārā and Moon). A day that is not open for this pair comes back `open: false`.","operationId":"v1_vivaha_hours_v1_vivaha_hours_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoursIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoursOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/partner_lines":{"post":{"tags":["SIA API v1"],"summary":"What each chart says of the other","description":"For each person: the favourable lines their own chart states about the one they marry (`lines`), then\ntheir own good qualities in the marriage (`good`) — four or five sentences a side, in the reader's\nregister, from the same builder the ₹799 document prints (`milan_document.partner_faces`,\n`partner_good`). Groom is read as male, bride as female. Both people's consent is required: without\n`consent_both: true` the sides are empty and `withheld` says why (the call is still counted).","operationId":"v1_partner_lines_v1_partner_lines_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerLinesIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartnerLinesOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/santana_window":{"post":{"tags":["SIA API v1"],"summary":"The highest-probability time of having a child","description":"Each chart's children windows (the Parāśara funnel for the fifth house), intersected; the common\nstretches ranked by both charts' strength, the EARLIEST marked `highest` — \"the highest-probability time\nof having a child\", never \"the first child\" — counted until the bride turns fifty. Both people's consent\nis required. A son-or-daughter lean is never shipped (see `not_included`).","operationId":"v1_santana_window_v1_santana_window_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SantanaIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SantanaOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assessment":{"post":{"tags":["SIA API v1"],"summary":"The detailed assessment of one matter","description":"One person, one matter: the answer, when (years and months, with the windows' labels), how likely and\nwhy, and the books' remedy — the same four sections the consumer's assessment prints, the prose alone.\nNo model: the engine's own sentences. Not here: the twelve-year series (a graph product of the consumer\nline), the seals and the sources (the method stays with SIA). Takes a few seconds.","operationId":"v1_assessment_v1_assessment_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssessmentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/milan_document":{"post":{"tags":["SIA API v1"],"summary":"The whole kundali milan document","description":"The couple's complete milan as a document — the 36 guṇas, the best time to marry, the personality map\nwith the sixty years, what each chart says of the other, the child's time — the same composition the\nconsumer's ₹799 document prints, as a self-contained HTML page or a PDF (base64), with your cover line.\nThe Sources section and every reference are removed: the result, not the derivation. A \"Computed by SIA\"\ncolophon closes it unless your key is white-label. Made once per pair and kept (the milan store), so a\nsecond call for the same couple is quick.","operationId":"v1_milan_document_v1_milan_document_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/products":{"get":{"tags":["SIA API v1"],"summary":"The catalogue: each product's credit weight, and what this key holds","operationId":"v1_products_v1_products_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductsOut"}}}}}}},"/v1/usage":{"get":{"tags":["SIA API v1"],"summary":"What this key spent, per product and in credits","operationId":"v1_usage_v1_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageOut"}}}}}}}},"components":{"schemas":{"AssessmentIn":{"properties":{"person":{"$ref":"#/components/schemas/PersonTimed"},"matter":{"type":"string","maxLength":32,"minLength":2,"title":"Matter","description":"marriage · career · wealth · children · education · health · property · spiritual · parents · travel · fortune · fame · mind · enemies"},"lang":{"type":"string","pattern":"^(en|hi)$","title":"Lang","default":"en"}},"type":"object","required":["person","matter"],"title":"AssessmentIn"},"AssessmentOut":{"properties":{"matter":{"type":"string","title":"Matter","default":""},"matter_label":{"type":"string","title":"Matter Label","default":""},"lang":{"type":"string","title":"Lang","default":"en"},"as_of":{"type":"string","title":"As Of","default":""},"first_screen":{"type":"object","title":"First Screen","default":{}},"timing":{"type":"object","title":"Timing","default":{}},"reading":{"type":"object","title":"Reading","default":{}},"remedy":{"type":"object","title":"Remedy","default":{}},"not_included":{"items":{},"type":"array","title":"Not Included","default":[]},"meta":{"$ref":"#/components/schemas/Meta","default":{"product":"","source":"","attribution":"","license":"","engine_rev":"","pack_hash":"","credits":0,"runtime_ms":0,"generated_at":""}}},"type":"object","title":"AssessmentOut"},"DatesIn":{"properties":{"groom":{"$ref":"#/components/schemas/PersonTimed"},"bride":{"$ref":"#/components/schemas/PersonTimed"},"place":{"anyOf":[{"$ref":"#/components/schemas/Place"},{"type":"null"}],"description":"The wedding's place; else the bride's birth place."},"from_iso":{"type":"string","pattern":"^$|^\\d{4}-\\d{2}-\\d{2}$","title":"From Iso","description":"Scan strictly after this day.","default":""}},"type":"object","required":["groom","bride"],"title":"DatesIn"},"DatesOut":{"properties":{"applies":{"type":"boolean","title":"Applies","default":false},"reason_en":{"type":"string","title":"Reason En","default":""},"reason_hi":{"type":"string","title":"Reason Hi","default":""},"summary_en":{"type":"string","title":"Summary En","default":""},"summary_hi":{"type":"string","title":"Summary Hi","default":""},"hero_iso":{"type":"string","title":"Hero Iso","default":""},"today":{"type":"string","title":"Today","default":""},"horizon_years":{"type":"integer","title":"Horizon Years","default":0},"place":{"type":"object","title":"Place","default":{}},"groom":{"type":"object","title":"Groom","default":{}},"bride":{"type":"object","title":"Bride","default":{}},"common":{"items":{},"type":"array","title":"Common","default":[]},"dates":{"items":{},"type":"array","title":"Dates","default":[]},"months":{"items":{},"type":"array","title":"Months","default":[]},"closed_spans":{"items":{},"type":"array","title":"Closed Spans","default":[]},"practice_closed_days":{"items":{},"type":"array","title":"Practice Closed Days","default":[]},"alternatives":{"items":{},"type":"array","title":"Alternatives","default":[]},"natal_notes":{"items":{},"type":"array","title":"Natal Notes","default":[]},"truncated":{"type":"boolean","title":"Truncated","default":false},"n_days_scanned":{"type":"integer","title":"N Days Scanned","default":0},"n_days_open":{"type":"integer","title":"N Days Open","default":0},"meta":{"$ref":"#/components/schemas/Meta","default":{"product":"","source":"","attribution":"","license":"","engine_rev":"","pack_hash":"","credits":0,"runtime_ms":0,"generated_at":""}}},"type":"object","title":"DatesOut"},"DocumentCover":{"properties":{"partner":{"type":"string","maxLength":80,"title":"Partner","description":"Your name on the cover, e.g. 'Prepared by Acme Matrimony'.","default":""},"prepared_for":{"type":"string","maxLength":120,"title":"Prepared For","description":"A line for the couple or the customer, if you want one.","default":""}},"type":"object","title":"DocumentCover"},"DocumentIn":{"properties":{"groom":{"$ref":"#/components/schemas/PersonTimed"},"bride":{"$ref":"#/components/schemas/PersonTimed"},"lang":{"type":"string","pattern":"^(en|hi)$","title":"Lang","default":"en"},"format":{"type":"string","pattern":"^(html|pdf)$","title":"Format","description":"`html` — a self-contained page; `pdf` — the same as PDF bytes, base64 in `pdf_base64`.","default":"html"},"cover":{"anyOf":[{"$ref":"#/components/schemas/DocumentCover"},{"type":"null"}]}},"type":"object","required":["groom","bride"],"title":"DocumentIn"},"DocumentOut":{"properties":{"format":{"type":"string","title":"Format","default":"html"},"lang":{"type":"string","title":"Lang","default":"en"},"html":{"type":"string","title":"Html","default":""},"pdf_base64":{"type":"string","title":"Pdf Base64","default":""},"total":{"type":"number","title":"Total","default":0.0},"verdict":{"type":"string","title":"Verdict","default":""},"generated_on":{"type":"string","title":"Generated On","default":""},"white_label":{"type":"boolean","title":"White Label","default":false},"meta":{"$ref":"#/components/schemas/Meta","default":{"product":"","source":"","attribution":"","license":"","engine_rev":"","pack_hash":"","credits":0,"runtime_ms":0,"generated_at":""}}},"type":"object","title":"DocumentOut"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HoursIn":{"properties":{"groom":{"$ref":"#/components/schemas/PersonTimed"},"bride":{"$ref":"#/components/schemas/PersonTimed"},"place":{"anyOf":[{"$ref":"#/components/schemas/Place"},{"type":"null"}],"description":"The wedding's place; else the bride's birth place."},"day":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","title":"Day","description":"YYYY-MM-DD — a day /v1/vivaha_dates offered."},"want_subday":{"type":"boolean","title":"Want Subday","description":"Also the quarter-hour series of the day (~3 KB).","default":false}},"type":"object","required":["groom","bride","day"],"title":"HoursIn"},"HoursOut":{"properties":{"day":{"type":"string","title":"Day","default":""},"applies":{"type":"boolean","title":"Applies","default":false},"open":{"type":"boolean","title":"Open","default":false},"reason_en":{"type":"string","title":"Reason En","default":""},"reason_hi":{"type":"string","title":"Reason Hi","default":""},"windows":{"items":{},"type":"array","title":"Windows","default":[]},"subday":{"type":"object","title":"Subday","default":{}},"meta":{"$ref":"#/components/schemas/Meta","default":{"product":"","source":"","attribution":"","license":"","engine_rev":"","pack_hash":"","credits":0,"runtime_ms":0,"generated_at":""}}},"type":"object","title":"HoursOut"},"KalaIn":{"properties":{"person":{"$ref":"#/components/schemas/Person"},"lang":{"type":"string","pattern":"^(en|hi)$","title":"Lang","default":"en"},"age":{"anyOf":[{"type":"number","maximum":120.0,"minimum":0.0},{"type":"null"}],"title":"Age","description":"Years — the daśā expression at this age."},"on":{"anyOf":[{"type":"string","pattern":"^\\d{2}-\\d{2}-\\d{4}$"},{"type":"null"}],"title":"On","description":"DD-MM-YYYY — the same from the other end. One of `age` / `on` is required; `age` wins."}},"type":"object","required":["person"],"title":"KalaIn"},"KalaOut":{"properties":{"expression":{"type":"object","title":"Expression","default":{}},"lang":{"type":"string","title":"Lang","default":"en"},"meta":{"$ref":"#/components/schemas/Meta","default":{"product":"","source":"","attribution":"","license":"","engine_rev":"","pack_hash":"","credits":0,"runtime_ms":0,"generated_at":""}}},"type":"object","title":"KalaOut"},"Meta":{"properties":{"product":{"type":"string","title":"Product","default":""},"source":{"type":"string","title":"Source","default":""},"attribution":{"type":"string","title":"Attribution","default":""},"license":{"type":"string","title":"License","default":""},"engine_rev":{"type":"string","title":"Engine Rev","default":""},"pack_hash":{"type":"string","title":"Pack Hash","default":""},"credits":{"type":"integer","title":"Credits","description":"What this call cost, in credits (the product's weight; 0 on an included match).","default":0},"credits_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Credits Remaining","description":"The key's balance after this call — only on a key metered by credits."},"included":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Included","description":"True on a `milan` call inside the month's included couples."},"runtime_ms":{"type":"integer","title":"Runtime Ms","default":0},"generated_at":{"type":"string","title":"Generated At","default":""}},"type":"object","title":"Meta"},"MilanIn":{"properties":{"groom":{"$ref":"#/components/schemas/Person"},"bride":{"$ref":"#/components/schemas/Person"}},"type":"object","required":["groom","bride"],"title":"MilanIn"},"MilanOut":{"properties":{"groom":{"type":"object","title":"Groom","default":{}},"bride":{"type":"object","title":"Bride","default":{}},"kutas":{"items":{},"type":"array","title":"Kutas","default":[]},"total":{"type":"number","title":"Total","default":0.0},"max_total":{"type":"number","title":"Max Total","default":36.0},"verdict":{"type":"object","title":"Verdict","default":{}},"doshas":{"items":{},"type":"array","title":"Doshas","default":[]},"mangal":{"type":"object","title":"Mangal","default":{}},"not_included":{"items":{},"type":"array","title":"Not Included","default":[]},"meta":{"$ref":"#/components/schemas/Meta","default":{"product":"","source":"","attribution":"","license":"","engine_rev":"","pack_hash":"","credits":0,"runtime_ms":0,"generated_at":""}}},"type":"object","title":"MilanOut"},"PairIn":{"properties":{"groom":{"$ref":"#/components/schemas/Person"},"bride":{"$ref":"#/components/schemas/Person"},"consent_both":{"type":"boolean","title":"Consent Both","description":"Both people consented to the mapping being shown to each other: one-sided cautions then ship; otherwise they are withheld and counted.","default":false}},"type":"object","required":["groom","bride"],"title":"PairIn"},"PairOut":{"properties":{"rows":{"items":{},"type":"array","title":"Rows","default":[]},"note":{"type":"string","title":"Note","default":""},"withheld":{"type":"object","title":"Withheld","default":{}},"meta":{"$ref":"#/components/schemas/Meta","default":{"product":"","source":"","attribution":"","license":"","engine_rev":"","pack_hash":"","credits":0,"runtime_ms":0,"generated_at":""}}},"type":"object","title":"PairOut"},"PartnerLinesIn":{"properties":{"groom":{"$ref":"#/components/schemas/Person"},"bride":{"$ref":"#/components/schemas/Person"},"lang":{"type":"string","pattern":"^(en|hi)$","title":"Lang","default":"en"},"consent_both":{"type":"boolean","title":"Consent Both","description":"Both people consented to each chart's lines being shown to the other; without it nothing ships and the call says why.","default":false}},"type":"object","required":["groom","bride"],"title":"PartnerLinesIn"},"PartnerLinesOut":{"properties":{"groom":{"type":"object","title":"Groom","default":{}},"bride":{"type":"object","title":"Bride","default":{}},"lang":{"type":"string","title":"Lang","default":"en"},"note":{"type":"string","title":"Note","default":""},"withheld":{"type":"object","title":"Withheld","default":{}},"meta":{"$ref":"#/components/schemas/Meta","default":{"product":"","source":"","attribution":"","license":"","engine_rev":"","pack_hash":"","credits":0,"runtime_ms":0,"generated_at":""}}},"type":"object","title":"PartnerLinesOut"},"Person":{"properties":{"name":{"type":"string","maxLength":80,"title":"Name","description":"Display label only.","default":""},"date":{"type":"string","pattern":"^\\d{2}-\\d{2}-\\d{4}$","title":"Date","description":"DD-MM-YYYY"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","title":"Time","description":"HH:MM (24 h); noon when unknown.","default":"12:00"},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lon":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lon"},"tz":{"type":"number","maximum":14.0,"minimum":-14.0,"title":"Tz","default":5.5},"place":{"type":"string","maxLength":120,"title":"Place","description":"Display label only.","default":""}},"type":"object","required":["date","lat","lon"],"title":"Person","description":"One person's birth. `date` DD-MM-YYYY; `time` HH:MM, 24 h, the wall clock at the birth place;\n`tz` the clock's UTC offset (IST 5.5). The astronomical frame is the engine's own."},"PersonTimed":{"properties":{"name":{"type":"string","maxLength":80,"title":"Name","description":"Display label only.","default":""},"date":{"type":"string","pattern":"^\\d{2}-\\d{2}-\\d{4}$","title":"Date","description":"DD-MM-YYYY"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","title":"Time","description":"HH:MM (24 h) — required here."},"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lon":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lon"},"tz":{"type":"number","maximum":14.0,"minimum":-14.0,"title":"Tz","default":5.5},"place":{"type":"string","maxLength":120,"title":"Place","description":"Display label only.","default":""}},"type":"object","required":["date","time","lat","lon"],"title":"PersonTimed","description":"The dates and the hours need the time of birth; see the module note."},"Place":{"properties":{"lat":{"type":"number","maximum":90.0,"minimum":-90.0,"title":"Lat"},"lon":{"type":"number","maximum":180.0,"minimum":-180.0,"title":"Lon"},"tz":{"type":"number","maximum":14.0,"minimum":-14.0,"title":"Tz","default":5.5},"name":{"type":"string","maxLength":120,"title":"Name","default":""}},"type":"object","required":["lat","lon"],"title":"Place"},"ProductsOut":{"properties":{"products":{"items":{},"type":"array","title":"Products","default":[]},"scopes":{"items":{},"type":"array","title":"Scopes","default":[]},"key_label":{"type":"string","title":"Key Label","default":""},"metering":{"type":"string","title":"Metering","description":"`credits` — calls draw on the key's balance; `contract` — counted, invoiced under the agreement.","default":"credits"},"balance":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Balance","description":"Credits left on this key; null on a contract key."}},"type":"object","title":"ProductsOut"},"SantanaIn":{"properties":{"groom":{"$ref":"#/components/schemas/PersonTimed"},"bride":{"$ref":"#/components/schemas/PersonTimed"},"consent_both":{"type":"boolean","title":"Consent Both","description":"Both people consented to the joint reading; without it nothing ships and the call says why.","default":false}},"type":"object","required":["groom","bride"],"title":"SantanaIn"},"SantanaOut":{"properties":{"groom":{"type":"object","title":"Groom","default":{}},"bride":{"type":"object","title":"Bride","default":{}},"common":{"items":{},"type":"array","title":"Common","default":[]},"highest_en":{"type":"string","title":"Highest En","default":""},"highest_hi":{"type":"string","title":"Highest Hi","default":""},"ceiling_note_en":{"type":"string","title":"Ceiling Note En","default":""},"ceiling_note_hi":{"type":"string","title":"Ceiling Note Hi","default":""},"horizon_years":{"type":"integer","title":"Horizon Years","default":0},"not_included":{"items":{},"type":"array","title":"Not Included","default":[]},"withheld":{"type":"object","title":"Withheld","default":{}},"meta":{"$ref":"#/components/schemas/Meta","default":{"product":"","source":"","attribution":"","license":"","engine_rev":"","pack_hash":"","credits":0,"runtime_ms":0,"generated_at":""}}},"type":"object","title":"SantanaOut"},"SvabhavaIn":{"properties":{"person":{"$ref":"#/components/schemas/Person"},"lang":{"type":"string","pattern":"^(en|hi)$","title":"Lang","description":"The face of the prose; both scripts ride.","default":"en"}},"type":"object","required":["person"],"title":"SvabhavaIn"},"SvabhavaOut":{"properties":{"svabhava":{"type":"object","title":"Svabhava","default":{}},"lang":{"type":"string","title":"Lang","default":"en"},"meta":{"$ref":"#/components/schemas/Meta","default":{"product":"","source":"","attribution":"","license":"","engine_rev":"","pack_hash":"","credits":0,"runtime_ms":0,"generated_at":""}}},"type":"object","title":"SvabhavaOut"},"UsageOut":{"properties":{"key_id":{"type":"string","title":"Key Id","default":""},"label":{"type":"string","title":"Label","default":""},"scopes":{"items":{},"type":"array","title":"Scopes","default":[]},"limits":{"type":"object","title":"Limits","default":{}},"month":{"type":"string","title":"Month","default":""},"day":{"type":"string","title":"Day","default":""},"by_scope":{"type":"object","title":"By Scope","default":{}},"today":{"type":"object","title":"Today","default":{}},"month_total":{"type":"integer","title":"Month Total","default":0},"day_total":{"type":"integer","title":"Day Total","default":0},"weights":{"type":"object","title":"Weights","description":"credits per call, per product","default":{}},"credits":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Credits","description":"{balance, granted, spent, spent_month, spent_today} — null on a contract key"},"credits_month":{"type":"integer","title":"Credits Month","description":"this month's calls × their weights, whatever the metering (the included matches at nothing)","default":0},"credits_today":{"type":"integer","title":"Credits Today","default":0},"included_milan":{"type":"object","title":"Included Milan","description":"{allowance, used, left} — the couples a month whose classical match draws nothing","default":{}}},"type":"object","title":"UsageOut"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"YearsIn":{"properties":{"groom":{"$ref":"#/components/schemas/Person"},"bride":{"$ref":"#/components/schemas/Person"},"years":{"type":"integer","maximum":60.0,"minimum":1.0,"title":"Years","description":"How many calendar years of the pair's weather, from this year.","default":60},"consent_both":{"type":"boolean","title":"Consent Both","description":"Both consented: the per-year inner words then ship; otherwise they are withheld and counted.","default":false}},"type":"object","required":["groom","bride"],"title":"YearsIn"},"YearsOut":{"properties":{"timeline":{"items":{},"type":"array","title":"Timeline","default":[]},"timeline_note":{"type":"string","title":"Timeline Note","default":""},"counts":{"type":"object","title":"Counts","default":{}},"withheld":{"type":"object","title":"Withheld","default":{}},"meta":{"$ref":"#/components/schemas/Meta","default":{"product":"","source":"","attribution":"","license":"","engine_rev":"","pack_hash":"","credits":0,"runtime_ms":0,"generated_at":""}}},"type":"object","title":"YearsOut"}}}}