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