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

# Batch move timeline items

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

## Request

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

Batch move timeline items.

## Path parameters

- `projectId` string, required

## Request body

- object
  - `items` object[], required
    - `timeline_item_id` string, required
    - `new_start_seconds` number, required
    - `new_layer_index` integer

## Response `200`

Successful response

- object
  - `success` boolean, required
  - `repositioned_count` integer, required
  - `failed_count` integer, required
  - `items` object[], required
    - `timeline_item_id` string, required
    - `previous_start_seconds` number, required
    - `new_start_seconds` number, required
    - `previous_layer_index` number, required
    - `new_layer_index` number, 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)
