Skip to content
V2 (Legacy) API ReferenceGet started
1xxx — Client Errors

1007: Rate limit exceeded

You've hit a rate limit. Wait for the Retry-After interval before sending again.

HTTP 429 Too Many Requests. The response includes a Retry-After header (and matching retry_after field in the error body) with the number of seconds to wait before the next request.

There are three situations that produce this code:

  • Per-phone-pair limit — more than 30 messages in a 60-second window between the same sender and recipient.
  • Sandbox daily limit — 100 messages per day on a sandbox account, resetting at midnight UTC.
  • Capability check limit — too many calls to /v3/capability/check_imessage or /v3/capability/check_rcs. Cache results briefly instead of re-checking on every send.
  • Respect the Retry-After interval before retrying the request.
  • If you’re hitting the per-pair limit, check for accidental retry loops, duplicate sends, or webhook handlers echoing back to the sender — 30 messages in 60 seconds between the same two numbers almost always indicates a bug.
  • If you hit the sandbox daily limit, wait for the midnight UTC reset or request production access.
  • For capability check limits, cache results for minutes rather than re-checking the same address on every send. See Capability Checks → Caching results.