Jev Bureau
Primary Endpoints:TypeSafe Direct & OpenRouter

Jev API & Access Quickstart

You can access Jev through two primary routes: directly via the official TypeSafe API or via OpenRouter. Both routes expose the stable POST /v1/systemone contract.

Official SDK libraries are available for Python (typesafe_sdk) and JavaScript/TypeScript (@typesafe-ai/sdk).

Available Provider Endpoints

Route / ProviderEndpoint URLModel StringStatus
TypeSafe Direct ↗https://api.typesafe.ai/v1/systemonejev-latest or jev-1.13.0Production Stable
OpenRouter (System One) ↗https://openrouter.ai/api/v1/systemonetypesafe/jev-1.13 or ~typesafe/jev-latestProduction Stable
OpenRouter Decisions (Alpha Route)https://openrouter.ai/api/alpha/decisionstypesafe/jev-1.13Alpha (Subject to change)

Implementation note: Always prefer the stable POST /v1/systemone endpoint for production workloads. The OpenRouter Decisions alpha endpoint uses an alternative simplified payload shape and does not yet support multi-question batching across shared state.

1. Direct TypeSafe API Quickstart (cURL)

Base URL: api.typesafe.ai

Send a POST request containing your bearer token, model version, shared application state, and an array of questions:

cURL (Direct TypeSafe)bash
curl -X POST "https://api.typesafe.ai/v1/systemone" \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "Customer account balance: $450. Order amount: $120. Shipping to billing address: Yes. Card CVV matched: Yes. Velocity: 1 order in 7 days.",
    "questions": [
      {
        "id": "order_risk_tier",
        "type": "choice",
        "prompt": "Evaluate order transaction risk level",
        "choices": ["low", "medium", "high"]
      },
      {
        "id": "require_manual_review",
        "type": "noul",
        "statement": "This transaction requires manual underwriter review before fulfillment."
      }
    ]
  }'

2. OpenRouter System One Quickstart (cURL)

Base URL: openrouter.ai/api

OpenRouter natively accepts the TypeSafe System One request payload format at POST /api/v1/systemone:

cURL (OpenRouter System One Route)bash
curl -X POST "https://openrouter.ai/api/v1/systemone" \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "typesafe/jev-1.13",
    "state": "Customer account balance: $450. Order amount: $120. Shipping to billing address: Yes. Card CVV matched: Yes. Velocity: 1 order in 7 days.",
    "questions": [
      {
        "id": "order_risk_tier",
        "type": "choice",
        "prompt": "Evaluate order transaction risk level",
        "choices": ["low", "medium", "high"]
      }
    ]
  }'

3. Python SDK Quickstart (typesafe_sdk)

pip install typesafe-sdk

Using the official Python client library to query multiple questions in a single parallel inference call:

Python (typesafe_sdk)python
from typesafe_sdk import TypeSafeClient

client = TypeSafeClient(api_key="your_typesafe_api_key")

response = client.systemone.create(
    model="jev-latest",
    state="Ticket: User reports error 500 when saving preferences. Browser: Chrome 128. Account tier: Enterprise. Service logs indicate timeout in user-prefs DB replica.",
    questions=[
        {
            "id": "routing_queue",
            "type": "choice",
            "prompt": "Select target escalation tier",
            "choices": ["tier1_general", "tier2_database", "tier3_sre", "account_executive"]
        },
        {
            "id": "churn_risk",
            "type": "score",
            "prompt": "Estimate account churn risk",
            "levels": [
                {"level": 1, "description": "No churn risk; routine issue"},
                {"level": 2, "description": "Minor frustration"},
                {"level": 3, "description": "High risk of contract cancellation"}
            ]
        }
    ]
)

# Inspect calibrated decisions
print("Selected Queue:", response.decisions["routing_queue"].choice)
print("Confidence:", response.decisions["routing_queue"].confidence)
print("Churn Score (1-3):", response.decisions["churn_risk"].score)

4. TypeScript SDK Quickstart (@typesafe-ai/sdk)

npm install @typesafe-ai/sdk

TypeScript SDK implementation with strongly-typed response payloads:

TypeScript (@typesafe-ai/sdk)typescript
import { TypeSafeClient } from "@typesafe-ai/sdk";

const client = new TypeSafeClient({
  apiKey: process.env.TYPESAFE_API_KEY!,
});

async function evaluateTicket() {
  const response = await client.systemone.create({
    model: "jev-latest",
    state: "Account status: Active. Issue: API 429 rate limit exceeded. Usage: 10,000 req/min (Limit: 5,000 req/min). Plan: Growth.",
    questions: [
      {
        "id": "is_abuse",
        "type": "noul",
        "statement": "The client is executing a deliberate denial-of-service pattern rather than legitimate surge load."
      },
      {
        "id": "action",
        "type": "choice",
        "prompt": "Recommended immediate action",
        "choices": ["temporary_block", "offer_quota_increase", "ignore"]
      }
    ]
  });

  const abuseProbability = response.decisions["is_abuse"].probability; // 0.0 to 1.0
  const recommendedAction = response.decisions["action"].choice;

  console.log({ abuseProbability, recommendedAction });
}

evaluateTicket();

Reference: OpenRouter Alpha Decisions Endpoint

OpenRouter also maintains an experimental alpha endpoint at POST /api/alpha/decisions. It provides a simplified single-decision abstraction across multiple decision models, but it is currently in alpha and may change without notice. For production systems, stick to POST /api/v1/systemone.

OpenRouter Alpha Endpoint (Experimental)bash
# OPENROUTER ALPHA ENDPOINT (For reference only; prefer POST /api/v1/systemone above)
curl -X POST "https://openrouter.ai/api/alpha/decisions" \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "typesafe/jev-1.13",
    "context": "Context text...",
    "decision_type": "categorical",
    "options": ["option_a", "option_b"]
  }'

Request Guardrails & Token Limits

64,000-token total request budget: The sum of all tokens in state plus all tokens across all questions combined must not exceed 64,000 tokens.
32,000-token limit for state plus longest question: The tokens in state plus the single longest individual question must not exceed 32,000 tokens on TypeSafe direct. (Note: OpenRouter catalogs Jev 1.13 with a flat 32,000-token context window.)
No autoregressive text generation: Do not pass prompts expecting conversational responses or markdown answers. Requests expecting generative completions will fail or return invalid schemas.
← Explore Decision Primitives (Choice, Score, Noul)View Verified Token Pricing & Calculator →