Skip to main content

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:

TierRequests per MinuteRequests per HourRequests per Day
Basic601,00010,000
Professional1205,00050,000
Enterprise30015,000150,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
HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the current window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix 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:

  1. Go to Settings > API & Integrations
  2. View the Usage tab
  3. See request counts by endpoint, time period, and status

Requesting Higher Limitsโ€‹

If you consistently need higher rate limits:

  1. Contact support to discuss your use case
  2. Consider upgrading to a higher tier
  3. Enterprise customers can request custom limits