Authentication & permissions
OAuth connections and scoped keys with live workspace authorization.
Bearer authentication
Authorization: Bearer bas_<your-secret-key>Use this header on every REST request and MCP message. Keys are stored as SHA-256 hashes; the original token is never stored. Issuing and revoking keys requires the signed-in dashboard session. API keys cannot issue other API keys.
Choose the smallest scope
- sites.read: inspect sites, revisions, previews, resource configuration, media, CMS, domains, analytics and audit events.
- sites.write: create/edit drafts, managed forms and calendars, visual styles, fonts, media and CMS drafts. Platform AI and image approvals can consume credits.
- tracking.write: replace site tracking settings and write Meta credentials. This can immediately change code on a published site.
- sites.publish: publish a saved site/CMS revision, manage domains, clone/archive/restore/unpublish/delete sites after user authorization.
- contacts.read: inspect form responses, bookings, contacts, leads and email delivery history.
- contacts.write: manage bookings, contacts, webhooks and email configuration or delivery. Sending messages requires explicit user authorization.
- workspace.read: read the approved workspace team, usage and aggregate analytics. All-sites credentials only.
- workspace.write: manage the approved workspace and send/revoke team invitations after explicit user authorization. All-sites credentials only; existing connections do not gain this scope automatically.
Scopes do not imply each other. Give a publishing integration sites.read as well as sites.publish so it can inspect and validate the revision. Publishing currently needs sites.read for the preflight read. Site-bound keys cannot create new sites.
Permissions remain live
Every operation rechecks key expiry, revocation, membership, site ownership, and scope in the database. Writes require the issuing user to remain an owner or admin. Demotion to editor removes write access immediately; removing their membership invalidates the key. Tenant tables use deny-by-default row-level security; service-only integration functions apply equivalent checks before each operation.
Expiration, revocation, and limits
A workspace can have up to 25 active keys. Revoke a key from Developer access to stop further requests. There is a shared limit of 60 authorization checks per key per minute across REST and MCP. Publishing preflight performs additional checks. Already-running AI jobs remain governed by their original authorization and can continue after key revocation; revocation prevents new access, not a retroactive cancellation.