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

# Errors

> How Bota communicates errors via HTTP status codes and response bodies

Bota uses standard HTTP response codes to indicate the success or failure of an API request. In general:

* Codes in the `2xx` range indicate success.
* Codes in the `4xx` range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.).
* Codes in the `5xx` range indicate an error with Bota's servers (these are rare).

## Error Object

When an error occurs, Bota returns a JSON object with a consistent structure to help you debug.

```json theme={null}
{
  "error": {
    "code": "invalid_request",
    "message": "The request body is invalid",
    "details": {
      "field": "email",
      "reason": "Invalid email format"
    }
  }
}
```

### Attributes

| Attribute | Type   | Description                                                      |
| :-------- | :----- | :--------------------------------------------------------------- |
| `code`    | string | A machine-readable error code.                                   |
| `message` | string | A human-readable message providing more details about the error. |
| `details` | object | (Optional) Additional context or specific field errors.          |

***

## HTTP Status Codes

| Code  | Status            | Description                                                              |
| :---- | :---------------- | :----------------------------------------------------------------------- |
| `200` | OK                | The request was successful.                                              |
| `201` | Created           | The resource was created successfully.                                   |
| `400` | Bad Request       | The request was unacceptable, often due to missing a required parameter. |
| `401` | Unauthorized      | No valid API key provided.                                               |
| `403` | Forbidden         | The API key doesn't have permissions to perform the request.             |
| `404` | Not Found         | The requested resource doesn't exist.                                    |
| `409` | Conflict          | The request conflicts with another (e.g., device already bound).         |
| `429` | Too Many Requests | Too many requests hit the API too quickly.                               |
| `500` | Server Error      | Something went wrong on Bota's end.                                      |

***

## Error Codes

| Code                      | Description                                              |
| :------------------------ | :------------------------------------------------------- |
| `invalid_request`         | The request body or parameters are invalid.              |
| `unauthorized`            | The API key is missing or invalid.                       |
| `not_found`               | The resource (EndUser, Device, etc.) was not found.      |
| `resource_already_exists` | You tried to create a resource that already exists.      |
| `rate_limit_exceeded`     | You have reached your account's rate limit.              |
| `device_already_bound`    | The device is already assigned to another user.          |
| `processing_error`        | An error occurred during transcription or summarization. |
