Common Room · OAuth Scopes

Common Room OAuth Scopes

OAuth 2.0 probed

Common Room publishes 4 OAuth 2.0 scopes via the authorizationCode, deviceCode, and refreshToken flows. Scopes are the fine-grained permissions an application requests at authorization time to act against the Common Room API on a user’s behalf.

Tokens are issued from https://login.commonroom.io/oauth/token.

This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.

Community IntelligenceGo-To-MarketMember SignalsGitHubSlackDiscordLinkedInSales IntelligenceContact ManagementWebhookBuyer IntelligenceMCPAgent ToolingCLISCIMSignal Intelligence
Scopes: 4 Flows: authorizationCode, deviceCode, refreshToken Method: probed

OAuth endpoints

Authorization URL
https://login.commonroom.io/authorize
Token URL
https://login.commonroom.io/oauth/token
Flows
authorizationCodedeviceCoderefreshToken

Scopes (4)

ScopeDescriptionFlows
openid OIDC sign-in; issues an ID token identifying the Common Room user. authorizationCode, deviceCode
profile Basic profile claims for the authenticated Common Room user. authorizationCode, deviceCode
email Email address of the authenticated Common Room user. authorizationCode, deviceCode
offline_access Issues a refresh token so the client can renew access without re-prompting. authorizationCode, deviceCode

Source

OAuth Scopes

Raw ↑
generated: '2026-08-13'
method: probed
source: >-
  https://mcp.commonroom.io/.well-known/oauth-protected-resource +
  https://mcp.commonroom.io/.well-known/oauth-authorization-server
docs: https://www.commonroom.io/docs/using-common-room/mcp-server/
note: >-
  The published OpenAPI declares only an http/bearer securityScheme, so
  derive-oauth-scopes.py has nothing to read. The OAuth surface is real but lives
  OFF the REST spec: it is the authorization layer in front of the hosted MCP
  server and the CLI. Scopes below are transcribed verbatim from the two
  machine-readable discovery documents; both were fetched anonymously at HTTP 200
  and saved to well-known/. Common Room publishes NO product-permission scope
  vocabulary — there is no read:contacts / write:segments style scope anywhere.
authorization:
  spec: OAuth 2.1
  protected_resource: https://mcp.commonroom.io/
  authorization_servers:
  - https://login.commonroom.io/
  identity_provider: Auth0 (login.commonroom.io)
schemes:
- name: MCPOAuth
  type: oauth2
  source: https://mcp.commonroom.io/.well-known/oauth-authorization-server
  applies_to: https://mcp.commonroom.io/mcp
  flows:
  - flow: authorizationCode
    authorizationUrl: https://login.commonroom.io/authorize
    tokenUrl: https://login.commonroom.io/oauth/token
    pkce: [S256, plain]
  - flow: deviceCode
    deviceAuthorizationUrl: https://login.commonroom.io/oauth/device/code
    tokenUrl: https://login.commonroom.io/oauth/token
    note: Used by `cr auth login --device` for headless/SSH environments.
  - flow: refreshToken
    tokenUrl: https://login.commonroom.io/oauth/token
  endpoints:
    jwks_uri: https://login.commonroom.io/.well-known/jwks.json
    userinfo_endpoint: https://login.commonroom.io/userinfo
    revocation_endpoint: https://login.commonroom.io/oauth/revoke
    registration_endpoint: https://login.commonroom.io/oidc/register
  dynamic_client_registration: true
scopes:
- scope: openid
  description: OIDC sign-in; issues an ID token identifying the Common Room user.
  flows: [authorizationCode, deviceCode]
  sources: [oauth-protected-resource, oauth-authorization-server]
  resource_scope: true
- scope: profile
  description: Basic profile claims for the authenticated Common Room user.
  flows: [authorizationCode, deviceCode]
  sources: [oauth-protected-resource, oauth-authorization-server]
  resource_scope: true
- scope: email
  description: Email address of the authenticated Common Room user.
  flows: [authorizationCode, deviceCode]
  sources: [oauth-protected-resource, oauth-authorization-server]
  resource_scope: true
- scope: offline_access
  description: Issues a refresh token so the client can renew access without re-prompting.
  flows: [authorizationCode, deviceCode]
  sources: [oauth-protected-resource, oauth-authorization-server]
  resource_scope: true
authorization_server_only_scopes:
- name
- given_name
- family_name
- nickname
- email_verified
- picture
- created_at
- identities
- phone
- address
authorization_server_only_note: >-
  Advertised by the Auth0 tenant's scopes_supported but NOT listed in the MCP
  protected-resource metadata, so they are identity-provider claims rather than
  Common Room API scopes.
authorization_model:
  style: per-user-delegated
  statement: >-
    "Write operations respect the same per-user OAuth permissions as read
    operations. Users can only create or update data their Common Room account
    already has access to. Workspace role-based access controls apply to every
    write — there is no elevated service account or shared token."
  source: https://www.commonroom.io/docs/using-common-room/mcp-server/
  implication: >-
    Authorization is carried by the user's workspace role, not by OAuth scope. An
    agent holding a Common Room token has exactly the reach of the human who
    granted it, and there is no scope-level way to grant read without write.
scope_count: 4