Prefix:chd_org_*Organization keys are the master keys. They have full, unrestricted access to everything in your organization: instances, channels, skills, files, billing, other keys — everything.You get one automatically when you sign up:
The raw API key is only shown once — at creation. Chowder stores a SHA-256 hash of the key, not the key itself. If you lose it, you’ll need to create a new one.
Prefix:chd_sk_*Scoped keys are restricted keys. They only work with specific instances and only have specific permissions. This is what you hand out when you don’t want to give away the kingdom.
Chowder never stores raw API keys. Here’s what happens:
1
Key generation
A cryptographically random key is generated with the appropriate prefix (chd_org_ or chd_sk_).
2
Hash storage
The key is hashed with SHA-256. Only the hash is stored in the database.
3
Key returned once
The raw key is returned in the creation response. This is the only time you’ll see it.
4
Authentication
On each request, Chowder hashes the key from the Authorization header and looks up the hash in the database.
This means Chowder cannot recover your key. If you lose it, revoke it and create a new one. This is by design — it protects you even if the database is compromised.
You’re building backend services, admin tools, or anything that runs on infrastructure you control. The key never leaves your server.
Use a scoped key when...
You’re building user-facing apps, chat widgets, or anything where the key might be visible in network requests. Lock it down to specific instances and minimum permissions.
A good pattern: your backend uses an org key to manage instances and create scoped keys, then hands scoped keys to your frontend so users can chat with specific agents without accessing anything else.