> ## Documentation Index
> Fetch the complete documentation index at: https://imprint-b3c5d5af-partner-docs-latest.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Error handling

> How Imprint communicates errors

Imprint uses standard HTTP codes to indicate the success or failure of a request. In general, codes in the **`2xx`** range indicate success, and codes in the **`4xx`** range indicate an error. When an API call fails, Imprint will also provide an error object in the response body, which includes an error code (**`type`**), the human-readable error description (**`message`**), and (if applicable) the parameter related to the error (**`param`**).

```json 400 theme={null}
{
  "error": {
    "type": "INVALID_REQUEST_ERROR",
    "message": "Invalid email format",
    "param": "email"
  }
}
```

## HTTP status codes

| Status | Meaning |
| - | - |
| **`400`** | Bad Request — the request was malformed or a required parameter was missing or invalid. |
| **`401`** | Unauthorized — the API key is valid but lacks the required merchant/product association. |
| **`403`** | Forbidden — the API key is missing, malformed, invalid, or inactive. |
| **`404`** | Not Found — the requested resource does not exist. |
| **`409`** | Conflict — the request conflicts with the current state of the resource. |
| **`429`** | Too Many Requests — the rate limit was exceeded. |
| **`500`** | Internal Server Error — something went wrong on Imprint's side. |
| **`503`** | Service Unavailable — the service is temporarily unable to handle the request. |
| **`504`** | Gateway Timeout — the request did not complete within the allotted time. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.