Error format

All errors return a JSON body with a detail field:
For request validation failures (status 422), detail is an array of field-level errors:

HTTP status codes


Authentication errors

401 covers three distinct situations. The detail field tells them apart: MPS service-key routes (/api/v1/mps/*) return their own 401 messages and use a different credential entirely — see MPS service keys.

Workflow validation errors

When validating a workflow (or creating one with invalid nodes), the API returns structured errors that reference specific nodes, edges, or fields:

Telephony errors

Telephony operations may fail with one of these named error types returned in the detail field:

Tips for handling errors

  • Retry on 500 with exponential backoff — transient server errors can resolve on retry.
  • Do not retry 4xx — these indicate problems with your request that will not self-resolve.
  • Check detail carefully on 422 — the loc array pinpoints exactly which field failed validation.
  • Store API keys securely — a 401 on a previously working key likely means the key was archived.
  • Read the 401 detail before rotating — User session required is not a bad key; it means the route does not accept API keys at all.
  • Back off on 429 — honour any Retry-After header and reduce concurrency rather than retrying immediately.
  • Treat 402 as “top up”, not “retry” — model requests (BRAHMA, VAANI, LIPI, embeddings, moderation, deep research, transcription and the Voice Engine) draw on your organization’s credit balance. A 402 means the balance is exhausted or the daily spend cap is reached; the detail field says which. Retrying will not help until credits are added, the cap is raised, or you supply your own provider keys.