Skip to content

Errors and rate limits

Most failures use a stable JSON code:

{ "ok": false, "error": "wrong_scope" }
StatusCode examplesMeaning
402subscription_required, insufficient_creditsMessaging billing gate
403forbidden, wrong_scope, no_bound_agentAuthentication or authorization failed
404not_found, no_lead, unknown_routeResource or route unavailable
422bad_channel, bad_operation_id, bad_phone, invalid_phone, invalid_listInvalid input
429rate_limitedFixed hourly request limit exceeded
500db_connect_failed, insert_failedServer-side failure
  • API v1: 300 requests per key per fixed hour.
  • Lead intake: 120 requests per key per fixed hour.

The current API returns 429 rate_limited without quota headers. Back off until the next hour boundary, add jitter, and avoid retry storms.

Retry network failures, 429, and transient 5xx responses with exponential backoff. Do not automatically retry validation or authorization errors. Include a stable operation_id for message writes so a client retry cannot create duplicate work.