API Reference›Rate 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.