Skip to content

Errors

The Integration API uses conventional HTTP status codes.

StatusMeaning
200 OKRequest succeeded; body contains the result.
201 CreatedResource created; Location header points to it.
204 No ContentRequest succeeded; nothing to return (e.g. delete).
400 Bad RequestThe request was invalid. The body describes why.
401 UnauthorizedMissing, expired, or invalid access token — or the token’s audience/issuer is not accepted. Obtain a fresh token and retry once.
403 ForbiddenToken is valid but does not grant access to this resource.
404 Not FoundThe resource does not exist (or was already deleted).
429 Too Many RequestsSlow down and honor the Retry-After header if present.
5xxServer-side problem. Retry with exponential backoff.

Model validation failures return 400 with an errors object keyed by field name:

{
"errors": {
"Destination": [
"The Destination field is required."
]
}
}

Domain validation failures (e.g. an unknown webhook event type) return 400 with a plain descriptive message:

"Unknown event type(s): call.stats. Known event types: agent.status, call.status, interaction.text, interaction.email, interaction.ended."
  • 400 — a bug in your request; do not retry unchanged. Log the body.
  • 401 — refresh the token and retry once; if it persists, verify your client credentials and the scope you request (see Authentication).
  • 404 on delete — safe to treat as success if your goal is “make sure it’s gone”.
  • 5xx/network errors — retry with exponential backoff and jitter; make the operation idempotent on your side where possible.