API Rate Limiting
Rate limiting policies and best practices for API usage
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 Category | Rate Limit | Window | Burst |
|---|---|---|---|
| Authentication | 10 requests | 1 minute | 20 requests |
| Node Management | 100 requests | 1 minute | 200 requests |
| Session Monitoring | 500 requests | 1 minute | 1000 requests |
| Customer API | 50 requests | 1 minute | 100 requests |
| Admin Endpoints | 30 requests | 1 minute | 60 requests |
Rate Limit Headers
All API responses include rate limit headers to help you monitor your usage:
X-RateLimit-Limit: 100Total requests allowed per windowX-RateLimit-Remaining: 85Requests remaining in current windowX-RateLimit-Reset: 1625097600Unix timestamp when limit resetsHandling 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
| Plan | API Rate Limit | Concurrent Requests | Monthly API Calls |
|---|---|---|---|
| Starter | 100 RPM | 10 | 100,000 |
| Business | 500 RPM | 50 | 1,000,000 |
| Enterprise | Custom | Unlimited | Unlimited |
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