API docs · Reference
Formats and limits
Anything FFmpeg can decode, audio-only files, and camera RAW where enabled. Size and duration limits per tier, and the live GET /formats endpoint.
Check the live list
GET /formats needs no key and always reflects what the API accepts right now, including which camera RAW formats are switched on:
curl https://api.framequery.com/v1/api/formats{
"data": {
"standard": ["mp4", "mov", "m4v", "mkv", "webm", "avi", "mxf", "…", "mp3", "wav", "flac", "m4a"],
"audioOnly": ["mp3", "wav", "aiff", "aif", "flac", "aac", "m4a", "ogg", "oga", "opus", "wma", "amr", "ac3", "caf"],
"raw": { "r3d": true, "braw": false, "arri": false },
"rawExtensions": { "r3d": "r3d", "nev": "r3d", "braw": "braw", "ari": "arri", "arx": "arri" },
"blocked": ["app", "bat", "cmd", "exe", "…"],
"unknownExtensions": "accepted",
"limits": {
"standardMaxBytes": 21474836480,
"rawMaxBytes": 107374182400,
"maxDurationSec": 43200,
"uploadUrlExpirySeconds": 3600
}
}
}The values above are illustrative; trust the live response.
Standard formats
The standard tier covers anything FFmpeg can decode. The advertised video extensions are mp4, mov, m4v, mkv, webm, avi, wmv, asf, flv, f4v, ts, m2ts, mts, mpg, mpeg, mpe, m2v, vob, 3gp, 3g2, mxf, dv, gxf, lxf, ogv, ogm, rm, rmvb, y4m, ivf, h264, 264, h265, hevc, mjpeg, mjpg, mod, tod, dvr-ms and nut, which covers H.264, H.265/HEVC, ProRes, DNxHD/DNxHR, AV1, VP9 and the other common codecs inside them.
Unknown extensions are accepted too: the file is probed with FFprobe when processing starts, and a file it cannot decode fails with job error VALIDATION_FAILED (never charged).
Audio-only files
mp3, wav, aiff, aif, flac, aac, m4a, ogg, oga, opus, wma, amr, ac3 and caf are processed as audio. There is no picture, so the vision stage is skipped and the job is billed at the transcript rate even with processingMode: "all". Requesting scenes returns 404 RESULTS_UNAVAILABLE with reason: "audio_only_input".
Camera RAW
Camera RAW is decoded on GPUs with the camera makers' SDKs and priced on its own RAW tier. Each format is switched on separately; raw in GET /formats says which ones are live.
| Format | Extensions | Format key |
|---|---|---|
| RED R3D | .r3d, .nev | r3d |
| Blackmagic RAW | .braw | braw |
| ARRIRAW | .ari, .arx | arri |
Creating a job for a RAW format that is not enabled fails at once with 415 UNSUPPORTED_FORMAT. R3D is the first RAW format enabled in the beta; BRAW and ARRIRAW are planned.
Blocked file types
Executables and scripts (exe, bat, cmd, sh, py, js, jar, dll, msi, ps1 and similar) are refused at creation with 415 UNSUPPORTED_FORMAT. The full list is blocked in GET /formats.
Limits
| Limit | Standard | Camera RAW |
|---|---|---|
| File size | 20 GiB (21 474 836 480 bytes) | 100 GiB (107 374 182 400 bytes) |
| Duration per file | 12 hours | 12 hours |
| Upload URL lifetime | 1 hour | 1 hour |
| Separate audio tracks per job | 16 | 16 |
| Clips per batch request | 100 | 100 |
| Minimum billable duration | 30 seconds | 30 seconds |
- Send
fileSizeBytesonPOST /jobsand an oversize file fails immediately with413FILE_TOO_LARGE(the body includesmaxUploadBytesandformatTier). The upload URL also enforces the limit. - A file longer than the duration limit fails during ingest with
VALIDATION_FAILED. Need longer files or a higher size limit? Contact us; limits can be raised per account. - Request and rate limits are on Rate limits.
Getting media to us cheaply
- Direct upload (
POST /jobs) goes straight to Google Cloud Storage and costs you nothing in transfer fees. - From a URL: you pay whatever your storage provider charges for egress. A provider without egress fees, such as Cloudflare R2, makes URL jobs free to fetch; for large RAW files in a cloud that does charge egress, the transfer can cost more than the processing.