--- title: "HTTP status codes" slug: "http-status-codes" updated: 2026-08-10T06:00:06Z published: 2026-08-10T06:00:06Z canonical: "apidocs.document360.com/http-status-codes" --- > ## Documentation Index > Fetch the complete documentation index at: https://apidocs.document360.com/llms.txt > Use this file to discover all available pages before exploring further. # HTTP status codes When you make a request to the Document360 v3 API, the server responds with an HTTP status code indicating whether the request succeeded or failed. Each response is also accompanied by a JSON body — a success envelope for 2xx responses, or an RFC 7807 `problem+json` body for errors. ## Common HTTP status codes | Status | Name | Description | | --- | --- | --- | | 200 | OK | Request fulfilled successfully — read, update, publish. | | 201 | Created | A new resource was created. | | 204 | No Content | Success with no response body, for example a delete. | | 400 | Bad Request | Invalid or malformed request. | | 401 | Unauthorized | Missing or invalid API key. | | 403 | Forbidden | Authenticated, but not allowed. Check the error code: `FORBIDDEN` (permission or scope), `FEATURE_NOT_IN_LICENSE` (plan), `PREMIUM_FEATURE_NOT_IN_LICENSE` (premium add-on), `LICENSE_LIMIT_EXCEEDED` (seats). | | 404 | Not Found | The requested resource was not found. | | 409 | Conflict | Conflicts with the current state, for example a duplicate name. | | 422 | Unprocessable Entity | The request was well-formed but failed validation. | | 429 | Too Many Requests | Rate limit has been exceeded. | | 500 | Internal Server Error | The server encountered an unexpected error. | | 503 | Service Unavailable | Service temporarily unavailable, returned by the infrastructure without a `problem+json` body. | Note Creates return `201 Created`, deletes return `204 No Content`, and validation failures return `422 Unprocessable Entity`. The API emits a `problem+json` body for 400, 401, 403, 404, 409, 422, 429 and 500. A 503 comes from the infrastructure and has no `problem+json` body. `401` responses also carry a `WWW-Authenticate: Bearer` header. ## Handling status codes - **2xx (Success)** — `200`: process the `data`. `201`: store the new resource ID. `204`: no body to read. - **400 Bad Request** — check the request body and query parameters; review the `errors` array. - **401 / 403** — verify the API key in the `X-API-Key` header is present and valid, and that it has the required role, permission and content access. On a `403`, read the error code: `FEATURE_NOT_IN_LICENSE`, `PREMIUM_FEATURE_NOT_IN_LICENSE` and `LICENSE_LIMIT_EXCEEDED` indicate a plan or entitlement issue rather than a permission problem, and are not resolved by retrying. - **404 Not Found** — verify the resource ID and endpoint; ensure it has not been deleted or moved. - **409 Conflict** — resolve the conflicting state, for example a duplicate name or slug. - **422 Unprocessable Entity** — inspect the `errors` array; each entry names the field that failed. - **429 Too Many Requests** — honour the `Retry-After` header and use exponential backoff. - **5xx** — retry after a short delay with exponential backoff; escalate if errors persist. Tip Always log failed responses along with the error `code`, `message` and `trace_id` to help with debugging and support.