JSON syntax
This section documents every field accepted in the Movie JSON submitted to POST /v2/movies.
Top-level structures
- Movie — the root object.
- Scene — one segment of the movie's timeline.
- Element — the renderable units that sit inside scenes.
Elements
The element type is set by the type discriminator. Documented types:
image— static image.video— video clip.text— styled text overlay.html— HTML snippet or full webpage capture.component— animated component from the library.audio— audio track.voice— AI text-to-speech voiceover.audiogram— audio waveform visualisation.subtitles— automatic or manual subtitles.
The
templateelement type is deprecated. Use thetemplatemovie-level field to reference a saved template instead.
Conventions
- Property names use kebab-case where they predate JSON Schema strict naming (
client-data,fade-in,pan-distance, …). Other names are flat camelCase or simple identifiers. - Variable interpolation:
{{name}}substitutes the value of a variable found in the nearest enclosing scope (element → scene → movie). - Boolean defaults: every
cacheflag defaults totrue. Set it tofalseto bypass the render cache. - Time values: all durations and offsets are in seconds; supports decimals.