code you can match against, plus a human-readable message and optional details, and the reqId of the failing request.
Response shape
HTTP status convention
400: request shape invalid (a field is missing or the wrong type).401:authorization_missingorauthorization_invalid.403: authenticated, but not allowed:organization_invalid, scope violations, ACL denials.404:*_not_foundcodes.409: write conflicts (uniqueness violations, optimistic-lock failures).422: domain validation (e.g.storage_limit_reached,domains_limit_reached).5xx: internal errors. The body still carries acode; record the request id from the response headers when reporting.
Common codes by group
Auth
Validation
Limits
Not found
Workflow / blueprint
Conversation / action
Long tail
The codes above cover the failures you’ll meet in normal integration work, but the API can return others in narrower situations. Every one is a stable string, so it’s safe to branch on a code you see in the wild even if it isn’t listed here yet. If you hit one you can’t place, email hello@custral.com with the code and thereqId from the same response (the request id is what lets us find your exact call) and we’ll explain it and add it to this page.