Skip to main content
Each example is a complete POST /v1/renders body. Only fields that differ from their defaults are shown. See the element field reference for every default.
For text and image elements, duration is required — the API returns 422 if it is missing. video and audio elements have no duration field — use out_point to control how long the clip plays.

Minimal video

The only required field on a video element is source_url. Everything else uses defaults (x: "50%", y: "50%", width: "100%", height: "100%", opacity: 100, volume: 100).
{
  "width": 1920,
  "height": 1080,
  "elements": [
    {
      "type": "video",
      "id": "vid1",
      "source_url": "https://cdn.example.com/clip.mp4"
    }
  ]
}

Trim source clip

Play only seconds 2–8 of the source file.
{
  "width": 1920,
  "height": 1080,
  "duration": 6,
  "elements": [
    {
      "type": "video",
      "id": "vid1",
      "source_url": "https://cdn.example.com/clip.mp4",
      "in_point": 2,
      "out_point": 8
    }
  ]
}

Playback speed

Play the clip at 2× speed.
{
  "width": 1920,
  "height": 1080,
  "duration": 6,
  "elements": [
    {
      "type": "video",
      "id": "vid1",
      "source_url": "https://cdn.example.com/clip.mp4",
      "speed": 2.0
    }
  ]
}

Audio fade in and out

Fade audio in over 1 second and out over 1 second. fade_in_duration / fade_out_duration affect the embedded audio track only.
{
  "width": 1920,
  "height": 1080,
  "duration": 6,
  "elements": [
    {
      "type": "video",
      "id": "vid1",
      "source_url": "https://cdn.example.com/clip.mp4",
      "fade_in_duration": 1,
      "fade_out_duration": 1
    }
  ]
}

Position and size

Place a 50%-wide clip in the bottom-right corner.
{
  "width": 1920,
  "height": 1080,
  "duration": 6,
  "elements": [
    {
      "type": "video",
      "id": "vid1",
      "source_url": "https://cdn.example.com/clip.mp4",
      "x": "75%",
      "y": "75%",
      "width": "50%",
      "height": "50%"
    }
  ]
}

Repeat a short clip

Repeat a 6-second clip twice to fill a 12-second render. Add one element per repeat with a different time and matching in_point/out_point.
{
  "width": 1920,
  "height": 1080,
  "duration": 12,
  "elements": [
    {
      "type": "video",
      "id": "vid1",
      "source_url": "https://cdn.example.com/clip.mp4",
      "time": 0,
      "in_point": 0,
      "out_point": 6
    },
    {
      "type": "video",
      "id": "vid2",
      "source_url": "https://cdn.example.com/clip.mp4",
      "time": 6,
      "in_point": 0,
      "out_point": 6
    }
  ]
}