Errors
Errors use the HTTP status code and a JSON body that says what went wrong.
{
"error": {
"code": "level_required",
"message": "GET /brands/{id}/score/history needs access level 2.",
"request_id": "req_8fK2mQ1xT"
}
}| Status | Code | Meaning |
|---|---|---|
| 401 | unauthenticated | No key was sent. Send `Authorization: Bearer <key>`. |
| 401 | invalid_key | The key is unknown or has been revoked. |
| 403 | plan_required | API access needs a paid plan or the 7-day trial. |
| 403 | access_disabled | API access has been disabled for the account. Contact sales. |
| 404 | not_found | No such resource, or it is not published. |
| 405 | method_not_allowed | Only GET is available in this version. |
| 429 | quota_exceeded | The request quota of the account is used up. Contact sales to continue. |
| 500 | internal | Something failed on our side. Retry. |
| 501 | not_available_yet | The endpoint is documented but not live yet. |
Quote the request_id when you contact support: it lets us find the request. The same value is in the RB-Request-Id response header.
Retrying
Retry 429, 500 and 503 with exponential back-off, honouring Retry-After. Do not retry other 4xx errors: the request must change first. Because every endpoint is read-only, a retry is always safe.