Service credentials use distinct prefixes so they cannot be exchanged between
credential types. Client tokens are not JWTs.
Bearer header
Requestable project-token scopes
Project tokens use this scope catalog:* grants every current project-token scope. Prefer the narrowest explicit
set. Project ownership is checked in addition to the scope bit; a matching
scope never authorizes cross-project access.
The endpoint-only scope names widget:create, sandbox:read, and
sandbox:write cannot be requested on a project token. Follow each endpoint’s
documented credential requirements; having a scope name in another credential
catalog does not make it valid for project tokens.
Client tokens do not carry scope bits. Their access is controlled by the
session’s exact allowedActions, recipient policy, origin rules, and rate
limits. See Client tokens.
Organization keys use the scope stated on each Platform API endpoint. The
published operations use session, campaign, billing, project, and member read
or manage scopes. The generated Platform API reference lists the
required scope for each operation.
Dashboard authorization
Dashboard requests use a short-lived bearer and verify the active session, organization, membership, account status, and role on each request. Removing a member or ending a session takes effect without waiting for the bearer to expire. Account security supports passwordless email OTP, passkeys bound to the exact Console origin, TOTP, optional social providers, invitations, and device login.Client and project boundaries
- Project tokens cannot address a session, template, campaign, media object, or Meta-compatible identifier owned by another project.
- Client tokens are short-lived and pass through the client-rules middleware.
- MCP requires the project-token
mcpscope or the client-tokenmcpaction. Raw bridge connections require the project-tokenbridge:connectscope. - Each public Platform API operation (
/v1/*) declares whether it accepts an organization key or requires a dashboard bearer. Project tokens are rejected. - Dashboard-only routes do not accept service credentials unless the operation’s OpenAPI security explicitly says they do.