Runway input limits: 16 MB image, 32 MB video, HEAD required
Runway URL inputs need HTTPS, a hostname, valid Content-Type, HEAD support and no redirects. A checklist, and how it applies to Sume input URLs.

Runway rejects a media URL that is not HTTPS, uses an IP address instead of a hostname, lacks a valid Content-Type and Content-Length, redirects, is over 2048 characters or cannot answer a HEAD request. Size limits for URLs are 16 MB for images and 32 MB for video and audio. Sume asks for public HTTPS input URLs, so the same checklist is a safe way to host files for both.
Runway's URL rules
These are Runway's own rules, quoted in short. A generic application/octet-stream type is explicitly not supported, file extensions in the URL are ignored, and Runway's fetcher identifies itself with a User-Agent that starts with RunwayML API/, so a WAF needs to allow it.
| Rule | Runway |
|---|---|
| Scheme | HTTPS only |
| Host | Domain name, not an IP address |
| Headers | Valid Content-Type matching the media, and Content-Length |
| Redirects | Not followed; a 3XX is a failure |
| Length | At most 2048 characters |
| Methods | The server must support HEAD |
| Image size | 16 MB |
| Video and audio size | 32 MB |
What Sume documents
Sume's pages say the input URLs must be public and HTTPS, and that an unreachable input is a failure, with codes such as input_media_unreachable and image_not_fetchable in the error table. They do not publish Runway-style details about HEAD, redirects or length, so do not rely on a lenient fetcher. Host the file the strict way.
A pre-flight check
A short pre-flight check saves a failed job:
- Request the URL with
HEADand confirm a 200 with the rightContent-Type. - Follow no redirects: link straight to the final object.
- Keep the URL under 2048 characters.
- Fetch it from outside your network, since private hosts fail.
Passing is not accepting
Passing this check does not guarantee a model will accept the media. Each model has its own limits on length, size and format, so keep reading the catalog for the model you pin.
Sources
Related posts
More in Developers
- Runway polling: 5 seconds, jitter, backoff vs Sume next_poll_after
Runway recommends polling tasks every 5 seconds or more with jitter and exponential backoff. Sume returns next_poll_after_seconds. A Python poller for both.
- Runway THROTTLED task status vs Sume queued jobs
Runway tasks over your concurrency limit show THROTTLED and are enqueued roughly in submit order. Sume accepts them as queued. How to handle each in a client.
- Runway waitForTaskOutput timeout does not cancel the task
Runway's waitForTaskOutput gives up after ten minutes but the task keeps running and billing. How to cancel on timeout, and the same rule on Sume jobs.
- Feed scraped product copy to a Format run: input, not instruction
Putting a supplier's text into a Format's instruction lets it steer the run. Sume's input field is treated as data, with a 64-key and 2 MiB limit.
Written by Sume