Render a silent video from clips with the Timeline API
Set audio.mode to silence and a duration_seconds on POST /v1/timeline-1.0/render to join clips with no audio file. Which fields are illegal there, and pricing.

To render clips into one video with no audio file, set audio.mode to "silence" and give audio.duration_seconds on POST /v1/timeline-1.0/render. The docs define silence as a declared length with no spine file, so the output is exactly that many seconds (1 to 1800) and you then place the video[] slots on that timeline.
Everything below is from the Timeline 1.0 docs, read 2026-09-29.
What does the request look like?
In silence mode do not send url, parts, gain_db or source_in inside audio. Each is refused with a silent_audio_takes_no_... code.
curl -X POST https://api.sume.com/v1/timeline-1.0/render \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: silent-render-001" \
-d '{
"audio": { "mode": "silence", "duration_seconds": 12 },
"video": [
{ "source_url": "https://media.sume.com/artifacts/artf_demo/a.mp4", "start": 0, "duration": 6 },
{ "source_url": "https://media.sume.com/artifacts/artf_demo/b.mp4", "start": 6, "duration": 6,
"transition": { "type": "fade", "duration": 0.25 } }
]
}'What is not allowed with silence?
| Field | In silence mode |
|---|---|
audio.url, audio.parts | Refused (silent_audio_takes_no_url, silent_audio_takes_no_parts) |
audio.gain_db, audio.source_in | Refused |
soundtrack.duck_db | Refused (duck_requires_audio_spine) |
soundtrack without duck | Not excluded by the docs, so a music bed is possible |
How do the slots have to line up?
video[0].start must be 0 and later starts must increase. Each slot's duration is at least 0.2 seconds, and coverage may trail the declared length by at most 0.5 seconds. Transitions go on slots after the first: fade, wipeleft, wiperight, slideup, slidedown or dissolve.
What does it cost?
$0.10 per output minute, reserved as ceil(audio.duration_seconds / 60) minutes, so the 12 second render above reserves one minute. POST /v1/timeline-1.0/plan returns the billable minutes and estimate without creating a job.
Which refusals should I expect?
audio_url_required: nourlorpartsand not silence.audio_url_and_parts_exclusive: bothurlandpartssent.invalid_segment_timingorsegment_overlap: starts not increasing, or overlapping past the transition.unsupported_media_sourceorsource_not_found: a clip URL is off-host or dead.
Sources
Related posts
More in Developers
- Timeline error too_many_chained_transitions: how to fix it
Timeline 1.0 refuses more than 8 adjacent fades with too_many_chained_transitions. Insert a hard cut. Also transition_too_long, transition_not_frame_aligned.
- Render a vertical 1080x1920 video from clips with an API
Timeline 1.0 defaults to a 1080x1920 MP4. Set output width, height and fps, and pick fit cover, contain, stretch or blur for clips that do not match the frame.
- Let the API pick the video model: sume/auto for vertical UGC clips
Send model sume/auto to POST /v1/videos and Sume picks the family. The response echoes sume/auto and never names the model. When to pin a model instead.
- Veo 3.1 personGeneration: allow_adult vs allow_all by mode
Veo 3.1 personGeneration is allow_all for text-to-video, allow_adult for image modes, and allow_adult only in some regions. Sume has no such field.
Written by Sume