> For the complete documentation index, see [llms.txt](https://twentytwo.documentationai.com/llms.txt).
> Use it to discover all available pages before exploring further.

# Errors & Rate Limits

Twenty2 uses standard HTTP status codes and returns consistent error objects so you can handle failures predictably in your integration.

## Error response format

All errors follow this structure:

```json
{
  "success": false,
  "statusCode": 422,
  "message": "Validation errors",
  "validationErrors": {
    "caller_phone": ["Required"]
  }
}
```

| Field              | Type    | Description                                                                                     |
| ------------------ | ------- | ----------------------------------------------------------------------------------------------- |
| `success`          | boolean | Always `false` for errors.                                                                      |
| `statusCode`       | number  | HTTP status code.                                                                               |
| `message`          | string  | Human-readable description of what went wrong.                                                  |
| `validationErrors` | object  | Present on `422` responses only. Lists each field that failed validation along with the reason. |

## HTTP status codes

| Status | Meaning                                                                                                                        |
| ------ | ------------------------------------------------------------------------------------------------------------------------------ |
| `2XX`  | Success.                                                                                                                       |
| `400`  | Bad Request — missing or invalid parameters.                                                                                   |
| `401`  | Unauthorized — API key is missing or invalid.                                                                                  |
| `403`  | Forbidden — your API key does not have access to this resource.                                                                |
| `404`  | Not Found — the requested resource does not exist.                                                                             |
| `422`  | Unprocessable Entity — the request is well-formed but contains invalid values. Check the `validationErrors` field for details. |
| `429`  | Too Many Requests — rate limit exceeded. Wait and retry.                                                                       |
| `500`  | Internal Server Error — something went wrong on Twenty2's end.                                                                 |

## Rate limits

| Limit               | Value |
| ------------------- | ----- |
| Requests per minute | 60    |
| Concurrent calls    | 3     |

If you exceed the rate limit you will receive a `429` response. Wait a moment and retry. For higher limits, contact the Twenty2 team.
