---
title: "Read a compact editor snapshot with timeline captions and style"
method: GET
path: "/projects/{projectId}/editor-snapshot"
tags: ["Project Management"]
---

# Read a compact editor snapshot with timeline captions and style

`GET /projects/{projectId}/editor-snapshot`

## Request

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

Read a compact editor snapshot with timeline captions and style.

## Path parameters

- `projectId` string, required

## Query parameters

- `offset` integer
- `limit` integer
- `expected_revision` integer

## Response `200`

Successful response

- object
  - `document` object, required
    - `version` 1, required
    - `projectId` string, required
    - `revision` integer, required
    - `name` string, required
    - `aspectRatio` string, required
    - `canvasWidth` number, required
    - `canvasHeight` number, required
    - `fps` number, required
    - `durationSeconds` number, required
    - `backgroundColor` string, nullable, required
    - `items` object[], required
      - `id` string, required
      - `type` string, required
      - `contentType` string, nullable, required
      - `contentItemId` string, nullable, required
      - `captionId` string, nullable, required
      - `mediaAssetId` string, nullable, required
      - `parentGroupId` string, nullable, required
      - `label` string, required
      - `text` string, required
      - `startSeconds` number, required
      - `endSeconds` number, required
      - `trimStartSeconds` number, required
      - `trimEndSeconds` number, required
      - `layerIndex` integer, required
      - `ignored` boolean, required
      - `isSilentZone` boolean, required
      - `isMistake` boolean, required
      - `volume` number, required
      - `audioFadeInSeconds` number, required
      - `audioFadeOutSeconds` number, required
      - `positionX` number, required
      - `positionY` number, required
      - `widthPx` number, nullable, required
      - `heightPx` number, nullable, required
      - `keepAspectRatio` boolean, required
      - `blurredBackground` boolean, required
      - `sourceView` object, nullable, required
        - `sourceAssetId` string, nullable, required
        - `sourceStartSeconds` number, required
        - `sourceEndSeconds` number, required
        - `sourceCropX` number, required
        - `sourceCropY` number, required
        - `sourceCropWidth` number, required
        - `sourceCropHeight` number, required
        - `canvasX` number, required
        - `canvasY` number, required
        - `canvasWidth` number, nullable, required
        - `canvasHeight` number, nullable, required
        - `fitMode` 'cover' | 'contain' | 'stretch', required
        - `maskShape` string, nullable, required
        - `maskRadius` number, nullable, required
        - `syncGroupId` string, nullable, required
        - `plannerMode` string, nullable, required
        - `plannerMetadata` object, nullable, required
      - `keyframes` object[], required
      - `properties` object, required
    - `media` object[], required
      - `id` string, required
      - `assetType` string, required
      - `audioType` string, nullable, required
      - `fileUrl` string, required
      - `streamingUrl` string, nullable, required
      - `thumbnailUrl` string, nullable, required
      - `waveformPeaks` number[], required
      - `sourceWidth` number, nullable, required
      - `sourceHeight` number, nullable, required
      - `creativeSource` object
        - `projectId` string, uuid, required
        - `artifactId` string, uuid, required
        - `sourceRevisionId` string, uuid, required
        - `sourceHash` string, required
    - `tracks` object[], required
      - `layerIndex` integer, required
      - `label` string, required
      - `itemIds` string[], required
    - `bounds` object, required
      - `offset` integer, required
      - `limit` integer, required
      - `total` integer, required
      - `returned` integer, required
      - `hasMore` boolean, required
      - `truncated` boolean, required
  - `preparedFor` string, nullable, required: The preparation startedAt whose persisted completion is reflected in this snapshot, or null.
  - `captions` object[], required
    - `captionId` string, required
    - `text` string, required
    - `startSeconds` number, required
    - `endSeconds` number, required
    - `words` object[], required
      - `id` string, required
      - `text` string, required
      - `orderIndex` number, required
      - `startSeconds` number, nullable, required
      - `endSeconds` number, nullable, required
      - `paragraphIndex` number, nullable, required
      - `isEmphasis` boolean, required
      - `style` object, nullable, required
  - `captionStyle` object, required
  - `captionLookId` string, nullable, required

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `404`: Not found
- `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)
