API Reference

Rate Limits

Understand API rate limits to build reliable integrations and avoid service disruptions.

Why Rate Limits?

Rate limits ensure fair usage and protect the API from abuse. They help maintain performance and availability for all users. Exceeding limits results in 429 Too Many Requests responses.

Rate Limit Tiers

Free

100/minute
10,000/day
  • Public endpoints only
  • No webhooks
  • Community support
Most Popular

Developer

500/minute
100,000/day
  • All endpoints
  • 5 webhooks
  • Email support

Enterprise

5,000/minute
Unlimited
  • All endpoints
  • Unlimited webhooks
  • Priority support
  • SLA

Per-Endpoint Limits

EndpointRate LimitBurst Limit
/api/presales60/min10/sec
/api/tokens60/min10/sec
/api/user/:address30/min5/sec
/api/contribute10/min1/sec

Rate Limit Headers

Every API response includes headers to help you track your usage:

X-RateLimit-LimitMaximum requests allowed in the window
X-RateLimit-RemainingRequests remaining in current window
X-RateLimit-ResetUnix timestamp when the window resets
Retry-AfterSeconds to wait before retrying (on 429)

Handling Rate Limits

When you receive a 429 response, implement exponential backoff:

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

Best Practices

  • Cache responses when possible to reduce API calls
  • Use webhooks for real-time updates instead of polling
  • Batch requests where the API supports it
  • Monitor your usage via the dashboard

Need Higher Limits?

Contact us for enterprise rate limits or custom solutions.