Skip to content
Docs menu
Guides

Limits and quotas

Rate limits, file sizes, time limits, the free daily quota, quotas per visitor for service keys and how long files are kept.

Rate limits#

LimitReads (GET, HEAD) per minuteWrites per minute
Per API key120120
Per IP address300300
Per visitor IP address, with X-End-User900300

Reads and writes share the limits of an API key and of an IP address. Only requests for a visitor with X-End-User count reads and writes apart, so status checks do not use up the budget for new conversions.

Every /v1 response shows the limit of your API key:

Text
RateLimit-Limit: 120
RateLimit-Remaining: 117
RateLimit-Reset: 42
RateLimit-Policy: 120;w=60

/v2 responses use X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset, like the CloudConvert API. RateLimit-Reset is the number of seconds until the window starts over. Above the limit you get 429 with the code RATE_LIMIT_EXCEEDED and a Retry-After header in seconds.

To check the status of many conversions, ask for up to 50 in one request with GET /v1/conversions?ids=…, or use webhooks.

File and request sizes#

WhatLimit
File in a multipart/form-data request100 MB
Files through uploads and from URLsmax_file_size in GET /v1/account
File inline with import/base6410 MB after decoding
JSON body of POST /v2/jobs16 MB
Any other JSON body1 MB
File returned in the response with Accept: application/octet-stream50 MB, larger files come as 303 to the download URL
Conversions in a batch or archive, IDs in GET /v1/conversions50
Presets per account100
Active API keys per account25

Time limits#

WhatLimit
One conversion5 minutes. convert tasks can set a lower timeout in seconds
?wait=N in the simple API30 seconds
/sync requests and the /wait endpoints5 minutes
Downloading a file from a URL2 minutes

Free daily quota#

Every account converts 50 files and uses 20 minutes of conversion time per day for free. The quota resets at midnight UTC. After that, conversions use credits. GET /v1/account shows what is left today and your credit balance. Prices are on the pricing page.

Failed conversions do not count. Requests with a sandbox key use neither the quota nor credits.

Visitors of your website#

If you run a website or app on top of switchfile, a service key lets each of your visitors use a free quota of their own. Send two headers with every /v1 request:

Text
X-End-User: <an ID for the visitor, 1 to 128 characters: letters, digits and . _ : @ ->
X-End-User-Ip: <the visitor's IP address>

Then the free quota counts per visitor and per IP address instead of for your account: 50 files and 20 minutes of video conversion time per day. IPv6 addresses count per /64 network. Each visitor only sees and uses their own conversions and uploads. X-End-User with a key that is not a service key returns 403 END_USER_NOT_ALLOWED. Service keys are set up by us; write to us if you need one.

While a conversion to a video format is queued or running, it counts against the video quota with an estimate based on the file size, about one second per MB and at least 10 seconds. When it is done, the estimate is replaced by the time that was actually needed. Deleting a conversion before it is done does not give the quota back. Above the quota you get:

JSON
{
  "type": "https://switchfile.io/docs/api/v1#errors-quota-exceeded",
  "title": "Quota exceeded",
  "status": 429,
  "code": "QUOTA_EXCEEDED",
  "detail": "The free limit of 50 files per day is used up.",
  "limit": "files_per_day",
  "scope": "end_user",
  "reset_at": "2026-11-07T00:00:00+00:00"
}

limit is files_per_day or video_minutes_per_day, scope is end_user or ip. GET /v1/account with both headers adds end_user_quota with what the visitor has left.

Rate limits count per visitor too: 300 requests per minute with POST, PATCH and DELETE, and 900 with GET, both per visitor and per visitor IP address.

Retention#

Input and result files are deleted 24 hours after a conversion or job ends. expires_at tells you when. Download URLs work until then. Delete earlier with DELETE /v1/conversions/{id} or DELETE /v2/jobs/{id}.