Skip to content
Pathbound DOCS

Authentication

Every request to the Pathbound API (except the health-check and public form-submission endpoints) must include a valid API key.

  1. Go to the API Keys page in the Pathbound dashboard.
  2. Click Create API Key and assign the scopes you need.
  3. Copy the key — it is only shown once.

Pass the key in the Authorization header with the Bearer scheme:

Terminal window
curl https://api.pathbound.ai/v1/contacts \
-H "Authorization: Bearer YOUR_API_KEY"

Use the auth status endpoint to confirm your key is working:

Terminal window
curl https://api.pathbound.ai/v1/auth/status \
-H "Authorization: Bearer YOUR_API_KEY"

A successful response returns your user and tenant information:

{
"status": "success",
"authenticated": true,
"user": {
"user_id": "abc123",
"email": "[email protected]",
"first_name": "Jane",
"last_name": "Doe",
"tenant_id": "tenant_xyz"
}
}

API keys can be scoped to limit what they are allowed to do. If a key has no scopes, it receives unrestricted access for backward compatibility (legacy keys).

ScopeGrants
contacts:readList, search, and retrieve contacts and their events.
contacts:writeCreate, update, delete contacts and contact notes.
companies:readList and retrieve companies.
companies:writeCreate, update, delete companies and company notes.
events:readList and aggregate tracked events.
segments:readList segments and retrieve segment members.
segments:writeReserved for future segment write endpoints.
actions:readList and retrieve actions.
actions:writeCreate, update, approve, reject, execute, cancel actions.
agents:readList and retrieve agents and agent runs.
agents:writeCreate, update, delete agents.
agents:triggerTrigger manual agent runs.
agents:approveApprove or reject pending agent actions.
identities:readList and retrieve sender identities.
identities:writeCreate, update, delete identities; manage LinkedIn auth.

Endpoints that require a specific scope return 403 Forbidden if the key does not have it. Most endpoints declare a single required scope; some (like POST /v1/aggregate) require a scope that depends on which entity you are querying.

{
"status": "error",
"error": "Insufficient API key scopes. Missing: events:read",
"required_scopes": ["events:read"],
"timestamp": "2026-04-29T12:34:56.000Z"
}

If you connect Pathbound to Claude.ai or another MCP client, the MCP server issues a short-lived JWT via Pathbound’s native login flow. You do not need an API key for MCP — see MCP Authentication.

StatusMeaning
401Missing or invalid API key.
403Key is valid but lacks the required scope.
429Rate limit exceeded.

Example 401 response:

{
"status": "error",
"error": "Unauthorized",
"timestamp": "2026-04-29T12:34:56.000Z"
}