Rate Limiting
The Beeving API is limited to 60 requests per minute per workspace.
Quota Headers
Every response includes headers to track your usage:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1708689600| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per minute |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp of the next reset |
Handling Rate Limits
When you exceed the limit, you receive a 429 error:
json
{
"message": "Too Many Attempts.",
"code": 429
}Retry Implementation
js
async function apiCall(url, options, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const res = await fetch(url, options)
if (res.status === 429) {
const retryAfter = parseInt(res.headers.get('Retry-After') || '30')
await new Promise(r => setTimeout(r, retryAfter * 1000))
continue
}
return res
}
throw new Error('Max retries exceeded')
}Tips to Optimize Usage
- Use
per_page=100to reduce the number of pages to fetch - Use bulk endpoints (
POST /contacts/bulk) for mass operations - Cache data that changes infrequently (lists, tags, pipeline stages)
- Use webhooks instead of polling for real-time events
