Skip to content

Rate Limits

The GetRaze API implements rate limiting to ensure fair usage and maintain service stability.

Default Limits

PlanRequests per Hour
Free100
Pro1,000
Business5,000
EnterpriseCustom

Rate Limit Headers

Every API response includes rate limit information in the headers:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1701388800
HeaderDescription
X-RateLimit-LimitMaximum requests allowed per hour
X-RateLimit-RemainingRequests remaining in current window
X-RateLimit-ResetUnix timestamp when the limit resets

Handling Rate Limits

When you exceed the rate limit, the API returns a 429 Too Many Requests response:

json
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Please wait before making more requests.",
    "retry_after": 3600
  }
}

Best Practices

  1. Check headers: Monitor X-RateLimit-Remaining to avoid hitting limits
  2. Implement backoff: Use exponential backoff when receiving 429 errors
  3. Cache responses: Cache data that doesn't change frequently
  4. Batch requests: Use list endpoints instead of making many individual requests

Example: Handling Rate Limits

javascript
async function makeRequest(url, options, retries = 3) {
  const response = await fetch(url, options);

  // Check remaining requests
  const remaining = response.headers.get('X-RateLimit-Remaining');
  if (remaining && parseInt(remaining) < 10) {
    console.warn('Approaching rate limit');
  }

  // Handle rate limit exceeded
  if (response.status === 429) {
    if (retries > 0) {
      const retryAfter = response.headers.get('Retry-After') || 60;
      await new Promise(r => setTimeout(r, retryAfter * 1000));
      return makeRequest(url, options, retries - 1);
    }
    throw new Error('Rate limit exceeded');
  }

  return response.json();
}

Custom Rate Limits

Enterprise customers can configure custom rate limits per API key. Contact support to discuss your requirements.

GetRaze - AI-Powered Lead Generation