---
title: "Create clips"
method: POST
path: "/clips"
tags: ["Clip Creation"]
---

# Create clips

`POST /clips`

## Request

- Base URL: `https://blitzreels.com/api/v1`
- URL: `https://blitzreels.com/api/v1/clips`
- Auth: API key in header `Authorization`

Create clips.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `series_id` string, uuid, nullable
  - `source` object, required
    - `source_type` 'asset' | 'youtube'
    - `asset_id` string, nullable
    - `youtube_url` string, nullable
    - `quality` '720p' | '1080p' | '1440p' | '2160p', nullable
  - `clip_preset_id` 'default' | 'formation-clipperz' | 'demo-focus' | 'high-retention', nullable
  - `caption_theme_id` string, nullable
  - `min_duration_seconds` number, nullable
  - `max_duration_seconds` number, nullable
  - `max_clip_count` integer, nullable
  - `studio_sound` boolean
  - `create_flow_options` object
  - `branding_options` object

## Response `200`

Successful response

- object
  - `batch` object, required
    - `batch_id` string, required
    - `status` string, required
    - `asset_id` string, required
    - `project_folder_id` string, nullable, required
    - `estimated_clip_count` number, required
    - `total_clip_count` number, required
    - `rendered_count` number, required
    - `failed_count` number, required
    - `review_count` number, required
    - `activity` unknown, required
    - `clips` object[], required
      - `clip_id` string, required
      - `suggestion_id` string, nullable, required
      - `project_id` string, nullable, required
      - `export_id` string, nullable, required
      - `title` string, required
      - `status` string, required
      - `download_url` string, nullable, required
      - `error_message` string, nullable, required
      - `qa_summary` string, nullable, required
      - `qa_preview_urls` string[], required
      - `render_progress` number, nullable, required: Export progress percent while the clip is rendering.
      - `checking` boolean, required: Export finished; the final quality check is still running.
      - `thumbnail_url` string, nullable, required: Signed export thumbnail, valid for one hour.
      - `score` number, nullable, required: Moment ranking score from 0 to 100; null for manual clips.
    - `zip_download_url` string, nullable, required
    - `last_error_message` string, nullable, required
    - `studio_sound` object, required
      - `requested` boolean, required
      - `status` 'disabled' | 'pending' | 'processing' | 'applied' | 'failed', required
      - `source_asset_id` string, nullable, required
      - `enhanced_asset_id` string, nullable, required
      - `version` string, nullable, required
      - `processing_run_id` string, nullable, required
      - `error_message` string, nullable, 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)
