Inputs
Size limits#
| Input type | URL | Data URI | Ephemeral upload |
|---|---|---|---|
| Image | 16MB | 5MB | 200MB |
| Video | 32MB | 16MB | 200MB |
| Audio | 32MB | 16MB | 200MB |
Base64 encoding inflates a file by about 33%, and the data URI limit applies to the encoded size. To fit inside the 5MB image limit, the original file must be 3.3MB or smaller.
Requirements for URLs#
Every URL you pass must satisfy all of these:
- HTTPS only.
- The hostname must be a domain name, not an IP address.
- The server must return valid
Content-TypeandContent-Lengthheaders. - Redirects are not followed. A 3XX response fails the request.
- The URL must be at most 2048 characters.
- The server must support HTTP HEAD requests.
Content-Type must be correct#
The Content-Type response header must match the actual media type. File extensions in URLs are ignored. Generic values including application/octet-stream are explicitly not supported — a common cause of 400 Bad Request when serving from object storage that defaults to octet-stream.
Allowlist Runway's user agent#
Runway sends a User-Agent beginning with RunwayML API/ when fetching your assets. If a WAF or scraping-prevention tool sits in front of your storage, allowlist that prefix or fetches will fail.
Data URIs#
Data URIs are accepted anywhere a URL is, unless a field says otherwise.
- The content type must be declared:
data:image/jpg;base64,... - The
base64extension is required. The format isdata:content/type;base64, - The size limit applies to the encoded string.
Data URIs that break these rules are rejected with 400 Bad Request.
Choosing between URL, data URI and upload#
Data URIs remove an upload step, which is convenient if the asset is not already in object storage. But they travel inside the request body: the whole payload is sent serially, and the JSON must be parsed before assets can be extracted, so both request time and server latency rise.
URLs are processed in parallel and immediately, so the gap between your request and the start of processing is much smaller. The cost moves to the latency between Runway's servers and yours — a CDN or object storage service minimises it.
Ephemeral uploads give you object-storage behaviour without running object storage. Files go to Runway, and you get a runway:// URI valid for 24 hours, usable anywhere an HTTPS URL is. They are rate limited and require a minimum file size of 512 bytes.
Supported formats#
Images
| Codec | Content-Type header |
|---|---|
| JPEG | image/jpg or image/jpeg |
| PNG | image/png |
| WebP | image/webp |
GIF is not supported.
Video
| Container | Extension | Content type | Codecs |
|---|---|---|---|
| MP4 | .mp4 |
video/mp4 |
H.264, H.265/HEVC, AV1 |
| QuickTime | .mov |
video/quicktime |
H.264, H.265/HEVC, Apple ProRes (422 Proxy, 422 LT, 422, 422 HQ, 4444, 4444 XQ) |
| Matroska | .mkv |
video/x-matroska |
H.264, H.265/HEVC, VP8, VP9, AV1 |
| WebM | .webm |
video/webm |
VP8, VP9, AV1 |
| 3GPP | .3gp |
video/3gpp |
H.264 |
| Ogg | .ogv |
video/ogg |
Theora |
Supported but discouraged, for quality, performance, industry support or file size reasons:
| Container | Extension | Content type | Codecs |
|---|---|---|---|
| QuickTime | .mov |
video/quicktime |
MJPEG |
| Matroska | .mkv |
video/x-matroska |
MPEG2 (H.262) |
| AVI | .avi |
video/x-msvideo |
H.264, MJPEG, MSMPEG4v3 |
| Flash Video | .flv |
video/x-flv |
FLV1, H.264 |
| MPEG | .mpg, .mpeg |
video/mpeg |
MPEG2 (H.262) |
H.264/AVC is the most widely supported modern codec and the safest default. Extensions above are for reference only — the API does not consider them.
Audio
| Container | Extension | Content type | Codecs |
|---|---|---|---|
| MP3 | .mp3 |
audio/mpeg, audio/mp3 |
MP3 (MPEG-1/2 Layer 3) |
| WAV | .wav |
audio/wav, audio/wave, audio/x-wav |
PCM (uncompressed) |
| FLAC | .flac |
audio/flac, audio/x-flac |
FLAC (lossless) |
| M4A | .m4a |
audio/mp4, audio/x-m4a |
AAC, ALAC |
| AAC | .aac |
audio/aac, audio/x-aac |
AAC (raw) |
Aspect ratios and auto-cropping#
The ratio parameter sets the output dimensions. If your input asset does not match, the model auto-crops from the centre to the ratio you gave.
Supported ratios differ per model:
- Gen-4.5 text-to-video: landscape
1280:720and portrait720:1280only. - Gen-4.5 image-to-video: landscape
1280:720,1584:672,1104:832; portrait720:1280,832:1104,672:1584; square960:960. - Gen-4 Turbo and Act-Two: landscape
1280:720,1584:672,1104:832; portrait720:1280,832:1104; square960:960. - Aleph 2.0: preserves the input video's resolution, up to 1080p. Inputs must be 2–30 seconds at 30 FPS or lower.
- Seedance 2.5: 12 ratios across 480p and 720p only, default
1280:720, durations 4–30 seconds. Input and reference videos must be at least 480p. At 480p,864:496and496:864deliver standard 854×480 / 480×854. Video-to-video takesmode: "reference"(default) ormode: "extend". - Seedance 2.0: 24 ratios across 480p, 720p, 1080p and 4K. Fast and Mini support 12 ratios across 480p and 720p only.
- Hailuo 3.0:
adaptive,21:9,16:9,4:3,1:1,3:4,9:16, at768Por2K(default2K), 5–15 seconds.adaptiverequires at least one reference image or video. Keyframe and unpositioned reference-image modes cannot be mixed; reference audio is valid only with unpositioned reference images. - Grok Imagine Video 1.5 text-to-video:
1:1,16:9,9:16,4:3,3:4,3:2,2:3at 480p/720p/1080p (default 480p), 1–15 seconds. Up to 7 image references (addressable as[Image 1],[Image 2]…) and 3 audio references of 3–15 seconds. Audio references require an image reference, and any request with image references caps at 720p. - Grok Imagine Video 1.5 image-to-video: uses
resolution; output ratio follows the input image; single first frame only. - HappyHorse 1.0 text-to-video:
1280:720,1920:1080,720:1280,1080:1920,960:960,1440:1440,1108:832,1662:1248,832:1108,1248:1662. Image-to-video usesresolution(720P/1080P) and follows the input ratio; prompt images must be at least 300px per side. - Gemini Omni Flash: text- and image-to-video output
1280:720or720:1280, always 720p. Video-to-video has noratioparameter — 720p, orientation matched to input, inputs at most 10 seconds. - Magnific Video Upscaler: inputs up to 30 seconds;
resolutionof720p,1k,2k(default) or4k.
Third-party models — veo3.1, veo3.1_fast, grok_imagine_1_5, grok_imagine_image_2, happyhorse_1_0, gemini_omni_flash and others — may crop or resize inputs in ways that differ from the above.
Reference images#
References may be resized if they are too large or too small for the model. Avoid references below 640×640px or above 4K.
Input asset aspect ratio requirements#
For models accepting image or video references, width ÷ height must fall inside these windows:
| Model | Input type | Min | Max |
|---|---|---|---|
| Gen-4 Turbo image-to-video | Prompt image | 0.5 | 2.358 |
| Gen-4 image-to-video | Prompt image | 0.5 | 2.358 |
| Gen-4.5 image-to-video | Prompt image | 0.5 | 2 |
| Act-Two | Character image | 0.5 | 2.358 |
| Act-Two | Character video | 0.5 | 2.358 |
| Act-Two | Reference video | 0.5 | 2.358 |
| Seedance 2.5 image-to-video | Prompt image (first/last/reference) | 0.4 | 4 |
| Seedance 2.5 text-to-video | Reference image | 0.4 | 4 |
| Seedance 2.5 video-to-video | Reference image | 0.4 | 4 |
| Seedance 2 image-to-video | Prompt image (first/last/reference) | 0.4 | 4 |
| Seedance 2 text-to-video | Reference image | 0.4 | 4 |
| Seedance 2 video-to-video | Reference image | 0.4 | 4 |
| Seedance 2.0 Fast image-to-video | Prompt image (first/last/reference) | 0.4 | 4 |
| Seedance 2.0 Fast text-to-video | Reference image | 0.4 | 4 |
| Seedance 2.0 Fast video-to-video | Reference image | 0.4 | 4 |
| Seedance 2.0 Mini image-to-video | Prompt image (first/last/reference) | 0.4 | 4 |
| Seedance 2.0 Mini text-to-video | Reference image | 0.4 | 4 |
| Seedance 2.0 Mini video-to-video | Reference image | 0.4 | 4 |
| Hailuo 3.0 image-to-video | Prompt image (first/last/reference) | 0.2 | 4 |
| Hailuo 3.0 text-to-video | Reference image | 0.2 | 4 |
| Hailuo 3.0 video-to-video | Reference image | 0.2 | 4 |
| Veo 3.1 / 3.1 Fast image-to-video | First/last keyframes | 0.5 | 2 |
| HappyHorse 1.0 image-to-video | Prompt image | 0.55 | 1.8 |
| Gemini Omni Flash image-to-video | Prompt image | 0.5 | 2 |
| Gemini 2.5 Flash text-to-image | Reference image | 0.25 | 4 |
Related#
- Ephemeral uploads — for files above the data URI limits
- Outputs — what comes back and how long it lasts
- HTTP errors — what a rejected input returns
Most 400 errors at launch are input-validation misses. The go-live checklist catches them.