Limits & quotas
Rate limits, file size limits, batch limits and retention.
The defaults below apply to the hosted API. If you self-host, every limit is an environment variable you can tune.
Rate limits
| Limit | Default | Env |
| --- | --- | --- |
| Requests per IP | 120 / minute | RATE_LIMIT_MAX |
When you exceed it you get 429. Authenticated requests are metered to your
account; your plan determines your effective throughput.
File & batch limits
| Limit | Default | Env |
| --- | --- | --- |
| Max file size | 1 GiB | MAX_UPLOAD_BYTES |
| Max files per batch | 25 | MAX_BATCH_FILES |
Oversized files return 413 at the /uploads step; oversized batches return
413 from /conversions/batch. See Conversions → Batch.
Engine limits
To keep conversions safe and fair, the engine caps resources per job:
- a per-job time limit (long-running jobs are aborted),
- image pixel / memory limits (guards against decompression bombs),
- audio/video processed through a streaming pipeline.
A job that hits a limit finishes with status: "error".
Retention
Uploaded inputs and converted outputs are deleted automatically ~24 hours after the job is created (and usually much sooner). Download your result promptly; don't treat the download URL as permanent storage.
Webhooks
Failed webhook deliveries are retried with exponential backoff for up to 24 hours. Endpoints must resolve to a public address — requests to private/internal addresses are rejected.