Skip to main content

Overview

ZKScore API implements rate limiting to ensure fair usage and maintain service quality for all users.

Rate Limit Tiers

Free Tier

  • Requests per minute: 60
  • Requests per hour: 1,000
  • Requests per day: 10,000

Pro Tier

  • Requests per minute: 300
  • Requests per hour: 10,000
  • Requests per day: 100,000

Enterprise Tier

  • Requests per minute: 1,000
  • Requests per hour: 50,000
  • Requests per day: 1,000,000

Rate Limit Headers

All API responses include rate limit information:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1640995200

Handling Rate Limits

async function makeRequestWithRetry(url, options) {
  try {
    const response = await fetch(url, options);
    
    if (response.status === 429) {
      const retryAfter = response.headers.get('Retry-After');
      await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
      return makeRequestWithRetry(url, options);
    }
    
    return response;
  } catch (error) {
    throw error;
  }
}

Best Practices

  1. Implement Exponential Backoff: Increase delay between retries
  2. Cache Responses: Store frequently accessed data
  3. Batch Requests: Combine multiple operations when possible
  4. Monitor Usage: Track your rate limit consumption
  5. Upgrade When Needed: Consider higher tiers for production use