Models · System One

Your First Jev Call, Field by Field

A charcoal stone block with a round, a square and a slot-shaped opening, and three matching ivory plugs beside it, one amber
Original abstract editorial artwork inspired by typed shapes and matching sockets.

TypeSafe AI opened Jev to everyone on September 20, 2026, with no waitlist. The documentation went public alongside it, which means the interesting question is no longer whether you can try it but what the call actually looks like.

This is a walk through that call: what you send, what comes back, and the published limits worth knowing before you design a system around it. Ciyo does not run Jev — it generates no image and no video and appears in neither of our model registries — so nothing here is a product announcement. It is a read of a newly public API by people who care about what sits inside creative and agent tooling.

The call is one POST

Everything goes to a single endpoint: `POST https://api.typesafe.ai/v1/systemone`, with a bearer key in the Authorization header and JSON in the body.

The body has three required fields. `state` is the thing to be judged — a string, a JSON object, or an array of text values. `model` names the model, for example `jev-latest`. `questions` is a map from your own question ids to typed questions.

The response mirrors it. `answers` is a map keyed by the same question ids, and `usage` reports input and output token counts. Because output tokens are billed at zero, that usage block is mostly a record of how much state you sent.

Two cards describing what a System One request sends and what the response returns
Fields from the TypeSafe AI HTTP reference, read on September 21, 2026. Diagram by Ciyo.

Three question types, and how to tell them apart

A Choice picks one option from a list you declare. You supply `instructions` and a `criteria` map from option names to their descriptions, with a documented maximum of 255 options. It returns the chosen option, a probability for each option, and a confidence value.

A Score places the state on a rubric of between two and ten levels, supplied as an array. It returns a score that may land between levels, the probabilities, a legend and a confidence value.

A Noul answers one true-or-false statement and returns a single number from 0 to 1. Optional `criteria` let you describe what true and what false look like. It is the cheapest thing to reach for, and the one people over-use.

The practical difference between Choice and Score is not obvious from the documentation, and it is worth running both on the same state before you commit — a score plus a threshold in your own code and a choice between explicit options are not the same decision, even when they produce the same answer most of the time.

Every question is judged against the same state

This is the design idea that makes the shape of the API make sense. You send the state once, and every question in the map is evaluated in parallel and in isolation against it. Questions do not see each other's answers.

That has two consequences. Adding a question is cheap, because the cost that dominates a call is sending the state, not answering. And chaining is yours to do: if question two should only run when question one says yes, that logic lives in your code, on the answers you got back.

The limits to design around

Four of these are published by TypeSafe. The fifth comes from an independent evaluation and is the one most likely to bite you in production.

A table of documented limits: 255 options per choice, 2 to 10 score levels, text-only state, English-primary language, and an out-of-scope finding
The first four are from the TypeSafe documentation, read September 21, 2026. The fifth is a measurement from the pre-registered priorbench/jev evaluation of September 20, 2026.

A first call worth making

Do not start with the decision you actually want to automate. Start with a decision you have already labelled by hand, because the only interesting number on day one is agreement with your own labels.

Take fifty rows you have judged, send each as state, and ask the question you already answered. Keep the confidence value with every answer. You now have an agreement rate and a calibration curve for your own data, which is worth more than any published benchmark.

The shape of a first request
POST https://api.typesafe.ai/v1/systemone
Authorization: Bearer $TYPESAFE_API_KEY

{
  "model": "jev-latest",
  "state": { "subject": "...", "body": "...", "sender": "..." },
  "questions": {
    "urgent": { "type": "noul", "instructions": "This message needs a reply today." },
    "topic": { "type": "choice", "instructions": "Which queue should this go to?",
      "criteria": { "billing": "...", "bug": "...", "none_of_these": "Nothing above fits." } }
  }
}

What it will not do

It writes nothing. No summary, no rewritten sentence, no code, no alt text, no image. If the output you need is prose, this is the wrong tool and an ordinary language model is the right one.

It takes text only. The documentation says state must be a string, a JSON object or an array of text values, and that images, audio and video are not supported yet.

It is strongest in English. The documentation says English is the primary training language and that other languages, including CJK scripts, are accepted with lower accuracy — which matters if your support queue is not English.

And it will not tell you that none of your options fit. Declare that option yourself.

First-call questions

Do I still need a waitlist invitation?

No. TypeSafe announced on September 20, 2026 that Jev is available to everyone with no waitlist, through console.typesafe.ai.

Which question type should I start with?

A Noul, for a decision you have already labelled by hand. It returns one number, which makes the first agreement check trivial to score.

How many questions can I put in one call?

The documentation does not publish a cap. It does say questions are evaluated in parallel against the same state, and one independent run put 800 judgements in a single call.

Can Ciyo use Jev?

No. Jev produces no image and no video, and it appears in neither of Ciyo's model registries. We write about it because it is part of the machinery behind agent tooling, not because we run it.

Keep reading

Ciyo writes about the models behind creative and agent tooling, and tests the ones it can run.