Learn
Getting Started with Jev
How to use Jev: get waitlist or console access, set TYPESAFE_API_KEY, and make your first TypeSafe Jev API call with Playground, cURL, Python, or TypeScript.
- Published
- Sep 20, 2026
- Updated
- Sep 20, 2026
- Last verified
- Sep 20, 2026
Quick answer
Create a TypeSafe API key, set TYPESAFE_API_KEY, then POST state and questions to https://api.typesafe.ai/v1/systemone. Start with one Noul, inspect the JSON, then add Choice and Score in the same request.
You can be useful with Jev in one afternoon: one key, one request, one branch in code.
1. Get access and a key
TypeSafe's official path is the dashboard after you have access. The 2026-09-15 launch post describes early access and a waitlist at typesafe.ai. We have not independently timed waitlist access.
If you already bill through a gateway, you can call the same model as Vercel Jev (typesafe-ai/jev) or OpenRouter Jev (~typesafe/jev-latest). Details: Jev on OpenRouter and Vercel. The longer “how to use Jev” path is here.
Set the key in your environment. Never commit it.
export TYPESAFE_API_KEY=your_key_here2. Try the official Playground
Official quickstart: open the Playground, paste a state, add a Noul such as “Does this message express urgency?”, then mix in Choice and Score. Use that to learn question wording before you write production code.
This site's own Playground is not shipped yet. We will not pretend a local widget is a live Jev call.
3. One cURL request
Endpoint from official API docs:
POST https://api.typesafe.ai/v1/systemone
Authorization: Bearer <API_KEY>
Content-Type: application/jsoncurl -X POST https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"state": "Hi, I have been trying to connect my Stripe account for 3 days and the integration keeps failing. I am losing sales. Please help ASAP.",
"model": "jev-latest",
"questions": {
"urgency": {
"type": "noul",
"instructions": "Does this message express urgency?"
}
}
}'Expected shape — values are example output, copied from TypeSafe's published quickstart, not a measurement from this site:
{
"model": "jev-1.13.0",
"answers": {
"urgency": { "type": "noul", "noul": 1.0 }
},
"usage": { "input_tokens": 392, "output_tokens": 65 }
}More HTTP detail lives in the cURL tutorial and the API page.
4. Python
Official SDK package: typesafe-sdk. Python 3.10+ according to the quickstart.
pip install typesafe-sdkfrom typesafe_sdk import Noul, TypeSafeClient
with TypeSafeClient() as client:
response = client.system_one(
state="The export button crashes Settings in Safari.",
questions={
"is_bug": Noul(instructions="Does this message report something broken?"),
},
)
print(response.answers["is_bug"].noul)Full walkthrough: Jev Python.
5. TypeScript
Official package: @typesafe-ai/sdk. Node.js 20+.
npm install @typesafe-ai/sdkimport { noul, TypeSafeClient } from "@typesafe-ai/sdk";
const client = new TypeSafeClient();
const response = await client.systemOne({
state: "The export button crashes Settings in Safari.",
questions: {
is_bug: noul("Does this message report something broken?"),
},
});
console.log(response.answers.is_bug.noul);Full walkthrough: Jev TypeScript.
6. Put a decision in code
The model should not “do the refund”. Your code should:
if (response.answers.is_bug.noul > 0.8) {
assignTo("engineering");
} else {
assignTo("triage");
}Pick thresholds after you look at your own tickets. Official confidence guidance is a starting pattern, not a shipped default.
When to use this path
Use Getting Started when you need a working request today. Expand to mixed questions once one Noul looks sane.
When not to start here
If you still need to decide whether Jev is the right tool, read What is Jev and limitations first.
Common mistakes
- Forgetting
Authorization: Bearer. - Putting the English question only in the key (
is_urgent) and leavinginstructionsvague. Official docs say IDs are not sent to the model. - Shipping the first threshold that “feels right” on five examples.
Check pricing before you load-test, and skim examples for request shapes that match real products.
FAQ
Where do I get a key?
From the TypeSafe dashboard / console after you have access. Official quickstart says to create the key there and set TYPESAFE_API_KEY. TypeSafe's launch post describes a waitlist. Some teams use Vercel AI Gateway or OpenRouter instead.
What model should I send?
Examples and SDKs default to jev-latest. The response reports the versioned ID that answered, such as jev-1.13.0 when last verified.
Sources
- Introducing System One Models and JevTypeSafe · 2026-09-15 · accessed 2026-09-20 · official
- Quick startTypeSafe · accessed 2026-09-20 · documentation
- TypeSafe Python SDKTypeSafe · accessed 2026-09-20 · documentation
- JavaScript SDKTypeSafe · accessed 2026-09-20 · documentation