Rate limit headers
Overview
When you exceed a rate limit, the Brevo API returns a 429 Too Many Requests status code along with response headers that provide information about the current rate limit status. These headers help you monitor your API usage and implement proper retry logic.
Use rate limit headers to:
- Track remaining request capacity
- Determine when rate limits reset
- Implement exponential backoff strategies
- Prevent unnecessary API calls
Rate limit headers
All rate-limited endpoints include the following headers in their responses:

Reading rate limit headers
Limit header
The x-sib-ratelimit-limit header indicates the maximum number of requests you can make in the current time window. This value depends on your account plan and the specific endpoint.
Example:
This means you can make up to 1,000 requests in the current time window.
Remaining header
The x-sib-ratelimit-remaining header shows how many requests you have left before hitting the rate limit. Monitor this value to avoid 429 errors.
Example:
This indicates 750 requests remain in the current time window.
Reset header
The x-sib-ratelimit-reset header specifies when the rate limit counter resets. The value is expressed in the same granularity unit as the rate limit (typically seconds).
Example:
This means the rate limit resets in 45 seconds.
Implementing retry logic
Use rate limit headers to implement intelligent retry mechanisms:
Check remaining capacity
Before making requests, check the x-sib-ratelimit-remaining header to ensure you have capacity:
Node.js
PHP
Python
Handle 429 responses
When you receive a 429 response, read the reset header to determine how long to wait:
Node.js
PHP
Python
Exponential backoff
Combine rate limit headers with exponential backoff for robust error handling:
Node.js
PHP
Python
Best practices
Monitor headers proactively
Check x-sib-ratelimit-remaining before making bulk requests to avoid hitting limits:
Node.js
PHP
Python
Cache header values
Rate limit headers are consistent for the same endpoint and account. Cache these values to reduce unnecessary API calls when checking limits.
Use webhooks for high-volume operations
For high-volume operations like fetching statistics, use webhooks instead of polling endpoints. This reduces API calls and eliminates rate limit concerns.
Rate limit headers are included in all responses, not just 429 errors. Monitor them proactively to prevent rate limit issues.