Outreach · OAuth Scopes

Outreach OAuth Scopes

OAuth 2.0 searched

Outreach publishes 46 OAuth 2.0 scopes via the authorizationCode flow. Scopes are the fine-grained permissions an application requests at authorization time to act against the Outreach API on a user’s behalf.

Tokens are issued from https://api.outreach.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.

SalesSales EngagementSequencesCRMEmailRevenue OperationsSales ExecutionProspectingAgentsMCP
Scopes: 46 Flows: authorizationCode Method: searched

OAuth endpoints

Authorization URL
https://api.outreach.io/oauth/authorize https://api.outreach.io/mcpOAuth/authorize
Token URL
https://api.outreach.io/oauth/token https://api.outreach.io/mcpOAuth/token
Flows
authorizationCode

Scopes (46)

ScopeDescriptionFlows
prospects.all Full read, write and delete access to prospects.
prospects.read Read access to prospects.
prospects.write Write access to prospects.
prospects.delete Delete access to prospects.
accounts.all
accounts.read
accounts.write
accounts.delete
auditLogs.read
calls.all
calls.read
calls.write
calls.delete
events.all
events.read
events.write
imports.all
imports.read
imports.write
kaiaRecordings.read
mailings.read
opportunities.all
opportunities.read
opportunities.write
opportunities.delete
sequenceStates.all
sequenceStates.read
sequenceStates.write
sequenceStates.delete
sequences.all
sequences.read
sequences.write
sequences.delete
snippets.read
tasks.all
tasks.read
tasks.write
tasks.delete
templates.read
users.read
webhooks.all
webhooks.read
webhooks.write
webhooks.delete
batches.read Required alongside the target resource's write scope to run bulk/batch actions.
batches.write Required alongside the target resource's write scope to run bulk/batch actions.

Source

OAuth Scopes

Raw ↑
generated: '2026-08-13'
method: searched
source: https://developers.outreach.io/api/getting-started#authorization
docs:
- https://developers.outreach.io/api/getting-started#authorization
- https://developers.outreach.io/api/s2s-access
- https://developers.outreach.io/api/oauth
provider: Outreach
providerId: outreach
notes: >-
  The published OpenAPI declares NO oauth2 securityScheme — it models only `bearerAuth` and `s2sAuthToken`
  as plain HTTP bearer JWTs — so `derive-oauth-scopes.py` finds zero scopes. The scope model is real and
  fully documented in prose, and the OAuth 2.1 authorization-server metadata at
  https://api.outreach.io/.well-known/oauth-authorization-server declares its own `scopes_supported`. This
  file therefore comes from the docs, not the spec. Outreach does not publish a single enumerated table of
  every OAuth scope; the authoritative list is rendered in the Outreach app's "API access" configuration
  tab, which is behind a customer login. Only scopes Outreach actually names in public are recorded below —
  nothing was extrapolated across resources.
grammar:
  form: <pluralResource>.<level>
  levels:
  - read
  - write
  - delete
  - all
  additive: false
  additive_note: Scopes are NOT additive — `prospects.write` grants no read access. `all` implies
    read + write + delete.
  request_form: space-separated, URL-encoded, in the `scope` query parameter of /oauth/authorize
  on_missing_scope: 403 with error id `unauthorizedOauthScope`
  post_scope_check: OAuth scope is the front gate only; the user's Outreach governance/RBAC profile is
    evaluated separately and returns 403 `unauthorizedRequest` on failure.
schemes:
- name: OAuth 2.0 (REST API)
  flows:
  - flow: authorizationCode
    authorizationUrl: https://api.outreach.io/oauth/authorize
    tokenUrl: https://api.outreach.io/oauth/token
    refresh: grant_type=refresh_token against the same token URL
  credentials: separate development and production client credentials per Outreach app
  source: https://developers.outreach.io/api/oauth
- name: OAuth 2.1 + Dynamic Client Registration (MCP server)
  flows:
  - flow: authorizationCode
    pkce: S256
    authorizationUrl: https://api.outreach.io/mcpOAuth/authorize
    tokenUrl: https://api.outreach.io/mcpOAuth/token
    registrationUrl: https://api.outreach.io/mcpOAuth/register
  source: https://api.outreach.io/.well-known/oauth-authorization-server
- name: S2S application token
  type: JWT signed with a customer-registered RSA public key
  note: Server-to-server; carries application identity, not user identity. Scope set is a strict subset of
    the OAuth scopes.
  source: https://developers.outreach.io/api/s2s-access
scopes:
- scope: prospects.all
  description: Full read, write and delete access to prospects.
  declared_in:
  - authorization-server metadata (scopes_supported)
  - S2S available scopes
  - docs example
  surfaces:
  - rest
  - mcp
  - s2s
- scope: prospects.read
  description: Read access to prospects.
  surfaces:
  - rest
  - s2s
- scope: prospects.write
  description: Write access to prospects.
  surfaces:
  - rest
  - s2s
- scope: prospects.delete
  description: Delete access to prospects.
  surfaces:
  - rest
  - s2s
- scope: accounts.all
  surfaces: [rest, s2s]
- scope: accounts.read
  surfaces: [rest, s2s]
- scope: accounts.write
  surfaces: [rest, s2s]
- scope: accounts.delete
  surfaces: [rest, s2s]
- scope: auditLogs.read
  surfaces: [rest, s2s]
- scope: calls.all
  surfaces: [rest, s2s]
- scope: calls.read
  surfaces: [rest, s2s]
- scope: calls.write
  surfaces: [rest, s2s]
- scope: calls.delete
  surfaces: [rest, s2s]
- scope: events.all
  surfaces: [rest, s2s]
- scope: events.read
  surfaces: [rest, s2s]
- scope: events.write
  surfaces: [rest, s2s]
- scope: imports.all
  surfaces: [rest, s2s]
- scope: imports.read
  surfaces: [rest, s2s]
- scope: imports.write
  surfaces: [rest, s2s]
- scope: kaiaRecordings.read
  surfaces: [rest, s2s]
- scope: mailings.read
  surfaces: [rest, s2s]
- scope: opportunities.all
  surfaces: [rest, s2s]
- scope: opportunities.read
  surfaces: [rest, s2s]
- scope: opportunities.write
  surfaces: [rest, s2s]
- scope: opportunities.delete
  surfaces: [rest, s2s]
- scope: sequenceStates.all
  surfaces: [rest, s2s]
- scope: sequenceStates.read
  surfaces: [rest, s2s]
- scope: sequenceStates.write
  surfaces: [rest, s2s]
- scope: sequenceStates.delete
  surfaces: [rest, s2s]
- scope: sequences.all
  surfaces: [rest, s2s]
- scope: sequences.read
  surfaces: [rest, s2s]
- scope: sequences.write
  surfaces: [rest, s2s]
- scope: sequences.delete
  surfaces: [rest, s2s]
- scope: snippets.read
  surfaces: [rest, s2s]
- scope: tasks.all
  surfaces: [rest, s2s]
- scope: tasks.read
  surfaces: [rest, s2s]
- scope: tasks.write
  surfaces: [rest, s2s]
- scope: tasks.delete
  surfaces: [rest, s2s]
- scope: templates.read
  surfaces: [rest, s2s]
- scope: users.read
  surfaces: [rest, s2s]
- scope: webhooks.all
  surfaces: [rest, s2s]
- scope: webhooks.read
  surfaces: [rest, s2s]
- scope: webhooks.write
  surfaces: [rest, s2s]
- scope: webhooks.delete
  surfaces: [rest, s2s]
- scope: batches.read
  description: Required alongside the target resource's write scope to run bulk/batch actions.
  surfaces: [rest]
  source: https://developers.outreach.io/api/bulk-api
- scope: batches.write
  description: Required alongside the target resource's write scope to run bulk/batch actions.
  surfaces: [rest]
  source: https://developers.outreach.io/api/bulk-api
scope_source_note: >-
  Every scope above is published by Outreach. The `<resource>.<level>` rows for accounts, auditLogs, calls,
  events, imports, kaiaRecordings, mailings, opportunities, prospects, sequenceStates, sequences, snippets,
  tasks, templates, users and webhooks are the S2S "Available scopes" table transcribed verbatim from
  https://developers.outreach.io/api/s2s-access — Outreach states S2S scopes are a SUBSET of the OAuth
  scopes, so each also exists on the OAuth surface. `batches.read`/`batches.write` come from the Bulk API
  page. `prospects.all` is additionally declared machine-readably in the authorization-server metadata.
gaps:
- The REST API exposes 51 tagged resources but only 16 resource families appear in any published scope list;
  scopes for the remaining resources exist but are enumerated only inside the authenticated app-configuration
  UI.
- The OpenAPI declares no oauth2 securityScheme and no per-operation scope requirements, so a generated
  client cannot tell which scope any given call needs.
- The MCP authorization-server metadata advertises only the prospects.all scope in scopes_supported, which
  does not cover the 41 tools it serves (accounts, opportunities, sequences, tasks, teams, users, Kaia).

Work with this as data

Every scope set here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for oauth scopes

4 MCP tools reach this
  • find_scopesBrowse and filter every scope set in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This scope set
curl "https://apis.io/api/v1/scopes/outreach-scopes"
All oauth scopes
curl "https://apis.io/api/v1/scopes?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.