Developer API
Errors and the response envelope
The consistent error format and what each status code means.
C
Written by Convot
Updated June 11, 2026
Every error returns the same JSON envelope, so you can handle failures in one place:
{
"error": {
"code": "unprocessable_entity",
"message": "Validation failed",
"details": ["Title can't be blank"]
}
}
-
code: a stable, machine-readable string. -
message: a human-readable summary. -
details: present on validation errors, a list of specific problems.
Status codes
đź’ˇ
| Status | Code | Meaning |
|---|---|---|
400 |
bad_request |
Malformed JSON, a missing required field, or an invalid value. |
401 |
unauthorized |
Missing, malformed, or revoked API key. |
403 |
forbidden |
The key is valid but lacks the required scope. |
404 |
not_found |
The resource does not exist, or does not belong to your app. |
422 |
unprocessable_entity |
The request was understood but failed validation (see details). |
429 |
rate_limited |
You hit a rate limit. See Rate limits. |
A note on 404
The API is strictly scoped to your app. Asking for a resource that belongs to a different app returns 404, not 403, so the API never confirms whether an id exists elsewhere.
Was this article helpful?
Thanks for your feedback!