API Keys
All API requests must include an API key in theAuthorization header using the Bearer scheme.
Key Format
API keys follow the formatsk_ followed by a unique identifier:
Permission Levels
Each API key has one of three hierarchical permission levels:| Level | Description | Allowed operations |
|---|---|---|
read | Read-only access | GET requests only |
write | Read + write access | GET, POST, PATCH requests |
admin | Full access | All methods including DELETE |
admin includes all write permissions, and write includes all read permissions.
Company Context
All endpoints (exceptGET /companies) require a company_id query parameter. This scopes the request to a specific company within your organization.
Error Responses
Authentication errors return standard HTTP status codes:| Status | Error | Description |
|---|---|---|
401 | Missing Authorization header | No API key provided |
401 | Invalid API key | Key doesn’t exist or is malformed |
401 | API key is disabled | Key has been deactivated |
403 | Insufficient permissions | Key doesn’t have the required permission level |
Security Recommendations
- Store API keys in environment variables, never in source code
- Use the minimum permission level required for your integration
- Rotate keys periodically from the dashboard
- Use separate keys for development and production environments

