Klantly Developers

Rate limits

Hoeveel verzoeken je mag doen, hoe je ziet waar je staat en hoe je netjes terugschaalt.

Limieten

LimietAantalOmschrijvingVenster (seconden)
key_minute120verzoeken per minuut voor deze sleutel60
company_minute300verzoeken per minuut voor dit bedrijf60
company_writes60schrijfacties per minuut voor dit bedrijf60
company_heavy10zware acties per minuut voor dit bedrijf60
company_day50.000verzoeken per dag voor dit bedrijf86400
auth_failures20mislukte aanmeldingen per minuut vanaf dit IP-adres60

De limiet per bedrijf geldt voor alle sleutels van je bedrijf samen. Schrijfacties (POST, PATCH, DELETE) tellen daarnaast mee voor de schrijflimiet. De vensters zijn vast: een minuutlimiet begint elke hele minuut opnieuw, de daglimiet om middernacht UTC. Een geweigerd verzoek telt ook mee. Heb je structureel meer nodig? Neem dan contact op met support.

Zware acties hebben een eigen, krappere limiet: een offerte of factuur mailen, een pdf ophalen, een bericht in de inbox sturen, een reviewverzoek versturen, een klant een bericht over een afspraak sturen en een testbericht naar een webhook-endpoint.

Daarnaast gelden er een paar grenzen die niets met het tempo van je verzoeken te maken hebben, maar die je wel als 429 rate_limited terugziet:

  • maximaal 200 uploads (bijlagen en werkbonfoto's) per bedrijf per dag, als 429 rate_limited;
  • maximaal 20 berichten per uur in hetzelfde gesprek, als 429 rate_limited;
  • maximaal 250 uitgaande berichten en mails aan klanten per bedrijf per uur (inbox, offerte- en factuurmail samen) en hoogstens 20 verzendingen van hetzelfde document per 24 uur. In de inbox komt dat terug als 429 rate_limited; bij het mailen van een offerte of factuur als 403 forbidden.

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.

JavaScript
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 21 september 2026