Skip to main content
Motion presets are set via the motion array on video, image, and text elements. Only fields that differ from their defaults are shown (easing defaults to "ease_in_out", reversed defaults to false).
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.

Fade in

Fade the element in over 0.5 seconds at the start. Text is visible from 1 s to 5 s over video. time on the motion object is absolute timeline seconds — the same clock as the element’s own time. Match it to the element’s time for entrances, and set it to element time + duration − motion duration for exits.

Fade out (reversed)

Use "reversed": true to play the exit variant of any motion preset. Text visible from 0 s to 6 s; the fade-out runs during the last second of that window.

Position in (slide)

Text slides in at 2 s, stays for 3 s, anchored on the left side of the frame.

Ken Burns (video / image)

Slow pan and zoom on footage.

Looping animation

Continuous motion while the element is visible. Text visible from 1 s to 7 s; set the loop preset duration to match the element’s duration.

Per-character animation (text only)

Animate each character individually with "scope": "character". Only supported on text elements. Text visible from 0.5 s to 4.5 s. Supported types: fade, slide_up, slide_down, slide_left, slide_right, zoom_in, bounce, bounce_motion, blend.

All motion types

Types marked both have an exit variant — add "reversed": true to play the exit. Types marked exit only set reversed automatically and never need it in the request.

Opacity

Position

Scale & bounce

Wipe

Rotation

Ken Burns (video / image only)

Looping