What’s it for?
- Skip the FLOW mark-up if you already have a paid Anthropic / OpenAI account.
- Use providers we don’t host (Runway, Pika, Cartesia, Brave Search, …).
- Test a new model the day it ships, not when we add it to the platform catalog.
How keys are protected
- Plaintext keys are sealed with AES-256-GCM before they hit the database. The master key lives in
AGENTS_MASTER_KEY(rotated separately from JWT secrets). - The cabinet only ever sees the masked prefix (first 8 chars +
***). - Revoking a key is a soft delete — the row stays for audit but the agent runtime stops handing it out.
Add a key (3-step wizard)
Pick a category
/account/keys shows five tiles, one per AI capability:
There is no separate “OAuth” category — OAuth, where supported, is just another auth method on a specific provider (see Anthropic below).
| Category | Examples |
|---|---|
| LLM | Anthropic, OpenAI, OpenRouter, Groq |
| Image | DALL·E, Stability, Fal, Replicate |
| Video | Runway, Luma, Pika, Fal Video |
| Audio | ElevenLabs, OpenAI TTS, Cartesia |
| Research | Perplexity, Tavily, Serper, Brave, Exa |
Pick a provider
Each tile expands into provider cards. Pick the one whose dashboard you already have a key in.Most providers accept only a pasted API key. Anthropic advertises an OAuth path for Claude Pro / Max users, but Anthropic has not yet published a public OAuth flow — clicking Continue with Claude OAuth surfaces a
oauth_not_available notice (“OAuth Max — coming soon”). Use an API key from the Anthropic Console for now.Paste the key, name it, save
Optional label lets you tag a key (e.g.
prod, personal, client-x). The cabinet shows the label everywhere — useful when you’re juggling several keys per provider.The wizard hits the provider’s testUrl with Authorization: Bearer <key> (or x-api-key for Anthropic) and shows a green pill if it returned 2xx. Catalog entries without a cheap test endpoint (Pika, Cartesia) skip this step.Rotation
You can stash multiple keys per provider. The runtime picks the one with the lowestrotation_priority for every tool call. Use the up/down arrows in the row to reorder:
- Priority 0 = most preferred (default for new keys)
- Higher = fallback
Coming soon — rentability
The Rentable column is a placeholder for an upcoming marketplace flow. Idea: stake your unused Anthropic quota at $X per million tokens, the platform routes other users’ calls through your key, you earn FLOW, AgentFlow takes a slice. The toggle is disabled today; the schema’s already there so we can ship without a migration.API examples
Troubleshooting
- Test returned 401 — the key is wrong or expired. Re-paste from the provider dashboard.
/oauth/anthropic/startreturns 501oauth_not_available— expected. Anthropic does not currently expose a public OAuth flow; the Pro/Max OAuth route is reserved for Anthropic’s own first-party clients (e.g. Claude Code). Use an API key from platform.claude.com instead.- Agent still uses platform Anthropic — your key category must match the agent’s needs. An agent that picks
@elizaos/plugin-openaiwon’t use your Anthropic key. Either add an OpenAI key or swap the plugin in agent settings.