API Docs

v1.0.0Latest
Performance

Rate Limits

Our API implements intelligent rate limiting to ensure optimal performance and fair usage across all users.

Standard Limits
Default rate limits for all API endpoints
Requests per minute60
Requests per hour3,600
Concurrent requests60
Rate Limit Headers
Every API response includes headers with your current rate limit status
Header
Description
Example
RateLimit-Limit
Maximum requests allowed per window
60
RateLimit-Remaining
Requests remaining in current window
50
RateLimit-Reset
Unix timestamp when window resets
1640995200
Retry-After
Seconds to wait before retrying (429 only)
60
Example Response Headers
HTTP/1.1 200 OK
RateLimit-Limit: 60
RateLimit-Remaining: 50
RateLimit-Reset: 1640995200
Content-Type: application/json
Rate Limit Exceeded
When you exceed your rate limit, you'll receive a 429 status code
429Too Many Requests
{
  "success": false,
  "message": "Too many requests, please try again later."
  "payload": {}
}
Best Practices
Tips for handling rate limits effectively in your applications
1

Monitor Rate Limit Headers

Always check the RateLimit-* headers in responses to track your usage and avoid hitting limits.

2

Implement Exponential Backoff

When you receive a 429 response, wait for the time specified in the Retry-After header before retrying.

3

Cache Responses

Cache API responses when possible to reduce the number of requests and improve performance.

Rate Limit Handling Example
JavaScript example showing proper rate limit handling
async function makeAPIRequest(url, options = {}) {
  const maxRetries = 3;
  let retries = 0;

  while (retries < maxRetries) {
    try {
      const response = await fetch(url, {
        ...options,
        headers: {
          "x-api-key": "YOUR_API_KEY",
          ...options.headers
        }
      });

      // Check rate limit headers
      if (response.status === 429) {
        const retryAfter = response.headers.get("Retry-After");
        await new Promise(resolve => setTimeout(resolve, waitTime));
      }
    } catch (error) {
      // Handle error and retry
    }
  }
}