Skip to main content
Scopes control what an access token can do. Request the smallest set your app needs. In the authorization code flow the user sees these scopes on the consent screen and approves them. Pass scopes as a space separated string in the scope parameter, or as an array to the SDK.

Reference

Read the profile

profile:read is the scope that answers “who approved access”. With it, a token can call GET /api/v1/user and read the account.
The response never includes secrets such as passwords, tokens, or two factor material.

Sensitive scopes

keys:write lets an app mint gateway API keys, and members:write lets an app manage who belongs to a workspace. Request them only when the app truly needs them, and expect users to scrutinize them on the consent screen.

How scopes are enforced

A request must satisfy two checks. The token must carry the scope, and the account must have permission for the action. If either fails the API returns 403. If the token is missing or expired the API returns 401. The token is limited to the intersection of the scopes the user approved and the scopes the application currently holds. Narrowing an application’s scopes narrows every token it issued.