Workspace API keys
Public REST requests use a SendPilot workspace API key:Authorization: Bearer sp_live_... or Bearer sp_test_... is also accepted. Use one authentication header; X-API-Key takes precedence if both are supplied.
The key determines the workspace. Adding a workspace header or changing an ID does not grant access to another workspace. Use a separate key for each workspace. Start with Get workspace and key to check the effective scopes, expiry, rate limits, and subscription state.
Create or reuse a key
- Select the intended workspace in SendPilot.
- Open Integrations → API Keys, or select an API-key client in Integrations → MCP.
- Choose Create API Key and save the full value when it is shown.
- In MCP setup, Use Key for Setup supplies a newly created key to the selected client’s configuration. Use Saved Key accepts a full key you previously saved.
Effective permissions
Each operation declares its required scopes in the OpenAPIx-sp-scopes extension. The current REST API uses:
Write scopes imply the corresponding read scopes;
inbox:send implies inbox:read, and lead_sourcing:run implies leads:read. Registry scopes for other capabilities do not imply that a public endpoint or MCP tool exists. The endpoint reference and MCP tool catalog define the available operations.
Keys stored without explicit scopes retain the legacy full-scope policy, still capped by their creator’s current membership and permissions. An empty scope list is not a way to create a no-access key. /v1/me reports apiKey.scopes, apiKey.fullAccess, and missingScopes.
Scopes do not override workspace roles. Campaign resume additionally requires inbox:send, as does importing into a running campaign. For credentials with a recorded creator, resume also requires ALLOW_CREATE_CAMPAIGN; database searches require ALLOW_LEAD_FINDER; extraction requires ALLOW_LEAD_EXTRACTION. Removing the creator from the workspace or reducing their rights can remove access immediately. Historical keys without a recorded creator retain their legacy scope policy.
MCP OAuth is a separate connection method
Claude and ChatGPT web connectors use a dashboard-created OAuth connection URL. Clerk handles sign-in, consent, token exchange, and refresh. Those OAuth tokens authenticate to that exact MCP resource; they are not API keys for direct/v1 requests.
New dashboard OAuth connections preselect Read and Write. Users can select Read Only before creating the connection. This UI default does not change existing grants or the API-key scope policy. See client setup.
Authentication errors
See limits, errors, and retries for billing refusals, rate limits, and idempotent writes.