Rate limits
Hoeveel verzoeken je mag doen, hoe je ziet waar je staat en hoe je netjes terugschaalt.
Limieten
| Limiet | Aantal | Omschrijving | Venster (seconden) |
|---|---|---|---|
key_minute | 120 | verzoeken per minuut voor deze sleutel | 60 |
company_minute | 300 | verzoeken per minuut voor dit bedrijf | 60 |
company_writes | 60 | schrijfacties per minuut voor dit bedrijf | 60 |
company_heavy | 10 | zware acties per minuut voor dit bedrijf | 60 |
company_day | 50.000 | verzoeken per dag voor dit bedrijf | 86400 |
auth_failures | 20 | mislukte aanmeldingen per minuut vanaf dit IP-adres | 60 |
De limiet per bedrijf geldt voor alle sleutels van je bedrijf samen. Schrijfacties (POST, PATCH, DELETE) tellen daarnaast mee voor de schrijflimiet. Heb je structureel meer nodig? Neem dan contact op met support.
Headers
Elk antwoord vertelt waar je staat:
| Header | Betekenis |
|---|---|
RateLimit-Policy |
Alle limieten die voor dit verzoek gelden |
RateLimit |
Resterend aantal en seconden tot de reset, voor de krapste limiet |
X-RateLimit-Limit |
Omvang van de krapste limiet |
X-RateLimit-Remaining |
Nog beschikbaar in het huidige venster |
X-RateLimit-Reset |
Unix-tijd waarop het venster opnieuw begint |
Bij een 429
Een 429 rate_limited heeft een header Retry-After met het aantal seconden dat je moet wachten. Het veld limit in het antwoord noemt de limiet die je raakte.
async function request(url, options, attempt = 0) {
const response = await fetch(url, options);
if (response.status === 429 && attempt < 5) {
const seconds = Number(response.headers.get('Retry-After') ?? 1);
await new Promise((resolve) => setTimeout(resolve, seconds * 1000));
return request(url, options, attempt + 1);
}
return response;
}Tip
Verdeel grote synchronisaties over de tijd en gebruik limit=100, dan haal je met minder verzoeken meer op.
Laatst bijgewerkt op 14 september 2026