API rate limits

De CleverUtils-API gebruikt een rate limiter met 5 niveaus om vrijgevigheid te combineren met misbruikpreventie. Geen keys nodig — limieten gelden per IP-adres.

De 5 niveaus

Elk verzoek passeert vijf poorten. De eerste die weigert, wint.

NiveauVensterStandaardlimietWaarom
Cooldowntussen verzoeken1 secondStopt snelvurende scrapers; vriendelijk voor mensen
Burstrollend van 60 seconden20 requestsVangt scripts op die geleidelijk opbouwen
Per uurvenster van 1 uur150 requestsSoft cap op aanhoudend gebruik
Per dagvenster van 24 uur1000 requestsHarde daglimiet
Per endpointdagelijks50–1000 (varies)Beschermt dure bronnen

Dagelijkse caps per endpoint

Sommige endpoints hebben strengere limieten omdat ze aanzienlijke CPU- of GPU-tijd verbruiken:

EndpointDagelijkse cap per IP
tools/upscale-image, tools/colorize-photo, tools/enhance-photo, tools/restore-old-photo, tools/noise-reduction, tools/remove-object, tools/vocal-remover50/day
tools/speech-to-text, tools/remove-background, tools/change-background, tools/passport-photo, tools/image-to-text100/day
tools/compress-video, tools/trim-video, tools/video-speed-changer, tools/extract-audio, tools/remove-audio100/day
tools/merge-videos, tools/reverse-video50/day
Al het andere (convert, jobs, batch, formaatconverters, afbeeldingsbewerkingen)1000/day

Bestandsgroottelimiet

Headers op elk antwoord

Elk succesvol API-antwoord bevat de volgende headers zodat je je quota kunt volgen zonder /api/v1/limits te pollen:

HTTP headers
X-RateLimit-Limit-Day: 1000
X-RateLimit-Remaining-Day: 873
X-RateLimit-Reset-Day: 1775865600     # unix timestamp
X-RateLimit-Limit-Hour: 150
X-RateLimit-Remaining-Hour: 142
X-RateLimit-Limit-Endpoint: 50
X-RateLimit-Remaining-Endpoint: 38

Wat gebeurt er als je een limiet bereikt

De API retourneert 429 Too Many Requests met een Retry-After-header (in seconden) en een X-RateLimit-Reason-header die aangeeft welk niveau is geraakt:

HTTP/1.1 429
HTTP/1.1 429 Too Many Requests
Retry-After: 1
X-RateLimit-Reason: cooldown

{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Rate limit exceeded (cooldown). Retry after 1 seconds.",
    "details": { "reason": "cooldown", "retry_after": 1 }
  }
}

Mogelijke X-RateLimit-Reason-waarden: cooldown, burst, hourly, daily, endpoint:<name>, banned.

Ban-escalatie

Herhaald misbruik activeert een tijdelijke ban. Concreet: 10 rate-limit-weigeringen binnen 1 uur vanaf hetzelfde IP → ban van 24 uur met HTTP 403 Forbidden en error.code: BANNED.

Denk je dat je onterecht bent geband (bijvoorbeeld omdat je een IP deelt met veel gebruikers), neem dan contact op via /contact en we bekijken het.

Best practices om throttling te vermijden

Hogere limieten nodig?

De huidige limieten zijn MVP-standaardwaarden. We houden het werkelijke gebruik in de gaten en passen ze aan op basis van vraag. Heb je een legitieme use case die hogere quota nodig heeft, neem dan contact op via /contact.

Een toekomstig betaald abonnement kan dedicated quota, priority queues en langere bestandsretentie bieden — maar de gratis variant blijft altijd bestaan.

Functie aanvragen

0 / 2000