{"openapi":"3.1.0","info":{"title":"Celestio API","version":"1.0.0","description":"Birth chart calculation and place search for any person, any place worldwide, 1900–2100. For readings, your library and compatibility reports from an assistant, use the MCP server at https://celestio.ai/mcp.","contact":{"email":"support@celestio.ai"}},"servers":[{"url":"https://celestio.ai/api/v1"}],"paths":{"/charts":{"post":{"operationId":"computeBirthChart","summary":"Compute a birth chart","description":"Calculates planets, signs, houses, rising sign and aspects. No account; nothing is stored. readingUrl opens the free written reading on celestio.ai with the details filled in.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Name of the person, e.g. \"Maya\""},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Birth date, YYYY-MM-DD, between 1900-01-01 and 2100-12-31"},"time":{"description":"Local birth time, 24-hour (\"14:30\") or 12-hour (\"2:30 PM\", \"2:30 p.m.\", \"2pm\"). Leave out when unknown: the chart then has no rising sign or houses","type":"string","maxLength":20},"place":{"type":"string","minLength":2,"maxLength":200,"description":"Birth place as \"City, Country\" or \"City, Region, Country\", e.g. \"Sofia, Bulgaria\""},"latitude":{"description":"Optional: exact latitude; with longitude and timeZone it overrides the place search","type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"timeZone":{"description":"Optional IANA zone, e.g. \"Europe/Sofia\"","type":"string","minLength":1,"maxLength":64}},"required":["name","date","place"]},"example":{"name":"Maya","date":"1990-06-15","time":"14:30","place":"Sofia, Bulgaria"}}}},"responses":{"200":{"description":"The chart","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"name":{"type":"string"},"timeKnown":{"type":"boolean"},"houseSystem":{"type":["string","null"]},"place":{"type":"string"},"summary":{"type":"string"},"planets":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"sign":{"type":"string"},"position":{"type":"string"},"house":{"type":"number"},"retrograde":{"type":"boolean"}},"required":["body","sign","position","retrograde"]}},"angles":{"type":"array","items":{"type":"object","properties":{"angle":{"type":"string"},"sign":{"type":"string"},"position":{"type":"string"}},"required":["angle","sign","position"]}},"aspects":{"type":"array","items":{"type":"string"}},"notes":{"type":"array","items":{"type":"string"}},"readingUrl":{"type":"string"}},"required":["name","timeKnown","houseSystem","place","summary","planets","angles","aspects","notes","readingUrl"]}}}},"400":{"description":"The details need fixing; message says how","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"413":{"description":"Body over 16 KiB","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"429":{"description":"Too many charts from this address or overall; see Retry-After","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}}}