Channels · Last updated

Jev REST channel

A REST channel is any HTTPS POST that carries state + typed questions and returns typed answers. Jev (TypeSafe System One) has one first-party evaluation URL. Marketplaces wrap that contract with different hosts, keys, and model strings.

This page is the HTTP-shaped half of the channel matrix (snapshot 2026-09-21). Independent unofficial guide — not TypeSafe docs. We do not sell or proxy keys. Confirm first-party fields on docs.typesafe.ai/api.

First-party REST (canonical)

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

Required body: state, model, questions. Use jev-latest in examples or pin jev-1.13.0 once you tune thresholds. GET https://api.typesafe.ai/v1/models lists aliases; the versioned id still works on POST.

curl -X POST https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"state":"Payouts have failed for 3 days.","model":"jev-latest","questions":{"urgent":{"type":"noul","instructions":"Does this convey urgency?"}}}'

Documented HTTP failures: 401, 422, 429, 529. Official SDKs retry 429/529; raw curl does not.

Marketplace REST (third-party cards)

Label these as that vendor’s surface, not TypeSafe’s API reference.

Host Auth Model string Body gotcha
OpenRouter Decisions https://openrouter.ai/api/alpha/decisions OpenRouter bearer typesafe/jev-1.13 Not the OpenAI-compatible chat URL. Their card lists 32k context and $0.042 / $0 per 1M (vendor claim). Insufficient credit → 402.
Cloudflare https://api.cloudflare.com/client/v4/accounts/$ACCOUNT/ai/run CF API token typesafe/jev REST wraps the payload as {"model","input":{state,questions}}. env.AI.run skips that envelope. Card: 32k context; price in the CF dashboard.

Do not send jev-1.13.0 to OpenRouter or typesafe/jev-1.13 to api.typesafe.ai. Names are door-specific.

First-party POST vs marketplace REST

Steps (first-party):

  1. Obtain a TypeSafe console key you already have (waitlist/console — not this site).
  2. POST /v1/systemone with Authorization: Bearer, state, model, questions.
  3. Types: Choice ≤255, Score 2–10, Noul 0–1; confidence on Choice/Score only.
  4. On 422, read the named field — invalid input. Do not retry. On 401, unauthorized. On 429/529, back off.

Steps (marketplace): swap host, bearer, and model id. Keep question design. Translate boolean vs noul if that door’s examples differ. 402/403 are that vendor’s billing/auth.

Pitfalls: chat-completions URLs are the wrong tool. Copy-paste of model ids across doors is schema mismatch. OIDC / env.AI without a raw key is the serverless channel. No “buy a key” CTA here.

When REST is the right channel

Prefer official SDKs when you want default retries. Prefer serverless channel when the host is Vercel OIDC or env.AI.

FAQ

Is there a second first-party evaluation path? TypeSafe documents POST /v1/systemone plus GET /v1/models. Chat-completions URLs are the wrong tool.

Can jev.pro give me a key? No. Waitlist and console live on TypeSafe; marketplace keys live on those vendors.

Does curl retry 429? Not by itself. Official SDKs retry 429/529 only.

Pin or alias? Pin jev-1.13.0 after you fit thresholds. jev-latest can move.

Hub: Channels. Siblings: channels compared, decision endpoint.

Disclaimer

This is an independent unofficial site and is not affiliated with TypeSafe AI; official documentation is available at https://docs.typesafe.ai. Never treat jev.pro as TypeSafe official documentation. We do not sell, issue, or proxy API keys.

Sources