---
title: "Batch trim timeline items"
method: POST
path: "/projects/{projectId}/timeline/batch-trim"
tags: ["Timeline Editing"]
---

# Batch trim timeline items

`POST /projects/{projectId}/timeline/batch-trim`

## Request

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

Batch trim timeline items.

## Path parameters

- `projectId` string, required

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `items` object[], required
    - `timeline_item_id` string, required
    - `trim_start_delta_seconds` number
    - `trim_end_delta_seconds` number
  - `snap_to_frame` boolean

## Response `200`

Successful response

- object
  - `success` boolean, required
  - `trimmed_count` integer, required
  - `failed_count` integer, required
  - `items` object[], required
    - `timeline_item_id` string, required
    - `success` boolean, required
    - `trim_start_seconds` number, nullable, required
    - `trim_end_seconds` number, nullable, required
    - `new_duration_seconds` number, nullable, required
    - `error` string, nullable, required
  - `failed_items` object[], required
    - `timeline_item_id` string, required
    - `error` string, required
    - `error_code` 'validation_error' | 'not_found' | 'permission_denied' | 'revision_conflict' | 'idempotency_conflict' | 'operation_in_progress' | 'operation_previous_failure' | 'sequence_busy' | 'mutation_failed', required
    - `retryable` boolean, required
    - `error_details` object, required
  - `message` string

## 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)
