> For the complete documentation index, see [llms.txt](https://partner-docs.covergenius.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://partner-docs.covergenius.com/offers/api/responses.md).

# Responses

Offers API uses conventional HTTP response codes to indicate the success or failure of API requests. Error codes ranging from 200 to 299 indicate successful operations. Error code 308 indicates that the requested resource has been permanently moved to a different URL. Error codes ranging from 400 to 499 represent various error codes. Errors that can be resolved programmatically will result in an error code that briefly explains the error type and the reason for failure. 5xx codes indicate an unexpected error within the Offers API application. In the unlikely event of a 5xx error, our engineering team will automatically receive a notification and will fix the issue as fast as possible.

| Status                             | Description                                                                                       |
| ---------------------------------- | ------------------------------------------------------------------------------------------------- |
| 200 - OK                           | Everything worked as expected                                                                     |
| 201 - Created                      | The request has been fulfilled and has resulted in one or more new resources being created        |
| 308 - Permanent Redirect           | The requested resource has been permanently moved to a different URL                              |
| 400 - Bad Request                  | The request was not accepted, often due to the wrong format of the request                        |
| 401 - Unauthorized                 | No valid API key was provided                                                                     |
| 404 - Not Found                    | The requested resource doesn't exist                                                              |
| 409 - Conflict                     | The request conflicts with another request, perhaps due to the usage of the same idempotency key  |
| 422 - Unprocessable Entity         | Validation failed or logical error                                                                |
| 429 - Too Many Requests            | Too many requests hit the API too quickly. We recommend an exponential back-off of your requests. |
| 500, 502, 503, 504 - Server Errors | Something went wrong on Offers API side                                                           |

### Error response bodies

The structure of an error body differs between endpoints and between failure modes, so parsing them generically requires defensive handling.

The Create Offer, Confirm Offer and Opt-out Offer endpoints support an opt-in header, `X-API-Error-Version: v2`, that returns every error response in a single consistent shape with a fixed set of top-level fields, including a machine-readable `code`, an `error_id` for support requests, and an `errors` array of per-product and per-quote detail. All fields are always present, so one error handler can parse every error response from those endpoints.

We recommend all new integrations send this header. See [Error Versioning](/offers/api/responses/error-versioning.md) for the full shape, the error code list and examples.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://partner-docs.covergenius.com/offers/api/responses.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
