{"openapi":"3.1.0","info":{"title":"Vansa API","description":"Vansa is a decision model API: send a state (text or JSON) and typed questions (choice, score, yes/no), get probabilities for every option you define, with no generated text. Endpoint: /v1/systemone. Documentation: https://docs.vansa.org/  Guide for AI agents: https://docs.vansa.org/llms.txt","version":"0.1.0"},"servers":[{"url":"https://api.vansa.org","description":"Vansa API"}],"paths":{"/health":{"get":{"tags":["status"],"summary":"Liveness and model status (503 while loading)","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/models":{"get":{"tags":["models"],"summary":"List the available models (no key needed)","operationId":"list_models_v1_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/me":{"get":{"tags":["keys"],"summary":"Your key's limits and usage today","operationId":"me_v1_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/systemone":{"post":{"tags":["decisions"],"summary":"Answer typed questions about a state","description":"Choice, score and yes/no (noul) questions about a state, answered with probabilities. Guide: https://docs.vansa.org/llms.txt","operationId":"systemone_v1_systemone_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemOneRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request. Body: {\"error\": {\"type\", \"message\", \"param\", \"code\"}}"},"401":{"description":"Missing, invalid, revoked or expired API key"},"404":{"description":"Unknown model (code model_not_found)"},"413":{"description":"Body over the size limit (code request_too_large)"},"429":{"description":"Rate limit or daily quota reached (Retry-After header)"},"502":{"description":"Model server unreachable, restarting or did not answer in time; retry with backoff"},"503":{"description":"Model loading or server busy (Retry-After header)"}},"security":[{"HTTPBearer":[]}]}}},"components":{"schemas":{"SystemOneRequest":{"properties":{"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model id; omit for the default model.","examples":["vansa-3.5"]},"state":{"title":"State","description":"What the questions are about: text, a JSON object, or a list."},"questions":{"additionalProperties":true,"type":"object","title":"Questions","description":"Typed questions keyed by id (choice / score / noul)."},"assets":{"additionalProperties":{"properties":{"type":{"type":"string","enum":["image"]},"format":{"type":"string","enum":["png","jpg","jpeg"]},"data_base64":{"type":"string","description":"The file as plain base64 on one line, without a data: prefix."}},"additionalProperties":false,"type":"object","required":["format","data_base64"]},"type":"object","title":"Assets","description":"Optional images: up to 4 PNG or JPEG files, each keyed by a reference that appears exactly once in the string values of `state` (for example \"image 1\"). Image tokens count as input tokens. See https://docs.vansa.org/#images for the limits."}},"type":"object","required":["state","questions"],"title":"SystemOneRequest"}},"securitySchemes":{"HTTPBearer":{"type":"http","description":"Your API key: Authorization: Bearer vsk_...","scheme":"bearer"}}}}