Error codes
Every error has a stable code. Branch on it in your program; show detail to people.
- invalid_input 400 · The request is not valid
Something in the request is missing or has the wrong format.
errors[]points at each field. - unauthenticated 401 · No valid API key
The request has no key, or the key is unknown, expired or revoked.
- entitlement_required 403 · Not included in your plan
Your workspace's plan does not include API access.
- forbidden 403 · Not allowed
Your workspace does not allow this — for example the plan contact limit is reached, or the contact has message history and cannot be deleted.
- insufficient_scope 403 · The key is missing a permission
The key works, but it does not have the permission this operation needs.
- not_found 404 · Not found
There is nothing with this id in your workspace.
- conflict 409 · Conflicts with the current state
The change clashes with the current state — the template is not approved, a request with the same Idempotency-Key is still running, or the conversation is already assigned.
- confirm_required 428 · Confirmation header missing
This change cannot be undone, so it needs the
Api-Confirmheader with the operation's verb. - rate_limited 429 · Too many requests
You went over a rate limit or a send cap.
- upstream_error 502 · A connected service answered unexpectedly
A service behind the API answered in a way we did not expect.
- service_unconfigured 503 · This feature is not set up here
This feature is not set up for your workspace yet.
- upstream_unavailable 503 · A connected service is unavailable
A service behind the API is briefly unavailable.
- timeout 504 · The request took too long
The request took too long. A change may or may not have happened. A contact search or count that takes too long is stopped.