Error envelope
boolean
required
Always
false on error responses. Use this as your first branch — every Verbeo response is one of {success: true, data} or {success: false, error}.string
required
A stable, machine-readable identifier in
SCREAMING_SNAKE_CASE. Branch your error handling on this value, not on the human-readable message. Codes are part of the public contract — they will not be renamed without notice.string
required
Human-readable explanation, suitable for surfacing to your end users or logs.
object[]
Present on
VALIDATION_FAILED. One entry per failing field, each with a field path (dot notation, e.g. contacts.0.phone_number) and a message.The envelope is the same on every resource. Three details on this page are specific to Campaigns: the
error.details array on a validation error, 400 INVALID_JSON for a body that is not JSON, and 405 METHOD_NOT_ALLOWED for a wrong verb. Assistants, tools, phone numbers and Create phone call answer code and message only, report a body that is not JSON as 422 VALIDATION_FAILED, and have no 405: a wrong verb answers 404 NOT_FOUND, like a path they do not serve. One exception: GET, PUT, PATCH or DELETE on a one-word path of assistants, or GET, PUT or DELETE on one of phone numbers, such as /list, and GET or DELETE on one of tools, is read as a request for an id and answers 422 VALIDATION_FAILED.One answer from those resources is outside the envelope: a request with no Authorization: Bearer vbr_… header at all is a 401 whose body carries errorMessage instead of error. Check the HTTP status before you read error.code.HTTP status conventions
Global error codes
These codes can be returned by any endpoint.Module-specific error codes
Each resource module defines its own codes for situations the global set doesn’t cover. They follow the same envelope; thecode value is the only thing that varies.
A resource that defines codes of its own lists them on its overview page. The envelope shape above does not change.
Validation errors in detail
VALIDATION_FAILED (422) is the only error that includes a details array. Each entry pinpoints one offending field:
field path uses dot notation, including numeric indices for arrays. Use this to map errors back to specific UI inputs in your client.