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

# Errors

> HTTP status codes and error response shape.

## Response shape

Error responses are JSON objects. Fields may include a message, validation details, or error codes depending on the endpoint. Inspect the response body alongside the status code.

## HTTP status reference

| Code    | When it applies                                                                                                                   |
| ------- | --------------------------------------------------------------------------------------------------------------------------------- |
| **202** | Accepted — an async operation was accepted and completes in the background (campaign delete/archive). Not an error.               |
| **400** | Bad request — malformed input or failed request validation.                                                                       |
| **401** | Unauthorized — missing or invalid API key.                                                                                        |
| **403** | Forbidden — insufficient permissions for the resource or action.                                                                  |
| **404** | Not found — resource does not exist or is not visible to this key.                                                                |
| **409** | Conflict — the action can't proceed in the current state (e.g. the sending LinkedIn account is disconnected).                     |
| **422** | Unprocessable entity — semantic validation failed (e.g. messaging a lead that has no existing conversation).                      |
| **429** | Too many requests — endpoint rate limit, or the per-account messaging send budget, exceeded; see [Rate limiting](/rate-limiting). |
| **500** | Unexpected server error — retry with backoff; contact support if it persists.                                                     |
| **502** | Bad gateway — an upstream provider (LinkedIn via Unipile) failed on a send; retry with backoff.                                   |
| **503** | Service unavailable — a required dependency isn't configured or available (e.g. messaging is not configured).                     |

## Retries

* **429**, **502**, **503**, and other **5xx** are often retryable with exponential backoff and jitter.
* **400**, **401**, **403**, **404**, **409**, and **422** usually need a fix to the request, permissions, or resource state — retrying the same payload will not help.
