API keys
API keys you generate to access Reverie characters from your own apps — the OpenAI-compatible endpoint, the character importer skill, custom integrations.
API keys on Reverie are outbound — they let your own code call Reverie. They're not for plugging external provider keys (OpenAI, Anthropic, etc.) into Reverie's chat; Reverie uses its own model routing internally.
What API keys are for
- The Open API — an OpenAI-compatible chat completions endpoint you can call from any client that speaks OpenAI
- The Character Importer skill — CLI tool that uses the v1 character creation endpoint
- Any custom integration that calls Reverie's
/api/v1surface
Creating a key
Settings → API keys → + New key.
- Name — which integration or device the key is for, so you can revoke it later
- Default character (optional) — when set, requests without a
modelfield land on this character (useful for single-character bots and integrations) - Expiration (optional) — auto-expire after a date
Keys are prefixed rk_ and shown only once on creation — store them somewhere safe (a password manager, a secret store). If you lose a key, revoke it and create a new one.
Using a key
Pass it as a Bearer token:
See the Open API guide for the full request shape, model field semantics, streaming behaviour, and error codes.
Per-key default character
The "default character" field on a key is genuinely useful for narrow integrations:
- A Discord bot that's just one character — set that character as default; requests don't need a
modelfield - A tutoring chatbot pinned to a specific tutor character — same
- The
GET /v1/modelsendpoint changes behaviour: with a default character set, it returns that character's scenarios so OpenAI-compatible UIs can pick between scenarios as if they were model variants
Without a default, the API falls back to your most recent character chat.
Revoking and rotating
Settings → API keys → [key] → Revoke. Immediate; the key stops working on the next request.
Rotation: create a new key with the same name + default character, ship the new key to your integration, then revoke the old one. No downtime if you swap them in the right order.
Billing
API usage spends from your Reverie credit balance — same per-token rates as web chat, no surcharge for using the API. The credit ledger labels API usage with the key name so you can see per-integration spend.
What we don't currently support
For the avoidance of doubt: Reverie doesn't currently let you bring your own provider keys (OpenAI, Anthropic, Google, OpenRouter, DeepSeek) and route Reverie chats through them. We manage model routing centrally so we can guarantee uptime, fall back when a provider is down, and tune costs across the catalog. If this changes we'll announce it in the changelog.