---
title: 1007: Rate limit exceeded | API Docs
description: 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](https://dashboard.linqapp.com/sandbox-signup/), 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.

## Troubleshooting

- 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](https://dashboard.linqapp.com/sandbox-signup/).
- For capability check limits, cache results for minutes rather than re-checking the same address on every send. See [Capability Checks → Caching results](/guides/chats/capability-checks#caching-results/index.md).

## Related

- [Rate limits](/guides/platform/rate-limits/index.md)
- [Capability checks](/guides/chats/capability-checks/index.md)
- [Debugging](/guides/platform/debugging/index.md)
