Rate Limiting
The EquipDash API implements rate limiting to ensure fair usage and protect the service from abuse.
Rate Limitsโ
Rate limits vary based on your subscription tier:
| Tier | Requests per Minute | Requests per Hour | Requests per Day |
|---|---|---|---|
| Basic | 60 | 1,000 | 10,000 |
| Professional | 120 | 5,000 | 50,000 |
| Enterprise | 300 | 15,000 | 150,000 |
Rate Limit Headersโ
Every API response includes headers indicating your current rate limit status:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1706097600
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Rate Limit Exceededโ
When you exceed the rate limit, the API returns a 429 Too Many Requests response:
{
"error": {
"code": "rate_limit_exceeded",
"message": "You have exceeded the rate limit. Please wait before making more requests.",
"details": {
"retry_after": 45
}
},
"meta": {
"request_id": "req_abc123"
}
}
The Retry-After header indicates how many seconds to wait:
HTTP/1.1 429 Too Many Requests
Retry-After: 45
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1706097600
Best Practicesโ
Implement Exponential Backoffโ
When rate limited, use exponential backoff:
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const response = await fetch(url, options);
if (response.status === 429) {
const retryAfter = response.headers.get('Retry-After') || Math.pow(2, i);
await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
continue;
}
return response;
}
throw new Error('Max retries exceeded');
}
Cache Responsesโ
Cache API responses when appropriate to reduce the number of requests:
- Product and experience data changes infrequently
- Customer data can be cached for short periods
- Booking data may need real-time access
Use Webhooksโ
Instead of polling for updates, use webhooks to receive real-time notifications:
- Booking created/updated/cancelled
- Payment received
- Customer created
Batch Operationsโ
Where supported, use batch endpoints to perform multiple operations in a single request.
Monitoring Usageโ
Track your API usage in the EquipDash dashboard:
- Go to Settings > API & Integrations
- View the Usage tab
- See request counts by endpoint, time period, and status
Requesting Higher Limitsโ
If you consistently need higher rate limits:
- Contact support to discuss your use case
- Consider upgrading to a higher tier
- Enterprise customers can request custom limits