OpenRouter lets you call Jev, TypeSafe’s decision model, with an OpenRouter API key and no TypeSafe account. You do not call it through the chat completions API. Jev runs on OpenRouter’s Decisions API, which takes a state and typed questions and returns probabilities. As of 2026-10-09 the public models API lists Jev with its price.
What the integration does
OpenRouter is a hosted layer in front of many AI model providers, exposed through one shared API key. TypeSafe has added Jev to that list, so requests that would otherwise go straight to TypeSafe’s API can instead route through OpenRouter.
TypeSafe describes Jev as a decision model, though most of what it does is best understood as a classification model: it sorts input into labels you supply at request time, with a probability on each one.
Jev does not use the OpenAI-compatible chat endpoint. OpenRouter’s model page says it runs on the Decisions API “rather than the OpenAI-compatible chat endpoint,” and that chat completions SDKs will not work with it. The request takes the same state and questions shape as TypeSafe’s own API, with Noul, Choice and Score questions. That suits jobs like intent and model routing, where you want a probability on a fixed set of options rather than generated text.
OpenRouter also lists other decision models on the same output type. On 2026-10-09 they were upstage/solar-decide, upstage/solar-decide-flash, respan/span-01, respan/span-01-lite, jaredpalmer/kev-4b, togethercomputer/tev1-4b-experimental, inception/mercury-decide, liquid/d1, cloudflare/clef, cloudflare/clef-flash, perplexity/pplx-decider-v1.1-27b and openai/gpt-6-luna-decisions, plus free variants of Mercury Decide and Span-01 Lite. The Kev page says Kev-4B takes the same request as Jev, so switching means changing the model field. Check each model’s page on this site, such as Solar Decide, Mercury Decide or d1, before assuming the same request shape.
For calling Jev from Vercel or Cloudflare instead, see the separate Vercel and Cloudflare integration pages.
Official support
OpenRouter documents Jev itself. Its docs have a Jev hub page and a tutorial, and the provider page at openrouter.ai/typesafe describes Jev as “a structured decision model from TypeSafe, and the first of its System One models,” built for routing, classification and decisions. TypeSafe is the only provider.
The public models API lists Jev when you filter by output type: GET https://openrouter.ai/api/v1/models?output_modalities=decisions. On 2026-10-09 it returned both ids below, along with other vendors’ decision models. The typesafe/jev-1.13 entry was created on 2026-09-18. An earlier version of this page reported that the models API did not list Jev. That gap is closed.
| Model id | Context window | Input price | Output price |
|---|---|---|---|
~typesafe/jev-latest |
64K tokens | $0.042 per million tokens | $0 per million tokens |
typesafe/jev-1.13 |
64K tokens | $0.042 per million tokens | $0 per million tokens |
~typesafe/jev-latest is an alias that points at typesafe/jev-1.13 today and moves to the newest Jev release later. The id starts with a tilde. The per-model endpoints listing shows one provider, TypeSafe.
Setup
- Get an OpenRouter API key. OpenRouter’s docs say there is no waitlist and no separate TypeSafe account.
- Send a
POSTrequest tohttps://openrouter.ai/api/alpha/decisionswith anAuthorization: Bearerheader holding your OpenRouter key. Setmodeltotypesafe/jev-1.13or~typesafe/jev-latest, and passstateandquestionsin the same shape as TypeSafe’s API. - To use a client library, OpenRouter’s TypeScript SDK exposes the same call as
openrouter.alpha.decisions.create. OpenRouter’s docs also list Python and Go SDKs. The endpoint path still containsalpha, so its shape can change. - To route TypeSafe’s own JavaScript or Python SDK through OpenRouter, set the SDK’s base URL to
https://openrouter.ai/apiand use your OpenRouter key as the API key. The SDK then callsPOST https://openrouter.ai/api/v1/systemone. OpenRouter’s SDK guide documents this path, and it maps bare ids likejev-1.13ontotypesafe/jev-1.13. - For a worked example of the request shape, see how to get Jev access, since it matches TypeSafe’s own API rather than introducing anything new.
What people built with Jev and OpenRouter
The examples linked below are projects and write-ups that used Jev specifically through OpenRouter, rather than through TypeSafe’s own API directly.
Limits and gotchas
The pages OpenRouter publishes for Jev state no rate limits as of 2026-09-30. Do not assume parity with TypeSafe’s direct API, which lists its own limits on the speed and pricing guide.
~typesafe/jev-latest always points at the newest Jev release, so a request that works today can behave differently once TypeSafe ships a new version. Pin typesafe/jev-1.13 if you need a fixed target.
The price is the same on both ids: $0.042 per million input tokens and $0 per million output tokens as of 2026-10-09, from OpenRouter’s models API. Compare it with TypeSafe’s own numbers on the speed and pricing guide. The context window is 64,000 tokens with a 57,600-token maximum completion as of 2026-10-09, which matches TypeSafe’s whole-request limit. OpenRouter listed 32,000 on 2026-09-30. TypeSafe’s own docs still require the state plus the longest question to fit in 32,000 of that.
The Decisions endpoint is still under an alpha path. Treat it as less stable than OpenRouter’s standard chat API.
FAQ
Does OpenRouter support Jev officially?
Yes. OpenRouter has a Jev model page, a docs hub and a tutorial, and its public models API lists typesafe/jev-1.13 and ~typesafe/jev-latest with prices as of 2026-10-09. The listing that was missing when this page was first written on 2026-09-20 is there now.
Do I need a TypeSafe API key to use Jev on OpenRouter?
No, an OpenRouter API key is enough on its own. OpenRouter’s docs say the same key works for the Decisions API and for TypeSafe’s SDK pointed at OpenRouter. itsmostafa/typesafe-mcp’s README also confirms that an OPENROUTER_API_KEY can substitute for TYPESAFE_API_KEY. You only need a direct TypeSafe key if you are calling TypeSafe’s API without OpenRouter in the path at all.
Can I call Jev through the standard OpenAI-compatible chat API?
No. OpenRouter’s model page says Jev runs on the Decisions API rather than the OpenAI-compatible chat endpoint, and that chat completions SDKs will not work with it. Call POST https://openrouter.ai/api/alpha/decisions with a state and questions, or use the System One route at /api/v1/systemone if you are pointing TypeSafe’s SDK at OpenRouter. Neither takes chat messages.
What does Jev decide when called through OpenRouter?
Same thing it decides anywhere else, since OpenRouter does not change the model itself. OpenRouter’s provider page describes Jev as a decision model that returns typed choices instead of free text, built for tasks like routing and classification. Calling it through OpenRouter only changes how the request reaches the model. What the model decides stays the same.
Is it free to use Jev on OpenRouter?
Not entirely. Output is priced at $0 per million tokens, but input costs $0.042 per million tokens on both typesafe/jev-1.13 and ~typesafe/jev-latest as of 2026-10-09, per OpenRouter’s models API. You pay it through your OpenRouter account.
Examples for OpenRouter

AIBackends
An AI API server that abstracts multiple models and providers behind one layer, for local use with Ollama or LM Studio or in the cloud via OpenRouter, OpenAI, Anthropic or Google. It now supports Jev.
jev-eval-agent
Personal-assistant agent built with Vercel's eve framework and 100 mocked tools, served through OpenRouter. Measures how many steps the agent needs when the LLM picks the tool itself versus when Jev picks it via a 101-option Choice.

Jev 1.13 on OpenRouter
OpenRouter's model page for Jev 1.13, which runs on OpenRouter's Decisions API rather than its OpenAI-compatible chat endpoint. Listed at $0.042/M input and $0/M output with a 64,000-token context on 10 October 2026, up from 32,000 when added in September.

Jev on OpenRouter (TypeSafe provider page)
OpenRouter lists two TypeSafe models, typesafe/jev-latest and typesafe/jev-1.13, both with a 32K context window, at $0.042/M input and $0/M output.