Scopes
Every access token carries one or more scopes. An endpoint that needs a scope your token doesn’t have returns:
{ "error": "Forbidden", "code": "SCOPE_REQUIRED", "message": "This action requires the 'purchase' scope.", "required_scope": "purchase"}The three scopes
Section titled “The three scopes”| Scope | Unlocks |
|---|---|
discovery |
Read-only: counts, lookups, segment/audience reads, demographics, the field catalog, and polling job/run status. Nothing here creates or charges anything. |
purchase |
Read-write: create/update segments and audiences, run microbatch/file matches, link campaigns, and trigger deliveries. This is where billable operations live. |
account |
Self-service account management: API key creation/revocation, webhook subscriptions, delivery destination settings, and billing/usage reads. |
Picking scopes for a key
Section titled “Picking scopes for a key”Request the narrowest set your integration actually needs. A read-only reporting integration
should carry discovery alone; give it purchase only if it actually creates audiences or
triggers deliveries. account is powerful enough (it can mint other API keys) that it’s
worth keeping off keys used by anything other than your own account-management tooling.
Scopes on OAuth tokens
Section titled “Scopes on OAuth tokens”OAuth-issued tokens (see OAuth) work the same way, with one difference: the scopes available to request are bounded by what the connecting client app is allowed to ask for, not just what the authorizing user could grant. A user can only approve a subset of the client’s allowed scopes — never more.