Skip to Content
Developer APIAuthenticationScopes & Permissions

Scopes & Permissions

Scopes follow the pattern resource:action and control what an API token or OAuth client can do. They are set at token creation or OAuth consent and cannot be expanded without re-issuing.

Wildcard: resource:* satisfies any action under that resource. *:* (superadmin only) bypasses all checks.


Drive

ScopeGrants
drive:readBrowse folders, download files, list shares, read versions, delta sync
drive:writeUpload files, create folders, rename, move, copy, share, trash, restore, delete
drive:*Both read and write

Note: Drive endpoints require an acting user (OAuth user JWT or a PAT bound to a user_id). Pure service account tokens without a user context are rejected.


Sites

ScopeGrants
sites:readList sites, read pages and page tree
sites:writeCreate/update/delete sites and pages
sites:*Both read and write

Sites also requires an acting user.


Calendar

ScopeGrants
calendar:readRead calendars and events, free/busy queries
calendar:writeCreate, update, delete events; import ICS

CalDAV endpoints use HTTP Basic or Bearer auth and enforce these scopes. REST calendar endpoints (/api/v1/calendar/*) are not yet in the hardened external surface — use CalDAV for external clients.


Contacts

ScopeGrants
contacts:readList address books and contacts
contacts:writeCreate, update, delete contacts

CardDAV is the recommended protocol for external contacts access.


Mail

ScopeReserved — not enforced on any external endpoint in v1
mail:readRead mailboxes and messages
mail:sendSend messages on behalf of a user

These scopes are defined for forward-compatibility. No external mail REST endpoints enforce them yet. Use IMAP/SMTP for external mail access today.


Partner / MSP

ScopeGrants
partner:orgs:readList and inspect customer organisations
partner:orgs:writeCreate and update organisations
partner:orgs:manageSuspend and activate organisations
partner:orgs:*All org operations
partner:users:readList and inspect users within managed orgs
partner:users:writeCreate and invite users
partner:users:manageSuspend, activate, delete users; reset passwords
partner:users:*All user operations
partner:teams:readList teams and members
partner:teams:writeCreate and update teams, add members
partner:teams:manageDelete teams, remove members
partner:teams:*All team operations
partner:billing:readRead subscription and invoice state
partner:plans:readList published plans
partner:plans:writeChange plan and seat count
partner:plans:*Both plan operations

Partner API calls require the caller’s organisation to be a reseller (reseller_depth >= 1). These scopes are not available to regular org-level tokens.


Webhooks

ScopeGrants
webhooks:manageCreate, update, pause, delete webhook subscriptions and rotate secrets

In v1, webhook subscription management also accepts any token with admin:access permission (the first-party admin role).


Admin

ScopeGrants
admin:readRead-only org admin data (users, roles, settings)
admin:accessFull org admin access — required for webhook management and service principal management

Scopes not in v1

ScopeReason deferred
chat:read / chat:writeE2EE complexity — consent and key management unresolved
mail:adminFull mail admin surface deferred
admin:writeBroad admin write deferred until partner model is proven at scale

Scope inheritance rules

  1. *:* (superadmin) satisfies any scope check — never issue this to external clients.
  2. A prefix wildcard like partner:orgs:* satisfies partner:orgs:read, partner:orgs:write, and partner:orgs:manage.
  3. The effective scopes of a token are the intersection of: (a) the scopes granted on the token itself, and (b) the scopes allowed on the service principal. Granting a token a scope that the service principal doesn’t have has no effect.

Which actors get which scopes

ActorTypical scopes
Personal connected app (user-delegated OAuth)drive:read, calendar:read, contacts:read — user-level only
MSP / reseller service accountpartner:orgs:*, partner:users:*, partner:billing:read
Org automation / CRMdrive:read, calendar:read, contacts:read
Org admin scriptadmin:access, webhooks:manage

See the full actor × auth method matrix for details on which auth flow each actor uses.