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_imessageor/v3/capability/check_rcs. Cache results briefly instead of re-checking on every send.
Troubleshooting
Section titled “Troubleshooting”- Respect the
Retry-Afterinterval 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.