---
title: "Batch update timeline item transforms"
method: POST
path: "/projects/{projectId}/timeline/batch-transform"
tags: ["Timeline Editing"]
---

# Batch update timeline item transforms

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

## Request

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

Batch update timeline item transforms.

## Path parameters

- `projectId` string, required

## Request body

- object
  - `items` object[], required
    - `timeline_item_id` string, required
    - `position_x` number
    - `position_y` number
    - `width_px` integer, nullable
    - `height_px` integer, nullable
    - `keep_aspect_ratio` boolean

## Response `200`

Successful response

- object
  - `success` boolean, required
  - `updated_count` integer, required
  - `failed_count` integer, required
  - `items` object[], required
    - `timeline_item_id` string, required
    - `success` boolean, 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)
