DiffHook/Docs
API ReferenceRate Limits

Rate Limits

DiffHook enforces rate limits on API requests to ensure fair usage and system stability.

Limits

Tier Requests / minute
Free 60
Any paid balance 200

Limits apply per API key.

Rate limit headers

Every response includes these headers:

X-RateLimit-Limit: 200
X-RateLimit-Remaining: 187
X-RateLimit-Reset: 1710598860

X-RateLimit-Reset is a Unix timestamp indicating when the window resets.

Handling 429 responses

When you exceed the limit, you receive 429 Too Many Requests:

{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Too many requests. Retry after 2026-03-16T14:23:00Z"
  }
}

Implement exponential backoff when retrying:

async function apiRequest(url, options, retries = 3) {
  const res = await fetch(url, options)
  if (res.status === 429 && retries > 0) {
    const reset = res.headers.get('X-RateLimit-Reset')
    const delay = reset
      ? (parseInt(reset) * 1000) - Date.now()
      : 1000 * (4 - retries)
    await new Promise(r => setTimeout(r, delay))
    return apiRequest(url, options, retries - 1)
  }
  return res
}

Webhook delivery rate limits

Webhook delivery is separate from API rate limits. DiffHook enforces a maximum of 100 webhook deliveries per minute per team to protect your endpoints from being overwhelmed during bursts.