Limits & quotas

All values below are imported from the same constants the limiters enforce — this table cannot drift from behavior. Per-domain values are defaults, overridable via PATCH /v1/domain/config or by the operator.

Rate limits

ScopeLimitKey
All /v1 API calls200/minper credential (per IP unauthenticated)
POST /v1/videos (initiate)5/hourper uploader_ref
tus chunk PATCH200/minper video
POST /v1/internal/auth/service-token10/10 minper IP
Public delivery (/videos/…)2000/minper IP, independent of API limits
Internal worker routesexemptheartbeats must never throttle

429 bodies carry retryAfter (ISO-8601). Honor it.

Per-domain defaults

SettingDefault
max_file_bytes209,715,200 (200 MB)
max_duration_seconds180 (instance hard cap 900)
max_concurrent_pending_per_uploader1
renditionsh264_720, h264_1080, av1_720, av1_1080
outputshls: true, dash: false, mp4_fallback: true, og_thumbnail: true
transcript / moderation_framesfalse / false
daily_upload_bytes, storage_bytes_limit, max_concurrent_processingdomain columns — see GET /v1/usage