Authentication
All API requests require a Bearer token in theAuthorization header.
API keys
API keys follow the formatsk_live_* and are generated through the web app’s workspace settings. Each key is associated with a workspace and its connected channels.
How it works
- Your request includes the API key in the
Authorization: Bearerheader - The server SHA256-hashes the key and looks it up in Redis (
mcp:apikey:*prefix) - The stored context includes the workspace ID and credentials for each connected channel (Meta, LinkedIn, Google)
- Per-request credentials are injected via
AsyncLocalStorage— each tool call uses the correct channel credentials automatically
Channel connections
A single API key can have multiple channels connected. The key’s stored context looks like:403 FORBIDDEN error with ChannelNotConnectedError.
Error responses
| Status | Code | Meaning |
|---|---|---|
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 403 | FORBIDDEN | Channel not connected for this key |