Jev access: how to get a key and make your first call
You can get Jev access three ways: TypeSafe's API-key dashboard, a supported gateway, or a separate key from Jagent after sign-in. Jev is a closed managed API with no download, no open weights and no self-hosting, so every route ends in a key.
Access & quickstart
Jev access today: a key from this site
Sign in, get a key, make a real call. 5 credits a month, no card, no queue. Our /api/v1/systemone mirrors the official request and response shapes field for field — when your own key arrives you change the host and the token and nothing else.
Jev access from TypeSafe: your own key
Call TypeSafe directly with its own key. The current official quick start points to its console dashboard; check your account for availability, rate limits and billing.
Open TypeSafe dashboard →Or skip both: the widget below calls the live API with no signup at all.
Score — a graded judgement
honestly whoever designed this checkout should be fired, worst thing I've used all year
Asking: How harmful is this content?
Level
Benign (0.33)
Confidence
0.67
1. Get Jev access from TypeSafe: from the waitlist to the key dashboard
TypeSafe's current quick start directs you to its console playground and API-key dashboard. It does not describe a mandatory waitlist. Check your account for current access and billing; a Jagent key is a separate credential for this site.
Open the TypeSafe key dashboard, or try our browser playground before choosing a provider. Access instructions checked on October 4, 2026.
2. Get Jev access through a gateway, with no queue
Jev is already resold through gateways you may use. Their billing, rate limits and privacy terms apply, not TypeSafe's:
TypeSafe AI (first-party)
Official API. Get a key from the console dashboard; check your account for current availability.
OpenRouter
Live as `typesafe/jev-1.13` at $0.042/M input, $0 output, 32K context, ~99.8% availability. Note it will not show up in OpenRouter's default model list — see the gotcha below.
Vercel AI Gateway
Also carries it, as model id `typesafe-ai/jev`, at the same $0.042/M input, $0 output.
Cloudflare AI Gateway
Announced by Cloudflare as live and callable from Workers. Third-party announcement rather than TypeSafe documentation — verify the model id against Cloudflare's own catalogue before you build on it.
Gateway or direct: we measured both
Same state, same questions, 12 calls to each route on 2026-09-20, alternating so both saw the same network at the same minute:
| Route | p50 | p90 | Range | Reports cost? |
|---|---|---|---|---|
| First-party api.typesafe.ai | 313ms | 423ms | 257–902 | no |
| OpenRouter /api/alpha/decisions | 734ms | 1739ms | 691–2479 | yes |
Questions scale the same way on both routes (measured). The differences worth knowing, none of them documented anywhere we could find:
- Model id differs: the first-party API answers as jev-1.13.0, OpenRouter as typesafe/jev-1.13-20260917. Pin the one your transport actually returns.
- The first-party API reports input_tokens and output_tokens but NOT cost. The cost field in our measured data comes from OpenRouter, which adds it. Direct, you compute spend from tokens and the rate card yourself.
- GET /v1/models lists only jev-latest and jev-preview, but jev-1.13.0 is accepted as a model id anyway. jev-1.13 without the patch number is rejected — "Unknown model". Both aliases currently resolve to jev-1.13.0.
Response shapes match exactly. Score returns the same 0..n-1 weighted mean with a legend and index-keyed probabilities, and Noul returns { type, noul } with no confidence field on either path.
3. With Jev access in hand, make your first request
The endpoint is POST https://api.typesafe.ai/v1/systemone and the early-access model route is jev-latest. It is not the OpenAI chat-completions shape: you send a state plus questions, so you need TypeSafe's client rather than an OpenAI SDK pointed at a new base URL.
Install
pip install "typesafe-sdk>=0.5.7"
Python
import os
from typesafe_sdk import Choice, Noul, NoulCriteria, Score, TypeSafeClient
client = TypeSafeClient(api_key=os.environ["TYPESAFE_API_KEY"], timeout=120.0)
response = client.system_one(
model="jev-latest",
state="The payment failed twice and the customer is asking for a refund.",
questions={
"department": Choice(
instructions="Which team should handle this?",
criteria={
"billing": "Payments, invoicing, refunds",
"technical": "Bugs, outages, integrations",
"sales": "Pricing, upgrades, new accounts",
},
),
"urgency": Noul(
instructions="Does this convey urgency?",
criteria=NoulCriteria(
true="Explicitly time-sensitive",
false="No urgency expressed",
),
),
"frustration": Score(
instructions="How frustrated is the customer?",
criteria=["Calm", "Frustrated", "Very angry"],
),
},
)
answers = response.answers
print(answers["department"].choice) # -> "billing"
print(answers["department"].confidence) # -> 0.0-1.0
print(answers["urgency"].noul) # -> 0.0-1.0
print(answers["frustration"].score) # -> 0.0-2.0, not a label (see .legend)
print(response.usage.input_tokens)curl -X POST https://jev-agent.com/api/v1/systemone \
-H "Authorization: Bearer $JEV_AGENT_KEY" \
-H "content-type: application/json" \
-d '{"state": "…", "questions": {"urgency": {"type":"noul","instructions":"Is this urgent?","criteria":{"true":"Time-sensitive","false":"Not urgent"}}}}'JavaScript / TypeScript
A separate package, @typesafe-ai/sdk on npm. Take exact signatures from the JavaScript SDK reference rather than transliterating the Python above.
4. Things that will bite you
- It will not write anything. If your use case ends in a sentence, Jev is the wrong half of the pipeline. Pair it with an LLM.
- Options must be known at request time. Choice picks from the set you send, so a dynamic action space means building that list per call.
- Use the confidence value. A winning option at low confidence is a coin flip with extra steps — gate on a threshold and fall back to an LLM or a human.
- 64k tokens per request. The 64k budget covers the state plus every question in the request. A second, tighter 32k limit applies to the state plus the single longest question. Long documents need chunking or a retrieval step in front.
- Text only at launch. Text only — no image or audio input at launch

Get Jev access: four common questions
How do I get access to Jev by TypeSafe AI today?
For a TypeSafe key, sign in to the official console and follow its dashboard's API-key instructions. For Jagent, sign in here to get a separate key for our REST and MCP endpoints. You can also call Jev through a supported gateway; the keys and billing belong to whichever route you choose.
Source · Checked 2026-10-04
Is Jev still on a waitlist, and can I try it without waiting?
TypeSafe's current quick start directs you to its playground and API-key dashboard; it does not describe a mandatory waitlist. Check your console account for current availability. Jagent's browser playground needs no API key, and our own API key is issued after sign-in without a waitlist.
Source · Checked 2026-10-04
Why does OpenRouter chat completions reject Jev?
The original Jev model returns typed decisions and uses OpenRouter's Decisions API at /api/alpha/decisions rather than the chat-completions endpoint. Jev Router is a different product: typesafe/jev-router accepts ordinary chat-completions requests and returns the chosen chat model's text. Check both the model ID and endpoint before changing your request body.
Method and evidence · Checked 2026-10-04
How do I get a Jev API key?
Get a TypeSafe key from its console dashboard or a Jagent key from this site's API access page. Jagent accounts receive 5 free credits a month, charged by input-token blocks rather than a fixed number of calls. A gateway key belongs to that gateway, not to either API.
Does Jev have a free trial?
You can try Jagent's browser tools within a shared three-run anonymous allowance. Signed-in Jagent accounts receive 5 free credits per month. Official TypeSafe or gateway trial credits are separate; consult the provider's dashboard for its current offer.