Jev is TypeSafe AI's first System One model (15 September 2026). Official spelling is Jev, not Jeva. It is not a chatbot. You send a state plus typed questions and get structured answers your code can branch on.
The documented model field is jev-latest on POST https://api.typesafe.ai/v1/systemone.
Access is early access: join the waitlist on typesafe.ai, then take an API key from the TypeSafe dashboard.
1. Confirm you need Jev, not an LLM
Use Jev when the job is a decision inside software: route this ticket, score this message, yes/no this guardrail.
Use an LLM (GPT-6 Astra, Claude Fable, Gemini 3.8 Flash) when the job is prose, code, or a conversation.
JSON mode and Structured Outputs on an LLM still generate text that happens to parse. Jev does not generate chat. Schema matching is guaranteed for Choice options you declared. That is not a claim the selected option is factually correct. See Structured Outputs vs JSON Mode.
TypeSafe lists $0.042 per million input tokens ($42 per billion) with output tokens unmetered. Homepage workflow copy (193.6× / 444.6× vs LLM wrappers) is TypeSafe's own eval against GPT-6 Astra and Claude Fable 5.1 — not a public gold-set bake-off.
2. Try the Playground first
Official quickstart:
- Open the Playground from the TypeSafe docs and log in.
- Paste ticket text as the state.
- Add a Noul: "Does this message express urgency?"
- Add a Choice for the team and a Score for frustration. All three run in one call.
Do not start by wrapping GPT in a JSON schema for this job.
3. Make the first API call
curl -X POST https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"state": "Hi, I have been trying to connect my Stripe account for 3 days and it keeps failing. I am losing sales. Please help ASAP.",
"model": "jev-latest",
"questions": {
"department": {
"type": "choice",
"instructions": "Which team should handle this",
"criteria": {
"billing": "Payment or subscription issues",
"technical": "Bugs or integration problems",
"sales": "Pricing or account questions"
}
},
"is_urgent": {
"type": "noul",
"instructions": "The message conveys urgency or time-sensitivity"
}
}
}'
The Choice answer includes choice, a full probabilities map, and confidence. Noul returns a 0–1 probability. Score returns a weighted value across your rubric levels.
Official Python SDK (Python >= 3.10): pip install typesafe-sdk. TypeSafeClient() reads TYPESAFE_API_KEY and defaults to jev-latest.
4. Write atomic questions, compose in code
Official intro: one well-scoped question per field. Mix Choice, Score, and Noul in one request. Questions run in parallel and in isolation against the same state.
Choice accepts up to 255 options. Add other or none of the above when the list might not cover the input. Do not ask "rate this startup pitch" as one blob — split market, feasibility, and differentiation, then combine scores in your code.
Use confidence as a gate: act above a threshold, escalate below it. Schema-valid is not "the ticket is about billing."
Handle 401 (bad key), 422 (malformed question), 429 / 529 (backoff). Official SDKs retry by default.
5. What Jev will not do
Jev does not generate chat, code, or free-form text. It will not replace Gemini 3.8 Flash or GPT-6 Astra for writing. The Doom demo on the launch post uses structured game state, not pixels.
Official sources
- Quick start: https://docs.typesafe.ai/introduction/quickstart.md
- Introduction: https://docs.typesafe.ai/introduction.md
- API reference: https://docs.typesafe.ai/api.md
- Choice primitive: https://docs.typesafe.ai/primitives/choice.md
- Launch post: https://typesafe.ai/blog/introducing-system-one-models-and-jev