Error body#
Every error, on every endpoint, has this shape:
{
"code": 404,
"codeDescription": "ITEM_NOT_FOUND",
"message": "Item not found"
}| Field | Meaning |
|---|---|
code | The HTTP status, repeated. Always present. |
message | A sentence for a person. Always present; not stable. |
codeDescription | A stable identifier for the specific error, when the endpoint distinguishes several. Branch on this, not on message. |
data | Extra detail for some errors — for instance, the Items that already exist when creating one would duplicate a connection. |
Status codes#
| Status | Meaning | Usually because |
|---|---|---|
400 Bad Request | The request is invalid. | A missing or malformed field. |
401 Unauthorized | The credential is missing, wrong or expired. | An API Key past its 2 hours, or wrong clientId/clientSecret on POST /auth (CLIENT_KEYS_UNAUTHORIZED, CLIENT_DISABLED). |
403 Forbidden | The credential cannot reach this resource. | A Connect Token used outside its scope — see AuthenticationAPI. |
404 Not Found | No such resource. | An id that does not exist. |
405 Method Not Allowed | The endpoint does not support this verb. | |
406 Not Acceptable | A format other than JSON was requested. | |
409 Conflict | The request contradicts the current state of the resource. | A conflict updating an Item — see PATCH /items/{id}API. |
429 Too Many Requests | A rate limit was exceeded. | See Rate LimitsAPI for the limits and the Retry-After header. |
500 Internal Server Error | Something failed on our side. | Retry later. |
503 Service Unavailable | Temporarily offline for maintenance. | Retry later. |
Each endpoint's page in this reference lists the statuses it returns and, where the API distinguishes them, the codeDescription values.
Read the guide: Errors Codes.
