Exchange API-key client credentials for an access token
curl --request POST \
--url https://app.communicate.so/api/v1/oauth/token \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data grant_type=client_credentialsconst options = {
method: 'POST',
headers: {
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: new URLSearchParams({grant_type: 'client_credentials'})
};
fetch('https://app.communicate.so/api/v1/oauth/token', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.communicate.so/api/v1/oauth/token"
payload = { "grant_type": "client_credentials" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/x-www-form-urlencoded"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text){
"access_token": "<string>",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authentication
Exchange API-key client credentials for an access token
Uses HTTP Basic authentication where the API key ID is the client ID and the one-time ck_ token is the client secret. Requested scopes must be a subset of the API key scope ceiling.
POST
/
oauth
/
token
Exchange API-key client credentials for an access token
curl --request POST \
--url https://app.communicate.so/api/v1/oauth/token \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data grant_type=client_credentialsconst options = {
method: 'POST',
headers: {
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: new URLSearchParams({grant_type: 'client_credentials'})
};
fetch('https://app.communicate.so/api/v1/oauth/token', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.communicate.so/api/v1/oauth/token"
payload = { "grant_type": "client_credentials" }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/x-www-form-urlencoded"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text){
"access_token": "<string>",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Use the API key ID as the username and the one-time ck_ API key token as the password.
Body
application/x-www-form-urlencoded
Available options:
client_credentials Space-delimited subset of agents:read and chat:write.
RFC 8707 resource audience. MCP tokens accept only agents:read.
Available options:
https://app.communicate.so/api/v1, https://app.communicate.so/mcp