---
title: "Create Video Generation"
method: POST
path: "/v1/flows/video"
tags: ["Flows", "Video"]
---

# Create Video Generation

`POST /v1/flows/video`

Start a video generation with the selected model.

## Headers

- `xi-api-key` string, nullable — Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.

## Request body

- union
  - CreatifyAuroraRequest — Request body for the Creatify Aurora lipsync video model.
    - `webhook` union
      - WebhookTargetAll — Deliver the result to all of the workspace's configured flows webhooks.
        - `type` 'all' — Send the result to all of the workspace's configured flows webhooks.
      - WebhookTargetIds — Deliver the result to specific configured flows webhooks.
        - `type` 'ids' — Send the result to the listed flows webhooks.
        - `ids` string[], required — The IDs of the workspace flows webhooks to deliver the result to. Each must be one of the workspace's configured flows webhooks.
    - `model_id` 'creatify-aurora', required — The model to use for the generation.
    - `image` union, required
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `audio` union, required
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineAudioReference — Audio passed inline as base64. The audio is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'audio/mpeg' | 'audio/wav', required — The MIME type of the encoded audio.
    - `resolution` '480p' | '720p' — The resolution of the output video.
    - `guidance_scale` number, nullable — How strongly the generation adheres to the input image. Omit to use the model's default.
    - `audio_guidance_scale` number, nullable — How strongly the lip movements adhere to the audio. Omit to use the model's default.
  - Veo31Request — Request body for the Google Veo 3.1 video model.
    - `webhook` union
      - WebhookTargetAll — Deliver the result to all of the workspace's configured flows webhooks.
        - `type` 'all' — Send the result to all of the workspace's configured flows webhooks.
      - WebhookTargetIds — Deliver the result to specific configured flows webhooks.
        - `type` 'ids' — Send the result to the listed flows webhooks.
        - `ids` string[], required — The IDs of the workspace flows webhooks to deliver the result to. Each must be one of the workspace's configured flows webhooks.
    - `prompt` string, required — A text description of the video to generate.
    - `negative_prompt` string, nullable — A text description of what the video should avoid.
    - `seed` integer, nullable — A seed for reproducible generation: the same seed and inputs give similar output across generations. Omit for random.
    - `enhance_prompt` boolean — Whether the model may rewrite the prompt to improve results.
    - `duration_secs` 4 | 6 | 8 — The duration of the output video in seconds.
    - `aspect_ratio` '16:9' | '9:16' — The aspect ratio of the output video.
    - `resolution` '720p' | '1080p' | '4K' — The resolution of the output video.
    - `generate_audio` boolean — Whether to generate audio with the video.
    - `start_frame` union
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `end_frame` union
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `images` VeoImageReference[] — Up to 3 reference images to draw subjects or style from. Cannot be combined with `start_frame`/`end_frame`, and requires the 8-second duration.
      - `image` union, required
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
      - `role` 'subject' | 'style', required — How the model uses the image: `subject` places its subject or scene elements into the video; `style` transfers its visual style.
    - `model_id` 'veo-3.1-generate-001', required — The model to use for the generation.
  - Veo31FastRequest — Request body for the Google Veo 3.1 Fast video model.
    - `webhook` union
      - WebhookTargetAll — Deliver the result to all of the workspace's configured flows webhooks.
        - `type` 'all' — Send the result to all of the workspace's configured flows webhooks.
      - WebhookTargetIds — Deliver the result to specific configured flows webhooks.
        - `type` 'ids' — Send the result to the listed flows webhooks.
        - `ids` string[], required — The IDs of the workspace flows webhooks to deliver the result to. Each must be one of the workspace's configured flows webhooks.
    - `prompt` string, required — A text description of the video to generate.
    - `negative_prompt` string, nullable — A text description of what the video should avoid.
    - `seed` integer, nullable — A seed for reproducible generation: the same seed and inputs give similar output across generations. Omit for random.
    - `enhance_prompt` boolean — Whether the model may rewrite the prompt to improve results.
    - `duration_secs` 4 | 6 | 8 — The duration of the output video in seconds.
    - `aspect_ratio` '16:9' | '9:16' — The aspect ratio of the output video.
    - `resolution` '720p' | '1080p' | '4K' — The resolution of the output video.
    - `generate_audio` boolean — Whether to generate audio with the video.
    - `start_frame` union
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `end_frame` union
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `images` VeoImageReference[] — Up to 3 reference images to draw subjects or style from. Cannot be combined with `start_frame`/`end_frame`, and requires the 8-second duration.
      - `image` union, required
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
      - `role` 'subject' | 'style', required — How the model uses the image: `subject` places its subject or scene elements into the video; `style` transfers its visual style.
    - `model_id` 'veo-3.1-fast-generate-001', required — The model to use for the generation.
  - BytedanceSeedance2Request — Request body for the ByteDance Seedance 2.0 video model.
    - `webhook` union
      - WebhookTargetAll — Deliver the result to all of the workspace's configured flows webhooks.
        - `type` 'all' — Send the result to all of the workspace's configured flows webhooks.
      - WebhookTargetIds — Deliver the result to specific configured flows webhooks.
        - `type` 'ids' — Send the result to the listed flows webhooks.
        - `ids` string[], required — The IDs of the workspace flows webhooks to deliver the result to. Each must be one of the workspace's configured flows webhooks.
    - `prompt` string, required — A text description of the video to generate.
    - `aspect_ratio` 'auto' | '21:9' | '16:9' | '4:3' | '1:1' | '3:4' | '9:16' — The aspect ratio of the output video. With `auto`, the model picks an aspect ratio based on the inputs.
    - `duration_secs` integer — The duration of the output video in seconds.
    - `seed` integer, nullable — A seed for reproducible generation: the same seed and inputs give similar output across generations. Omit for random.
    - `generate_audio` boolean — Whether to generate audio with the video.
    - `start_frame` union
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `end_frame` union
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `images` ImageReference[] — Up to 9 reference images to draw subjects from. Cannot be combined with `start_frame`/`end_frame`.
      - union
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `videos` VideoReference[] — Up to 3 reference videos to draw subjects or motion from. Cannot be combined with `start_frame`/`end_frame`.
      - union
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineVideoReference — A video passed inline as base64. The video is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'video/mp4' | 'video/quicktime' | 'video/webm', required — The MIME type of the encoded video.
    - `audios` AudioReference[] — Up to 3 reference audios, e.g. for lipsync. Requires at least one of `images` or `videos`, and cannot be combined with `start_frame`/`end_frame`.
      - union
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineAudioReference — Audio passed inline as base64. The audio is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'audio/mpeg' | 'audio/wav', required — The MIME type of the encoded audio.
    - `model_id` 'bytedance-seedance-v2', required — The model to use for the generation.
    - `resolution` '480p' | '720p' | '1080p' | '4k' — The resolution of the output video.
  - BytedanceSeedance2FastRequest — Request body for the ByteDance Seedance 2.0 Fast video model.
    - `webhook` union
      - WebhookTargetAll — Deliver the result to all of the workspace's configured flows webhooks.
        - `type` 'all' — Send the result to all of the workspace's configured flows webhooks.
      - WebhookTargetIds — Deliver the result to specific configured flows webhooks.
        - `type` 'ids' — Send the result to the listed flows webhooks.
        - `ids` string[], required — The IDs of the workspace flows webhooks to deliver the result to. Each must be one of the workspace's configured flows webhooks.
    - `prompt` string, required — A text description of the video to generate.
    - `aspect_ratio` 'auto' | '21:9' | '16:9' | '4:3' | '1:1' | '3:4' | '9:16' — The aspect ratio of the output video. With `auto`, the model picks an aspect ratio based on the inputs.
    - `duration_secs` integer — The duration of the output video in seconds.
    - `seed` integer, nullable — A seed for reproducible generation: the same seed and inputs give similar output across generations. Omit for random.
    - `generate_audio` boolean — Whether to generate audio with the video.
    - `start_frame` union
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `end_frame` union
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `images` ImageReference[] — Up to 9 reference images to draw subjects from. Cannot be combined with `start_frame`/`end_frame`.
      - union
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `videos` VideoReference[] — Up to 3 reference videos to draw subjects or motion from. Cannot be combined with `start_frame`/`end_frame`.
      - union
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineVideoReference — A video passed inline as base64. The video is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'video/mp4' | 'video/quicktime' | 'video/webm', required — The MIME type of the encoded video.
    - `audios` AudioReference[] — Up to 3 reference audios, e.g. for lipsync. Requires at least one of `images` or `videos`, and cannot be combined with `start_frame`/`end_frame`.
      - union
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineAudioReference — Audio passed inline as base64. The audio is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'audio/mpeg' | 'audio/wav', required — The MIME type of the encoded audio.
    - `model_id` 'bytedance-seedance-v2-fast', required — The model to use for the generation.
    - `resolution` '480p' | '720p' — The resolution of the output video.
  - BytedanceSeedance2MiniRequest — Request body for the ByteDance Seedance 2.0 Mini video model.
    - `webhook` union
      - WebhookTargetAll — Deliver the result to all of the workspace's configured flows webhooks.
        - `type` 'all' — Send the result to all of the workspace's configured flows webhooks.
      - WebhookTargetIds — Deliver the result to specific configured flows webhooks.
        - `type` 'ids' — Send the result to the listed flows webhooks.
        - `ids` string[], required — The IDs of the workspace flows webhooks to deliver the result to. Each must be one of the workspace's configured flows webhooks.
    - `prompt` string, required — A text description of the video to generate.
    - `aspect_ratio` 'auto' | '21:9' | '16:9' | '4:3' | '1:1' | '3:4' | '9:16' — The aspect ratio of the output video. With `auto`, the model picks an aspect ratio based on the inputs.
    - `duration_secs` integer — The duration of the output video in seconds.
    - `seed` integer, nullable — A seed for reproducible generation: the same seed and inputs give similar output across generations. Omit for random.
    - `generate_audio` boolean — Whether to generate audio with the video.
    - `start_frame` union
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `end_frame` union
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `images` ImageReference[] — Up to 9 reference images to draw subjects from. Cannot be combined with `start_frame`/`end_frame`.
      - union
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `videos` VideoReference[] — Up to 3 reference videos to draw subjects or motion from. Cannot be combined with `start_frame`/`end_frame`.
      - union
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineVideoReference — A video passed inline as base64. The video is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'video/mp4' | 'video/quicktime' | 'video/webm', required — The MIME type of the encoded video.
    - `audios` AudioReference[] — Up to 3 reference audios, e.g. for lipsync. Requires at least one of `images` or `videos`, and cannot be combined with `start_frame`/`end_frame`.
      - union
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineAudioReference — Audio passed inline as base64. The audio is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'audio/mpeg' | 'audio/wav', required — The MIME type of the encoded audio.
    - `model_id` 'bytedance-seedance-v2-mini', required — The model to use for the generation.
    - `resolution` '480p' | '720p' — The resolution of the output video.
  - BytedanceSeedance25Request — Request body for the ByteDance Seedance 2.5 video model. Diverges from the Seedance 2.0 public shape: no 4K, durations up to 30s, larger reference caps, audio-only input allowed, and no ``seed`` (Ark tolerates it but does not honour it).
    - `webhook` union
      - WebhookTargetAll — Deliver the result to all of the workspace's configured flows webhooks.
        - `type` 'all' — Send the result to all of the workspace's configured flows webhooks.
      - WebhookTargetIds — Deliver the result to specific configured flows webhooks.
        - `type` 'ids' — Send the result to the listed flows webhooks.
        - `ids` string[], required — The IDs of the workspace flows webhooks to deliver the result to. Each must be one of the workspace's configured flows webhooks.
    - `model_id` 'bytedance-seedance-v2.5', required — The model to use for the generation.
    - `prompt` string, required — A text description of the video to generate.
    - `aspect_ratio` 'auto' | '21:9' | '16:9' | '4:3' | '1:1' | '3:4' | '9:16' — The aspect ratio of the output video. With `auto`, the model picks an aspect ratio based on the inputs. First-frame / first-and-last-frame tasks always use `auto`.
    - `resolution` '480p' | '720p' | '1080p' — The resolution of the output video.
    - `duration_secs` integer — The duration of the output video in seconds.
    - `generate_audio` boolean — Whether to generate audio with the video.
    - `start_frame` union
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `end_frame` union
      - GenerationReference — The output of a prior generation on this API.
        - `type` 'generation', required
        - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
      - StaticAssetReference — An asset uploaded via the assets API.
        - `type` 'asset', required
        - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
      - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
        - `type` 'inline_base64', required
        - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
        - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `images` ImageReference[] — Up to 30 reference images to draw subjects from. Cannot be combined with `start_frame`/`end_frame`.
      - union
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineImageReference — An image passed inline as base64. The image is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'image/jpeg' | 'image/png' | 'image/webp' | 'image/heic' | 'image/heif', required — The MIME type of the encoded image.
    - `videos` VideoReference[] — Up to 10 reference videos to draw subjects or motion from. Cannot be combined with `start_frame`/`end_frame`.
      - union
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineVideoReference — A video passed inline as base64. The video is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'video/mp4' | 'video/quicktime' | 'video/webm', required — The MIME type of the encoded video.
    - `audios` AudioReference[] — Up to 10 reference audios, e.g. for lipsync. Cannot be combined with `start_frame`/`end_frame`.
      - union
        - GenerationReference — The output of a prior generation on this API.
          - `type` 'generation', required
          - `generation_id` string, required — The ID of the generation whose output to use, as returned when the generation was created.
        - StaticAssetReference — An asset uploaded via the assets API.
          - `type` 'asset', required
          - `asset_id` string, required — The ID of an asset uploaded via the assets API (`POST /v1/assets`), as returned in that response's `asset_id`.
        - InlineAudioReference — Audio passed inline as base64. The audio is stored as an ephemeral asset with no guaranteed retention: it may be deleted at any time after the generation completes. To keep an input and reuse it across generations, upload it via the assets API (`POST /v1/assets`) and pass an `asset` reference instead.
          - `type` 'inline_base64', required
          - `content_base64` string, required — The media file's bytes, base64-encoded (standard alphabet). Up to 25MB decoded.
          - `mime_type` 'audio/mpeg' | 'audio/wav', required — The MIME type of the encoded audio.

## Response `200`

Successful Response

- MediaGenerationCreateResponse — A newly queued media generation; fetch the GET endpoint for the output.
  - `id` string, required — The unique identifier of the generation. Pass it to the corresponding GET endpoint to retrieve the output.
  - `status` 'pending', required — A newly created generation is always `pending`.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/elevenlabs/apis/elevenlabs-api-documentation.md) · [All operations](https://skmtc.net/elevenlabs/apis/elevenlabs-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/elevenlabs/elevenlabs-api-documentation/revisions/d1075d6a6487/schema)
