API Rate Limiting

Rate limiting policies and best practices for API usage

Documentation

Rate Limit Overview

Rate limiting is implemented to ensure fair usage, prevent abuse, and maintain system stability. Different endpoints have different rate limits based on their resource intensity and usage patterns.

Standard Tier

100 RPM

Most API endpoints

High-Volume Tier

500 RPM

Session & monitoring endpoints

Burst Capacity

2x Limit

Short-term burst allowance

Rate Limit Details

Endpoint CategoryRate LimitWindowBurst
Authentication10 requests1 minute20 requests
Node Management100 requests1 minute200 requests
Session Monitoring500 requests1 minute1000 requests
Customer API50 requests1 minute100 requests
Admin Endpoints30 requests1 minute60 requests

Rate Limit Headers

All API responses include rate limit headers to help you monitor your usage:

X-RateLimit-Limit: 100Total requests allowed per window
X-RateLimit-Remaining: 85Requests remaining in current window
X-RateLimit-Reset: 1625097600Unix timestamp when limit resets

Handling Rate Limits

Rate Limit Exceeded Response

When you exceed the rate limit, you'll receive a 429 Too Many Requests response:

HTTP/1.1 429 Too Many Requests Content-Type: application/json X-RateLimit-Limit: 100 X-RateLimit-Remaining: 0 X-RateLimit-Reset: 1625097600 Retry-After: 30 { "error": "rate_limit_exceeded", "message": "Rate limit exceeded. Please try again in 30 seconds.", "retry_after": 30 }

Best Practices for Handling Limits

Exponential Backoff

Implement exponential backoff when you hit rate limits:

// Example backoff logic let delay = 1000; // Start with 1 second for (let i = 0; i < maxRetries; i++) { try { return await makeRequest(); } catch (error) { if (error.status === 429) { await sleep(delay); delay *= 2; // Double the delay } } }

Request Batching

Batch multiple operations into single requests when possible:

// Instead of multiple GET requests GET /nodes/1 GET /nodes/2 GET /nodes/3 // Use batch endpoint GET /nodes?ids=1,2,3

Monitoring Your Usage

  • • Monitor X-RateLimit-Remaining headers in responses
  • • Implement client-side rate limiting to stay within limits
  • • Use the dashboard to view your historical API usage
  • • Set up alerts for when you approach rate limits
  • • Consider upgrading your plan for higher limits

Plan-Based Rate Limits

PlanAPI Rate LimitConcurrent RequestsMonthly API Calls
Starter100 RPM10100,000
Business500 RPM501,000,000
EnterpriseCustomUnlimitedUnlimited

Increasing Your Limits

If you consistently approach your rate limits, consider:

  • • Upgrading to a higher plan for increased limits
  • • Implementing request caching to reduce API calls
  • • Using webhooks for real-time updates instead of polling
  • • Contacting sales for custom enterprise solutions

Was this helpful?

Help us improve our documentation