Media API length limits side by side: trim, filter, frames, compose

One table of the source and output length limits for Sume's media tools: 300 s, 900 s, 1800 s and the 60 s caption price band. Read 2026-10-10.

4 min readSume
All posts

Sume's media tools do not share one length limit. Trim, inspect and audio detach accept a source of up to 1800 seconds, while filter, frames and compose stop at 300 seconds, and a Timeline render runs up to 1800 seconds of audio spine. Pick the order of your steps from that table, and read the limit before you read the price.

Every number below comes from the Sume docs pages named in the sources, read on 2026-10-10. The limits are quoted from packages/api-contract/src/index.ts as the docs themselves quote them.

The table

Two numbers deserve a second look. Trim reads 1800 seconds but writes at most 900, so a 20-minute source can be cut into a 15-minute clip, not a 20-minute one. And filter, frames and compose all stop at 300, which is five minutes.

Length limits by media tool, from each Sume docs page, read 2026-10-10
ToolSource limitOutput or other limit
Video trim1800 sOutput 0.2 to 900 s
Audio detach1800 sOutput up to 900 s; longer needs a range
Video inspect1800 s24 stills per call
Video filter300 sOutput keeps source geometry unless changed
Video frames300 s24 frames per call
Timeline composeOne still and one videoOutput up to 300 s from the video layer
Timeline renderAudio spine of 1 to 1800 s$0.10 per output minute, rounded up
Video upscaleInput hint 1 to 30 sReserves 5 s if duration_seconds is omitted
Video captionsPriced for videos of 60 s or lessFixed estimate $0.20 per job

Order your steps by the strictest limit

The classic mistake is to filter first. A 10-minute clip fails a filter with output_duration_exceeded because the source is longer than 300 seconds. Trim it to a range of 300 seconds or less first, which is allowed because trim accepts 1800, and then filter the new MP4.

The same logic applies to frames and compose. A frame grab from a 12-minute video needs a 300-second source, so trim the section you want, or use inspect, which accepts 1800 seconds and returns up to 24 stills per call.

What each limit costs you

Splitting a long file into 300-second pieces costs one trim per piece. A 25-minute source is 1500 seconds, so five 300-second trims at $0.02 each make $0.10 before any filter is paid. Each filter encode is another $0.02, so five pieces filtered is 5 x $0.02 = $0.10 more, for $0.20 in total.

Captions are a different band. The docs state the $0.20 fixed estimate is for videos of up to 60 seconds. For a longer video, do not assume the same price: check the live price in GET /v1/catalog and the OpenAPI before you queue the batch.

Two limits that are easy to forget

Trim: an end past the source is clamped, not refused, and the job warns trim_clamped_to_source, so a wrong end value can silently shorten a clip. Compose: if video.duration runs past the end of the source, the job clamps it and warns compose_duration_clamped_to_source. Both are warnings, not failures, and both are visible in warnings[] on the result.

Read warnings[] in your pipeline. A job that finished with a warning has produced a valid MP4 that may be shorter than you meant.

A small decision rule

If the source is longer than 300 seconds, trim first. If the track is longer than 900 seconds, give detach a range. If you need frames from an hour-long recording, use inspect with explicit times, and keep the 24-still cap in mind. Everything else fits inside one job. Video upscale is the narrowest of all: its duration hint is 1 to 30 seconds, and omitting the hint reserves 5 seconds, so a 20-second clip should send duration_seconds: 20 to make the reservation honest. Each pass is a new MP4, and the order of passes changes both the cost and the chance of a refusal, which is why this page is a table first and advice second.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume