Errors
The JSON:API error format and every error code the API returns.
Failed requests return a JSON:API error document with the
application/vnd.api+json content type:
{
"jsonapi": { "version": "1.1" },
"errors": [
{
"status": "404",
"code": "resource_not_found",
"title": "Not Found",
"detail": "The requested resource does not exist or is not accessible with this API key."
}
]
}status is the HTTP status as a string, code is a stable
machine-readable identifier, and detail is a human-readable explanation.
Branch on code, not on detail.
Error codes
| Status | Code | When |
|---|---|---|
400 | bad_request | Invalid query parameters (unknown sort field, bad include path) or malformed request syntax |
401 | unauthorized | Missing, invalid, expired, or revoked API key |
403 | forbidden | The key is valid but lacks the required grant for this resource, action, or field |
403 | origin_not_allowed | Browser request from an origin outside the key's allowlist |
404 | not_found | Unknown endpoint or record |
404 | resource_not_found | The resource exists in Einblick but is not granted to this key (indistinguishable from not existing) |
405 | method_not_allowed | The resource does not support the requested write action |
409 | conflict | The write conflicts with current state, e.g. a duplicate slug |
422 | unprocessable_entity | Well-formed JSON with invalid or non-writable field values |
Note that "not granted" and "does not exist" intentionally look the same
(404) so that keys cannot probe for the existence of resources they
cannot read.
Command errors
Command endpoints return a simpler shape:
{ "error": "Job posting not found" }with a status code matching the failure. Handle both shapes if you mix resource calls and commands.
Handling errors in practice
401— the key is gone; alert whoever owns the integration rather than retrying.403/405— a grant is missing; fix the key configuration in System settings → Integrations → Public API.409withIdempotency-Key— you may be retrying an operation whose first attempt succeeded; fetch the record to check.5xx— safe to retry with backoff; use idempotency keys for writes.