DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS /// DOCS
API·CONCEPTS·SCOPES PERMISSIONS

Scopes & permissions

Scopes are space-separated capabilities attached to an API key.

The grammar

Scopes follow <resource>:<action>:

ScopeGrants
tables:readList tables, get one table, list records, get one record
tables:writeCreate, update, delete records
pages:readList pages, get one page
skills:readList skills, get one skill
tasks:readList tasks, get one task

How checks happen

Every endpoint declares the scope(s) it requires. A request is allowed only if the key carries all required scopes. Mismatch → 403 forbidden.

Minting tight keys

When you create a key, grant only the scopes the integration actually needs. A reporting script that only reads tasks only needs tasks:read — don't add tables:write "just in case." Tighter keys make leaks less damaging.