Jev on Cloudflare Workers AI (typesafe/jev)
Last checked · Independent guide, not affiliated with TypeSafe AI
Cloudflare lists Jev as typesafe/jev, a third-party model served through its AI Gateway, with a 32,000-token context window. You call it with env.AI.run('typesafe/jev', { state, questions }) inside a Worker, or through the REST API with an API token that has Workers AI Read permission. It is paid from prepaid AI Gateway credits, not Workers AI Neurons, and the price is only shown in the Cloudflare dashboard.
Cloudflare added Jev to its AI model catalog on September 19, 2026, four days after TypeSafe’s launch. When we checked, Google dated the catalog page to only a few hours earlier. This page summarizes Cloudflare’s documentation plus the authentication errors we hit on September 25, 2026; we have not completed a paid call through Cloudflare yet, and we mark the parts we could not verify.
At a glance
Section titled “At a glance”| Item | Value |
|---|---|
| Model ID | typesafe/jev |
| Label in the catalog | Third-party model from TypeSafe, marked “Zero data retention” |
| How it is served | Through Cloudflare AI Gateway, not on Workers AI’s own GPUs (no @cf/ prefix) |
| Billing | Prepaid AI Gateway credits (Unified Billing), not Neurons |
| Context window | 32,000 tokens |
| Price | “View pricing in the Cloudflare dashboard”; not published on the docs page |
| Question types | noul, choice, score, same names and shapes as TypeSafe’s API |
| Returned model | Cloudflare’s example response reports jev-1.13.0 |
The catalog entry sits under Cloudflare’s text generation heading, which is misleading: Jev does not generate text. It returns the same typed answers as TypeSafe’s own API.
Workers AI or AI Gateway?
Section titled “Workers AI or AI Gateway?”People search for both, and on Cloudflare they are the same route. typesafe/jev is one of the third-party models that Cloudflare’s AI Gateway forwards to the provider, so it has no @cf/ prefix like Cloudflare’s self-hosted models. You still call it the Workers AI way, with the env.AI binding or the /ai/run REST endpoint, and the request goes through AI Gateway, which is where logging, caching and billing happen.
TypeSafe is not on AI Gateway’s list of providers you can bring your own key for, so you cannot pay TypeSafe directly through Cloudflare. Cloudflare bills you instead.
Calling Jev from a Worker
Section titled “Calling Jev from a Worker”With a Workers AI binding named AI, the call takes the state and questions directly:
export default { async fetch(request, env) { const result = await env.AI.run('typesafe/jev', { state: 'My invoice lists two seats, but only one of us can sign in.', questions: { wantsRefund: { type: 'noul', instructions: 'Is the customer asking for money back?', }, queue: { type: 'choice', instructions: 'Which team should handle this message?', criteria: { billing: 'Charges, invoices, refunds, seats on the bill', technical: 'Bugs, outages, login problems', }, }, }, }); return Response.json(result); },};Calling it over REST
Section titled “Calling it over REST”Outside a Worker, the Workers AI REST endpoint takes the model in the body and wraps the state and questions in an input object:
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \ -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "model": "typesafe/jev", "input": { "state": "My invoice lists two seats, but only one of us can sign in.", "questions": { "wants_refund": { "type": "noul", "instructions": "Is the customer asking for money back?" } } } }'The API token needs Account › Workers AI › Read permission. A token that only has AI Gateway permissions is rejected. On September 25, 2026 we sent this request with such a token and got HTTP 401:
{"result":null,"success":false,"errors":[{"code":10000,"message":"Authentication error"}]}The model search and schema endpoints returned the same code: 10000 error with HTTP 403. If you see it, add the Workers AI Read permission to the token rather than creating a new AI Gateway token.
What Cloudflare’s example response shows
Section titled “What Cloudflare’s example response shows”Cloudflare’s documentation includes a sample response with answers in exactly TypeSafe’s shape (a noul value for yes/no, choice with probabilities and confidence, score with legend), a model field of jev-1.13.0 and a usage block with input and output tokens. That suggests Cloudflare passes requests through to TypeSafe’s current model rather than serving a different build, but Cloudflare does not state this.
What we could not verify
Section titled “What we could not verify”- Price. Third-party models on Cloudflare are paid from prepaid AI Gateway credits. Cloudflare’s docs say provider prices are “passed through with no markup” and add a 5% fee when you buy credits, so Jev should cost about $0.042 per million input tokens plus that fee. Cloudflare does not publish a Jev-specific rate outside the dashboard, so check it there.
- Free allocation. Workers AI’s free daily Neurons are for Cloudflare’s own models. Because Jev is billed from AI Gateway credits instead, we would not count on them covering Jev.
- Rate limits. The model page does not list Jev-specific limits.
- Errors after authentication. We have only seen the authentication error above; errors from the model itself are not in the errors index yet.
When to choose Cloudflare
Section titled “When to choose Cloudflare”If your application already runs on Cloudflare Workers, the binding saves you from managing a separate TypeSafe key, keeps the call on Cloudflare’s network and puts Jev on the same bill as your other AI Gateway traffic. If you need the largest context budget, model version pinning or the official SDKs, TypeSafe’s own API is the better fit. See Jev channels compared.