Skip to main content
Each example is a complete POST /v1/renders body. Only fields that differ from their defaults are shown. See the element field reference for every default.
For text and image elements, duration is required — the API returns 422 if it is missing. video and audio elements have no duration field — use out_point to control clip length. volume must be greater than 0 — the renderer silently drops audio streams with volume ≤ 0.Every video and audio element below sets out_point for a second reason: for a source_url Framelane does not host, submitting without one is a 422 invalid_source. The dry-run linter cannot see this — it reports ok: true and the real submit still fails. Upload the file, set ingest_external: true, or set out_point yourself.

Background audio

A separate audio track over a video. volume: 0 on the video mutes its embedded audio so only the audio track is heard.

Trim audio source

Play only seconds 30–36 of the source file.

Repeat audio

Repeat a 6-second clip to cover a 12-second render. Add one element per repeat with a different time and the same in_point/out_point.

Fade in and out

Fade audio in over 0.5 seconds and out over 1 second.

Lower volume

Mix audio at 50% volume alongside the video’s embedded audio.

Drive visuals from the soundtrack

Any video, image, or shape element — and any group — can react to the mix through motion[].audio. Pair it with type: "identity", the engine’s no-op carrier, when you want the reaction and nothing else.
scale, opacity, rotate, and translate are offsets per unit feature. Not available on text elements — put the text in a group and animate the group instead.