Keys
what each one unlocks.
Every key is optional. Without any key the studio still works: people build videos by hand and render them with music and captions. Each key you add switches on more. All usage is billed to your own accounts.
01Where to enter them
Console, Settings, Integrations. Each field has a "Test" button (except the Stripe webhook secret). Saved keys are encrypted with ADMIN_SECRET_KEY and are write-only: they can be replaced or tested, never shown again. Only the console owner can change them.
You can also pin a key in .env with the variable names below; the console then shows that field locked (src/server/config.ts, ENV_LOCKS).
System health lists every key that is missing and what it switches on.
02Every key
| Key | .env variable | What it switches on | Where to get it |
|---|---|---|---|
| Anthropic API key | ANTHROPIC_API_KEY | AI storyboards from a brief, pitch mode (angles), AI edits in chat, the AI content tools (rewrite, hooks, post copy, brief from a web page or text), translations, the AI check of rendered frames. Without it people build videos by hand in the editor. | console.anthropic.com, API keys |
| ElevenLabs API key | ELEVENLABS_API_KEY | Voiceovers, and captions timed to the spoken words. Without it videos render with music and captions only. | elevenlabs.io, Developers, API keys. Needs text-to-speech and voices read permission. |
| Stripe secret key | STRIPE_SECRET_KEY | Selling plans and credit packs. Only needed when Settings, Customer billing, "Sell plans and credit packs" is on. The "Test" button says whether it is a live or a test key. | Stripe dashboard, Developers, API keys |
| Stripe webhook signing secret | STRIPE_WEBHOOK_SECRET | Recording payments. Without it Stripe charges the customer but the studio never gives the plan or the credits. | Stripe, Developers, Webhooks, your endpoint (Stripe webhook) |
| Resend API key | RESEND_API_KEY | E-mail: invites, password resets, "your video is ready", review comments. Also set the sender under Settings, E-mail. Without it you copy invite links by hand. | resend.com, API Keys. Verify your sending domain there. |
| Pexels API key | PEXELS_API_KEY | Free stock photo search in the image picker and in Uploads. Photos are saved with the photographer's credit. | pexels.com/api |
03Who pays for what
- Anthropic bills you for every AI call. The console's AI usage page lists each call with its model and tokens; check Anthropic's dashboard for prices.
- ElevenLabs bills you per character of voiceover. Voiceovers are cached, so re-rendering an unchanged video does not generate the voice again.
- Stripe takes its own fees from each payment.
- You charge your customers in credits (Plans and credits), and Stripe pays you.
Settings, AI director, "Workspaces may bring their own Anthropic key" lets a workspace pay its own AI usage. Its owner pastes a key (sk-ant-…) on the studio's Workspace page; that workspace then spends no AI credits. Render and voiceover credits still apply.
API usage of Anthropic, ElevenLabs, Stripe, Resend and Pexels is billed to the accounts and keys you configure. It is not included in the price of the item (LICENSE.md).
04The secret key itself
ADMIN_SECRET_KEY (64 hex characters, openssl rand -hex 32) encrypts the saved keys. If it is not set, the server generates one into DATA_DIR/.admin-secret-key and warns in the log. Either way, back it up. A restored backup with a different key starts fine, but every saved API key has to be entered again.