/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.
If a call fails on a missing scope, the response tells you which scope to grant. Add it in the same API Keys view. Do not work around a missing scope.
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.