← Use cases

Jev with LiteLLM

LiteLLM lets your apps talk to one proxy instead of many provider APIs. Jev is a different kind of call — a typed decision ({ state, questions } in, a typed answers map out, not a chat completion) — so you route it through LiteLLM as a pass-through. Point a route at the jevtypesafeai.com gateway with your jv_live_ key and Jev sits behind the same base URL as your chat models, billed through your hosted account.

A Jev call isn't an OpenAI-style chat completion. You POST { state, questions } and get back a typed answers map — one of your options, a calibrated probability for each, and a confidence value, in roughly 70–500ms. LiteLLM handles that cleanly as a pass-through endpoint: the proxy forwards your request body straight to Jev and returns the typed response, so your app keeps a single base URL for everything. Don't try to map a Jev call onto the chat-completions schema — route it as-is.

Route through your hosted Jev account (bills you)

Add a pass-through route to your LiteLLM proxy config that targets the hosted gateway, with your jv_live_ key supplied by the proxy:

# litellm config.yaml — expose /jev and forward it to the hosted gateway
general_settings:
  pass_through_endpoints:
    - path: "/jev"
      target: "https://jevtypesafeai.com/api/v1/decide"
      headers:
        Authorization: "Bearer os.environ/JEV_API_KEY"   # jv_live_...
        content-type: "application/json"

Now your apps POST the normal Jev body to the proxy and read the typed answer back — one base URL, billed through your hosted account:

const res = await fetch(`${LITELLM_PROXY_BASE_URL}/jev`, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    state: { ticket: text },
    questions: {
      queue: {
        type: "choice",
        instructions: "Which queue should this go to?",
        criteria: { billing: "payments", technical: "bugs", abuse: "spam/fraud", sales: "pricing" },
      },
    },
  }),
});
const { answers } = await res.json();
route(answers.queue.choice); // same typed shape, now through your proxy
your apps LiteLLM proxy one base URL Jev gateway /api/v1/decide
Your apps POST to one LiteLLM base URL; the pass-through route forwards Jev's { state, questions } body straight to the hosted gateway and returns the typed answer unchanged.

The built-in TypeSafe provider

LiteLLM also ships a TypeSafe (Jev) pass-through provider: you replace https://api.typesafe.ai with LITELLM_PROXY_BASE_URL/typesafe and set TYPESAFE_API_KEY in the proxy. Note this one targets the official api.typesafe.ai endpoint (with an official TypeSafe key), not your hosted jevtypesafeai.com account — so use the custom /jev route above when you want decisions billed through your hosted jv_live_ key.

Why front Jev with LiteLLM

Billing is the same wherever you route it: with Jev, output is free and input is billed per million tokens on a sliding scale that gets cheaper the more you prepay — in practice a single decision costs well under a cent. Current tiers are on the pricing page.

FAQ

How do I use Jev with LiteLLM?

Add a pass-through route in your LiteLLM proxy config that targets https://jevtypesafeai.com/api/v1/decide with your jv_live_ key, then POST the normal Jev body ({ state, questions }) to that proxy path. The typed answers map comes back unchanged, and the decision bills through your hosted account.

Does LiteLLM have a built-in Jev/TypeSafe provider?

Yes — a TypeSafe (Jev) pass-through where you replace https://api.typesafe.ai with LITELLM_PROXY_BASE_URL/typesafe and set TYPESAFE_API_KEY. It targets the official api.typesafe.ai endpoint, though, so use a custom route to the hosted gateway if you want to bill through your jevtypesafeai.com jv_live_ key.

Do I send a chat-completion body through LiteLLM for Jev?

No. Jev takes { state, questions } and returns a typed answers map — not chat messages. Route it as a pass-through so LiteLLM forwards the Jev body as-is; don't try to map it onto the chat-completions schema.

Which endpoint bills through my hosted account?

The hosted gateway at https://jevtypesafeai.com/api/v1/decide with a jv_live_ key. Point your LiteLLM pass-through route's target there so usage runs through your hosted account rather than the official api.typesafe.ai endpoint.

Why put Jev behind LiteLLM at all?

To keep one base URL, one set of keys, budgets and logs across all your models. LiteLLM becomes the single control point, and Jev's decisions sit alongside your generation calls — while the typed response your code reads stays exactly the same.

See also: How to use the Jev API · Jev and OpenRouter · Jev and Bifrost · Get a Jev key · Pricing

Put Jev behind your LiteLLM proxy

Grab a jv_live_ key, add a pass-through route to the hosted gateway, and your apps get typed decisions at the same base URL as your chat models.

▶ Try Jev freeGet an API key →
Jev with LiteLLM — route typed decisions through your proxy · Jev by TypeSafe AI