API
Endpoint, request shape, SDKs, aliases, and the first working call.
Endpoint, request shape, SDKs, aliases, and the first working call.
POST https://api.typesafe.ai/v1/systemone with a bearer key, jev-latest, a state string, and one Noul.
One evaluation URL: POST /v1/systemone. List aliases with GET /v1/models. Same host: api.typesafe.ai.
Required fields: model, state, questions. Each question has type, instructions, and type-specific criteria.
Responses echo a resolved model id, an answers map keyed like your questions, and token usage.
jev-1.13.0 is the versioned model. jev-latest and jev-preview currently resolve to it. Pin versions when thresholds matter.
pip/uv install typesafe-sdk. TypeSafeClient and AsyncTypeSafeClient read TYPESAFE_API_KEY and default to jev-latest.
npm install @typesafe-ai/sdk on Node 20+. TypeSafeClient.systemOne infers answer types from your questions.
Official skill for Claude Code and other agents: batch questions, use primitives, stop one-call-per-question habits.
401, 422, 429, and 529 are the documented HTTP failures. Official SDKs back off; raw HTTP must do the same.
Developer field table for state, model, and questions — including structured instructions and jev-1.13 vs jev-1.13.0.
Learn the documented Jev response schema: resolved model, answers map, and token usage.
Unofficial field map of Jev answers: noul, choice, score, usage, and the resolved jev-1.13.0 model field.
JSON error body plus a symptom tree. 402 and customer_verification are channel callouts, not a cloned per-status IA.
Two axes: path /v1/systemone and the model field (jev-1.13.0 vs moving aliases). Pin weights when floors exist.
Published Jev rate limits: 250,000 tokens/second and 1,200 requests/minute. 429 when exceeded; limits can change.
Configure Jev client timeouts via official SDKs. The HTTP error table does not define a timeout status code.
Retry Jev 429 and 529 with exponential backoff. Official SDKs implement RetryPolicy; do not retry 401 or 422.
Stripe-style Idempotency-Key headers are not described on the System One page we used. Implement uniqueness in your database.
answers is a complete map for the questions you sent. There is no cursor of leftover options or pages.
Documented evaluation calls use Content-Type application/json. Models are text only — no multipart or audio.
Choice and Score answers include probabilities and confidence. Noul answers include noul only.
A Choice option may be named like an action. TypeSafe still only returns a label. Your code calls the API — or does not.
Ticket id, tenant, and locale belong in state if questions need them — billed as input, and unused fields can distract jev-1.13.
Put passages and records in state. Jev returns typed judgments, not a citation list field.
There is no documented needs_human_review on the evaluation response. You compute hold from confidence, Noul bands, and policy.
OpenTelemetry traceparent or X-Request-Id is your observability. Log it beside response.model and usage.
POST /v1/systemone field table, jev-1.13 vs jev-1.13.0, and what the response model id means. Cite docs.typesafe.ai only.
Classification is a Choice (max 255) or a handful of Nouls on POST /v1/systemone — not a separate /v1/classify.
type score with a 2–10 level array returns a weighted score, legend, probabilities, and confidence. Same POST.
Intent routing is a documented pattern: classify, then send work to code, an LLM, or a human. No /v1/route.
Search and re-rank cookbooks assume you already have candidates. Jev scores them. No /v1/search index.
Date-extraction cookbooks keep regex and arithmetic in code. Jev picks among spans. No /v1/extract.
System One models are documented as not writing explanations. Persist the distribution; do not invent /v1/explain.
Citation check is a cookbook pattern: Choice/Noul on whether context supports a claim. No /v1/cite route.
SDK methods are system_one / systemOne. Gateway writeups may say evaluate — still one TypeSafe evaluation POST.
TypeSafe already validates the body (422). Semantic validation is a Noul or Score you write — not /v1/validate.
Moderation is the guardrails cookbook: hazard Nouls and severity Scores. You block. No /v1/moderate.
Decision status lives in your database after a synchronous evaluation (or your worker). No TypeSafe /v1/status.
TypeSafe does not document a public Jev health route — probe via GET /v1/models or a canary evaluation.
Replay means you kept state, questions, and the model pin, then you POST /v1/systemone again. No /v1/replay.
No documented Jev feedback HTTP route. Store reviewer labels in your system; Jev is not fine-tuned per customer.
Policy is your rules on Jev answers. There is no documented policy HTTP endpoint on api.typesafe.ai.
TypeSafe documents packing many questions into one call. Multi-row batching is your worker — no /v1/batch.
Jev has no documented streaming evaluation endpoint. Use the synchronous System One JSON response.
Submit a job to your queue; the worker calls POST /v1/systemone. No documented TypeSafe jobs API.
There is no documented CSV ingest on api.typesafe.ai. Loop rows yourself; isolate 422s; pin the model.
Verify Stripe/GitHub/your-bus HMACs yourself. Outbound Jev calls use a bearer API key, not a TypeSafe webhook signature.
Integrate official TypeSafe SDKs: typesafe-sdk (Python) and @typesafe-ai/sdk (JavaScript).
Test Jev in the Playground, then with curl/SDK fixtures. This site cannot run your tests or accept a key.