> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enrow.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate Limits

> Enrow API rate limits per API key, de 429-response en hoe je throttling afhandelt met backoff en bulk-endpoints

De Enrow API past rate limits toe om eerlijk gebruik te garanderen en de servicekwaliteit te behouden. De limiet is hetzelfde voor alle endpoints en alle abonnementen, wordt afgedwongen **per API key** en wordt gemeten in **requests per seconde (RPS)**. Deze pagina legt de standaardlimieten uit, wat er gebeurt wanneer je ze overschrijdt en hoe je binnen je quota blijft bij het opschalen.

## Wat zijn de standaard rate limits?

Elk POST-endpoint staat **10 requests per seconde** per API key toe. De limiet is identiek voor alle endpoints en alle abonnementen:

| Endpoint                    | Rate Limit |
| --------------------------- | ---------- |
| `POST /email/find/single`   | 10 req/s   |
| `POST /email/find/bulk`     | 10 req/s   |
| `POST /email/verify/single` | 10 req/s   |
| `POST /email/verify/bulk`   | 10 req/s   |
| `POST /phone/single`        | 10 req/s   |
| `POST /phone/bulk`          | 10 req/s   |

GET-endpoints zijn niet aan rate limits onderworpen, dus het ophalen van resultaten — bijvoorbeeld het [single email-resultaat](/nl/api-reference/email-finder/get-single-result) of [bulk-resultaten](/nl/api-reference/email-finder/get-bulk-results) — telt niet mee voor je quota.

<Note>
  Rate limits gelden **per API key** en worden gemeten in **requests per seconde** (RPS). Elke [API key](/nl/authentication) heeft zijn eigen onafhankelijke quota.
</Note>

## Wat gebeurt er als ik de rate limit overschrijd?

Wanneer je de rate limit overschrijdt, geeft de API een `429 Too Many Requests`-response terug:

```json theme={null}
{
  "message": "Too Many Requests"
}
```

De aanbevolen manier om een `429` af te handelen is het implementeren van exponential backoff — wacht voor elke nieuwe poging een steeds langere vertraging, zodat de API key tijd heeft om weer onder de limiet te komen:

```javascript theme={null}
async function requestWithRetry(url, options, maxRetries = 3) {
  for (let attempt = 0; attempt < maxRetries; attempt++) {
    const response = await fetch(url, options);

    if (response.status === 429) {
      const delay = Math.pow(2, attempt) * 1000;
      await new Promise(resolve => setTimeout(resolve, delay));
      continue;
    }

    return response;
  }

  throw new Error('Max retries exceeded');
}
```

Voor de volledige lijst met responsecodes en hoe je ze afhandelt, zie [Statuscodes](/nl/status-codes) en [Foutafhandeling](/nl/error-handling).

## Hoe kan ik voorkomen dat ik de rate limit bereik?

De effectiefste manier om binnen je quota te blijven is het versturen van minder, grotere requests en het ontvangen van resultaten via webhooks in plaats van polling.

<AccordionGroup>
  <Accordion title="Gebruik bulk-endpoints">
    In plaats van 100 losse requests te doen, doe je 1 bulk-request (tot 5.000 items voor e-mail, 3.000 voor telefoon). Eén bulk-POST telt als 1 request voor je rate limit.

    ```javascript theme={null}
    // ❌ 100 requests = 10 seconds at 10 RPS
    for (const contact of contacts) {
      await findEmail(contact);
    }

    // ✅ 1 request
    await findEmailsBulk(contacts);
    ```

    Zie [E-mails in bulk zoeken](/nl/api-reference/email-finder/find-bulk) en [E-mails in bulk verifiëren](/nl/api-reference/email-verifier/verify-bulk) om te beginnen.
  </Accordion>

  <Accordion title="Gebruik webhooks in plaats van polling">
    Het pollen van het GET-endpoint verspilt je rate limit-quota. Gebruik [webhooks](/nl/how-webhooks-work) om resultaten automatisch te ontvangen zodra een zoekopdracht of verificatie is voltooid.
  </Accordion>

  <Accordion title="Cache resultaten">
    Sla resultaten op om overbodige API-calls voor hetzelfde contact te vermijden, wat ook [credits](/nl/credits-billing) bespaart.
  </Accordion>
</AccordionGroup>

## Kan ik hogere rate limits krijgen?

Ja. Enrow kan je RPS per geval verhogen. Neem contact met ons op via [api@enrow.io](mailto:api@enrow.io) met je use case en verwachte volume.

## FAQ

<AccordionGroup>
  <Accordion title="Worden rate limits gedeeld over endpoints?">
    Nee. De limiet van 10 req/s geldt onafhankelijk voor elk POST-endpoint, en de quota wordt **per API key** bijgehouden in plaats van per account.
  </Accordion>

  <Accordion title="Tellen GET-requests mee voor de rate limit?">
    Nee. GET-endpoints zijn niet aan rate limits onderworpen, dus pollen voor resultaten verbruikt je RPS-quota niet. Dat gezegd hebbende, webhooks blijven de voorkeur hebben boven frequent pollen.
  </Accordion>

  <Accordion title="Telt een bulk-request als één request?">
    Ja. Eén bulk-POST telt als 1 request voor je rate limit, ook al kan deze tot 5.000 items voor e-mail of 3.000 voor telefoon bevatten.
  </Accordion>

  <Accordion title="Welke statuscode duidt op een rate limit-fout?">
    Een `429 Too Many Requests`-response met de body `{ "message": "Too Many Requests" }`. Probeer het opnieuw met exponential backoff. Zie [Foutafhandeling](/nl/error-handling) voor details.
  </Accordion>
</AccordionGroup>

## Volgende stappen

<CardGroup cols={2}>
  <Card title="E-mails in bulk zoeken" icon="layer-group" href="/nl/api-reference/email-finder/find-bulk">
    Voer tot 5.000 e-mailzoekopdrachten uit in één request om rate limit-quota te besparen.
  </Card>

  <Card title="Webhooks" icon="bell" href="/nl/how-webhooks-work">
    Ontvang resultaten automatisch in plaats van de GET-endpoints te pollen.
  </Card>

  <Card title="Foutafhandeling" icon="triangle-exclamation" href="/nl/error-handling">
    Handel 429 en andere responses netjes af in je integratie.
  </Card>

  <Card title="Credits & facturatie" icon="coins" href="/nl/credits-billing">
    Bekijk hoe credits worden verbruikt voor elk endpoint.
  </Card>
</CardGroup>
