API reference · contract snapshot
HTTP API
This static contract snapshot describes documented routes and is not generated from deployed handlers. the OpenAPI document at /openapi.json is the machine-readable reference.
POST/v1/systemone
Submit up to three text questions with s1-pro, or one with s1-fast and s1-vision. Exceeding the model limit returns non-retryable HTTP 400 request_limit_exceeded; the service never silently drops or splits questions. Request fields: model, state, questions.
Headers: bearer API key, Content-Type: application/json, optional S1-Region: eu|global, optional Idempotency-Key.
POST/v1/multimodal
Submit one typed question plus validated PNG, JPEG or WebP image data where the selected model supports images. Exceeding the model question limit returns non-retryable HTTP 400 request_limit_exceeded. Current candidate limits and validation status are listed in the source summary; for images use s1-vision (exactly one image, see the image quickstart).
GET/v1/models
Return model cards, supported question types and modalities, prices, and tier availability from the live registry.
GET/models JSON compatibility alias
Alias on the API host for the legacy Jev Router JSON catalogue. Check the response against your client before relying on it.
GET/v1/usage
Account-scoped usage receipts expose integer charge_nanos values and currency. The route requires a signed-in dashboard session; its exact authentication and host setup are not published. This static page does not call the account API.
GET/v1/balance
Account balance uses integer available_nanos, reserved_nanos, credited_total_nanos and currency. The route requires a signed-in dashboard session; its exact authentication and host setup are not published. This static page does not call the account API.
Request limitsMaximum input per request: s1-fast, s1-pro and s1-vision accept up to 4,096 (s1-fast), 32,000 (s1-pro) and 32,000 (s1-vision) input tokens after tokenization with the model’s own tokenizer, counting the state, all questions and answer options, and for s1-vision the image. A larger request is rejected with HTTP 400 invalid_request; it is never truncated and not billed. s1-llm-auto-router reads at most 512 tokens (the first 600 characters of context if any, then the request), ignores the rest and bills only what it reads. Tested on the production API on 6 October 2026 (measurements; per-model table). State is at most 16 KiB (s1-fast) or 250 KiB (s1-pro, s1-vision) of serialized JSON and the request body at most 6 MiB. Choice-option limits vary by profile. Images: s1-vision only, exactly one PNG, JPEG or WebP image (data URL or public HTTPS URL, at most 4 MiB decoded and 2,000,000 pixels); s1-fast and s1-pro reject images with HTTP 422 unsupported_modality. Original launch bounds (27 September 2026).
Approved rates are listed on the pricing page. Successful billable requests include exact charge units in S1-Charge-Nanos and S1-Currency. Charges use integer nanos with no per-request rounding.
Answer types
Typed output
Answers preserve the question keys and the question type. The contract requires probabilities for choice and score answers.
| Type | Answer field | Meaning |
|---|
noul | noul | Probability of true, between 0 and 1. |
choice | choice, confidence, probabilities | Chosen option ID and distribution over the criteria. |
score | score, confidence, legend, probabilities | Probability-weighted expected rubric level; score may be fractional. |
Read the static OpenAPI contract snapshot: OpenAPI 3.1 JSON. Compatibility is limited to the shared state and questions structure. Provider, model IDs, tiers, authentication, billing, limits and metadata are Decision Models extensions. Byte-for-byte compatibility is not claimed pending an integration test against TypeSafe’s documented schema.
https://api.system1models.ai keeps working.