/api/v1 surface. The hosted MCP server uses OAuth instead, so you do not need a key for it.
Create a key
In the ContentHero app, go to Settings, API Keys and create a key. You see the full secret once, at creation time. Copy it then; it is stored hashed and cannot be revealed again later through the same view. Keys are prefixedch_live_. Treat a key like a password.
Scopes
Every key is scope-gated. Grant only what the integration needs.| Scope | Grants |
|---|---|
generate:* | Image, video, audio, board, and lip-sync generation |
pipeline:write | Create and assemble posts |
publish:write | Schedule and publish posts |
brandkit:read | Read brand kits, knowledge, inspiration, and performance |
brandkit:write | Edit brand kits and add or remove knowledge |
assets:write | Upload and attach media |
Use a key
- CLI
- Raw API
The recommended path is Resolution order is
contenthero login, which provisions and stores a key for you. To use an existing key, set it in the environment:--api-key flag, then CONTENTHERO_API_KEY, then the stored credential at ~/.contenthero/credentials (mode 0600).Rate limits and idempotency
- Requests are rate-limited per key. Over the limit returns
429. Back off and retry. - Generation accepts an idempotency key so a retried request does not double-charge. The SDK and CLI handle this for you.