Video editing API: which Sume endpoint for each edit
A task-to-endpoint map of Sume's video editing API: which call cuts, crops, captions, joins, or re-voices a video, and which guide explains each edit.

Sume's video editing API is a set of single-purpose endpoints, not one editor: POST /v1/video-trim cuts a range, POST /v1/video-filter crops or filters, POST /v1/audio-detach pulls out the audio, POST /v1/video-captions burns captions, and POST /v1/timeline-1.0/render assembles clips on one audio spine. The tables below map each edit to its endpoint and to the post that explains it.
Rows come from each tool's docs page, the Models overview, and the Sume API reference, read on 2026-09-27. Anything described as current behavior is read from Sume's code. Every tool's caps sit in one table in Video editing API limits.
Which endpoint edits a single clip?
Each of these reads one video and returns new output.
| Edit | Endpoint | Worth knowing | Guide |
|---|---|---|---|
| Cut out one range | POST /v1/video-trim | precision: "exact" re-encodes; keyframe copies but may start a GOP early. | Trim, filter, or detach audio |
| Split into short clips | POST /v1/video-trim, once per clip | Sources run up to 1,800 s; each clip 0.2–900 s. | Split a long video into clips |
| Crop to vertical | POST /v1/video-filter, crop op | Fractions of the source frame; sources up to 300 s. | Convert landscape to 9:16 |
| Dim, blur, or adjust tone | POST /v1/video-filter | dim is a built-in op; blur and tone filters go in filtergraph. | ffmpeg filter allowlist |
| Resize or change the frame rate | POST /v1/video-trim with output | fps 24, 25, 30, or 60; exact precision only. | Change frame rate or resolution |
| Burn captions | POST /v1/video-captions | Word and cue times run 0–60 s. | Burn captions onto a video |
| Pull out the audio | POST /v1/audio-detach | A sample-exact wav by default, ready for audio.url. | Trim, filter, or detach audio |
| Grab a still | POST /v1/video-frames | Sources up to 300 s; video inspect stills reach 1,800 s. | Extract frames from a video |
| Read length, size, fps, or speech | POST /v1/video-inspect | Sources up to 1,800 s; a transcript bills per audio minute. | Video inspect API |
| Upscale | POST /v1/video-upscale-1.0/upscale | Reserves 5 s of input unless you send duration_seconds (1–30). | AI video upscaler API |
| Change the content with a prompt | POST /v1/video-router/generate, gemini-omni-flash-1.1 | aspect_ratio is rejected; resolution defaults to 720p. | Edit a video with a prompt |
Which endpoint assembles clips and audio?
Timeline 1.0 is the assembly surface: one audio spine plus ordered video[] slots, rendered to one MP4. Most multi-step edits end in a render.
| Edit | Endpoint | Worth knowing | Guide |
|---|---|---|---|
| Join clips | POST /v1/timeline-1.0/render | Billed per started output minute; output up to 1,800 s. | Assemble a long-form video |
| Remove a middle section | POST /v1/timeline-1.0/render | Trim alone cannot: it keeps one range per job. | Remove part of a video |
| Add transitions | video[].transition | Not on the first slot; at most 50% of the shorter neighbor. | Video transitions API |
| Replace or remove the sound | A render over a new audio.url, or a trim with audio: "drop" | audio.mode: "silence" renders with no spine file. | Replace or remove the audio |
| Add background music | soundtrack on the render | The bed must be a Sume-hosted file, like every Timeline URL. | Add background music |
| Image and video in one frame | POST /v1/timeline-1.0/compose | stack or overlay, up to 300 s; the MP4 then fills a video[] slot. | Timeline compose and audio |
| Caption a video over 60 s | Trim, captions, then a render | Cut at sentence boundaries so no caption line spans two chunks. | Add captions to a long video |
| Cut B-roll into a talking head | Audio detach, then a render | No trim needed: slots read the talking head with source_in. | Add B-roll to a talking head |
| Re-voice in another language | Text to speech, then a render | In current code, a voice-language mismatch gets a 409 until you confirm it. | Translate a video's voiceover |
Which video URLs can each endpoint read?
Trim, filter, detach, frames, inspect, and the three Timeline endpoints read only your workspace's media.sume.com files; captions, video upscale, and the Video Router edit take a public HTTPS URL, and Sume's own job artifacts are public. Sume API media URL rules covers every endpoint's rule.
How do I chain several edits?
Feed each job's output URL into the next call. Trim, filter, detach, compose, and render results come from GET /v1/jobs/:id/result: video_url for a new MP4, audio_url for detached audio. The docs' own handoffs put those MP4s into video[] (a trim with source_in 0) and the wav into audio.url.
Two checks are free before you pay: POST /v1/video-filter/check and POST /v1/timeline-1.0/plan. An AI agent can run the same chain over hosted MCP, as in Video editing MCP server.
What can't Sume's editing endpoints do?
Know these gaps before you plan an edit:
- Text through ffmpeg:
drawtextandsubtitlesare not on the filter allowlist, nor aremovieandlut3d. Burn on-screen text as captioncuesinstead. - Two videos on screen at once: compose puts one still and one video in a frame, and video filter reads one clip.
- A clip's own sound in a render: in the current compiler a render plays only its spine and an optional
soundtrackbed, so detach a clip's audio and pass it as one of those to keep it. - Lip sync to new speech: Sume's model docs say video models do not lip-sync to a later voice-over.
Sources
Related posts
More in Media tools
- X (Twitter) video upload specs for AI-generated clips
X recommends H.264 at 30 or 60 fps and 1280x720 or 720x1280, and caps default Post video at 20 minutes. How a Sume clip maps to each line.
- YouTube Shorts video specs: 3 minutes, square or vertical
YouTube treats square or vertical uploads up to 3 minutes as Shorts and recommends MP4, H.264, AAC-LC, and 48 kHz. How Sume output compares.
- YouTube thumbnail from a video frame API: extract, upscale
Extract a full-size PNG from a Sume-hosted video with POST /v1/video-frames, then upscale it to the 3840×2160 YouTube recommends for thumbnails.
- How to burn captions onto a video with the Sume API
Send a public HTTPS video URL to POST /v1/video-captions and get a job-backed captioned video, timed by speech-to-text or by text you supply.
Written by Sume