Skip to main content
All API errors follow a consistent format designed for both developers and AI agents.

Error response format

Error fields

Error types

Request ID

Every response includes a request_id (format: req_ + 12 alphanumeric characters). You can also send your own via the X-Request-Id header — the API will use it instead of generating one.

Validation errors

When multiple fields fail validation, the errors array lists each one:

Phone number format

All phone numbers must be in E.164 format: + followed by country code and number, no spaces or dashes.
Invalid phone numbers return:

Idempotency

All write endpoints (POST, PUT, DELETE) support an optional Idempotency-Key header to safely retry requests.

How it works

  1. Send a unique Idempotency-Key header with your write request (e.g., a UUID)
  2. If the request succeeds (2xx), the response is stored for 1 hour
  3. If you send the same key again to the same endpoint, the API returns the stored response with an Idempotency-Replayed: true header — the operation is not re-executed
  4. If the request fails (4xx/5xx), the key is not consumed — you can retry with the same key until the request succeeds

Example

Key reuse across endpoints

Using the same idempotency key for a different endpoint or HTTP method returns a 409 error with code IDEMPOTENCY_KEY_REUSE.

Response headers

Error code reference

See the Error codes catalog for a complete list of all error codes with recovery instructions.