Skip to main content
Scopes authorize what an integration API key may do. Most endpoints require a single scope (named in the API Reference as x-required-scope); a key without it receives 403 FORBIDDEN. Two kinds of exception exist: GET /me requires no scope (credential health check), and a few endpoints accept a legacy alternative for backwards compatibility (e.g. GET /cases honors documents:read alongside cases:read).

Format

Scopes are <resource>:<verb>, all lowercase: Rules:
  • A verb never implies another — write does not imply read. Keys are granted explicit lists.
  • There are no wildcard scopes (*, cases:*) — explicit grants only.
  • Scopes gate endpoints, and in two cases gate fields (pii:read) or an entire elevated domain (medical:*) — see below.

Standard scopes

Note: documents:read, documents:write, and webhooks:manage predate the rest of the vocabulary; existing keys holding them keep working unchanged, and documents:read is still honored on GET /cases (the original document-sync inventory endpoint) alongside cases:read.

Elevated scopes (PHI/PII)

These scopes are never bundled and never implied by any standard scope, and are admin-granted only — they can be added to a key exclusively by platform administrators after BAA verification. Self-serve create/update requests that include them are rejected server-side. Any key holding an elevated scope additionally requires:
  • an acting attorney (every PHI access is attributable to a person),
  • HIPAA audit entries written for every read of a gated endpoint or field,
  • a shorter maximum expiry (1 year) and the sensitive rate tier (60/min).

Scope ↔ acting-attorney matrix

Scopes and organization roles

The key scope reports:read is separate from the acting attorney’s organization permissions reports:view, reports:export, and applicable hq:* and data permissions. A hierarchy toggle is not an additional API scope and does not grant a role. See the HQ reporting checklist. org:manage controls administrative API operations, including key management. It is not required just to execute reports, and it does not make all resource endpoints cross-organization. Portal credential management uses the separate organization permission integrations:manage.

Choosing scopes

Grant the minimum set your integration needs, and split responsibilities across keys where practical — keys are cheap, independently revocable, and each carries its own rate-limit budget and webhook subscriptions. A typical read-only sync integration needs only events:read plus the :read scopes of the entities it mirrors.