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.