> ## Documentation Index
> Fetch the complete documentation index at: https://developer.firstsales.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Errors

> Stable error envelope for Developer API clients.

Every public API error uses a stable envelope.

```json theme={null}
{
  "error": {
    "code": "insufficient_scope",
    "message": "API key scope insufficient for action: campaigns:write",
    "requestId": "req_123",
    "details": {}
  }
}
```

## Common codes

| Code                    | Meaning                                                            |
| ----------------------- | ------------------------------------------------------------------ |
| `missing_auth`          | No bearer key was provided.                                        |
| `invalid_api_key`       | The key is invalid, revoked, or no longer active.                  |
| `insufficient_scope`    | The key does not grant the requested action.                       |
| `workspace_required`    | A workspace-scoped resource was called without a workspace target. |
| `not_found`             | The resource was not found or is not visible to this key.          |
| `rate_limited`          | The key or organization exceeded a rate limit.                     |
| `idempotency_conflict`  | A repeated idempotency key was used with a different request body. |
| `unsupported_operation` | The operation is not part of the public Developer API.             |

## Request IDs

Capture `requestId` when asking support to investigate a failed integration. Request logs in the FirstSales app can also be filtered by request ID.
