- API keys start with cm_ and are shown once at creation — store them securely.
- Pass keys as Authorization: Bearer cm_xxx on the REST endpoints.
- The managed voice agent WebSocket uses Authorization: Token cm_xxx, or the ["token", "cm_xxx"] subprotocol for browsers, which cannot set headers.
- Revoke compromised keys immediately from Settings → API Keys.
- JWT tokens (dashboard login) are separate from API keys — do not expose JWTs in client apps.