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.