Naar inhoud gaan
Meirra
Terug naar de API-documentatie

Overzicht

Rate limits beschermen de API tegen misbruik en zorgen voor eerlijk gebruik door alle klanten. Elke API-sleutel heeft een requestquota die elk uur wordt gereset. Overschrijd je je limiet, dan geven requests een 429-fout (Too Many Requests) terug totdat het limiet wordt gereset.

Standaardlimieten

Standaard rate limits per API-sleutel: | Type limiet | Limiet | Resetperiode | |-------------|--------|--------------| | Requests | 1.000/uur | Per uur | | Burst | 100/minuut | Per minuut | | Batchgrootte | 100 items | Per request | **Limieten per endpoint:** • E-mailverificatie: 1.000/uur • E-mail zoeken: 500/uur • Verrijking: 200/uur • Lead zoeken: 500/uur • SEO-analyse: 200/uur Meer nodig? Neem contact op met support voor enterprise-opties.

Rate-limit-headers

Elke respons bevat rate-limit-informatie in de headers: ``` X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 856 X-RateLimit-Reset: 1709046000 Retry-After: 3600 ``` | Header | Omschrijving | |--------|--------------| | `X-RateLimit-Limit` | Maximaal aantal requests per uur | | `X-RateLimit-Remaining` | Resterende requests in het huidige venster | | `X-RateLimit-Reset` | Unix-timestamp wanneer het limiet wordt gereset | | `Retry-After` | Seconden tot je opnieuw kunt proberen (alleen bij 429) |

Rate limits afhandelen

Krijg je een 429-respons, pas dan retry-logica toe: ```javascript async function makeRequest(url, options) { const response = await fetch(url, options); if (response.status === 429) { const retryAfter = response.headers.get('Retry-After') || 60; await sleep(retryAfter * 1000); return makeRequest(url, options); // Opnieuw proberen } return response; } ``` **Exponentiële backoff:** Bij herhaalde fouten: gebruik exponentiële backoff met jitter: ```javascript const delay = Math.min(baseDelay * 2 ** attempt + randomJitter, maxDelay); ```

Beste praktijken

Optimaliseer je API-gebruik om rate limits te voorkomen: • **Gebruik batch-endpoints** – verifieer 100 e-mails in één request in plaats van 100 requests • **Cache responsen** – haal geen data opnieuw op die je al hebt • **Spreid requests** – stuur ze niet allemaal in één keer • **Monitor de headers** – houd je resterende quota proactief in de gaten • **Handel fouten netjes af** – pas degelijke retry-logica toe • **Gebruik webhooks** – wacht bij async-operaties op callbacks in plaats van te pollen **Wachtrij-aanpak:** ```javascript // Verwerk requests met rate limiting const queue = new RateLimitedQueue({ maxConcurrent: 10, minDelay: 100 // ms tussen requests }); await queue.addAll(requests); ```