PPact
Developers

OAuth & API scope reference

Every scope Pact exposes, what it grants, and recommended sets per use case.

Scopes control exactly what a token can do. Both OAuth tokens and API keys are scoped — request the minimum your integration needs. Workspace admins approve least-privilege apps faster, and a leaked low-scope token does less damage.

Scopes follow a resource:action shape: a read: scope lets you list and fetch; a write: scope lets you create and update.

All scopes

ScopeGrants
read:accountsView company accounts
write:accountsCreate and update company accounts
read:contactsView contacts
write:contactsCreate and update contacts
read:dealsView deals and pipeline
write:dealsCreate and update deals
read:activitiesView the activity feed
write:activitiesLog activities
read:workflowsView workflow runs
read:callsView voice calls, transcripts, and the live call event stream
voice:agentConfigure AI voice agents and place simulated test calls
voice:campaignCreate and manage outbound call campaigns
read:casesView support cases and the unified inbox
write:casesCreate, route, merge and reply to support cases
read:kbView knowledge-base articles
write:kbCreate and update knowledge-base articles
read:warehouseView warehouse sync connections and run history
write:warehouseConfigure warehouse connections and trigger syncs (admin)
read:recordingsView call recordings and the deletion queue
write:recordingsManage recording retention policy and legal holds
write:signalsConfigure signal action rules (admin)
write:contextDefine and version-bump MCP context bundles

The write:context, read:cases/write:cases, read:kb/write:kb, read:warehouse/write:warehouse, read:recordings/write:recordings, and write:signals scopes gate Pact's MCP tool server rather than a REST endpoint — see that page for the full tool-to-scope mapping.

Request multiple scopes as a space-separated list, for example read:contacts write:contacts read:deals.

Use caseScopes
Read-only dashboard / reportingread:accounts read:contacts read:deals read:activities
Inbound lead capture (forms, web)write:contacts write:accounts
Two-way CRM syncread:accounts write:accounts read:contacts write:contacts read:deals write:deals
Activity logging (calls, emails)read:contacts write:activities
Pipeline automationread:deals write:deals read:workflows
Voice — call analytics / live feedread:calls
Voice — AI agents + campaignsread:calls voice:agent voice:campaign
Support — read cases + KBread:cases read:kb
Support — triage and replyread:cases write:cases read:kb write:kb
Data warehouse syncread:warehouse write:warehouse

Principles

  • Least privilege. Start with read: scopes; add write: only where you actually create or update records.
  • Read does not imply write. read:contacts cannot modify a contact — you need write:contacts for that.
  • Scopes are checked per request. A call to a write endpoint with a read-only token returns 403 Forbidden, not 401.

Changing scopes

To change an OAuth app's scopes, update it in Admin → API & developers — connected workspaces re-consent on the next authorization. For an API key, the scopes are fixed at creation; issue a new key (or rotate) to change them.

What's next?