Jev response format
The Jev response format is the JSON body of a successful evaluation on POST https://api.typesafe.ai/v1/systemone. It echoes a resolved model id, an answers map keyed like your questions, and usage. The HTTP envelope is JSON because HTTP APIs use JSON — the model is not being asked to author that document as a completion. Failures use status + a JSON error body, not this envelope.
This page is for builders wiring TypeSafe Jev (System One) into agents, routing, or evals. jev.pro is an independent unofficial field guide — not affiliated with TypeSafe AI. We do not sell or issue keys. Confirm shapes on docs.typesafe.ai/api.
Successful body
{
"model": "jev-1.13.0",
"answers": {
"is_urgent": { "type": "noul", "noul": 0.95 }
},
"usage": { "input_tokens": 296, "output_tokens": 20 }
}
answers is complete for the questions you sent. There is no cursor of leftover options — pagination, if you need it, is over your rows. The response Content-Type is JSON, matching the request; see content types if you expected NDJSON streams or multipart parts.
Answer variants
Noul: type, noul. No confidence. 0 = no, 1 = yes.
Choice: type, choice, probabilities, confidence.
Score: type, score, legend, probabilities, confidence.
The official quick-start sample (Stripe ticket) shows department.choice = "technical", frustration.score = 1.0, is_urgent.noul = 1.0. Those values are their illustration for that state, not a benchmark. Question ids are echoed as keys; they were not sent to the model.
The official confidence page describes confidence as derived from the Choice/Score distribution. You may ignore that field and compute another statistic from probabilities. Do not read .confidence on a Noul.
Usage
Billable quantity is input tokens on the public price list (vendor claim: $0.042 / million input tokens, output free). Log both input and output for debugging; do not assume output is charged. SDKs also expose convenience maps such as response.nouls in Python. HTTP clients should read answers.
Production notes
- Log the resolved
model. Sendingjev-latestdoes not mean this field staysjev-latest. On our snapshot,jev-latestandjev-previewresolve tojev-1.13.0. - Persist the distribution if humans will review later. There is no
rationalefield. - Schema-safe ≠ factually correct. A 0.98
noulis still a model judgment on the text you sent. - Do not
json.loadsa chat completion after a Jev call and call that “the response format.” You are on the wrong endpoint. - Inventory titles that look like extra read APIs (search, status, explain) are patterns. Search still means you already have passages — search endpoint.
See also
- API hub — evaluation contract versus pattern pages
- Request format — required
model,state,questions - Confidence vs probability — when
confidenceexists - Response schema notes — field-level map
FAQ
Why is model a versioned id when I sent an alias?
Aliases resolve. Log the id you actually got.
Where is the rationale field?
There isn’t one. Persist the distribution — explain pattern.
If I json.loads a completion after a Jev call?
You are on the wrong endpoint. See vs JSON mode.
Does usage appear on 422?
Do not assume it. Meter from successful calls and the vendor invoice.
What this page does not claim
- Official TypeSafe status, logos, or support.
- That jev.pro sells, issues, or proxies API keys.
- Extra first-party HTTP routes beyond
POST /v1/systemoneandGET /v1/modelsunless the API reference lists them. - Invented latency SLOs, search volume, or unofficial prices. Launch-post 70ms–500ms figures are vendor claims.
- That a schema-constrained answer is automatically factually correct.
Disclaimer
This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai. Never treat jev.pro as TypeSafe official documentation. We do not sell, issue, or proxy API keys.