Errors
Overview
&Open uses standard HTTP response codes to communicate the status of your API requests. Here's a quick guide:
-
2xx codes mean your request was successful.
-
4xx codes point to an issue with the request itself, such as missing information or invalid parameters.
-
5xx codes signal an internal server error on our end (rest assured, we work hard to make these exceptionally rare).
To ensure clarity, any non-2xx response will return a structured error object that conforms to the JSON:API standard, giving you predictable and machine-readable error details. More info here.
Attributes
When an error occurs, the API response will contain an errors array. Each object within this array provides details about a specific issue and includes the following attributes:
| Attribute | Type | Description |
|---|---|---|
status | string | The HTTP status code applicable to this problem, returned as a string. This directly indicates the nature of the error |
detail | string | A human-readable explanation specific to this occurrence of the problem. This message should help you understand and resolve the issue |
The top-level response object also includes a jsonapi object to denote the version of the JSON:API specification being used.
Example
{
"errors": [
{
"status": "400",
"detail": "<parameter> does not exist"
}
],
"jsonapi": {
"version": "1.0"
}
}
HTTP Status code summary
| Status Code | Description | Common Scenario |
|---|---|---|
| 400 - Bad Request | The request is malformed or invalid. | Missing a required parameter, invalid JSON, or a syntax error in the request. |
| 401 - Unauthorized | Authentication failed or was not provided. | No valid API key was provided, or the key is invalid. |
| 404 - Not Found | The requested resource does not exist. | The specified gift, campaign, or recipient ID could not be found. |
| 422 - Unprocessable Entity | The request was well-formed but contains semantic errors. | Validation failed |
| 429 - Too Many Requests | You have exceeded the rate limit. | Too many requests were sent in a given amount of time. |
| 500 - Internal Server Error | A generic server error occurred. | An unexpected condition was encountered on our end (these are rare). |
| 503 - Service Unavailable | The service is temporarily unavailable. | The API is down for maintenance or is overloaded. |