startTimeMs/durationMs) or to a specific time range.
All times are milliseconds on the clip’s playback timeline — the video as watched, with cuts applied. It is the same timeline as
get_transcript, thumbnails, and previews, so nothing needs converting. A start at or past the end of the clip is rejected with a 400.Layout kinds
Thelayout field is an object discriminated by kind. Read the clip first to see its layoutSceneType — that determines which kinds are valid.
list_saved_layouts
List your saved Favorite layouts. Each result includes an ID, name, scene type, and whether it is a preset or custom layout. Custom layouts also report the canvas ratio they require. Use the returned ID withapply_saved_layout.
apply_saved_layout
Apply one of your saved Favorite layouts to a clip. Omit the time range to set the clip-spanning base layout, or provide bothstartTimeMs and durationMs to apply it to part of the clip.
Saved layouts must match the clip’s scene type. Custom layouts must also match the video’s canvas ratio.
string
required
Video ID
string
required
Clip ID
string
required
Saved layout ID from
list_saved_layoutsinteger
Start time in ms
integer
Duration in ms. Minimum 200ms.
list_layouts
List the layouts on a clip, including the synthetic base layout (the layout that spans the whole clip).string
required
Video ID
string
required
Clip ID
add_layout
Add a layout to a clip. PassstartTimeMs + durationMs for a time range, or omit both for a clip-spanning layout.
To add b-roll, give a time range and set media. You can omit layout and the server applies a full-frame b-roll layout suited to the clip (screen-only for combi clips, fullscreen for basic and camera-subject clips), or pass layout with a kind valid for the clip’s scene type — see Layout kinds.
string
required
Video ID
string
required
Clip ID
object
Structured layout — see Layout kinds. Omit it to apply the default full-frame b-roll layout for the clip’s scene type.
integer
Start time in ms
integer
Duration in ms. Minimum 200ms.
enum<string>
Transition into the layout —
spring or hardCut. Only valid on time-ranged layouts. When omitted, the user’s saved layout intro transition is used; the saved outro transition is applied when the following layout begins or resumes.object
B-roll shown during the layout. Only valid on time-ranged layouts. One call fills one slot; to fill both, add one slot here and the other with
update_layout.update_layout
Update a layout on a clip. Only provided fields change.string
required
Video ID
string
required
Clip ID
string
required
Layout ID (use
base for the clip-spanning layout)object
New structured layout
integer
New start time in ms
integer
New duration in ms. Minimum 200ms.
enum<string>
spring or hardCut. Rejected on the base layout.object
Set the layout’s B-roll content for one slot. Rejected on the base layout. Same shape as
add_layout’s media, including the optional slot field. Additive per slot: media in the other slot is preserved, and media already in the targeted slot is replaced.remove_layout
Remove a non-base layout from a clip. Useupdate_layout to change the base layout.
string
required
Video ID
string
required
Clip ID
string
required
Layout ID
generate_auto_layouts
Let AI watch the clip and lay it out — the same as the editor’s “Auto layouts”. The AI picks an editing style (or followsstyle), sets the clip’s base layout, and adds time-ranged layout changes. Generation watches the actual video, so this can take on the order of a minute for longer clips.
string
required
Video ID
string
required
Clip ID
enum<string>
Editing style guiding the AI’s layout choices — one of
product-demo-portrait, product-demo-round, product-demo-square, product-demo-wide, presentation-tv-show, presentation-portrait, tutorial-round, tutorial-square, intro, outro, intro-and-outro. Omit to let the AI pick one based on the clip’s content.string
Free-form guidance for the AI, e.g. “keep the camera visible the whole time” or “punch in whenever a menu is opened”.