Skip to content

Rate Limits

Rate limits protect the platform and ensure fair usage.

API Weights

Different APIs consume your quota at different rates based on their weight. This allows us to offer premium, higher-value APIs while keeping pricing simple and predictable.

How Weights Work

  • Weight 1.0 (Standard): 1 API call = 1 request from your quota
  • Weight > 1.0 (Premium): 1 API call = multiple requests from your quota
  • Weight < 1.0 (Lightweight): Multiple API calls = 1 request from your quota

Current API Weights

APIWeightExample
Geolocation1.0×100 calls = 100 requests
Currency1.0×100 calls = 100 requests
Weather1.5×100 calls = 150 requests
UUID Generator0.5×100 calls = 50 requests

Dashboard Usage Breakdown

Your dashboard shows both raw API calls and weighted usage, so you can always see exactly how your quota is being consumed.

Example

If you have a 15,000 request quota and make:

  • 5,000 Geo calls (1.0×) → 5,000 requests consumed
  • 2,000 Currency calls (1.0×) → 2,000 requests consumed
  • 450 Weather calls (1.5×) → 675 requests consumed

Total: 7,650 API calls → 7,675 requests consumed

Limits by Plan

PlanPer SecondPer Minute
Free5300
Starter251,500
Pro503,000
Elite25015,000
EnterpriseCustomCustom

Response Headers

Every response includes:

http
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1704067200
HeaderDescription
X-RateLimit-LimitMax requests per second
X-RateLimit-RemainingRequests left in window
X-RateLimit-ResetUnix timestamp of reset

Rate Limit Exceeded

HTTP 429 response:

json
{
  "success": false,
  "data": null,
  "error": true,
  "error_code": 30001,
  "error_message": "Rate limit exceeded"
}

Handle it:

javascript
async function fetchWithRetry(url, options, retries = 3) {
  for (let i = 0; i < retries; i++) {
    const response = await fetch(url, options);
    if (response.status === 429) {
      const retryAfter = response.headers.get('Retry-After') || 1;
      await new Promise(r => setTimeout(r, retryAfter * 1000));
      continue;
    }
    return response;
  }
  throw new Error('Max retries exceeded');
}

Monthly Quotas

Separate from rate limits:

PlanMonthly Quota
Free2,000 (lifetime)
Starter15K–50K
Pro60K–250K
Elite275K–2M
EnterpriseUnlimited

Quota Headers

http
X-Quota-Limit: 50000
X-Quota-Used: 12345
X-Quota-Reset: 2024-02-01T00:00:00Z

Quota Exceeded

json
{
  "success": false,
  "data": null,
  "error": true,
  "error_code": 30002,
  "error_message": "Quota exceeded"
}

Upgrade your plan to continue.

Built with VitePress