Models, aliases, pricing, rate limits, context
TL;DR One current model:
jev-1.13.0, reached by the aliasesjev-latestandjev-preview(both currently resolve tojev-1.13.0). $42 per Btok / $0.042 per Mtok on input tokens only — output tokens are free. Limits: 250,000 tokens/second and 1,200 requests/minute, both returning429. Context: 64k tokens per request, 32k forstateplus the longest single question. Text input only.
Current models
| Jev 1.13 | jev-1.13.0 |
|---|---|
| Price (per Btok / per Mtok) | $42 / $0.042 |
| Rate limits | 250,000 tokens per second / 1,200 requests per minute |
| Context length | 64k tokens per request; 32k tokens for state plus the longest question |
| Input | Text only. String, JSON object, or array of text values. No image, audio, or video input. |
(Table reproduced from raw/docs/models.md.) Every model is served by the same endpoint, POST /v1/systemone; the request's model field selects which one handles the call. See HTTP API: POST /v1/systemone and GET /v1/models.
Aliases
| Alias | Points to | Meaning (verbatim) |
|---|---|---|
jev-latest |
jev-1.13.0 |
"The most recent stable, official release. The default in our client SDKs, and the name the examples in these docs use." |
jev-preview |
jev-1.13.0 |
"The most recent release, whether or not it is an official one. Moves ahead of jev-latest when a preview build is available." |
Warning from raw/docs/models.md: "jev-preview currently points to the same model as jev-latest. There is no preview build available right now."
Alias behavior:
- An alias moves when a new release ships, so the answers behind it can change without a change on your side.
- The response's
modelfield reports the versioned ID that answered, so you can log which model produced each result. - If you have tuned confidence thresholds against a specific version, pin that version's ID instead of the alias and move to the new one on your own schedule.
jev-latestis the SDK default (DEFAULT_MODEL = 'jev-latest'in the Python SDK;TYPESAFE_DEFAULT_MODELdefaults tojev-latestin both SDKs — see TYPESAFE_* environment variables across SDKs).
Pricing
| Item | Value | Source note |
|---|---|---|
| Price per Btok (billion tokens) | $42 | raw/docs/models.md |
| Price per Mtok (million tokens) | $0.042 | raw/docs/models.md |
| Billed on | Input tokens only | "Charged per input token." |
| Output tokens | Free | "Output tokens are free." Restated in raw/site/openapi.json: "Output tokens are currently free of charge." |
| Unit definitions | "A Btok is a billion tokens and an Mtok is a million tokens." | raw/docs/models.md |
| Where counted | usage.input_tokens / usage.output_tokens in the response |
raw/site/openapi.json (Usage) |
Cross-check: the consistency cookbooks encode TYPESAFE_PRICE = (0.042, 0.00) — dollars per 1M input tokens and per 1M output tokens — labelled "Historical TypeSafe rate, as of 2026-08" (raw/docs/cookbooks__consistency_choice_cookbook.md, raw/docs/cookbooks__consistency_noul_cookbook.md). That matches $0.042/Mtok input and free output.
Currency and billing mechanics live in the MCA: Fees are in US dollars, usage is metered against TypeSafe-managed Credits, and "the rate at which Credits are consumed may vary based on account settings, including the model used" (raw/site/typesafe-ai-legal_mca.txt §8). See Legal: MCA, DPA, privacy, data retention.
Rate limits
| Limit | Value | On breach |
|---|---|---|
| Throughput | 250,000 tokens per second | 429 Too Many Requests |
| Request rate | 1,200 requests per minute | 429 Too Many Requests |
Verbatim: "Measured in tokens per second and requests per minute. A request over either limit returns 429 Too Many Requests. Our client SDKs retry with backoff by default and honor the retry-after header when the response carries one."
Warning — rate limits are adjusting dynamically (verbatim from raw/docs/models.md): "We are serving a very large volume of demand, and the limits above can change without notice while we do, as upcoming large GPU deals land and we let in more users. Once things settle down more, we'll be able to offer more stable limits. Higher limits are available on custom and enterprise plans. Contact sales@typesafe.ai."
Practical consequence: do not hardcode 250,000 tok/s or 1,200 rpm as a client-side budget; implement backoff and treat 429 as normal. Full retry semantics in HTTP status codes, rate limits, retry semantics.
Context length
| Budget | Limit | Covers |
|---|---|---|
| Per request | 64k tokens | state plus all questions combined |
| Per question | 32k tokens | state plus the single longest question |
Mechanism (verbatim): "Jev ingests the state once and evaluates every question against it in parallel. The 64k budget covers the state plus all questions combined; the 32k budget applies to the state plus the single longest question."
Because state is counted in both budgets, a large state shrinks both the per-question headroom and the number of questions that fit. Packing many questions into one request is the Speculative fan-out pattern; accuracy changes as state grows are documented in Jev 1.13 jaggedness: known failure modes.
Input modality
Text only: "String, JSON object, or array of text values. No image, audio, or video input." Verbatim guidance: "Jev evaluates natural-language text. Pre-process non-text inputs (images, audio, video, binaries) into text or structured fields before sending them as state." See State: what you send Jev.
Language support
English is the primary training language and where accuracy is currently best. Other languages, including CJK scripts, are handled but not equally well; raw/docs/models.md advises testing on your own content before relying on Jev for a non-English workload and paying close attention to Confidence vs probability when routing.
Customizing Jev
Jev is not fine-tuned or LoRA-adapted with customer data; it is trained with RLCD to return calibrated decisions, and the same weights serve every account (raw/docs/models.md). You shape answers through the request:
- proprietary content, records, and reference material go in
state(State: what you send Jev); - domain rules and boundary cases go in each question's
instructionsandcriteria(Structured instructions, options, levels, criteria, How to build software with System One); - broad judgments are decomposed into atomic questions and combined in code (Composite scoring, Cookbook: Autoresearch feature discovery).
Data handling
"Jev is not trained on customer requests or responses." Zero data retention (ZDR) is offered for enterprise customers. Details and citations in Legal: MCA, DPA, privacy, data retention.
Listing models
GET /v1/models returns the names your account can send in the model field, with a description and release date for each. It currently lists the aliases; versioned IDs such as jev-1.13.0 are accepted by the model field whether or not they appear in the list.
| Response field | Type | Required | Description |
|---|---|---|---|
models |
array |
Yes | One entry per model or alias. |
models[].name |
string |
Yes | The model ID or alias, as accepted by the model field. |
models[].description |
string |
Yes | What the model is for. |
models[].release_date |
string |
Yes | When the model or alias was released (YYYY-MM-DD). |
curl https://api.typesafe.ai/v1/models \
-H "Authorization: Bearer $TYPESAFE_API_KEY"
from typesafe_sdk import TypeSafeClient
with TypeSafeClient() as client:
for model in client.models.list().models:
print(model.name, model.release_date, model.description)
import { TypeSafeClient } from "@typesafe-ai/sdk";
const client = new TypeSafeClient();
const models = await client.models.list();
for (const model of models) {
console.log(model.name, model.release_date, model.description);
}
(All three snippets verbatim from raw/docs/models.md. Note the shape difference between the SDKs: the Python call returns an object with a .models list, the JS call returns an iterable of models directly.)
The OpenAPI example release date for jev-latest is 2026-09-15 (raw/site/openapi.json), which matches the Jev launch date.
Deprecation policy
No formal deprecation or end-of-life policy is stated in raw/docs/models.md. What the sources do say:
- Aliases move silently when a new release ships; pin a versioned ID if you need stability (raw/docs/models.md).
- The MCA §2.5 (Updates): TypeSafe "may from time to time update the Services," which "may result in the API's becoming incompatible with a Customer Application," and TypeSafe "will use commercially reasonable efforts to provide advance notice of any updates to the API that TypeSafe believes will materially and adversely impact Customer's ability to integrate" (raw/site/typesafe-ai-legal_mca.txt).
- Precedent for a hard break: the preview endpoint
/preview/evaluationwas replaced outright by/v1/systemone, and the oldtypesafe-clientPython package "no longer works against the API" (raw/docs/migrating-to-v1.md). See Migrating from /preview/evaluation to /v1/systemone.
Contacts
| Need | Contact | Source |
|---|---|---|
| Higher rate limits, custom/enterprise plans | sales@typesafe.ai | raw/docs/models.md |
| Zero data retention (ZDR) | privacy@typesafe.ai | raw/docs/legal.md |
| Support | support@typesafe.ai | raw/site/typesafe-ai-legal_mca.txt §3 |
Related
- HTTP API: POST /v1/systemone and GET /v1/models — how to send
modeland read it back - HTTP status codes, rate limits, retry semantics — what to do on
429and529 - Legal: MCA, DPA, privacy, data retention — training, retention, credits
- Jev (model) — the model as an entity
- Jev 1.13 jaggedness: known failure modes — known failure modes of this version
- Speculative fan-out — packing many questions into one request
- State: what you send Jev — what
statemay contain
Sources
- raw/docs/models.md (https://docs.typesafe.ai/models)
- raw/site/openapi.json (https://docs.typesafe.ai/openapi.json)
- raw/docs/api.md (https://docs.typesafe.ai/api)
- raw/docs/legal.md (https://docs.typesafe.ai/legal)
- raw/site/typesafe-ai-legal_mca.txt (https://typesafe.ai/legal/mca)