{"openapi":"3.1.0","info":{"title":"Hesperan API","version":"1.0.0","description":"Typed judgments with probabilities. Billed per answered question from a plan, or per input token from a prepaid balance."},"servers":[{"url":"https://api.hesperan.com"}],"security":[{"bearer":[]}],"paths":{"/v1/systemone":{"post":{"summary":"Answer typed questions about a state","operationId":"systemone","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemOneRequest"}}}},"responses":{"200":{"description":"Answers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemOneResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Plan allowance used up or balance too low","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request body larger than 256 KB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded; see Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Model temporarily unavailable; not charged","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/health":{"get":{"summary":"Service health","security":[],"responses":{"200":{"description":"Healthy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"API key from the console, `hsp_…`"}},"schemas":{"SystemOneRequest":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"state":{"default":"","anyOf":[{"type":"string"},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"array","items":{}}]},"questions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"choice"},"instructions":{"type":"string"},"criteria":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["type","instructions","criteria"]},{"type":"object","properties":{"type":{"type":"string","const":"noul"},"instructions":{"type":"string"},"criteria":{"type":"object","properties":{"true":{"type":"string"},"false":{"type":"string"}}}},"required":["type","instructions"]},{"type":"object","properties":{"type":{"type":"string","const":"score"},"instructions":{"type":"string"},"criteria":{"type":"array","items":{"type":"string"}}},"required":["type","instructions","criteria"]}]}}},"required":["questions"]},"SystemOneResponse":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"model":{"type":"string"},"answers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"choice"},"choice":{"type":"string"},"probabilities":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}}},"required":["type","choice","probabilities"]},{"type":"object","properties":{"type":{"type":"string","const":"noul"},"noul":{"type":"number"}},"required":["type","noul"]},{"type":"object","properties":{"type":{"type":"string","const":"score"},"score":{"type":"number"},"probabilities":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}}},"required":["type","score","probabilities"]}]}},"usage":{"type":"object","properties":{"input_tokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["input_tokens"]},"timing_ms":{"type":"number"}},"required":["model","answers","usage","timing_ms"]},"Health":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"status":{"type":"string","const":"ok"},"model":{"type":"string"}},"required":["status","model"]},"Error":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}