PoplituDocs

Scopes

What each permission lets a key or a connection do

A key or an OAuth connection can only use the tools its scopes open. If a call is refused with forbidden, the key is missing the scope that tool needs: create a new key with it in Console → API keys, or reconnect the assistant and approve the scope.

The authoritative list is the one your API publishes as scopes_supported at /.well-known/oauth-protected-resource. Today it is:

ScopeLets it
posts:readBrowse posts ("show my scheduled posts")
posts:writeCreate and schedule posts
posts:publishPublish now, or retry a failed post
posts:deleteDelete a post, for good once it runs
analytics:readRead analytics ("how did we do last month?")
ai:generateDraft copy and media; uses your AI credits
media:readFind media in the library
media:writeImport media from a direct https link
integrations:readSee which accounts are connected
channels:readRead the inbox
channels:writeReply to a conversation
forms:readRead forms and their answers
forms:writePublish or unpublish a form
leads:readRead leads
leads:writeUpdate a lead's status
email:readRead templates, campaigns and audiences
email:writeSave an email template
automations:readRead automations and their runs
automations:writeCreate an automation from a template, turn one on or off
audit:readRead the API audit log
webhooks:manageManage webhooks

Two scopes you grant on purpose

mutate:auto lets a connection's writes run without a person approving them, and proposals:approve lets it approve writes waiting for someone else. They are never advertised to an assistant that asks for "everything", and a consent screen shows them apart and unticked, with posts:delete. Give them only to code you trust to act on its own.

On this page