Rate Limits

nofakemails uses rate limiting to ensure fair usage and maintain service quality for all users. This page explains how rate limiting works and what limits apply to your account.

What is Rate Limiting?

Rate limiting controls how many API requests you can make within a given time period. It protects the API infrastructure, ensures fair access for all users, and maintains fast response times during high traffic. nofakemails enforces two types of limits:

  • Requests per second (RPS) - Controls burst traffic to prevent service overload
  • Requests per month - Your monthly validation quota based on your subscription tier

How It Works

nofakemails uses a token bucket algorithm for per-second rate limiting. Here's how it works:

  • Your account has a bucket that holds tokens equal to your RPS limit
  • Each request consumes one token from the bucket
  • Tokens are replenished every second up to your limit
  • If no tokens are available, the request is rejected with a 429 error

Rate Limits by Tier

TierRequests Per SecondRequests Per Month
Freemium1 request/second1,000 requests
Pro5 requests/second200,000 requests
EnterpriseUnlimitedUnlimited

Response Headers

The API includes usage information in response headers to help you track your consumption:

HeaderDescription
X-Usage-CurrentCurrent number of requests used in this billing period
X-Usage-LimitTotal requests included in your subscription tier
X-Usage-OverageSet to "true" if you are in overage (Pro tier only)
Retry-AfterSeconds to wait before retrying (only on 429 responses)

Error Responses

Rate Limit Exceeded (Per-Second)

When you exceed your requests-per-second limit, the API returns a 429 Too Many Requests response:

{
  "status": 429,
  "title": "Too Many Requests",
  "detail": "You have exceeded the rate limit. Please try again in 1 seconds."
}

The response includes a Retry-After header indicating how long to wait:

HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 1 seconds

Monthly Limit Exceeded

When you exceed your monthly request quota (Freemium tier), the API returns a 429 Too Many Requests response:

{
  "status": 429,
  "error": "Too Many Requests",
  "message": "Monthly request limit exceeded. Upgrade to Pro for more requests.",
  "usage": {
    "current": 1000,
    "limit": 1000
  }
}

The Retry-After header contains the date when your billing period resets.

Insufficient Usage for Batch Validation

When performing batch validation without enough remaining quota, the API returns a 402 Payment Required response:

{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_USAGE",
    "message": "Insufficient usage points for batch validation",
    "required": 50,
    "remaining": 10
  }
}

Next Steps