---
title: "Insert B-roll items"
method: POST
path: "/projects/{projectId}/broll"
tags: ["Timeline Editing"]
---

# Insert B-roll items

`POST /projects/{projectId}/broll`

## Request

- Base URL: `https://blitzreels.com/api/v1`
- URL: `https://blitzreels.com/api/v1/projects/{projectId}/broll`
- Auth: API key in header `Authorization`

Insert B-roll items.

## Path parameters

- `projectId` string, required

## Request body

- object
  - `items` object[], required
    - `asset_id` string, required
    - `source_start_seconds` number
    - `start_seconds` number, required
    - `duration_seconds` number, nullable
    - `layer_index` integer
    - `placement_intent` 'overlay' | 'background' | 'exact'
    - `position_preset` 'center' | 'fullscreen' | 'top-half' | 'bottom-half' | 'pip-top-left' | 'pip-top-right' | 'pip-bottom-left' | 'pip-bottom-right'
    - `position_x` number
    - `position_y` number
    - `width_px` number
    - `height_px` number
    - `keep_aspect_ratio` boolean
    - `scale` number
    - `opacity` number
    - `volume` number
    - `animation_preset` 'none' | 'fadeIn' | 'fadeOut' | 'zoomIn' | 'zoomOut' | 'slideLeft' | 'slideRight' | 'slideUp' | 'slideDown' | 'popIn' | 'bounce' | 'spin'
  - `allow_duplicate` boolean

## Response `200`

Successful response

- object
  - `inserted` object[], required
    - `asset_id` string, required
    - `start_seconds` number, required
    - `success` boolean, required
    - `already_existed` boolean, required
    - `timeline_item_id` string, nullable, required
    - `message` string, nullable, required
    - `animation_applied` string, nullable, required
    - `layer_index` integer, nullable, required
    - `placement_intent` 'overlay' | 'background' | 'exact'
    - `placement` object, nullable, required
      - `coordinate_origin` 'canvas_center', required
      - `position_x` number, required
      - `position_y` number, required
      - `width_px` number, nullable, required
      - `height_px` number, nullable, required
      - `composition_width` number, required
      - `composition_height` number, required
      - `keep_aspect_ratio` boolean, required
      - `position_preset` string, nullable, required
      - `explicit_layer_preserved` boolean, required
    - `warnings` string[]
  - `summary` object, required
    - `total` number, required
    - `actually_inserted` number, required
    - `already_in_timeline` number, required
    - `failed` number, required
  - `warnings` string[]
  - `message` string, required

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `500`: Internal server error

---

[API](https://skmtc.dev/blitzreels/apis/blitzreels-api.md) · [All operations](https://skmtc.dev/blitzreels/apis/blitzreels-api/llms.txt) · [OpenAPI document](https://skmtc.dev/blitzreels/apis/blitzreels-api/revisions/35608b12471d?raw)
