const response = await fetch('https://api.commune.email/oauth/clients', {
method: 'POST',
headers: {
'Authorization': 'Bearer comm_xxx',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Your App Name',
websiteUrl: 'https://yourapp.com',
description: 'AI sales platform',
}),
});
const { client_id, client_secret } = await response.json();
// Store client_secret immediately — shown only once
import httpx
resp = httpx.post(
'https://api.commune.email/oauth/clients',
headers={
'Authorization': 'Bearer comm_xxx',
'Content-Type': 'application/json',
},
json={
'name': 'Your App Name',
'websiteUrl': 'https://yourapp.com',
'description': 'AI sales platform',
},
)
data = resp.json()
# Store data['client_secret'] immediately — shown only once
curl -X POST https://api.commune.email/oauth/clients \
-H "Authorization: Bearer comm_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Your App Name",
"websiteUrl": "https://yourapp.com",
"description": "AI sales platform"
}'
{
"client_id": "comm_client_a1b2c3d4e5f6...",
"client_secret": "comm_secret_f6e5d4c3b2a1...",
"name": "Your App Name",
"description": "AI sales platform",
"website_url": "https://yourapp.com",
"status": "active",
"verified": false,
"created_at": "2026-03-18T10:00:00.000Z"
}
Commune OAuth
Register OAuth Client
Register your app with Commune to get a client_id and client_secret for the OAuth sign-in flow.
POST
/
oauth
/
clients
const response = await fetch('https://api.commune.email/oauth/clients', {
method: 'POST',
headers: {
'Authorization': 'Bearer comm_xxx',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Your App Name',
websiteUrl: 'https://yourapp.com',
description: 'AI sales platform',
}),
});
const { client_id, client_secret } = await response.json();
// Store client_secret immediately — shown only once
import httpx
resp = httpx.post(
'https://api.commune.email/oauth/clients',
headers={
'Authorization': 'Bearer comm_xxx',
'Content-Type': 'application/json',
},
json={
'name': 'Your App Name',
'websiteUrl': 'https://yourapp.com',
'description': 'AI sales platform',
},
)
data = resp.json()
# Store data['client_secret'] immediately — shown only once
curl -X POST https://api.commune.email/oauth/clients \
-H "Authorization: Bearer comm_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Your App Name",
"websiteUrl": "https://yourapp.com",
"description": "AI sales platform"
}'
{
"client_id": "comm_client_a1b2c3d4e5f6...",
"client_secret": "comm_secret_f6e5d4c3b2a1...",
"name": "Your App Name",
"description": "AI sales platform",
"website_url": "https://yourapp.com",
"status": "active",
"verified": false,
"created_at": "2026-03-18T10:00:00.000Z"
}
Requires a Commune API key or dashboard session. This is a one-time setup step — you register once and use the credentials for all agent sign-ins.
const response = await fetch('https://api.commune.email/oauth/clients', {
method: 'POST',
headers: {
'Authorization': 'Bearer comm_xxx',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: 'Your App Name',
websiteUrl: 'https://yourapp.com',
description: 'AI sales platform',
}),
});
const { client_id, client_secret } = await response.json();
// Store client_secret immediately — shown only once
import httpx
resp = httpx.post(
'https://api.commune.email/oauth/clients',
headers={
'Authorization': 'Bearer comm_xxx',
'Content-Type': 'application/json',
},
json={
'name': 'Your App Name',
'websiteUrl': 'https://yourapp.com',
'description': 'AI sales platform',
},
)
data = resp.json()
# Store data['client_secret'] immediately — shown only once
curl -X POST https://api.commune.email/oauth/clients \
-H "Authorization: Bearer comm_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Your App Name",
"websiteUrl": "https://yourapp.com",
"description": "AI sales platform"
}'
{
"client_id": "comm_client_a1b2c3d4e5f6...",
"client_secret": "comm_secret_f6e5d4c3b2a1...",
"name": "Your App Name",
"description": "AI sales platform",
"website_url": "https://yourapp.com",
"status": "active",
"verified": false,
"created_at": "2026-03-18T10:00:00.000Z"
}
Body
string
required
Your app name (2–100 characters). Shown to agents in the verification email.
string
What your app does.
string
Your production domain. Commune validates sign-in requests come from this domain. Localhost is always allowed for development.
string
URL to your app’s logo.
Response
string
Public identifier for your app. Safe to expose in frontend code.
string
Secret key for authenticating API calls. Shown once — store immediately. Cannot be retrieved later.
string
Always
"active" on creation.boolean
Whether Commune has manually verified your app. Starts as
false.Last modified on March 19, 2026
Was this page helpful?

