Getting started

    Scopes

    What each permission unlocks, and which routes a key can never reach.

    Each key carries a list of scopes. A request to a route whose scope the key lacks is refused with 403 MISSING_SCOPE, and the response names the scope that was missing.

    ScopeUnlocks
    chats:readList conversations, contacts, messages, tags and media.
    chats:writeResolve, favorite, assign and annotate conversations; add or remove a tag on a conversation; update a contact.
    messages:sendSend and edit messages, start conversations, upload media.
    tags:writeCreate, rename and delete tags.
    groups:readGroup metadata, invite codes and profile pictures.
    groups:writeCreate groups, manage participants, invite people, edit subject, description and picture.

    A key created without choosing scopes is read-only: chats:read and groups:read. The power to send must be granted explicitly.

    Routes open to any key

    GET /health, GET /integrations and the MCP endpoint need no specific scope. Inside MCP, each tool call is checked against the scope of the route it uses.

    What a key can never do

    Connecting or disconnecting a number, reading QR codes, syncing history, billing and account settings are dashboard-only. Any route not listed in this reference answers 403 ROUTE_NOT_PUBLIC, even for a key with every scope.