TypeSafe's decision model Jev: send a state and a map of typed questions, get an answer with probabilities for each. $0.05 per 1M input tokens, output free. POST /v1/systemone with exactly TypeSafe's request and response.
Jev does not generate text — there are no messages, no prompt and no streaming. A request carries three things: model, state (a string, JSON object or array describing the situation) and questions (a map keyed by your own ids, each with a type). The response is keyed the same way. An OpenAI SDK pointed at this endpoint will not work; use TypeSafe's official SDK with base_url and the key changed, or plain HTTP.
This is a request we actually sent on 2026-09-22: one support ticket, two questions — which queue, and whether it is urgent.
curl https://api.apimodels.app/v1/systemone \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev",
"state": "Support ticket: I was charged twice for my September invoice and need one of the payments refunded.",
"questions": {
"queue": {
"type": "choice",
"instructions": "Which support queue should handle this ticket?",
"criteria": {
"billing": "Payments, invoices, charges and refunds",
"bug": "Something in the product is broken",
"account_access": "Login, password or permission problems",
"other": "Anything else"
}
},
"urgent": {
"type": "noul",
"instructions": "The customer needs a response within the hour."
}
}
}'
# 385 input tokens billed at $0.05 per 1M = $0.00001925; output is free{
"model": "jev-1.13.0",
"answers": {
"queue": {
"type": "choice",
"choice": "billing",
"confidence": 1.0,
"probabilities": { "billing": 1.0, "bug": 0.0, "account_access": 0.0, "other": 0.0 }
},
"urgent": { "type": "noul", "noul": 0.29 }
},
"usage": { "input_tokens": 385, "output_tokens": 63 }
}| Field | Required | Type | Description |
|---|---|---|---|
| model | Yes | string | jev (jev-latest / jev-preview are also accepted) |
| state | Yes | string | object | array | The situation to judge: text, a JSON object or an array. The upstream budget is 64k tokens per request. |
| questions | Yes | object | Keyed by your own question ids; each value is a question with a type; at least one |
| questions.<id>.type | Yes | string | choice / score / noul |
| questions.<id>.instructions | Yes | string | The question: what to choose, what to score, which statement to judge |
| questions.<id>.criteria | No | object | array | choice: "option: description" pairs, up to 255; score: 2–10 levels, one description each. Not used by noul. |
Pick one of up to 255 described options. Returns the option, a confidence and a probability per option. Routing, classification and tagging.
Place the state on a 2–10 level scale you describe. Returns the level, a confidence and a probability per level. Lead scoring, severity, satisfaction.
The probability that a statement is true, as a number in 0–1. Moderation flags, feature gating, escalation.
Every question is evaluated against the same state in parallel, so adding questions barely changes latency.
| Item | apimodels | TypeSafe list |
|---|---|---|
| Input, per 1M tokens | $0.05 | $0.042 |
| Output | Grátis | Grátis |
| Per-call minimum | None — billed on the exact input_tokens | — |
No. It has its own endpoint, POST /v1/systemone, where you send a state and a map of typed questions and get answers with probabilities back. Use TypeSafe's official SDK with our base URL, or plain HTTP as in the cURL example.
Only the input tokens the upstream reports, at $0.05 per million; output is free and there is no per-call minimum. Failed calls are not charged.
Three: choice picks one of up to 255 described options, score places the state on a 2–10 level scale you describe, and noul returns the probability that a statement is true. All questions in one request are evaluated in parallel against the same state.