Skip to main content

Rate Limiting

The Capital Check In API implements rate limiting to ensure fair usage and maintain service quality.

Rate Limits

PlanRequests per minuteRequests per hourRequests per day
Free601,00010,000
Pro3005,00050,000
Enterprise1,00020,000200,000

Rate Limit Headers

All API responses include rate limit headers:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1640995200
HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the time window
X-RateLimit-RemainingNumber of requests remaining in the current window
X-RateLimit-ResetUnix timestamp when the rate limit resets

Rate Limit Exceeded

When you exceed the rate limit, you’ll receive a 429 Too Many Requests response:
{
  "error": "rate_limit_exceeded",
  "message": "Rate limit exceeded. Try again in 60 seconds.",
  "retry_after": 60
}

Best Practices

  • Monitor rate limit headers in your responses
  • Implement exponential backoff when hitting rate limits
  • Cache responses when possible to reduce API calls
  • Use webhooks for real-time updates instead of polling
  • Consider upgrading your plan if you consistently hit rate limits

Handling Rate Limits

// Example of handling rate limits
if (response.status === 429) {
  const retryAfter = response.headers.get('Retry-After');
  await new Promise(resolve => setTimeout(resolve, retryAfter * 1000));
  // Retry the request
}