Jev unauthorized errors
Symptom: 401 Unauthorized or a platform 403 about a missing API key. No answers object.
TypeSafe’s API reference: 401 means missing or invalid API key — check the Authorization header. This site cannot mint a replacement. Independent unofficial notes. Official: docs.typesafe.ai.
Decision tree
Which door did you call?
├─ api.typesafe.ai or official SDK
│ ├─ header missing / TYPESAFE_API_KEY unset → export a console key
│ ├─ key revoked / typo / extra quotes → rotate in the dashboard
│ └─ Bearer scheme wrong → Authorization Bearer token
├─ Vercel AI Gateway / AI SDK
│ ├─ local OIDC stale (~12h per Vercel KB) → `vercel env pull` again
│ ├─ customer verification / billing hold → Vercel account, not Jev
│ └─ wrong provider (chat path) → evaluation model id typesafe-ai/jev
├─ OpenRouter
│ ├─ OPENROUTER_API_KEY missing → 401/403 from OpenRouter
│ └─ credit = 0 → 402 (billing), not 401
└─ Cloudflare Workers AI
├─ token lacks Workers AI permission
└─ env.AI binding missing in wrangler
Do not retry 401. Fix credentials. Official SDKs retry 429/529 only.
First-party checklist
- Key from console.typesafe.ai after waitlist — not from jev.pro.
- Env var name for official SDKs:
TYPESAFE_API_KEY. - curl:
-H "Authorization: Bearer $TYPESAFE_API_KEY". - Never commit the token.
Channel callouts
| Code / message | Whose problem |
|---|---|
TypeSafe 401 |
Their bearer |
| “Must supply an API key” 403 on a marketplace | That marketplace’s auth docs |
| Vercel customer verification | Vercel |
OpenRouter 402 |
OpenRouter wallet |
These stay callouts so we do not clone a rival per-status IA.
FAQ
Does 401 mean my question schema is wrong? No. Schema issues are 422. See invalid input.
Can a waitlisted account get 401? If you have no key, you cannot authenticate. Join the official waitlist; we do not expedite.
Hub: Errors. Siblings: invalid input, API keys.
Sources
Public TypeSafe or adjacent documentation only. No private claims.