Wiring in flight. The scope catalogue below reflects the v2 surface. A handful of scopes for surfaces still on v1 may appear as duplicates or under transitional names during this quarter; we're collapsing them as features land.
A scope is the wire format of a capability. When a role's capability is "Read transactions", the token carries scope: payments:read. APIs receiving the token validate the scope claim.
The scope catalogue is the tenant-wide list of legitimate scope strings. When you build a role's capabilities, you're picking from this catalogue.
OIDC standard scopes
Every tenant ships with the four OIDC standards:
Scope | What it grants |
|---|---|
| Required for any OIDC flow. Issues an id token alongside the access token. |
| Adds |
| Adds |
| Requests a refresh token alongside the access token. |
You don't add these to custom roles — they're handled at the application's allowed-scopes list, requested by the application at sign-in.
IntelliAuth API scopes
These let an application (or, indirectly, a user via a role) call platform APIs. Shape: <resource>:<verb>.
Self-service (me:*)
For a user's own account.
Scope | Grants |
|---|---|
| Read own profile, sessions, MFA factors. |
| Update own profile, change password, manage own MFA. |
| List + revoke own sessions. |
Admin-side users
Scope | Grants |
|---|---|
| Read user records in this tenant. |
| Create / update / disable / delete users. |
| Bulk import + export. |
Admin-side applications
Scope | Grants |
|---|---|
| Read application configs. |
| Create / update / disable / delete applications. |
| Rotate client secrets. |
Groups + roles
Scope | Grants |
|---|---|
| Read groups + memberships. |
| Manage groups + memberships. |
| Read role definitions + assignments. |
| Manage roles + assignments. |
Audit
Scope | Grants |
|---|---|
| Read the audit feed. |
| Bulk export audit entries. |
Resources (ReBAC)
Scope | Grants |
|---|---|
| Read resources + relations + check authorisation. |
| Create / update / delete resources + relations. |
Federation
Scope | Grants |
|---|---|
| Read federation connections. |
| Manage federation connections (OIDC + SAML). |
Webhooks
Scope | Grants |
|---|---|
| Read webhook subscriptions + delivery history. |
| Manage webhook subscriptions. |
Out-of-scope (deliberately)
These don't have integrator scopes because the surfaces are tenant-admin web-only:
Flows + Actions configuration
Threat intelligence feed management
Reports configuration
Branding
Breach incident management (read / resolve)
Audit configuration (streaming setup; not reading)
Integrators receive webhook events for downstream reaction; the configuration itself stays in the admin console.
Custom scopes (for your own APIs)
Your applications likely talk to your own backend APIs, not just the platform's. The platform supports tenant-defined custom scopes for that surface.
Roles & scopes → Scope reference → New scope.
Define:
Name —
payments:read,inventory:write,analytics:export. Conventional shape is<resource>:<verb>; the platform doesn't enforce it but consistency pays off.Description — what your API treats this scope as granting.
Category (optional) — for grouping in the picker UI.
Save. The scope is available for:
Role capability assignment.
Application allowed-scopes list.
Bulk imports + management API operations.
How scopes flow at runtime
A user with role X has capabilities in role X.
Capabilities resolve to scope strings.
On sign-in, the application requests a token with
scope: openid profile email <custom-set>.The platform intersects: requested scopes ∩ application's allowed scopes ∩ user's capabilities.
The resulting scope set becomes the token's
scopeclaim.Your API validates the scope claim before serving each request.
The most-restrictive of the three sets wins. An application can't request what it isn't allowed to request; a user can't be granted scopes their roles don't cover.
Naming conventions
Conventions that pay off:
Lowercase —
payments:read, neverPayments:Read.<resource>:<verb>— be consistent across your tenant.Avoid
*—payments:*looks tidy but obscures intent. Define the specific verbs you need.One concept per scope —
payments:approvenotpayments:approve-and-export. Split when the verbs are separable.
The platform doesn't enforce these; picking and applying a convention saves your future self.
What the platform refuses
Scope name with whitespace — scope strings are space-delimited on the wire; whitespace inside one would break parsing.
Scope name starting with
@— reserved for platform-internal scopes.Scopes deleted while still in use — the platform refuses deletion if any role or application still references the scope. Remove the references first.