Authentication
API keys
Inference requests authenticate with an UberLLM API key. Keys start with ull_
followed by a random suffix. Pass it as a bearer token:
Authorization: Bearer ull_your_key_here
The Anthropic surface also accepts the key in the x-api-key header.
Create, list, and revoke keys under Dashboard → API Keys. The full secret is displayed once at creation — store it immediately; UberLLM keeps only a hash and can never show it again. Revoking a key takes effect within seconds.
Per-key controls
Each key can carry its own guardrails, set when you create it or later:
- Spend limit — a cap in USD over a
daily,monthly, orlifetimewindow. Requests that would exceed it are rejected with402 key_spend_cap_exceeded. - Rate limit — a per-minute request ceiling.
- BYOK provider — pin the key to route through your own provider credential (see below).
BYOK — bring your own key
Add a provider credential under Dashboard → BYOK. Requests routed through a BYOK provider use your credential directly; no credits are reserved and the per-token cost is zero on your UberLLM balance. Stored credentials are encrypted and only ever surfaced as a masked last-4.
Dashboard sessions
The web dashboard authenticates with an email + password login that mints a
short-lived JWT, stored in an httpOnly cookie. This session is separate from your
ull_ inference keys — dashboard endpoints under /api/v1/* use the cookie;
the gateway (/v1/*) uses the API key.
Errors
Auth failures return an OpenAI-style error envelope:
{ "error": { "code": "invalid_api_key", "message": "…", "type": "authentication_error" } }
See Errors & limits for the full list.