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

# Status Codes

> List of all HTTP status codes and their default messages used by Octavia AI CMS.

Every API response in **Octavia AI CMS** includes a standardized HTTP `statusCode` along with a corresponding `message` field.
This table defines what each code means and when it’s typically returned.

***

## Success responses

| **Status** | **Default Message**           | **Description**                                                                                  |
| ---------- | ----------------------------- | ------------------------------------------------------------------------------------------------ |
| **200**    | Request successful            | The request completed successfully and returned the expected data.                               |
| **201**    | Resource created successfully | A new resource was successfully created (e.g., an article or media asset).                       |
| **204**    | No content                    | The operation was successful, but there is no content to return (e.g., after deleting a record). |

***

## Client errors

| **Status** | **Default Message**  | **Description**                                                                                                 |
| ---------- | -------------------- | --------------------------------------------------------------------------------------------------------------- |
| **400**    | Bad request          | The request was invalid, missing parameters, or incorrectly formatted.                                          |
| **401**    | Unauthorized         | The request did not include a valid `x-api-key` header.                                                         |
| **403**    | Forbidden            | The API key is valid, but the user or role does not have permission for this operation.                         |
| **404**    | Not found            | The requested resource does not exist or is not accessible.                                                     |
| **405**    | Method not allowed   | The HTTP method is not supported on this endpoint.                                                              |
| **409**    | Conflict             | A conflict occurred, such as attempting to create a resource that already exists.                               |
| **422**    | Unprocessable entity | Validation failed for one or more fields. The `data` object will contain details.                               |
| **423**    | Service inactive     | The service or workspace is **disabled** (e.g., expired subscription). Check the dashboard or contact support.  |
| **426**    | Plan limit exceeded  | The user’s plan quota has been reached (e.g., too many items created). Upgrade or manage usage before retrying. |
| **429**    | Too many requests    | Rate limit exceeded (50 requests per second per IP). Implement retries with exponential backoff.                |

***

## Server errors

| **Status** | **Default Message**   | **Description**                                                                     |
| ---------- | --------------------- | ----------------------------------------------------------------------------------- |
| **500**    | Internal server error | A generic error occurred on the server. Try again or contact support if persistent. |
| **502**    | Bad gateway           | An upstream dependency failed to respond properly. Usually temporary.               |
| **503**    | Service unavailable   | The API is temporarily offline or under maintenance. Retry later.                   |
| **504**    | Gateway timeout       | The request to an upstream service took too long to complete.                       |

***

## Example Error Response

```json theme={null}
{
  "success": false,
  "statusCode": 423,
  "message": "Service inactive",
  "data": {
    "hint": "Your subscription has expired. Please check your dashboard or contact support."
  }
}
```

***

## Notes

* **423 Service inactive** — Returned when your Octavia workspace or CMS instance is disabled due to an expired plan or manual suspension.
* **426 Plan limit exceeded** — Indicates your usage exceeded the limits of your current plan (e.g., number of articles, AI credits).
