cd /news/ai-products/jev-is-now-available-in-pydantic-ai-… · home › topics › ai-products › article
[ARTICLE · art-139836] src=pydantic.dev ↗ pub= topic=ai-products verified=true sentiment=↑ positive

Jev is now available in Pydantic AI Gateway

Pydantic AI Gateway now supports Jev, TypeSafe's classification model, letting applications call Jev through a single gateway key alongside their language models. Jev takes text plus typed questions and returns an answer and probability for each, priced at $0.042 per million input tokens, and speaks TypeSafe's System One API rather than the OpenAI chat format. The integration adds metered cost and usage tracking, input guardrails on state, instructions and criteria, and one-key access, with support in the TypeSafe Python SDK and Pydantic AI's TypeSafeModel.

by read3 min views1 publishedSep 25, 2026
Jev is now available in Pydantic AI Gateway
Image: Pydantic (auto-discovered)

You can now call Jev, TypeSafe's classification model, through Pydantic AI Gateway. Your application keeps one gateway key, and Jev requests show up next to your language models in the same spend view, limits, and guardrails.

Jev isn't a chat model. It takes a piece of text and a set of typed questions, and returns an answer and a probability for each. David Montague already showed how to use it as a judge in Pydantic Evals, at $0.042 per million input tokens.

#

TypeSafe is a bring-your-own-key provider. In Pydantic Logfire, go to Gateway, then Providers, and add a provider. Pick TypeSafe AI:

Paste your TypeSafe API key and click Test & continue. The Gateway asks TypeSafe for its models with that key, so a bad key fails here and not on your first request:

Name the provider and you're done. The Connect dialog defaults to jev-latest and gives you a snippet with your gateway key filled in.

Jev speaks TypeSafe's System One API, not the OpenAI chat format, so the Gateway forwards it natively. Here's the request with curl:

curl https://gateway-us.pydantic.dev/proxy/typesafe/v1/systemone \
  -H "Authorization: Bearer $PYDANTIC_AI_GATEWAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "Help! My payouts have been failing for 3 days.",
    "questions": {
      "is_urgent": {
        "type": "noul",
        "instructions": "Does this convey urgency?"
      }
    }
  }'

typesafe in the URL is the route name you gave the provider. state is the material being judged, and each entry in questions is one question about it.

The TypeSafe Python SDK works too. Install it:

uv add typesafe-sdk

Then point base_url at the Gateway:

from typesafe_sdk import Noul, TypeSafeClient

with TypeSafeClient(
    api_key='<your gateway key>',
    base_url='https://gateway-us.pydantic.dev/proxy/typesafe',
    model='jev-latest',
) as client:
    response = client.system_one(
        state='Help! My payouts have been failing for 3 days.',
        questions={'is_urgent': Noul(instructions='Does this convey urgency?')},
    )

print(response.answers['is_urgent'].noul)

#

The Gateway doesn't change what Jev costs or how fast it answers. It adds what you already get for every other provider:

  • Cost and usage. Every request is metered, so Jev shows up in the same spend view and limits as your language models.
  • Guardrails. Input guardrails run on thestate , the instructions, and the criteria before the request goes upstream.
  • One key. Your application holds a gateway key, not a TypeSafe key.

#

Pydantic AI can run an agent on Jev with TypeSafeModel: each field of the output type becomes a question. Install it with the typesafe extra:

uv add "pydantic-ai-slim[typesafe]"

To send it through the Gateway, give the provider your gateway key and URL:

from typing import Literal

from pydantic import BaseModel, Field

from pydantic_ai import Agent
from pydantic_ai.models.typesafe import TypeSafeModel
from pydantic_ai.providers.typesafe import TypeSafeProvider

class Ticket(BaseModel):
    """Triage a support ticket."""

    urgent: bool = Field(description='Does this need a reply within the hour?')
    area: Literal['billing', 'bug', 'account', 'other'] = Field(description='Which team owns it?')

provider = TypeSafeProvider(
    api_key='<your gateway key>',
    base_url='https://gateway-us.pydantic.dev/proxy/typesafe',
)
agent = Agent(TypeSafeModel('jev-latest', provider=provider), output_type=Ticket)
result = agent.run_sync('You have charged me twice and my account is now overdrawn.')
print(result.output)
#> urgent=True area='billing'

If you try it and something doesn't work the way you expect, open an issue or tell us in Slack.

── more in #ai-products 4 stories · sorted by recency
── more on @pydantic ai gateway 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/jev-is-now-available…] indexed:0 read:3min 2026-09-25 · —