---
title: "Create a new movie"
method: POST
path: "/movies"
---

# Create a new movie

`POST /movies`

Submit a new movie rendering job.

## Request body

- Movie — Object defining the movie to be rendered
  - `id` string — Movie ID string. It must be unique per project
  - `comment` string — Used for adding your comments
  - `draft` true | false — Deprecated. This property is ignored and has no effect. Watermarking is now controlled automatically based on the account plan.
  - `variables` object — Variables of the template. Variable names can only contain letters, numbers and underscores
  - `resolution` 'sd' | 'hd' | 'full-hd' | 'squared' | 'instagram-story' | 'instagram-feed' | 'twitter-landscape' | 'twitter-portrait' | 'custom' — Set the movie size based on common use cases. Use <code>custom</code> to set a custom size with the <code>width</code> and <code>height</code> properties
  - `width` integer — Width of the movie. Only applicable if resolution is set to <code>custom</code>
  - `height` integer — Height of the movie. Only applicable if resolution is set to <code>custom</code>
  - `quality` 'low' | 'medium' | 'high' — Quality of the final rendered movie. Use it for speeding up the rendering process. <code>low</code> is the lowest quality, <code>high</code> is the highest quality
  - `fps` integer — Frames per second
  - `client-data` object — Key-value pairs that will be included in the response of the GET requests and in the webhook payloads. Client data is intended to pass on information to the following steps of the workflow.
  - `settings` object — Deprecated
  - `scenes` Scene[], required
    - `id` string — ID of the scene
    - `condition` string — OPTIONAL. Condition to be met for the scene to be rendered. If the value is false or empty string, the scene is removed from the movie
    - `variables` object — Local variables of the scene. Variable names can only contain letters, numbers and underscores
    - `comment` string — Used for adding your comments
    - `background-color` string — A hexadecimal representation of a color or 'transparent'
    - `duration` number, float — Sets the scene duration in seconds. A value of -1 means that the scene lasts enough to contain all its elements
    - `elements` union[]
      - union
        - Video
          - `type` 'video', required
          - `src` string, uri — URL to the asset file. Videos can be in MP4, MKV, MOV but MP4 is recommended.
          - `id` string — ID of the element
          - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
          - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
          - `comment` string — Used for adding your comments
          - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
          - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
          - `extra-time` number, float — Element's time span added after the playback.
          - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
          - `cache` boolean — Use the cached version of the element if its available
          - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
          - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
          - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
          - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
          - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
          - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
          - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
          - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
          - `scale` object — This property is deprecated. Use 'width' and 'height' instead
            - `width` integer — Sets the width for scaling the element
            - `height` integer — Sets the height for scaling the element
          - `rotate` object
            - `angle` number, required — Sets the angle of rotation
            - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
          - `crop` object — Crops the element
            - `x` integer — Sets the left point of croping
            - `y` integer — Sets the top point of croping
            - `width` integer, required — Sets the width of the croping
            - `height` integer, required — Sets the height of the croping
          - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
          - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
          - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
          - `pan-crop` boolean — Enable or disable the crop effect when panning
          - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
            - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
            - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
          - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
            - `contrast` number — Adjust the contrast
            - `brightness` number — Adjust the brightness
            - `saturation` number — Adjust the saturation
            - `gamma` number — Adjust the gamma
            - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
          - `flip-horizontal` boolean — Flips the element horizontally
          - `flip-vertical` boolean — Flips the element vertically
          - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
            - `src` string — URL to the mask file
            - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
          - `loop` integer — Sets the number of loops the video to play. Use -1 for an infinite loop. The default value of 1 plays the video just once.
          - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
          - `muted` boolean — Mutes the audio
          - `volume` number — Volume gain of the audio. A value of 1 means no gain. Higher values increase the volume. Values lower than 1 decrease the volume
          - `speed` number — Playback speed multiplier applied to the asset. A value of 1 plays at normal speed, values greater than 1 play faster (e.g. 1.5 is 50% faster) and values lower than 1 play slower (e.g. 0.5 is half speed). For video the frames are retimed; for audio the tempo is changed while preserving pitch. The element duration shortens or lengthens accordingly. Note: 'seek' is measured in the original asset timeline (it is applied before the speed change).
        - Image
          - `type` 'image'
          - `src` string, uri — URL to the asset file. Images can be in JPG, PNG, GIF or any common image format.
          - `id` string — ID of the element
          - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
          - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
          - `comment` string — Used for adding your comments
          - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
          - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
          - `extra-time` number, float — Element's time span added after the playback.
          - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
          - `cache` boolean — Use the cached version of the element if its available
          - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
          - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
          - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
          - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
          - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
          - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
          - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
          - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
          - `scale` object — This property is deprecated. Use 'width' and 'height' instead
            - `width` integer — Sets the width for scaling the element
            - `height` integer — Sets the height for scaling the element
          - `rotate` object
            - `angle` number, required — Sets the angle of rotation
            - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
          - `crop` object — Crops the element
            - `x` integer — Sets the left point of croping
            - `y` integer — Sets the top point of croping
            - `width` integer, required — Sets the width of the croping
            - `height` integer, required — Sets the height of the croping
          - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
          - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
          - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
          - `pan-crop` boolean — Enable or disable the crop effect when panning
          - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
            - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
            - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
          - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
            - `contrast` number — Adjust the contrast
            - `brightness` number — Adjust the brightness
            - `saturation` number — Adjust the saturation
            - `gamma` number — Adjust the gamma
            - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
          - `flip-horizontal` boolean — Flips the element horizontally
          - `flip-vertical` boolean — Flips the element vertically
          - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
            - `src` string — URL to the mask file
            - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
        - Text — Creates a text element of a given style
          - `type` 'text', required
          - `style` string — Style of the text element. Check all available text style at <a href='https://json2video.com/docs/resources/text/'>https://json2video.com/resources/text/</a>
          - `text` string, required — Text to be printed. The text string does not accept HTML formatting.
          - `settings` object — Text formatting settings, applied to the text as CSS properties: use the exact CSS property name, for example <code>font-size</code>, <code>color</code>, <code>font-family</code>, <code>font-weight</code>, <code>text-align</code> or <code>background-color</code>. The text color property is <code>color</code> — <code>font-color</code> is not a CSS property and is silently ignored. Keys that are not supported CSS properties are ignored here (never rejected), so a typo shows up as unstyled text, not as an error. See the styles to confirm which properties are available. Note: the <code>subtitles</code> element does NOT use these settings — it has its own fixed list (<code>word-color</code>, <code>line-color</code>, …).
          - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
          - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
          - `id` string — ID of the element
          - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
          - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
          - `comment` string — Used for adding your comments
          - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
          - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
          - `extra-time` number, float — Element's time span added after the playback.
          - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
          - `cache` boolean — Use the cached version of the element if its available
          - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
          - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
          - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
          - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
          - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
          - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
          - `scale` object — This property is deprecated. Use 'width' and 'height' instead
            - `width` integer — Sets the width for scaling the element
            - `height` integer — Sets the height for scaling the element
          - `rotate` object
            - `angle` number, required — Sets the angle of rotation
            - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
          - `crop` object — Crops the element
            - `x` integer — Sets the left point of croping
            - `y` integer — Sets the top point of croping
            - `width` integer, required — Sets the width of the croping
            - `height` integer, required — Sets the height of the croping
          - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
          - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
          - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
          - `pan-crop` boolean — Enable or disable the crop effect when panning
          - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
            - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
            - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
          - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
            - `contrast` number — Adjust the contrast
            - `brightness` number — Adjust the brightness
            - `saturation` number — Adjust the saturation
            - `gamma` number — Adjust the gamma
            - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
          - `flip-horizontal` boolean — Flips the element horizontally
          - `flip-vertical` boolean — Flips the element vertically
          - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
            - `src` string — URL to the mask file
            - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
        - Html — Creates a video recording or a screenshot of the provided HTML snippet
          - `type` 'html', required
          - `html` string — HTML snippet to render. Compatible with HTML5, CSS3 and Javascript
          - `src` string — URL to the web page
          - `wait` number — Time in seconds to wait before taking the screenshot
          - `tailwindcss` boolean — Enables usage of TailwindCSS for the HTML snippet
          - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
          - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
          - `id` string — ID of the element
          - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
          - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
          - `comment` string — Used for adding your comments
          - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
          - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
          - `extra-time` number, float — Element's time span added after the playback.
          - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
          - `cache` boolean — Use the cached version of the element if its available
          - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
          - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
          - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
          - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
          - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
          - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
          - `scale` object — This property is deprecated. Use 'width' and 'height' instead
            - `width` integer — Sets the width for scaling the element
            - `height` integer — Sets the height for scaling the element
          - `rotate` object
            - `angle` number, required — Sets the angle of rotation
            - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
          - `crop` object — Crops the element
            - `x` integer — Sets the left point of croping
            - `y` integer — Sets the top point of croping
            - `width` integer, required — Sets the width of the croping
            - `height` integer, required — Sets the height of the croping
          - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
          - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
          - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
          - `pan-crop` boolean — Enable or disable the crop effect when panning
          - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
            - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
            - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
          - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
            - `contrast` number — Adjust the contrast
            - `brightness` number — Adjust the brightness
            - `saturation` number — Adjust the saturation
            - `gamma` number — Adjust the gamma
            - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
          - `flip-horizontal` boolean — Flips the element horizontally
          - `flip-vertical` boolean — Flips the element vertically
          - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
            - `src` string — URL to the mask file
            - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
        - Component — Creates an element based on the specified feature
          - `type` 'component', required
          - `component` string, required — ID of the Component element. Check all available components in the <a href='https://json2video.com/docs/resources/basic/'>library</a>
          - `settings` object — Settings to be passed to the component
          - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
          - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
          - `id` string — ID of the element
          - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
          - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
          - `comment` string — Used for adding your comments
          - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
          - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
          - `extra-time` number, float — Element's time span added after the playback.
          - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
          - `cache` boolean — Use the cached version of the element if its available
          - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
          - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
          - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
          - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
          - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
          - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
          - `scale` object — This property is deprecated. Use 'width' and 'height' instead
            - `width` integer — Sets the width for scaling the element
            - `height` integer — Sets the height for scaling the element
          - `rotate` object
            - `angle` number, required — Sets the angle of rotation
            - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
          - `crop` object — Crops the element
            - `x` integer — Sets the left point of croping
            - `y` integer — Sets the top point of croping
            - `width` integer, required — Sets the width of the croping
            - `height` integer, required — Sets the height of the croping
          - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
          - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
          - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
          - `pan-crop` boolean — Enable or disable the crop effect when panning
          - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
            - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
            - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
          - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
            - `contrast` number — Adjust the contrast
            - `brightness` number — Adjust the brightness
            - `saturation` number — Adjust the saturation
            - `gamma` number — Adjust the gamma
            - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
          - `flip-horizontal` boolean — Flips the element horizontally
          - `flip-vertical` boolean — Flips the element vertically
          - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
            - `src` string — URL to the mask file
            - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
        - Audio
          - `type` 'audio'
          - `src` string, uri — URL to the asset file. Audios can be in MP3, WAV or any common audio format.
          - `id` string — ID of the element
          - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
          - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
          - `comment` string — Used for adding your comments
          - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
          - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
          - `extra-time` number, float — Element's time span added after the playback.
          - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
          - `cache` boolean — Use the cached version of the element if its available
          - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
          - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
          - `muted` boolean — Mutes the audio
          - `volume` number — Volume gain of the audio. A value of 1 means no gain. Higher values increase the volume. Values lower than 1 decrease the volume
          - `speed` number — Playback speed multiplier applied to the asset. A value of 1 plays at normal speed, values greater than 1 play faster (e.g. 1.5 is 50% faster) and values lower than 1 play slower (e.g. 0.5 is half speed). For video the frames are retimed; for audio the tempo is changed while preserving pitch. The element duration shortens or lengthens accordingly. Note: 'seek' is measured in the original asset timeline (it is applied before the speed change).
          - `loop` integer — Sets the number of loops the video to play. Use -1 for an infinite loop. The default value of 1 plays the video just once.
          - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
        - Voice — Creates a voice audio element from the provided text
          - `type` 'voice', required
          - `text` string, required — The sentence or sentences to be converted to voice audio
          - `voice` string — The voice name to be used. Check <a href="/docs/tutorial/voice-elements/">available voices</a>.
          - `model` string — The text-to-speech provider to use. Defaults to <code>azure</code>. Supported values include <code>azure</code> and <code>elevenlabs</code>.
          - `connection` string — Connection ID to use for voice synthesis. If specified, the API key in the connection will be used. If not specified, JSON2Video's default keys are used and credits may be deducted.
          - `id` string — ID of the element
          - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
          - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
          - `comment` string — Used for adding your comments
          - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
          - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
          - `extra-time` number, float — Element's time span added after the playback.
          - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
          - `cache` boolean — Use the cached version of the element if its available
          - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
          - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
          - `muted` boolean — Mutes the audio
          - `volume` number — Volume gain of the audio. A value of 1 means no gain. Higher values increase the volume. Values lower than 1 decrease the volume
          - `speed` number — Playback speed multiplier applied to the asset. A value of 1 plays at normal speed, values greater than 1 play faster (e.g. 1.5 is 50% faster) and values lower than 1 play slower (e.g. 0.5 is half speed). For video the frames are retimed; for audio the tempo is changed while preserving pitch. The element duration shortens or lengthens accordingly. Note: 'seek' is measured in the original asset timeline (it is applied before the speed change).
        - Audiogram — Visualizes the audio of the scene or movie as an audiogram
          - `type` 'audiogram', required
          - `color` string — Color of the audiogram waves in hexadecimal format
          - `opacity` number, float — Opacity of the audiogram
          - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
          - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
          - `amplitude` number, float — Relative amplitude of the audiogram
          - `id` string — ID of the element
          - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
          - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
          - `comment` string — Used for adding your comments
          - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
          - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
          - `extra-time` number, float — Element's time span added after the playback.
          - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
          - `cache` boolean — Use the cached version of the element if its available
          - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
          - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
          - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
          - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
          - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
          - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
          - `scale` object — This property is deprecated. Use 'width' and 'height' instead
            - `width` integer — Sets the width for scaling the element
            - `height` integer — Sets the height for scaling the element
          - `rotate` object
            - `angle` number, required — Sets the angle of rotation
            - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
          - `crop` object — Crops the element
            - `x` integer — Sets the left point of croping
            - `y` integer — Sets the top point of croping
            - `width` integer, required — Sets the width of the croping
            - `height` integer, required — Sets the height of the croping
          - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
          - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
          - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
          - `pan-crop` boolean — Enable or disable the crop effect when panning
          - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
            - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
            - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
          - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
            - `contrast` number — Adjust the contrast
            - `brightness` number — Adjust the brightness
            - `saturation` number — Adjust the saturation
            - `gamma` number — Adjust the gamma
            - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
          - `flip-horizontal` boolean — Flips the element horizontally
          - `flip-vertical` boolean — Flips the element vertically
          - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
            - `src` string — URL to the mask file
            - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
        - Subtitles — Adds subtitles to the scene or movie by transcribing the voice audio.
          - `type` 'subtitles', required
          - `comment` string — Use it for your comments
          - `language` 'auto' | 'en' | 'bg' | 'ca' | 'cs' | 'da' | 'nl' | 'en-AU' | 'en-GB' | 'en-NZ' | 'en-IN' | 'en-US' | 'et' | 'fr' | 'fi' | 'nl-BE' | 'de' | 'de-CH' | 'el' | 'hi' | 'hi-Latn' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'lv' | 'lt' | 'ms' | 'no' | 'pl' | 'pt' | 'pt-BR' | 'ro' | 'ru' | 'sk' | 'es' | 'es-419' | 'sv' | 'th' | 'tr' | 'uk' | 'vi' | 'zh' | 'zh-TW' — Language of the audio. Use <code>auto</code> to let the API detect the language automatically.
          - `model` string — Model to use for transcription. If no model is provided, a default model is used.
          - `captions` string — Captions to use as subtitles. The string can be a URL to a file with the captions or the actual captions content properly encoded. Supported formats are SRT, VTT or ASS. If this property is ommited, the subtitles will be generated automatically from the audio.
          - `settings` object — Settings to customize the subtitles. Unlike the CSS-based settings of the <code>text</code> element, this is a CLOSED list: only the properties below are accepted and any other key is rejected with <code>Property 'X' is not allowed in movie/elements[N]/settings</code>. In particular there is no <code>color</code> or <code>font-color</code> here — the colors are <code>word-color</code> (the word being spoken), <code>line-color</code> (the rest of the line), <code>outline-color</code>, <code>shadow-color</code> and <code>box-color</code>.
            - `style` 'classic' | 'classic-progressive' | 'classic-one-word' | 'boxed-line' | 'boxed-word' — Style of the subtitles. Check the tutorial for more details.
            - `font-url` string — URL to the font file to use for the subtitles. The font file must be in TTF format. The <code>font-family</code> property must match the font family name in the font file.
            - `font-family` 'Arial' | 'Arial Bold' | 'Katibeh' | 'Lalezar' | 'Libre Baskerville' | 'Lobster' | 'Luckiest Guy' | 'Nanum Pen Script' | 'Nunito' | 'Pacifico' | 'Roboto' | 'Comic Neue' | 'Orelega One' | 'Oswald' | 'Oswald Bold' | 'Shrikhand' | 'Fredericka the Great' | 'Permanent Marker' | 'NotoSans Bold' | 'Simplified Chinese' | 'Traditional Chinese' | 'Japanese' | 'Korean' | 'Korean Bold' | 'Thai' — Font family of the subtitles. One of the font families below or a custom font family name if <code>font-url</code> is provided.
            - `font-size` integer — Font size of the subtitles. Usual sizes are between 90 and 150. Defaults to 5% of the movie width.
            - `word-color` string — Color of the spoken word
            - `line-color` string — Color of the rest of words in the line
            - `outline-color` string — Outline color of the subtitles
            - `outline-width` integer — Width of the outline
            - `shadow-color` string — Shadow color of the subtitles
            - `shadow-offset` integer — Offset of the shadow
            - `box-color` string — Color of the box behind the subtitles. Depending on the style, it can be the background color of the spoken word or the full line
            - `position` 'top-left' | 'top-center' | 'top-right' | 'center-left' | 'center-center' | 'center-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'mid-bottom-center' | 'mid-top-center' | 'custom' — Position of the subtitles
            - `x` integer — X coordinate of the subtitles
            - `y` integer — Y coordinate of the subtitles
            - `max-words-per-line` integer — Maximum number of words per line
            - `all-caps` boolean — Makes the subtitles all caps
            - `keywords` string[] — Keywords provides additional vocabulary to the transcription process. Use it to improve the accuracy of the transcription of non-standard words or phrases.
            - `replace` object — Replaces words with the specified replacement. Useful to correct the transcription of non-standard words or phrases.
    - `transition` object
      - `type` 'xfade'
      - `style` 'fade' | 'wipeleft' | 'wiperight' | 'wipeup' | 'wipedown' | 'slideleft' | 'slideright' | 'slideup' | 'slidedown' | 'circlecrop' | 'rectcrop' | 'distance' | 'fadeblack' | 'fadewhite' | 'radial' | 'smoothleft' | 'smoothright' | 'smoothup' | 'smoothdown' | 'circleopen' | 'circleclose' | 'vertopen' | 'vertclose' | 'horzopen' | 'horzclose' | 'dissolve' | 'pixelize' | 'diagtl' | 'diagtr' | 'diagbl' | 'diagbr' | 'hlslice' | 'hrslice' | 'vuslice' | 'vdslice' | 'hblur' | 'fadegrays' | 'wipetl' | 'wipetr' | 'wipebl' | 'wipebr' | 'squeezeh' | 'squeezev'
      - `duration` number, float — Duration of the transition in seconds
    - `cache` boolean — Use the cached version of the scene if its available
  - `elements` union[]
    - union
      - Video
        - `type` 'video', required
        - `src` string, uri — URL to the asset file. Videos can be in MP4, MKV, MOV but MP4 is recommended.
        - `id` string — ID of the element
        - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
        - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
        - `comment` string — Used for adding your comments
        - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
        - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
        - `extra-time` number, float — Element's time span added after the playback.
        - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
        - `cache` boolean — Use the cached version of the element if its available
        - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
        - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
        - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
        - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
        - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
        - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
        - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `scale` object — This property is deprecated. Use 'width' and 'height' instead
          - `width` integer — Sets the width for scaling the element
          - `height` integer — Sets the height for scaling the element
        - `rotate` object
          - `angle` number, required — Sets the angle of rotation
          - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
        - `crop` object — Crops the element
          - `x` integer — Sets the left point of croping
          - `y` integer — Sets the top point of croping
          - `width` integer, required — Sets the width of the croping
          - `height` integer, required — Sets the height of the croping
        - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
        - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
        - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
        - `pan-crop` boolean — Enable or disable the crop effect when panning
        - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
          - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
          - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
        - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
          - `contrast` number — Adjust the contrast
          - `brightness` number — Adjust the brightness
          - `saturation` number — Adjust the saturation
          - `gamma` number — Adjust the gamma
          - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
        - `flip-horizontal` boolean — Flips the element horizontally
        - `flip-vertical` boolean — Flips the element vertically
        - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
          - `src` string — URL to the mask file
          - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
        - `loop` integer — Sets the number of loops the video to play. Use -1 for an infinite loop. The default value of 1 plays the video just once.
        - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
        - `muted` boolean — Mutes the audio
        - `volume` number — Volume gain of the audio. A value of 1 means no gain. Higher values increase the volume. Values lower than 1 decrease the volume
        - `speed` number — Playback speed multiplier applied to the asset. A value of 1 plays at normal speed, values greater than 1 play faster (e.g. 1.5 is 50% faster) and values lower than 1 play slower (e.g. 0.5 is half speed). For video the frames are retimed; for audio the tempo is changed while preserving pitch. The element duration shortens or lengthens accordingly. Note: 'seek' is measured in the original asset timeline (it is applied before the speed change).
      - Image
        - `type` 'image'
        - `src` string, uri — URL to the asset file. Images can be in JPG, PNG, GIF or any common image format.
        - `id` string — ID of the element
        - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
        - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
        - `comment` string — Used for adding your comments
        - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
        - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
        - `extra-time` number, float — Element's time span added after the playback.
        - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
        - `cache` boolean — Use the cached version of the element if its available
        - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
        - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
        - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
        - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
        - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
        - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
        - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `scale` object — This property is deprecated. Use 'width' and 'height' instead
          - `width` integer — Sets the width for scaling the element
          - `height` integer — Sets the height for scaling the element
        - `rotate` object
          - `angle` number, required — Sets the angle of rotation
          - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
        - `crop` object — Crops the element
          - `x` integer — Sets the left point of croping
          - `y` integer — Sets the top point of croping
          - `width` integer, required — Sets the width of the croping
          - `height` integer, required — Sets the height of the croping
        - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
        - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
        - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
        - `pan-crop` boolean — Enable or disable the crop effect when panning
        - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
          - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
          - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
        - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
          - `contrast` number — Adjust the contrast
          - `brightness` number — Adjust the brightness
          - `saturation` number — Adjust the saturation
          - `gamma` number — Adjust the gamma
          - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
        - `flip-horizontal` boolean — Flips the element horizontally
        - `flip-vertical` boolean — Flips the element vertically
        - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
          - `src` string — URL to the mask file
          - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
      - Text — Creates a text element of a given style
        - `type` 'text', required
        - `style` string — Style of the text element. Check all available text style at <a href='https://json2video.com/docs/resources/text/'>https://json2video.com/resources/text/</a>
        - `text` string, required — Text to be printed. The text string does not accept HTML formatting.
        - `settings` object — Text formatting settings, applied to the text as CSS properties: use the exact CSS property name, for example <code>font-size</code>, <code>color</code>, <code>font-family</code>, <code>font-weight</code>, <code>text-align</code> or <code>background-color</code>. The text color property is <code>color</code> — <code>font-color</code> is not a CSS property and is silently ignored. Keys that are not supported CSS properties are ignored here (never rejected), so a typo shows up as unstyled text, not as an error. See the styles to confirm which properties are available. Note: the <code>subtitles</code> element does NOT use these settings — it has its own fixed list (<code>word-color</code>, <code>line-color</code>, …).
        - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `id` string — ID of the element
        - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
        - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
        - `comment` string — Used for adding your comments
        - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
        - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
        - `extra-time` number, float — Element's time span added after the playback.
        - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
        - `cache` boolean — Use the cached version of the element if its available
        - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
        - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
        - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
        - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
        - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
        - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
        - `scale` object — This property is deprecated. Use 'width' and 'height' instead
          - `width` integer — Sets the width for scaling the element
          - `height` integer — Sets the height for scaling the element
        - `rotate` object
          - `angle` number, required — Sets the angle of rotation
          - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
        - `crop` object — Crops the element
          - `x` integer — Sets the left point of croping
          - `y` integer — Sets the top point of croping
          - `width` integer, required — Sets the width of the croping
          - `height` integer, required — Sets the height of the croping
        - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
        - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
        - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
        - `pan-crop` boolean — Enable or disable the crop effect when panning
        - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
          - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
          - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
        - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
          - `contrast` number — Adjust the contrast
          - `brightness` number — Adjust the brightness
          - `saturation` number — Adjust the saturation
          - `gamma` number — Adjust the gamma
          - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
        - `flip-horizontal` boolean — Flips the element horizontally
        - `flip-vertical` boolean — Flips the element vertically
        - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
          - `src` string — URL to the mask file
          - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
      - Html — Creates a video recording or a screenshot of the provided HTML snippet
        - `type` 'html', required
        - `html` string — HTML snippet to render. Compatible with HTML5, CSS3 and Javascript
        - `src` string — URL to the web page
        - `wait` number — Time in seconds to wait before taking the screenshot
        - `tailwindcss` boolean — Enables usage of TailwindCSS for the HTML snippet
        - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `id` string — ID of the element
        - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
        - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
        - `comment` string — Used for adding your comments
        - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
        - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
        - `extra-time` number, float — Element's time span added after the playback.
        - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
        - `cache` boolean — Use the cached version of the element if its available
        - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
        - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
        - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
        - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
        - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
        - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
        - `scale` object — This property is deprecated. Use 'width' and 'height' instead
          - `width` integer — Sets the width for scaling the element
          - `height` integer — Sets the height for scaling the element
        - `rotate` object
          - `angle` number, required — Sets the angle of rotation
          - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
        - `crop` object — Crops the element
          - `x` integer — Sets the left point of croping
          - `y` integer — Sets the top point of croping
          - `width` integer, required — Sets the width of the croping
          - `height` integer, required — Sets the height of the croping
        - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
        - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
        - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
        - `pan-crop` boolean — Enable or disable the crop effect when panning
        - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
          - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
          - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
        - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
          - `contrast` number — Adjust the contrast
          - `brightness` number — Adjust the brightness
          - `saturation` number — Adjust the saturation
          - `gamma` number — Adjust the gamma
          - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
        - `flip-horizontal` boolean — Flips the element horizontally
        - `flip-vertical` boolean — Flips the element vertically
        - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
          - `src` string — URL to the mask file
          - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
      - Component — Creates an element based on the specified feature
        - `type` 'component', required
        - `component` string, required — ID of the Component element. Check all available components in the <a href='https://json2video.com/docs/resources/basic/'>library</a>
        - `settings` object — Settings to be passed to the component
        - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `id` string — ID of the element
        - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
        - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
        - `comment` string — Used for adding your comments
        - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
        - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
        - `extra-time` number, float — Element's time span added after the playback.
        - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
        - `cache` boolean — Use the cached version of the element if its available
        - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
        - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
        - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
        - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
        - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
        - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
        - `scale` object — This property is deprecated. Use 'width' and 'height' instead
          - `width` integer — Sets the width for scaling the element
          - `height` integer — Sets the height for scaling the element
        - `rotate` object
          - `angle` number, required — Sets the angle of rotation
          - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
        - `crop` object — Crops the element
          - `x` integer — Sets the left point of croping
          - `y` integer — Sets the top point of croping
          - `width` integer, required — Sets the width of the croping
          - `height` integer, required — Sets the height of the croping
        - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
        - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
        - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
        - `pan-crop` boolean — Enable or disable the crop effect when panning
        - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
          - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
          - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
        - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
          - `contrast` number — Adjust the contrast
          - `brightness` number — Adjust the brightness
          - `saturation` number — Adjust the saturation
          - `gamma` number — Adjust the gamma
          - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
        - `flip-horizontal` boolean — Flips the element horizontally
        - `flip-vertical` boolean — Flips the element vertically
        - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
          - `src` string — URL to the mask file
          - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
      - Template — Creates an element based on the specified feature
        - `type` 'template', required
        - `template` string, required — ID of the Component element. Check all available components at <a href='https://json2video.com/docs/resources/basic/'>https://json2video.com/docs/resources/basic/</a>
        - `settings` object — Settings to be passed to the component
        - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `id` string — ID of the element
        - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
        - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
        - `comment` string — Used for adding your comments
        - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
        - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
        - `extra-time` number, float — Element's time span added after the playback.
        - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
        - `cache` boolean — Use the cached version of the element if its available
        - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
        - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
        - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
        - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
        - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
        - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
        - `scale` object — This property is deprecated. Use 'width' and 'height' instead
          - `width` integer — Sets the width for scaling the element
          - `height` integer — Sets the height for scaling the element
        - `rotate` object
          - `angle` number, required — Sets the angle of rotation
          - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
        - `crop` object — Crops the element
          - `x` integer — Sets the left point of croping
          - `y` integer — Sets the top point of croping
          - `width` integer, required — Sets the width of the croping
          - `height` integer, required — Sets the height of the croping
        - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
        - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
        - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
        - `pan-crop` boolean — Enable or disable the crop effect when panning
        - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
          - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
          - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
        - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
          - `contrast` number — Adjust the contrast
          - `brightness` number — Adjust the brightness
          - `saturation` number — Adjust the saturation
          - `gamma` number — Adjust the gamma
          - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
        - `flip-horizontal` boolean — Flips the element horizontally
        - `flip-vertical` boolean — Flips the element vertically
        - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
          - `src` string — URL to the mask file
          - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
      - Audio
        - `type` 'audio'
        - `src` string, uri — URL to the asset file. Audios can be in MP3, WAV or any common audio format.
        - `id` string — ID of the element
        - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
        - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
        - `comment` string — Used for adding your comments
        - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
        - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
        - `extra-time` number, float — Element's time span added after the playback.
        - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
        - `cache` boolean — Use the cached version of the element if its available
        - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
        - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
        - `muted` boolean — Mutes the audio
        - `volume` number — Volume gain of the audio. A value of 1 means no gain. Higher values increase the volume. Values lower than 1 decrease the volume
        - `speed` number — Playback speed multiplier applied to the asset. A value of 1 plays at normal speed, values greater than 1 play faster (e.g. 1.5 is 50% faster) and values lower than 1 play slower (e.g. 0.5 is half speed). For video the frames are retimed; for audio the tempo is changed while preserving pitch. The element duration shortens or lengthens accordingly. Note: 'seek' is measured in the original asset timeline (it is applied before the speed change).
        - `loop` integer — Sets the number of loops the video to play. Use -1 for an infinite loop. The default value of 1 plays the video just once.
        - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
      - Voice — Creates a voice audio element from the provided text
        - `type` 'voice', required
        - `text` string, required — The sentence or sentences to be converted to voice audio
        - `voice` string — The voice name to be used. Check <a href="/docs/tutorial/voice-elements/">available voices</a>.
        - `model` string — The text-to-speech provider to use. Defaults to <code>azure</code>. Supported values include <code>azure</code> and <code>elevenlabs</code>.
        - `connection` string — Connection ID to use for voice synthesis. If specified, the API key in the connection will be used. If not specified, JSON2Video's default keys are used and credits may be deducted.
        - `id` string — ID of the element
        - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
        - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
        - `comment` string — Used for adding your comments
        - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
        - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
        - `extra-time` number, float — Element's time span added after the playback.
        - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
        - `cache` boolean — Use the cached version of the element if its available
        - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
        - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
        - `muted` boolean — Mutes the audio
        - `volume` number — Volume gain of the audio. A value of 1 means no gain. Higher values increase the volume. Values lower than 1 decrease the volume
        - `speed` number — Playback speed multiplier applied to the asset. A value of 1 plays at normal speed, values greater than 1 play faster (e.g. 1.5 is 50% faster) and values lower than 1 play slower (e.g. 0.5 is half speed). For video the frames are retimed; for audio the tempo is changed while preserving pitch. The element duration shortens or lengthens accordingly. Note: 'seek' is measured in the original asset timeline (it is applied before the speed change).
      - Audiogram — Visualizes the audio of the scene or movie as an audiogram
        - `type` 'audiogram', required
        - `color` string — Color of the audiogram waves in hexadecimal format
        - `opacity` number, float — Opacity of the audiogram
        - `width` integer — Sets the width of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `height` integer — Sets the height of the element, scaling up or down if required. A value of '-1' means to keep the aspect ratio
        - `amplitude` number, float — Relative amplitude of the audiogram
        - `id` string — ID of the element
        - `condition` string — OPTIONAL. Condition to be met for the element to be rendered. If the value is false or empty string, the element is removed from the scene
        - `variables` object — Local variables of the element. Variable names can only contain letters, numbers and underscores
        - `comment` string — Used for adding your comments
        - `duration` number, float — Element's duration in seconds. A value of -1 auto calculates the duration based on the asset/file intrinsic length. A value of -2 sets the element duration to the parent scene or element duration
        - `start` number, float — Element's starting time in seconds relative to the container scene or the movie if the element is in the Movie's elements array.
        - `extra-time` number, float — Element's time span added after the playback.
        - `z-index` number — Element's z-index. Use this property to reorganize the layering of the elements like in HTML
        - `cache` boolean — Use the cached version of the element if its available
        - `fade-in` number, float — Adds a fade in effect to the element. Value in seconds.
        - `fade-out` number, float — Adds a fade out effect to the element. Value in seconds.
        - `position` 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'center-center' | 'custom' — Sets the element position in the scene. A value of 'custom' sets a custom position based on the provided 'x' and 'y' properties
        - `x` number — Sets the horizontal position of the element in the scene. The value <code>0</code> is on the left side
        - `y` number — Sets the vertical position of the element in the scene. The value <code>0</code> is on the top side
        - `resize` 'cover' | 'fill' | 'fit' | 'contain' — Sets the resize mode of the element. A value of 'cover' or 'fill' stretches the element to cover the entire movie canvas. A value of 'fit' or 'contain' stretches the element to fit the movie canvas. If set, the 'width' and 'height' properties are ignored
        - `scale` object — This property is deprecated. Use 'width' and 'height' instead
          - `width` integer — Sets the width for scaling the element
          - `height` integer — Sets the height for scaling the element
        - `rotate` object
          - `angle` number, required — Sets the angle of rotation
          - `speed` number — Sets the time it takes to rotate the provided angle. A zero value means no movement
        - `crop` object — Crops the element
          - `x` integer — Sets the left point of croping
          - `y` integer — Sets the top point of croping
          - `width` integer, required — Sets the width of the croping
          - `height` integer, required — Sets the height of the croping
        - `zoom` integer — Zooms the element with the specified level percentage. Positive values zoom in, negative values zoom out, zero does not zoom. Zoom can be combined with the <code>pan</code> property to set the focus point of the zooming
        - `pan` 'left' | 'top' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' — Pans the element to the specified direction. If <code>zoom</code> property is not specified, the effect is a non-zooming pan
        - `pan-distance` number, float — Is the distance of the panning effect. A higher value means a larger panning movement (higher speed)
        - `pan-crop` boolean — Enable or disable the crop effect when panning
        - `chroma-key` object — Allows to define a color (or a range of colors) that will be converted to transparent
          - `color` string, required — Set the color for which alpha will be set to 0 (full transparency)
          - `tolerance` integer — Makes the selection more or less sensitive to changes in color. A value of 1 will select only the provided color. A value of 100 will select all colors, so the full canvas
        - `correction` object — Allows to adjust the contrast, brightness, saturation and gamma of the element
          - `contrast` number — Adjust the contrast
          - `brightness` number — Adjust the brightness
          - `saturation` number — Adjust the saturation
          - `gamma` number — Adjust the gamma
          - `blur` number — Apply gaussian blur. A value of 0 means no blur. A value of 10 means maximum blur.
        - `flip-horizontal` boolean — Flips the element horizontally
        - `flip-vertical` boolean — Flips the element vertically
        - `mask` object — A predefined mask name or a URL to a PNG or video file defining a mask for the element. For external mask files, black color is transparent, white is solid, and gray tones in between are partially transparent. Predefined masks names are: 'circle'.
          - `src` string — URL to the mask file
          - `seek` number, float — Seek to the specified time in seconds relative to the begining of the asset. Use negative values to seek backwards
      - Subtitles — Adds subtitles to the scene or movie by transcribing the voice audio.
        - `type` 'subtitles', required
        - `comment` string — Use it for your comments
        - `language` 'auto' | 'en' | 'bg' | 'ca' | 'cs' | 'da' | 'nl' | 'en-AU' | 'en-GB' | 'en-NZ' | 'en-IN' | 'en-US' | 'et' | 'fr' | 'fi' | 'nl-BE' | 'de' | 'de-CH' | 'el' | 'hi' | 'hi-Latn' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'lv' | 'lt' | 'ms' | 'no' | 'pl' | 'pt' | 'pt-BR' | 'ro' | 'ru' | 'sk' | 'es' | 'es-419' | 'sv' | 'th' | 'tr' | 'uk' | 'vi' | 'zh' | 'zh-TW' — Language of the audio. Use <code>auto</code> to let the API detect the language automatically.
        - `model` string — Model to use for transcription. If no model is provided, a default model is used.
        - `captions` string — Captions to use as subtitles. The string can be a URL to a file with the captions or the actual captions content properly encoded. Supported formats are SRT, VTT or ASS. If this property is ommited, the subtitles will be generated automatically from the audio.
        - `settings` object — Settings to customize the subtitles. Unlike the CSS-based settings of the <code>text</code> element, this is a CLOSED list: only the properties below are accepted and any other key is rejected with <code>Property 'X' is not allowed in movie/elements[N]/settings</code>. In particular there is no <code>color</code> or <code>font-color</code> here — the colors are <code>word-color</code> (the word being spoken), <code>line-color</code> (the rest of the line), <code>outline-color</code>, <code>shadow-color</code> and <code>box-color</code>.
          - `style` 'classic' | 'classic-progressive' | 'classic-one-word' | 'boxed-line' | 'boxed-word' — Style of the subtitles. Check the tutorial for more details.
          - `font-url` string — URL to the font file to use for the subtitles. The font file must be in TTF format. The <code>font-family</code> property must match the font family name in the font file.
          - `font-family` 'Arial' | 'Arial Bold' | 'Katibeh' | 'Lalezar' | 'Libre Baskerville' | 'Lobster' | 'Luckiest Guy' | 'Nanum Pen Script' | 'Nunito' | 'Pacifico' | 'Roboto' | 'Comic Neue' | 'Orelega One' | 'Oswald' | 'Oswald Bold' | 'Shrikhand' | 'Fredericka the Great' | 'Permanent Marker' | 'NotoSans Bold' | 'Simplified Chinese' | 'Traditional Chinese' | 'Japanese' | 'Korean' | 'Korean Bold' | 'Thai' — Font family of the subtitles. One of the font families below or a custom font family name if <code>font-url</code> is provided.
          - `font-size` integer — Font size of the subtitles. Usual sizes are between 90 and 150. Defaults to 5% of the movie width.
          - `word-color` string — Color of the spoken word
          - `line-color` string — Color of the rest of words in the line
          - `outline-color` string — Outline color of the subtitles
          - `outline-width` integer — Width of the outline
          - `shadow-color` string — Shadow color of the subtitles
          - `shadow-offset` integer — Offset of the shadow
          - `box-color` string — Color of the box behind the subtitles. Depending on the style, it can be the background color of the spoken word or the full line
          - `position` 'top-left' | 'top-center' | 'top-right' | 'center-left' | 'center-center' | 'center-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'mid-bottom-center' | 'mid-top-center' | 'custom' — Position of the subtitles
          - `x` integer — X coordinate of the subtitles
          - `y` integer — Y coordinate of the subtitles
          - `max-words-per-line` integer — Maximum number of words per line
          - `all-caps` boolean — Makes the subtitles all caps
          - `keywords` string[] — Keywords provides additional vocabulary to the transcription process. Use it to improve the accuracy of the transcription of non-standard words or phrases.
          - `replace` object — Replaces words with the specified replacement. Useful to correct the transcription of non-standard words or phrases.
  - `cache` boolean — Use the cached version of the movie if its available
  - `exports` unknown[] — You can define different types of exports for your movie. Check the <a href="https://json2video.com/docs/tutorial/exports">documentation</a> for more information
    - unknown

## Response `200`

Added

## Changes

- **2026-07-31** `ff01741dd7b5` — 6 info
  - added the new optional request property `elements/items/oneOf[subschema #1: Video]/allOf[subschema #5: AudioElement]/speed`
  - added the new optional request property `elements/items/oneOf[subschema #7: Audio]/allOf[subschema #3: AudioElement]/speed`
  - added the new optional request property `elements/items/oneOf[subschema #8: Voice]/allOf[subschema #3: AudioElement]/speed`
  - added the new optional request property `scenes/items/elements/items/oneOf[subschema #1: Video]/allOf[subschema #5: AudioElement]/speed`
  - …2 more

[Change history](https://skmtc.dev/json2video/apis/json2video-api/changes/movies/post.md)

---

[API](https://skmtc.dev/json2video/apis/json2video-api.md) · [All operations](https://skmtc.dev/json2video/apis/json2video-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/json2video/json2video-api/revisions/ff01741dd7b5/schema)
