API Rate Limits

The CleverUtils API uses a 5-tier rate limiter to balance generosity with abuse prevention. No keys required — limits are per IP address.

The 5 tiers

Every request passes through five gates. The first one to deny wins.

TierWindowDefault limitWhy it exists
Cooldownbetween requests1 secondStops rapid-fire scrapers; friendly to humans
Burst60-second rolling20 requestsCatches scripts that warm up gradually
Hourly1 hour bucket150 requestsSoft cap on sustained use
Daily24 hour bucket1000 requestsHard daily ceiling
Per-endpointdaily50–1000 (varies)Protects expensive resources

Per-endpoint daily caps

Some endpoints have tighter limits because they consume significant CPU or GPU time:

EndpointDaily 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
Everything else (convert, jobs, batch, format converters, image edits)1000/day

File size limit

Headers on every response

Every successful API response includes the following headers so you can track your quota without polling /api/v1/limits:

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

What happens when you hit a limit

The API returns 429 Too Many Requests with a Retry-After header (in seconds) and an X-RateLimit-Reason header telling you which tier was hit:

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 }
  }
}

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

Ban escalation

Repeated abuse triggers a temporary ban. Specifically: 10 rate-limit denials within 1 hour from the same IP → 24-hour ban with HTTP 403 Forbidden and error.code: BANNED.

If you think you've been banned unfairly (e.g. you share an IP with many users), contact us at /contact and we'll review.

Best practices to avoid throttling

Need higher limits?

The current limits are MVP defaults. We're watching real usage and will adjust them based on demand. If you have a legitimate use case that needs higher quotas, get in touch via /contact.

A future paid tier may offer dedicated quotas, priority queues, and longer file retention — but the free tier will always remain.

Request a Feature

0 / 2000