Skip to main content
The Benchmark Email API enforces two levels of rate limiting to ensure fair usage and platform stability: an hourly rate limit and a monthly quota.

Hourly Rate Limit

Each account is limited to 3,600 requests per hour, which is approximately 1 request per second sustained. This limit applies across all API keys on the account — if you have multiple keys, they share the same hourly budget.

Rate Limit Response Headers

Every successful API key request includes headers showing your current rate limit status: Example response headers:

Monthly Quota

Each account has a monthly API request quota that resets at the start of each billing period. The default quota depends on your plan type:

Monthly Quota Response Headers

Exceeding Rate Limits

When you exceed either limit, the API returns a 429 Too Many Requests response.

Hourly Limit Exceeded

Response (429 Too Many Requests):
The Retry-After header indicates how many seconds to wait before retrying.

Monthly Quota Exceeded

When the monthly quota is exceeded, the Retry-After value indicates the number of seconds until the billing period resets.

Handling Rate Limits

Best Practices

  1. Monitor response headers. Check X-RateLimit-Remaining and X-Monthly-Remaining on each response to stay within limits.
  2. Use exponential backoff. When you receive a 429 response, wait for the duration specified in the Retry-After header. If you continue to receive 429 responses, increase the wait time exponentially:
    Cap the maximum wait at 5 minutes (300 seconds).
  3. Spread requests evenly. Instead of bursting 3,600 requests in a few minutes, distribute them evenly across the hour (~1 per second).
  4. Cache responses. If you repeatedly fetch the same data, cache it locally instead of re-requesting it from the API.

Example: Retry Logic (pseudocode)

Failed Authentication Protection

To protect against key probing and brute-force attacks, the API monitors failed authentication attempts by IP address. If an IP address sends too many requests with invalid API keys, it will be temporarily blocked. During a block, all API key requests from that IP address receive a 429 Too Many Requests response:
The Retry-After header indicates when the block will expire. To avoid triggering this protection:
  • Verify your API key is correct before sending many requests.
  • Do not cycle through possible key values.
  • If you receive repeated 401 responses, stop and check your key rather than retrying immediately.

Summary

Next Steps