Rate Limits
Understand Sendbound's rate limits and how to handle 429 responses.
Sendbound enforces rate limits per API key to ensure platform stability.
Default limits
| Endpoint | Limit |
|---|---|
POST /v1/send | 1,000 requests / minute |
| All other endpoints | 100 requests / minute |
Rate limit headers
Every response includes these headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Handling 429 responses
When you exceed a limit, the API returns 429 Too Many Requests with a Retry-After header indicating how many seconds to wait:
HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1706000000
{
"error": {
"code": "rate_limited",
"message": "Too many requests. Retry after 12 seconds."
}
}Best practices
- Respect
Retry-After— back off for exactly the indicated number of seconds. - Batch contact upserts — import large lists via file upload rather than individual POST requests.
- Cache read responses — list endpoints change infrequently; cache them client-side for a few seconds.
- Use webhooks — instead of polling delivery status, subscribe to
email.delivered/email.bouncedevents.
Need higher limits? Contact support or upgrade your plan.

