Skip to main content
All Facade API errors have the same shape, regardless of the resource or the endpoint. This makes your integration predictable: you parse the error response once and reuse it across the entire API.

Uniform structure

string
Stable, machine-readable code. Use it to branch your error-handling logic (do not parse the message).
string
Human-readable message. It may change over time: do not use it to make decisions in your code.
array
Present in validation errors. A list of { field, issue } that indicates which field failed and why.
string
Unique identifier of the request. Share it with support to trace exactly what happened.

Catalog of codes

RESOLUTION_ERROR indicates that the organization associated with your token is not properly configured in the system (for example, it is missing active modalities). If you see it persistently, contact support with the requestId.
The 401 can arrive in two shapes. If the failure happens at the API Gateway (a missing or invalid x-api-key or token), the response is {"message":"Unauthorized"}, without the error object. If the request passes the gateway but the Facade rejects authentication, it uses the standard shape with error.code: AUTHENTICATION_FAILED.

Recommendations

Branch by code

Decide your logic with error.code, never with the text of message.

Save the requestId

Log the requestId in your logs: it is the fastest way for support to trace a request.

Retry with idempotency

On 429, 500, or 502, retry with the same Idempotency-Key to avoid duplicates.

Validate before sending

Use error.details to show your users which field to fix on 400 errors.