chd_org_...) is the master key. It can do everything — create instances, delete them, manage billing. You absolutely should not put it in a frontend, a mobile app, or hand it to a third-party integration.
That’s where scoped keys come in. A scoped key (chd_sk_...) is locked down to specific instances and specific permissions. It can only do what you allow.
Why scoped keys?
- Frontends: Your chat UI only needs to send messages and read status. Give it
read+interact, nothing else. - Integrations: A Zapier workflow that installs skills? Give it
configureon one instance. - End users: Give each user a key scoped to their instance with
interactonly. They can chat but can’t touch config. - Time-limited access: Set
expires_atand the key auto-revokes.
Set up
Permission reference
Here’s every permission you can assign to a scoped key:Multi-instance keys
A single scoped key can access multiple instances with the same permissions:Common patterns
- Chat frontend
- Admin dashboard
- Temp demo access
What’s next?
Build a Frontend
Put that scoped key to use in a Next.js chat interface.
Connect Telegram
Wire up a messaging channel to your agent.