Early accessvEA 2026-09-15

Sourced from public early-access reportsVerified

Getting Started with Jev: API Key, First Call & SDKs

Updated 2026-09-20

On this page

This page walks through the real, verified path from zero to your first Jev judgment call, as of September 20, 2026 — five days into early access.

Sourcing note. The endpoint, console, SDK names, and request structure below were cross-verified against two independent community documentation projects (see Sources) plus public DNS records for typesafe.ai. Exact response field names are still worth double-checking against the official docs at jev.com — early-access APIs drift.

1. Get an API key

Early access opened on September 15, 2026. Once you have access:

  1. Sign in at console.typesafe.ai.
  2. Go to Settings → Keys and create an API key.
  3. Store it as an environment variable — every example below assumes TYPESAFE_API_KEY:
export TYPESAFE_API_KEY="tsk_..."   # your key from console.typesafe.ai

2. The one endpoint

Jev exposes a single judgment endpoint:

POST https://api.typesafe.ai/v1/systemone
Authorization: Bearer $TYPESAFE_API_KEY
Content-Type: application/json

The request body has exactly three fields you need to know:

FieldTypeRequiredWhat it is
statestring, object, or arrayyesThe situation to judge — a structured record, not a prompt. See State Design.
modelstringyese.g. jev-1.13.0, or the aliases jev-latest / jev-preview. See Models & Pricing.
questionsmap of question objectsyesThe judgments you want. Each value has a type (noul, choice, or score) plus instructions (required) and optional criteria.

A detail worth knowing: the keys of the questions map are your own names for the answers — they are not sent to the model. The model only sees state and each question's instructions/criteria. That means you can name keys however your codebase likes ("spam_check", "q7", "lead_fit_v3") without affecting the judgment.

3. Your first call (curl)

A minimal Noul (yes/no) question — is this email a phishing attempt?

curl https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-1.13.0",
    "state": {
      "from": "no-reply@secure-verify-example.com",
      "subject": "URGENT: your account has been suspended",
      "body": "Dear customer, verify your password within 24 hours or lose access: http://example.invalid/verify"
    },
    "questions": {
      "is_phishing": {
        "type": "noul",
        "instructions": "Answer yes if this email shows signs of a phishing attempt: urgency pressure, credential requests, or suspicious links.",
        "criteria": "Urgency alone is not enough — legitimate services send urgent mail too."
      }
    }
  }'

A Noul answer comes back as a probability between 0 and 1 (no separate confidence field — that's Choice and Score only):

{
  "answers": {
    "is_phishing": { "type": "noul", "probability": 0.97 }
  }
}

Response envelope field names follow community documentation — confirm them against the official API reference before you build parsing logic on top. The typed answer shapes themselves (probability / probabilities + confidence / legend + probabilities + confidence) are covered in The Three Primitives and the API Reference.

4. Or use an official SDK

Two official SDKs exist; both handle 429 rate-limit responses with automatic backoff:

# Python 3.10+
pip install typesafe-sdk

# Node.js 20+
npm install @typesafe-ai/sdk
from typesafe import Client

client = Client()  # reads TYPESAFE_API_KEY from the environment

result = client.systemone(
    model="jev-1.13.0",
    state={
        "from": "no-reply@secure-verify-example.com",
        "subject": "URGENT: your account has been suspended",
        "body": "Dear customer, verify your password within 24 hours...",
    },
    questions={
        "is_phishing": {
            "type": "noul",
            "instructions": "Answer yes if this email shows signs of a phishing attempt.",
        }
    },
)
print(result["answers"]["is_phishing"]["probability"])

SDK method names follow the community-documented surface; check the package README for the exact signatures.

5. Design the judgment before you code

The workflow that early adopters converge on is design-first:

  1. Write the decision as a question with a fixed answer shape: yes/no, one-of-N labels, or a score on a defined scale.
  2. Define the state fields the model is allowed to see — and drop everything else. Irrelevant detail measurably degrades accuracy (see State Design).
  3. Define what happens on each verdict — a judgment is only useful if each outcome routes somewhere: pass to an LLM, queue for human review, discard, tag.
  4. Calibrate before you trust. Run the question against a sample where you know the right answer, and read Confidence & Calibration before setting any automatic thresholds.

6. Start with a throwaway workload

Early-access demos converged on low-risk first projects: scoring YouTube video ideas, testing AI memory retrieval quality, gating a voice-controlled browser. TypeSafe AI's own launch demo ran Jev on live Doom gameplay — game state in, movement decisions out, in real time. Pick something where a wrong judgment costs nothing, calibrate your question design, and only then point Jev at production traffic.

Where to go next

Sources

  • learnjev.comGetting started (community documentation; API key and endpoint walkthrough).
  • jevai.wikiAPI reference (community documentation; request structure, SDKs, rate limits).
  • jev101.com什么是 Jev(中文) (community documentation, Chinese).
  • "Jev: The New AI Model That's Breaking The Internet (Full Tutorial)" — Moritz — chapters include "Getting an API key and setting up."
  • DNS records for typesafe.ai, console.typesafe.ai, and api.typesafe.ai verified 2026-09-20.

Unofficial fan-made handbook. Not affiliated with TypeSafe AI or jev.com. Jev is a trademark of its respective owner.