Skip to main content
For server-to-server integrations, use the OAuth 2.0 client-credentials flow. When you create a key in Communicate, save both values shown once:
  • Client ID — the key ID.
  • Client secret — the ck_ secret.

Request an access token

Choose the smallest scopes the integration needs:
The response contains a bearer token valid for one hour:
Use the access token on API requests:
Requested scopes must be a subset of the permissions selected when the key was created. Revoking or narrowing the source key takes effect immediately, including for access tokens already issued. Access tokens are resource-bound. REST tokens default to https://app.communicate.so/api/v1. To connect an MCP client, request a separate token for https://app.communicate.so/mcp as shown in Connect with MCP. REST tokens cannot call MCP, and MCP tokens cannot call REST.

Direct API keys

Existing integrations can continue using the ck_ secret directly. Its effective permissions are the key’s complete scope set.
Treat API keys as server-side secrets. Do not place them in browser code, mobile apps, public repositories, logs, or URLs.
Keys are workspace-bound. A credential can access only agents in its workspace, and revoked keys stop working immediately. Direct ck_ keys are accepted only by the REST API. The MCP endpoint requires a short-lived OAuth access token. Missing and invalid bearer credentials return 401 with a WWW-Authenticate challenge and a structured JSON error.