Scopes¶
Each API key carries granular scopes; an endpoint accepts a key only if its scopes satisfy the endpoint’s requirement.
Scopes are <action>:<resource> — read:profile, write:posts, manage:webhooks. read scopes are non-mutating; write and manage change state.
Three wildcards are accepted and stored literally on the key:
Wildcard |
Grants |
|---|---|
|
Everything. |
|
Every read scope. |
|
Every write scope (likewise |
Grant the least privilege an integration needs. A key that only reads the public feed should carry read:feed and nothing else — if it leaks, that is the whole blast radius.
A request whose key lacks the required scope fails with 403 insufficient_scope; the message names the scope that was missing.
Catalog¶
Scope |
Group |
Grants |
|---|---|---|
|
Account |
Read your account summary, tier, and stats. |
|
Posts |
Read your own posts. |
|
Posts |
Create and delete posts on your account. |
|
Feed |
Read the public global feed. |
|
Users |
Read public user profiles and the social graph. |
|
Users |
Follow and unfollow other users. |
|
Engagement |
Like and unlike posts. |
|
Engagement |
Comment on posts. |
|
Account |
Read your notifications. |
|
Account |
Read your bookmarks. |
|
Account |
Add and remove bookmarks. |
|
Media |
Upload images for use in posts. |
|
Content |
Read the public builds marketplace. |
|
Content |
Read blog posts and news articles. |
|
Content |
Read public game leaderboards. |
|
Webhooks |
Create and manage webhook subscriptions. |
Note
This table is generated from lib/api/scopes.ts by pnpm docs:api — the same
module the API and the key-creation UI read. If a scope exists in the product it
is in this table.