---
title: "Generate a video"
method: POST
path: "/generate-video"
tags: ["Platform"]
---

# Generate a video

`POST /generate-video`

## Request

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

Generate a video.

## Request body

- object
  - `provenance` object, nullable
    - `originalRequest` string, nullable
    - `previousJobId` string, uuid, nullable
  - `transformation` object, nullable
    - `characters` object[]
      - `sourceRole` string, required
      - `frontalAssetId` string, uuid, required
      - `referenceAssetIds` string[]
    - `sourcePersonCount` integer, nullable
    - `keepOriginalAudio` boolean
    - `characterOrientation` 'video' | 'image'
  - `prompt` string, required
  - `model` 'seedance-2.5-edit' | 'kling-o3-standard-edit' | 'kling-o3-pro-edit' | 'kling-v3-standard-motion-control' | 'kling-v3-pro-motion-control' | 'wan-2.2-animate-replace' | 'kling-2.1' | 'kling-2.6-pro' | 'kling-o1' | 'kling-3.0' | 'kling-o3-standard' | 'kling-o3-pro' | 'kling-o3-4k' | 'kling-v3-pro' | 'minimax-01' | 'minimax-hailuo-02' | 'minimax-hailuo-2.3-pro' | 'minimax-h3-max' | 'luma-ray-2' | 'luma-ray-3.2' | 'minimax-hailuo-2.3-pro-t2v' | 'minimax-h3-max-t2v' | 'luma-ray-3.2-t2v' | 'veo3' | 'veo3.1' | 'veo3.1-fast' | 'gemini-omni-flash-ref2v' | 'gemini-omni-flash-edit' | 'gemini-omni-flash' | 'veo3-fast' | 'gemini-omni-flash-t2v' | 'wan-2.1' | 'wan-2.7' | 'wan-2.7-ref2v' | 'wan-2.7-t2v' | 'wan-3.0' | 'wan-3.0-t2v' | 'happy-horse' | 'happy-horse-ref2v' | 'happy-horse-t2v' | 'pixverse-v6' | 'pixverse-v6-t2v' | 'krea-wan-14b-t2v' | 'grok-imagine-lite' | 'grok-imagine-lite-t2v' | 'seedance-2.0-pro' | 'seedance-2.5' | 'seedance-2.0-pro-fast' | 'seedance-2.0-ref2v' | 'seedance-2.0-ref2v-fast' | 'seedance-2.0-pro-t2v' | 'seedance-2.5-t2v' | 'seedance-2.0-pro-fast-t2v' | 'seedance-1.5-pro' | 'seedance-1.5-pro-t2v' | 'seedance-1.0-pro' | 'seedance-1.0-pro-t2v' | 'seedance-1.0-pro-fast' | 'seedance-1.0-pro-fast-t2v' | 'seedance-1.0-lite' | 'seedance-1.0-lite-t2v' | 'seedance-1.0-lite-ref2v' | 'kling-o3-standard-t2v' | 'kling-o3-pro-t2v' | 'kling-v3-standard-t2v' | 'kling-v3-pro-t2v' | 'ltx-2-19b' | 'ltx-2-19b-distilled' | 'ltx-2.3' | 'ltx-2.3-fast' | 'ltx-2-19b-t2v' | 'ltx-2-19b-distilled-t2v' | 'ltx-2.3-t2v' | 'ltx-2.3-fast-t2v'
  - `duration_seconds` union: Video transformations inherit the processed source duration and aspect ratio; duration_seconds is not a trim request. Choose a value from the selected model's durations_seconds. duration_seconds_min and duration_seconds_max are the bounds of that list, not a continuous range.
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    - 10
    - 11
    - 12
    - 13
    - 14
    - 15
    - 16
    - 17
    - 18
    - 19
    - 20
    - 21
    - 22
    - 23
    - 24
    - 25
    - 26
    - 27
    - 28
    - 29
    - 30
  - `aspect_ratio` '9:16' | '16:9' | '1:1'
  - `source_asset_id` string, uuid, nullable: First-frame still. Required only when that model's parameters.source_asset_id.required is true. Optional on reference-capable I2V including Seedance 2.5. Text-to-video rejects it. Cannot combine with reference arrays and end_frame_asset_id.
  - `end_frame_asset_id` string, uuid, nullable: Last-frame still. Interpolates from source_asset_id to this image across the full duration. Requires source_asset_id; cannot combine with reference arrays.
  - `reference_asset_ids` string[]
  - `reference_video_asset_ids` string[]
  - `reference_audio_asset_ids` string[]
  - `resolution` '360p' | '480p' | '720p' | '768p' | '1080p' | '4k', nullable: Output resolution. Supported values and defaults are model-specific; see generation options. Unsupported values are rejected.
  - `generate_audio` boolean, nullable: null or omitted uses model audio behavior; true requests audio; false requests silence. Unsupported explicit choices are rejected.
  - `negative_prompt` string, nullable
  - `seed` integer, nullable
  - `folder_id` string, uuid, nullable
  - `provider` 'auto' | 'byteplus-modelark' | 'fal'
  - `enhance_prompt` boolean

## Response `200`

Successful response

- object
  - `job_id` string, uuid, required
  - `kind` 'image' | 'video' | 'voiceover' | 'music' | 'sound' | 'faceless', required
  - `status` 'queued', required
  - `status_url` string, uri, required
  - `cancel_url` string, uri, required
  - `project_id` string, uuid, nullable, required
  - `media_id` string, uuid, nullable, required
  - `estimated_credits` number, 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)
