> ## Documentation Index
> Fetch the complete documentation index at: https://evolink.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Seedance 2.5 Complete Parameter Guide

> Complete parameter reference for Seedance 2.5. Use `model` to select a model in this folder. Required fields, input requirements, and billing rules are listed for each mode.

| Model ID | Mode | Required fields (excluding model) |
|---|---|---|
| `seedance-2.5-text-to-video` | Text-to-Video | `prompt` |
| `seedance-2.5-image-to-video` | Image-to-Video | `prompt`, `image_urls` |
| `seedance-2.5-reference-to-video` | Reference-to-Video | `prompt` |
| `seedance-2.5-video-edit` | Video Edit | `prompt`, `video_urls` |
| `seedance-2.5-video-extend` | Video Extend | `prompt`, `video_urls` |
| `seedance-2.5-draft-to-video` | Draft-to-Video | `source_task_id` |

### Text-to-Video

- Generate videos from text prompts, supports web search for enhanced timeliness
- **Now supports AIGC realistic human materials**
- Supports **draft mode**: set `draft: true` to generate a 480p draft first. If you are satisfied, use [Draft-to-Video](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video) to convert it into a 1080p final video. The two requests are billed separately
- Asynchronous processing mode, use the returned task ID to [query status](/en/api-manual/task-management/get-task-detail)
- Generated video links are valid for 24 hours, please save them promptly

### Image-to-Video

- Input 1 image for first-frame video generation, input 2 images for first-last-frame video generation, the model determines automatically
- **Now supports AIGC realistic human materials**
- Supports **draft mode**: set `draft: true` to generate a 480p draft first. If you are satisfied, use [Draft-to-Video](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video) to convert it into a 1080p final video. The two requests are billed separately
- Asynchronous processing mode, use the returned task ID to [query status](/en/api-manual/task-management/get-task-detail)
- Generated video links are valid for 24 hours, please save them promptly

### Reference-to-Video

- Input reference images (0–30) + reference videos (0–10) + reference audio (0–10) + a text prompt to generate video; provide at least one image, video, or audio reference
- Best suited for generating new footage: images, videos, and audio act as style, subject, camera-movement, and soundtrack references
- **To rewrite or continue an existing video, switch to [Video Edit](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-video-edit) / [Video Extend](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-video-extend)**: once this model's prompt carries an editing or extension intent, the request is validated as an edit / extend task — it is accepted without an error and the task only fails while it runs
- **Now supports AIGC realistic human materials**
- Supports **draft mode**: set `draft: true` to generate a 480p draft first. If you are satisfied, use [Draft-to-Video](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video) to convert it into a 1080p final video. The two requests are billed separately
- Asynchronous processing mode, use the returned task ID to [query status](/en/api-manual/task-management/get-task-detail)
- Generated video links are valid for 24 hours, please save them promptly

### Video Edit

- Video editing on an input video — replace subjects, add/remove objects, restyle or repaint regions
- Prompt must state the editing intent (e.g. "Edit the video: remove the background music of @video1")
- Input the video to edit (required) + optional reference images (0–30) + reference videos (up to 10 in total) + reference audio (0–10)
- **Now supports AIGC realistic human materials**
- Supports **draft mode**: set `draft: true` to generate a 480p draft first. If you are satisfied, use [Draft-to-Video](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video) to convert it into a 1080p final video. The two requests are billed separately
- Asynchronous processing mode, use the returned task ID to [query status](/en/api-manual/task-management/get-task-detail)
- Generated video links are valid for 24 hours, please save them promptly

### Video Extend

- Extend an input video forward or backward
- Prompt must state the extension intent (e.g. "Extend @video1 backward, the character walks out of the frame")
- Input the video to extend (required) + optional reference images (0–30) + reference videos (up to 10 in total) + reference audio (0–10)
- **Now supports AIGC realistic human materials**
- Supports **draft mode**: set `draft: true` to generate a 480p draft first. If you are satisfied, use [Draft-to-Video](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video) to convert it into a 1080p final video. The two requests are billed separately
- Asynchronous processing mode, use the returned task ID to [query status](/en/api-manual/task-management/get-task-detail)
- Generated video links are valid for 24 hours, please save them promptly

### Draft-to-Video

- Convert a completed Seedance 2.5 draft (a task created with `draft: true`) into a 1080p final video with the same content
- Only four fields are accepted: `model`, `source_task_id`, `output_format`, and `callback_url`. The prompt, assets, duration, aspect ratio, seed, and audio settings are all reused from the draft. Do not send them again; any other field returns a 400 parameter error
- Submit the conversion request before the draft's `draft_expires_at`. The default validity period is 24 hours after the draft completes; use the actual `draft_expires_at` returned by the task query as the deadline
- Expiration is checked both when the request is accepted and before generation is submitted. If the draft expires while queued, the conversion task fails and its charge is refunded. Allow time for queuing
- The same draft can be converted multiple times before it expires; each conversion is billed separately
- Asynchronous processing mode: use the returned task ID to [query status](/en/api-manual/task-management/get-task-detail). The query response includes `source_task_id`
- Generated video links are valid for 24 hours; save them promptly

**Billing rules:**
- Billed separately from the draft, always at the `1080p` rate
- The output duration is the actual output duration recorded for the source draft. If that value is unavailable, the effective output duration recorded for the source task is used
- Billable duration: without video input, the output duration; with video input (including Reference-to-Video, Video Edit, and Video Extend), `output duration + max(input video duration, output duration)`. Both are rounded up to the next 0.1 second
- If content filtering was disabled for the draft (`content_filter: false`), the final video is also billed at +10% (`1.1x`)
- If conversion fails, the conversion charge is refunded; the draft charge is not refunded





## OpenAPI

````yaml en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-overview.json POST /v1/videos/generations
openapi: 3.1.0
info:
  title: Seedance 2.5 Complete Parameter Guide
  description: >-
    Unified parameter reference for the 6 models in this Seedance 2.5 folder.
    Select a mode with model; required fields and limits for each mode are
    documented below.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Video Generation
    description: AI video generation endpoints
paths:
  /v1/videos/generations:
    post:
      tags:
        - Video Generation
      summary: Seedance 2.5 Complete Parameter Guide
      description: >+
        Complete parameter reference for Seedance 2.5. Use `model` to select a
        model in this folder. Required fields, input requirements, and billing
        rules are listed for each mode.


        | Model ID | Mode | Required fields (excluding model) |

        |---|---|---|

        | `seedance-2.5-text-to-video` | Text-to-Video | `prompt` |

        | `seedance-2.5-image-to-video` | Image-to-Video | `prompt`,
        `image_urls` |

        | `seedance-2.5-reference-to-video` | Reference-to-Video | `prompt` |

        | `seedance-2.5-video-edit` | Video Edit | `prompt`, `video_urls` |

        | `seedance-2.5-video-extend` | Video Extend | `prompt`, `video_urls` |

        | `seedance-2.5-draft-to-video` | Draft-to-Video | `source_task_id` |


        ### Text-to-Video


        - Generate videos from text prompts, supports web search for enhanced
        timeliness

        - **Now supports AIGC realistic human materials**

        - Supports **draft mode**: set `draft: true` to generate a 480p draft
        first. If you are satisfied, use
        [Draft-to-Video](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video)
        to convert it into a 1080p final video. The two requests are billed
        separately

        - Asynchronous processing mode, use the returned task ID to [query
        status](/en/api-manual/task-management/get-task-detail)

        - Generated video links are valid for 24 hours, please save them
        promptly


        ### Image-to-Video


        - Input 1 image for first-frame video generation, input 2 images for
        first-last-frame video generation, the model determines automatically

        - **Now supports AIGC realistic human materials**

        - Supports **draft mode**: set `draft: true` to generate a 480p draft
        first. If you are satisfied, use
        [Draft-to-Video](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video)
        to convert it into a 1080p final video. The two requests are billed
        separately

        - Asynchronous processing mode, use the returned task ID to [query
        status](/en/api-manual/task-management/get-task-detail)

        - Generated video links are valid for 24 hours, please save them
        promptly


        ### Reference-to-Video


        - Input reference images (0–30) + reference videos (0–10) + reference
        audio (0–10) + a text prompt to generate video; provide at least one
        image, video, or audio reference

        - Best suited for generating new footage: images, videos, and audio act
        as style, subject, camera-movement, and soundtrack references

        - **To rewrite or continue an existing video, switch to [Video
        Edit](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-video-edit)
        / [Video
        Extend](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-video-extend)**:
        once this model's prompt carries an editing or extension intent, the
        request is validated as an edit / extend task — it is accepted without
        an error and the task only fails while it runs

        - **Now supports AIGC realistic human materials**

        - Supports **draft mode**: set `draft: true` to generate a 480p draft
        first. If you are satisfied, use
        [Draft-to-Video](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video)
        to convert it into a 1080p final video. The two requests are billed
        separately

        - Asynchronous processing mode, use the returned task ID to [query
        status](/en/api-manual/task-management/get-task-detail)

        - Generated video links are valid for 24 hours, please save them
        promptly


        ### Video Edit


        - Video editing on an input video — replace subjects, add/remove
        objects, restyle or repaint regions

        - Prompt must state the editing intent (e.g. "Edit the video: remove the
        background music of @video1")

        - Input the video to edit (required) + optional reference images (0–30)
        + reference videos (up to 10 in total) + reference audio (0–10)

        - **Now supports AIGC realistic human materials**

        - Supports **draft mode**: set `draft: true` to generate a 480p draft
        first. If you are satisfied, use
        [Draft-to-Video](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video)
        to convert it into a 1080p final video. The two requests are billed
        separately

        - Asynchronous processing mode, use the returned task ID to [query
        status](/en/api-manual/task-management/get-task-detail)

        - Generated video links are valid for 24 hours, please save them
        promptly


        ### Video Extend


        - Extend an input video forward or backward

        - Prompt must state the extension intent (e.g. "Extend @video1 backward,
        the character walks out of the frame")

        - Input the video to extend (required) + optional reference images
        (0–30) + reference videos (up to 10 in total) + reference audio (0–10)

        - **Now supports AIGC realistic human materials**

        - Supports **draft mode**: set `draft: true` to generate a 480p draft
        first. If you are satisfied, use
        [Draft-to-Video](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video)
        to convert it into a 1080p final video. The two requests are billed
        separately

        - Asynchronous processing mode, use the returned task ID to [query
        status](/en/api-manual/task-management/get-task-detail)

        - Generated video links are valid for 24 hours, please save them
        promptly


        ### Draft-to-Video


        - Convert a completed Seedance 2.5 draft (a task created with `draft:
        true`) into a 1080p final video with the same content

        - Only four fields are accepted: `model`, `source_task_id`,
        `output_format`, and `callback_url`. The prompt, assets, duration,
        aspect ratio, seed, and audio settings are all reused from the draft. Do
        not send them again; any other field returns a 400 parameter error

        - Submit the conversion request before the draft's `draft_expires_at`.
        The default validity period is 24 hours after the draft completes; use
        the actual `draft_expires_at` returned by the task query as the deadline

        - Expiration is checked both when the request is accepted and before
        generation is submitted. If the draft expires while queued, the
        conversion task fails and its charge is refunded. Allow time for queuing

        - The same draft can be converted multiple times before it expires; each
        conversion is billed separately

        - Asynchronous processing mode: use the returned task ID to [query
        status](/en/api-manual/task-management/get-task-detail). The query
        response includes `source_task_id`

        - Generated video links are valid for 24 hours; save them promptly


        **Billing rules:**

        - Billed separately from the draft, always at the `1080p` rate

        - The output duration is the actual output duration recorded for the
        source draft. If that value is unavailable, the effective output
        duration recorded for the source task is used

        - Billable duration: without video input, the output duration; with
        video input (including Reference-to-Video, Video Edit, and Video
        Extend), `output duration + max(input video duration, output duration)`.
        Both are rounded up to the next 0.1 second

        - If content filtering was disabled for the draft (`content_filter:
        false`), the final video is also billed at +10% (`1.1x`)

        - If conversion fails, the conversion charge is refunded; the draft
        charge is not refunded

      operationId: createSeedance25VideoGeneration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoGenerationRequest'
            examples:
              text_to_video_basic:
                summary: Basic text-to-video
                value:
                  model: seedance-2.5-text-to-video
                  prompt: >-
                    A macro lens focuses on a green glass frog on a leaf. The
                    focus gradually shifts from its smooth skin to its
                    completely transparent abdomen, where a bright red heart is
                    beating powerfully and rhythmically.
                  duration: 8
                  quality: 720p
                  aspect_ratio: '16:9'
                  generate_audio: true
                  content_filter: true
              text_to_video_web_search:
                summary: Text-to-video with web search
                value:
                  model: seedance-2.5-text-to-video
                  prompt: >-
                    Today's New York weather forecast, with city skyline
                    animation and temperature overlay display
                  duration: 8
                  quality: 720p
                  aspect_ratio: '16:9'
                  model_params:
                    web_search: true
              text_to_video_draft:
                summary: Draft mode (480p)
                value:
                  model: seedance-2.5-text-to-video
                  prompt: >-
                    A macro lens focuses on a green glass frog on a leaf. The
                    focus gradually shifts from its smooth skin to its
                    completely transparent abdomen, where a bright red heart is
                    beating powerfully and rhythmically.
                  duration: 8
                  quality: 480p
                  aspect_ratio: '16:9'
                  generate_audio: true
                  content_filter: true
                  draft: true
              image_to_video_first_frame:
                summary: First-frame image-to-video
                value:
                  model: seedance-2.5-image-to-video
                  prompt: >-
                    The camera slowly zooms in, the scene gradually comes to
                    life
                  image_urls:
                    - https://example.com/first-frame.jpg
                  duration: 5
                  quality: 720p
                  aspect_ratio: adaptive
              image_to_video_first_last_frame:
                summary: First-last-frame image-to-video
                value:
                  model: seedance-2.5-image-to-video
                  prompt: A smooth transition between two scenes
                  image_urls:
                    - https://example.com/first.jpg
                    - https://example.com/last.jpg
                  duration: 6
                  quality: 720p
                  aspect_ratio: adaptive
              image_to_video_draft:
                summary: Draft mode (480p)
                value:
                  model: seedance-2.5-image-to-video
                  prompt: >-
                    The camera slowly zooms in, the scene gradually comes to
                    life
                  image_urls:
                    - https://example.com/first-frame.jpg
                  duration: 5
                  quality: 480p
                  aspect_ratio: adaptive
                  draft: true
              reference_to_video_multimodal:
                summary: Multimodal reference (image + video + audio)
                value:
                  model: seedance-2.5-reference-to-video
                  prompt: >-
                    Use the first-person perspective framing of @video1
                    throughout, and use @audio1 as background music throughout.
                    First-person perspective fruit tea promotional video...
                  image_urls:
                    - https://example.com/ref1.jpg
                    - https://example.com/ref2.jpg
                  video_urls:
                    - https://example.com/reference.mp4
                  audio_urls:
                    - https://example.com/bgm.mp3
                  duration: 10
                  quality: 720p
                  aspect_ratio: '16:9'
                  generate_audio: true
                  content_filter: true
              reference_to_video_subject_reference:
                summary: Image + video reference (subject + camera movement)
                value:
                  model: seedance-2.5-reference-to-video
                  prompt: >-
                    Make the face cream in @image1 the hero product, and follow
                    the camera rhythm and lighting mood of @video1 to generate a
                    clean product commercial
                  image_urls:
                    - https://example.com/cream.jpg
                  video_urls:
                    - https://example.com/reference.mp4
                  duration: 5
                  quality: 720p
                  aspect_ratio: '16:9'
              reference_to_video_multi_video:
                summary: Multi-video reference (multi-shot narrative)
                value:
                  model: seedance-2.5-reference-to-video
                  prompt: >-
                    The arched window in @video1 opens into the art gallery
                    interior, continuing with @video2; then the camera enters
                    the painting, continuing with @video3
                  video_urls:
                    - https://example.com/part1.mp4
                    - https://example.com/part2.mp4
                    - https://example.com/part3.mp4
                  duration: 8
                  quality: 720p
                  aspect_ratio: '16:9'
                  generate_audio: true
                  content_filter: true
              reference_to_video_draft:
                summary: Draft mode (480p)
                value:
                  model: seedance-2.5-reference-to-video
                  prompt: >-
                    Use the first-person perspective framing of @video1
                    throughout, and use @audio1 as background music throughout.
                    First-person perspective fruit tea promotional video...
                  image_urls:
                    - https://example.com/ref1.jpg
                    - https://example.com/ref2.jpg
                  video_urls:
                    - https://example.com/reference.mp4
                  audio_urls:
                    - https://example.com/bgm.mp3
                  duration: 10
                  quality: 480p
                  aspect_ratio: '16:9'
                  generate_audio: true
                  content_filter: true
                  draft: true
              video_edit_remove_objects:
                summary: Edit video (remove objects)
                value:
                  model: seedance-2.5-video-edit
                  prompt: >-
                    Edit the video: remove all passers-by in @video1, keep only
                    the main character
                  video_urls:
                    - https://example.com/original.mp4
                  quality: 720p
                  generate_audio: true
                  content_filter: true
              video_edit_replace_subject:
                summary: Edit video (replace element with image reference)
                value:
                  model: seedance-2.5-video-edit
                  prompt: >-
                    Edit the video: replace the perfume in the gift box in
                    @video1 with the face cream in @image1, keep the camera
                    movement unchanged
                  image_urls:
                    - https://example.com/cream.jpg
                  video_urls:
                    - https://example.com/original.mp4
                  duration: -1
                  quality: 720p
              video_edit_draft:
                summary: Draft mode (480p)
                value:
                  model: seedance-2.5-video-edit
                  prompt: >-
                    Edit the video: remove all passers-by in @video1, keep only
                    the main character
                  video_urls:
                    - https://example.com/original.mp4
                  quality: 480p
                  generate_audio: true
                  content_filter: true
                  draft: true
              video_extend_extend_backward:
                summary: Extend video backward (custom duration)
                value:
                  model: seedance-2.5-video-extend
                  prompt: >-
                    Extend @video1 backward: the character walks out of the
                    frame, the camera slowly pulls back to reveal the empty
                    street
                  video_urls:
                    - https://example.com/original.mp4
                  duration: 12
                  quality: 720p
                  generate_audio: true
                  content_filter: true
              video_extend_extend_forward:
                summary: Extend video forward (automatic duration)
                value:
                  model: seedance-2.5-video-extend
                  prompt: >-
                    Extend @video1 forward: the character keeps walking into the
                    sunset as the light gradually fades
                  video_urls:
                    - https://example.com/original.mp4
                  duration: -1
                  quality: 720p
              video_extend_draft:
                summary: Draft mode (480p)
                value:
                  model: seedance-2.5-video-extend
                  prompt: >-
                    Extend @video1 backward: the character walks out of the
                    frame, the camera slowly pulls back to reveal the empty
                    street
                  video_urls:
                    - https://example.com/original.mp4
                  duration: 12
                  quality: 480p
                  generate_audio: true
                  content_filter: true
                  draft: true
              draft_to_video_basic:
                summary: Convert to a 1080p final video (MP4)
                value:
                  model: seedance-2.5-draft-to-video
                  source_task_id: task-unified-1774857405-abc123
              draft_to_video_mov:
                summary: Convert to a 1080p final video (MOV)
                value:
                  model: seedance-2.5-draft-to-video
                  source_task_id: task-unified-1774857405-abc123
                  output_format: mov
      responses:
        '200':
          description: Video generation task created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoGenerationResponse'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_parameter
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: Unauthenticated, token invalid or expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Insufficient quota, top-up required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: insufficient_quota
                  message: Insufficient quota. Please top up your account.
                  type: insufficient_quota
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: model_access_denied
                  message: >-
                    Token does not have access to model:
                    seedance-2.5-text-to-video
                  type: invalid_request_error
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: rate_limit_exceeded
                  message: Too many requests, please try again later
                  type: rate_limit_error
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Internal server error
                  type: api_error
        '503':
          description: >-
            Service temporarily unavailable; draft_unavailable may be returned
            when draft mode is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                draft_unavailable:
                  summary: Draft mode temporarily unavailable
                  value:
                    error:
                      code: draft_unavailable
                      message: >-
                        Draft mode is not available on the selected service
                        right now. Retry later or send the request without
                        draft.
                      type: invalid_request_error
components:
  schemas:
    VideoGenerationRequest:
      type: object
      description: >-
        This page combines the parameters of all modes. Required fields,
        accepted values, and defaults depend on the selected model; differences
        are listed by mode below.
      required:
        - model
      properties:
        model:
          type: string
          description: >-
            Video generation model name


            | Model ID | Mode | Required fields (excluding model) |

            |---|---|---|

            | `seedance-2.5-text-to-video` | Text-to-Video | `prompt` |

            | `seedance-2.5-image-to-video` | Image-to-Video | `prompt`,
            `image_urls` |

            | `seedance-2.5-reference-to-video` | Reference-to-Video | `prompt`
            |

            | `seedance-2.5-video-edit` | Video Edit | `prompt`, `video_urls` |

            | `seedance-2.5-video-extend` | Video Extend | `prompt`,
            `video_urls` |

            | `seedance-2.5-draft-to-video` | Draft-to-Video | `source_task_id`
            |
          enum:
            - seedance-2.5-text-to-video
            - seedance-2.5-image-to-video
            - seedance-2.5-reference-to-video
            - seedance-2.5-video-edit
            - seedance-2.5-video-extend
            - seedance-2.5-draft-to-video
          example: seedance-2.5-text-to-video
        prompt:
          type: string
          description: >-
            Applies only to: **Text-to-Video**, **Image-to-Video**,
            **Reference-to-Video**, **Video Edit**, **Video Extend**


            **Text-to-Video**


            Text prompt describing the desired video. Supports both Chinese and
            English, recommended no more than 500 characters for Chinese or 1000
            words for English. Maximum prompt length: 10000 tokens


            **Note:**

            - This model is text-to-video only and does not support
            `image_urls`, `video_urls`, or `audio_urls` input


            **Image-to-Video**


            Text prompt describing the desired video. Supports both Chinese and
            English, recommended no more than 500 characters for Chinese or 1000
            words for English. Maximum prompt length: 10000 tokens


            **Note:**

            - This model does not support `video_urls` or `audio_urls` input


            **Reference-to-Video**


            Text prompt describing the desired video. Supports both Chinese and
            English, recommended no more than 500 characters for Chinese.
            Maximum prompt length: 10000 tokens


            **Details:**

            - When referring to input materials in the prompt, prefer explicit
            tags such as `@image1`, `@video1`, and `@audio1` instead of relying
            only on natural-language references such as "image 1", "video 1", or
            "audio 1"

            - Tag numbers follow the order of the corresponding URL array and
            start at 1: the first `image_urls` item is `@image1`, the first
            `video_urls` item is `@video1`, and the first `audio_urls` item is
            `@audio1`

            - Natural-language numbering may still be understood, but explicit
            tags provide a clearer mapping between each material and its
            intended use


            **Avoid being classified as an edit / extend task:**

            - The task type is inferred from the prompt intent: wording such as
            "edit the video", "add", "remove / delete", "change / replace" is
            treated as video editing; wording such as "extend forward /
            backward", "continue" is treated as video extension

            - Once classified as either task, `aspect_ratio` must be `adaptive`,
            and for video editing `duration` must be `-1`; otherwise the request
            is accepted without an error and the task later turns `failed` with
            error code `InvalidParameter.TaskTypeConstraint`. The pre-authorized
            quota is refunded, but the waiting time is wasted

            - If you really need editing / extension, use
            `seedance-2.5-video-edit` or `seedance-2.5-video-extend` instead:
            parameters are validated at submission, so invalid values return an
            immediate synchronous error

            - For pure reference generation, rephrase words like "replace" or
            "remove" descriptively, e.g. "the shot features ..." or "rendered in
            the style of @image1"


            **Video Edit**


            Text prompt describing the desired edit. Supports both Chinese and
            English, recommended no more than 500 characters for Chinese.
            Maximum prompt length: 10000 tokens


            **Details:**

            - The prompt must state the editing intent, e.g., "Edit the video:
            remove the background music of @video1"

            - You can use natural language to specify the purpose of each
            material, e.g., "replace the character in @video1 with the person in
            @image1"

            - The model will automatically understand the correspondence between
            material numbers and their intended uses


            **Video Extend**


            Text prompt describing the desired extension. Supports both Chinese
            and English, recommended no more than 500 characters for Chinese.
            Maximum prompt length: 10000 tokens


            **Details:**

            - The prompt must state the extension intent, e.g., "Extend @video1
            backward, the character walks out of the frame"

            - You can use natural language to specify the purpose of each
            material, e.g., "extend @video1 forward following the style of
            @image1"

            - The model will automatically understand the correspondence between
            material numbers and their intended uses
          example: >-
            A macro lens focuses on a green glass frog on a leaf. The focus
            gradually shifts from its smooth skin to its completely transparent
            abdomen, where a bright red heart is beating powerfully and
            rhythmically.
        source_task_id:
          type: string
          description: >-
            Applies only to: **Draft-to-Video**


            Task ID of a completed Seedance 2.5 draft


            **Where to find it:** The `id` field returned when creating a draft
            (`draft: true`)


            **Requirements:**

            1. The task must belong to the current account

            2. The task must use one of the five Seedance 2.5 generation models

            3. The task must have been created with `draft: true`

            4. The task status must be `completed`

            5. The current time must be earlier than `draft_expires_at` in the
            task query response
          example: task-unified-1774857405-abc123
        image_urls:
          type: array
          description: >-
            Applies only to: **Image-to-Video**, **Reference-to-Video**, **Video
            Edit**, **Video Extend**


            **Image-to-Video**


            Image URL array, **1–2 images**


            **Image count and behavior:**


            | Image Count | Behavior | Role |

            |:--------:|------|------|

            | 1 image | First-frame image-to-video | Automatically set as
            `first_frame` |

            | 2 images | First-last-frame image-to-video | 1st image →
            `first_frame`, 2nd image → `last_frame` |


            **Image requirements:**

            - Supported formats: `.jpeg`, `.png`, `.webp`

            - Aspect ratio (width/height): `0.4` ~ `2.5`

            - Width/height pixels: `300` ~ `6000` px

            - Max size per image: `30MB`

            - Total request body size must not exceed `64MB`

            - When providing first and last frames, both images can be
            identical. If aspect ratios differ, the first frame takes priority
            and the last frame will be automatically cropped to fit

            - Image URLs must be directly accessible by the server


            **Reference-to-Video**


            Reference image URL array, **optional; 1–30 images when provided**


            **Requirement:** At least one of `image_urls`, `video_urls`, or
            `audio_urls` must be provided.


            **Role description:**


            | Media Type | Role | Typical Usage |

            |---------|------|----------|

            | Image | `reference_image` | Style reference, product image,
            first/last frame (specified via prompt) |


            **Image requirements:**

            - Supported formats: `.jpeg`, `.png`, `.webp`

            - Aspect ratio (width/height): `0.4` ~ `2.5`

            - Width/height pixels: `300` ~ `6000` px

            - Max size per image: `30MB`

            - Total request body size must not exceed `64MB`, do not use Base64
            encoding

            - Image URLs must be directly accessible by the server


            **Video Edit**


            Reference image URL array, **optional; 1–30 images when provided**


            **Requirement:** `video_urls` is required for this model; images are
            optional supplementary references.


            **Role description:**


            | Media Type | Role | Typical Usage |

            |---------|------|----------|

            | Image | `reference_image` | Style reference, product image,
            replacement subject (specified via prompt) |


            **Image requirements:**

            - Supported formats: `.jpeg`, `.png`, `.webp`

            - Aspect ratio (width/height): `0.4` ~ `2.5`

            - Width/height pixels: `300` ~ `6000` px

            - Max size per image: `30MB`

            - Total request body size must not exceed `64MB`, do not use Base64
            encoding

            - Image URLs must be directly accessible by the server


            **Video Extend**


            Reference image URL array, **optional; 1–30 images when provided**


            **Requirement:** `video_urls` is required for this model; images are
            optional supplementary references.


            **Role description:**


            | Media Type | Role | Typical Usage |

            |---------|------|----------|

            | Image | `reference_image` | Style reference, product image, scene
            reference (specified via prompt) |


            **Image requirements:**

            - Supported formats: `.jpeg`, `.png`, `.webp`

            - Aspect ratio (width/height): `0.4` ~ `2.5`

            - Width/height pixels: `300` ~ `6000` px

            - Max size per image: `30MB`

            - Total request body size must not exceed `64MB`, do not use Base64
            encoding

            - Image URLs must be directly accessible by the server
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 30
          example:
            - https://example.com/first-frame.jpg
        video_urls:
          type: array
          description: >-
            Applies only to: **Reference-to-Video**, **Video Edit**, **Video
            Extend**


            **Reference-to-Video**


            Reference video URL array, **optional; 1–10 videos when provided**


            **Requirement:** At least one of `image_urls`, `video_urls`, or
            `audio_urls` must be provided.


            **Role description:**


            | Media Type | Role | Typical Usage |

            |---------|------|----------|

            | Video | `reference_video` | Camera movement reference, motion
            reference, original video for editing/extension |


            **Video requirements:**

            - Supported formats: `.mp4`, `.mov`

            - Resolution: 480p, 720p, 1080p, 4K

            - Duration per video: `2` ~ `30` seconds, max 10 videos, total
            duration of all videos ≤ `30` seconds

            - Aspect ratio (width/height): `0.4` ~ `2.5`

            - Width/height pixels: `300` ~ `6000` px

            - Frame pixels (width × height): `409,600` ~ `8,295,044` (e.g.,
            640×640 ~ 3326×2494)

            - Max size per video: `200MB`

            - Frame rate: `24` ~ `60` FPS

            - Total request body size must not exceed `64MB`, do not use Base64
            encoding

            - Specific codec, resolution, and other media validity checks are
            performed by the model

            - Using video references will increase costs (input video duration
            is counted in billing)

            - Video URLs must be directly accessible by the server


            **Video Edit**


            Input video URL array, **required; 1–10 videos**


            **Requirement:** At least 1 video required — the video to edit. The
            first video is the video being edited; additional videos serve as
            references.


            **Role description:**


            | Media Type | Role | Typical Usage |

            |---------|------|----------|

            | Video | `reference_video` | The video to edit (first video),
            camera movement or motion reference (additional videos) |


            **Video requirements:**

            - Supported formats: `.mp4`, `.mov`

            - Resolution: 480p, 720p, 1080p, 4K

            - Duration per video: `4` ~ `30` seconds (the first video is the
            edit target), max 10 videos, total duration of all videos ≤ `30`
            seconds

            - Aspect ratio (width/height): `0.4` ~ `2.5`

            - Width/height pixels: `300` ~ `6000` px

            - Frame pixels (width × height): `409,600` ~ `8,295,044` (e.g.,
            640×640 ~ 3326×2494)

            - Max size per video: `200MB`

            - Frame rate: `24` ~ `60` FPS

            - Total request body size must not exceed `64MB`, do not use Base64
            encoding

            - Specific codec, resolution, and other media validity checks are
            performed by the model

            - Using video references will increase costs (input video duration
            is counted in billing)

            - Video URLs must be directly accessible by the server


            **Video Extend**


            Input video URL array, **required; 1–10 videos**


            **Requirement:** At least 1 video required — the video to extend.
            The first video is the video being extended; additional videos serve
            as references.


            **Role description:**


            | Media Type | Role | Typical Usage |

            |---------|------|----------|

            | Video | `reference_video` | The video to extend (first video),
            camera movement or motion reference (additional videos) |


            **Video requirements:**

            - Supported formats: `.mp4`, `.mov`

            - Resolution: 480p, 720p, 1080p, 4K

            - Duration per video: `2` ~ `30` seconds, max 10 videos, total
            duration of all videos ≤ `30` seconds

            - Aspect ratio (width/height): `0.4` ~ `2.5`

            - Width/height pixels: `300` ~ `6000` px

            - Frame pixels (width × height): `409,600` ~ `8,295,044` (e.g.,
            640×640 ~ 3326×2494)

            - Max size per video: `200MB`

            - Frame rate: `24` ~ `60` FPS

            - Total request body size must not exceed `64MB`, do not use Base64
            encoding

            - Specific codec, resolution, and other media validity checks are
            performed by the model

            - Using video references will increase costs (input video duration
            is counted in billing)

            - Video URLs must be directly accessible by the server
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 10
          example:
            - https://example.com/reference.mp4
        audio_urls:
          type: array
          description: >-
            Applies only to: **Reference-to-Video**, **Video Edit**, **Video
            Extend**


            **Reference-to-Video**


            Reference audio URL array, **optional; 1–10 clips when provided**


            **Requirement:** At least one of `image_urls`, `video_urls`, or
            `audio_urls` must be provided.


            **Role description:**


            | Media Type | Role | Typical Usage |

            |---------|------|----------|

            | Audio | `reference_audio` | Background music, sound effects,
            voice/dialogue reference |


            **Audio requirements:**

            - Supported formats: `.wav`, `.mp3`

            - Duration per clip: `2` ~ `30` seconds, max 10 clips, total
            duration of all audio ≤ `30` seconds

            - Max size per clip: `15MB`

            - Total request body size must not exceed `64MB`, do not use Base64
            encoding

            - Audio URLs must be directly accessible by the server


            **Video Edit / Video Extend**


            Reference audio URL array, **optional; 1–10 clips when provided**


            **Requirement:** `video_urls` is required for this model; audio
            clips are optional supplementary references.


            **Role description:**


            | Media Type | Role | Typical Usage |

            |---------|------|----------|

            | Audio | `reference_audio` | Background music, sound effects,
            voice/dialogue reference |


            **Audio requirements:**

            - Supported formats: `.wav`, `.mp3`

            - Duration per clip: `2` ~ `30` seconds, max 10 clips, total
            duration of all audio ≤ `30` seconds

            - Max size per clip: `15MB`

            - Total request body size must not exceed `64MB`, do not use Base64
            encoding

            - Audio URLs must be directly accessible by the server
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 10
          example:
            - https://example.com/bgm.mp3
        duration:
          type: integer
          description: >-
            Applies only to: **Text-to-Video**, **Image-to-Video**,
            **Reference-to-Video**, **Video Edit**, **Video Extend**


            **Text-to-Video / Image-to-Video**


            Video duration (seconds), defaults to `5` seconds


            **Details:**

            - Supports any integer value between `4`–`30` seconds

            - `-1`: automatic duration, the model picks a length within `4`–`30`
            seconds and billing follows the actual output length

            - Duration directly affects billing


            **Reference-to-Video**


            Output video duration (seconds), defaults to `5` seconds


            **Details:**

            - Supports any integer value between `4`–`30` seconds

            - `-1`: automatic duration, the model picks a length within `4`–`30`
            seconds and billing follows the actual output length

            - Duration directly affects billing


            If the prompt is classified as a video edit task, only `-1` is
            accepted; an explicit number of seconds makes the task fail later,
            with no error at submission


            **Video Edit**


            Output video duration (seconds), defaults to `-1`


            **Details:**

            - Only `-1` is supported: the output length follows the input video
            (may be up to 0.4s shorter)

            - Custom durations are rejected

            - Duration directly affects billing


            **Video Extend**


            Output video duration (seconds), defaults to `5` seconds


            **Details:**

            - Supports any integer value between `4`–`30` seconds

            - `-1`: automatic duration, settled by actual output length

            - Duration directly affects billing
          example: 8
        quality:
          type: string
          description: >-
            Applies only to: **Text-to-Video**, **Image-to-Video**,
            **Reference-to-Video**, **Video Edit**, **Video Extend**


            Video resolution, defaults to `720p`


            **Options:**

            - `480p`: Lower clarity, lower cost

            - `720p`: Standard clarity, this is the default

            - `1080p`: Ultra HD clarity


            **Draft mode:** When `draft` is `true`, only `480p` is supported. If
            omitted, `quality` automatically defaults to `480p`
          enum:
            - 480p
            - 720p
            - 1080p
          default: 720p
          example: 720p
        draft:
          type: boolean
          description: >-
            Applies only to: **Text-to-Video**, **Image-to-Video**,
            **Reference-to-Video**, **Video Edit**, **Video Extend**


            Draft mode switch, defaults to `false`


            **Details:**

            - `true`: Generate a 480p draft first, with faster turnaround and
            standard 480p billing

            - When enabled, `quality` must be `480p` or omitted. Any other
            resolution returns a 400 parameter error

            - Must be a top-level request body field. Placing it inside
            `model_params` returns a 400 parameter error


            **Convert to a final video:**

            - Once the draft is complete, [querying the
            task](/en/api-manual/task-management/get-task-detail) returns
            `draft_expires_at`

            - Before that time, pass the draft task ID to [Seedance 2.5
            Draft-to-Video](/en/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video)
            to generate a 1080p final video with the same content

            - The final video and draft are billed separately. If you are not
            satisfied with the draft, skip conversion and pay only for the draft

            - The default validity period is 24 hours after the draft completes;
            the actual deadline is `draft_expires_at`. Submit the conversion
            request early: expiration while queued also causes conversion to
            fail


            **Temporary unavailability:** A 503 error may be returned when the
            service is temporarily unavailable. If the error code is
            `draft_unavailable`, retry later or remove `draft` to use normal
            generation mode
          default: false
          example: false
        aspect_ratio:
          type: string
          description: >-
            Applies only to: **Text-to-Video**, **Image-to-Video**,
            **Reference-to-Video**, **Video Edit**, **Video Extend**


            **Text-to-Video**


            Video aspect ratio, defaults to `adaptive`


            **Options:**

            - `16:9` (landscape), `9:16` (portrait), `1:1` (square), `4:3`,
            `3:4`, `21:9` (ultrawide)

            - `adaptive`: The model intelligently selects the best aspect ratio
            based on the prompt


            **Pixel values per resolution:**


            | Aspect Ratio | 480p | 720p | 1080p |

            |:------:|:----:|:----:|:----:|

            | 16:9 | 854×480 | 1280×720 | 1920×1080 |

            | 4:3 | 752×560 | 1112×834 | 1664×1248 |

            | 1:1 | 640×640 | 960×960 | 1440×1440 |

            | 3:4 | 560×752 | 834×1112 | 1248×1664 |

            | 9:16 | 480×854 | 720×1280 | 1080×1920 |

            | 21:9 | 992×432 | 1470×630 | 2206×946 |


            **Image-to-Video**


            Video aspect ratio, image-to-video only supports `adaptive`


            **Options:**

            - `adaptive`: Automatically selects the closest aspect ratio based
            on the first-frame image proportions, the only value this model
            accepts

            - Fixed ratios such as `16:9` or `9:16` cannot be specified for this
            model


            **Reference-to-Video**


            Video aspect ratio, defaults to `adaptive`


            **Options:**

            - `16:9` (landscape), `9:16` (portrait), `1:1` (square), `4:3`,
            `3:4`, `21:9` (ultrawide)

            - `adaptive`: Determined based on prompt intent, priority: video >
            image > prompt


            **Pixel values per resolution:**


            | Aspect Ratio | 480p | 720p | 1080p |

            |:------:|:----:|:----:|:----:|

            | 16:9 | 854×480 | 1280×720 | 1920×1080 |

            | 4:3 | 752×560 | 1112×834 | 1664×1248 |

            | 1:1 | 640×640 | 960×960 | 1440×1440 |

            | 3:4 | 560×752 | 834×1112 | 1248×1664 |

            | 9:16 | 480×854 | 720×1280 | 1080×1920 |

            | 21:9 | 992×432 | 1470×630 | 2206×946 |


            If the prompt is classified as a video edit / extend task, only
            `adaptive` is accepted; a fixed ratio makes the task fail later,
            with no error at submission


            **Video Edit / Video Extend**


            Video aspect ratio, defaults to `adaptive`


            **Options:**

            - `adaptive`: the output ratio follows the first input video, the
            only value this model accepts

            - Fixed ratios such as `16:9` or `9:16` are rejected
          enum:
            - '16:9'
            - '9:16'
            - '1:1'
            - '4:3'
            - '3:4'
            - '21:9'
            - adaptive
          default: adaptive
          example: '16:9'
        generate_audio:
          type: boolean
          description: >-
            Applies only to: **Text-to-Video**, **Image-to-Video**,
            **Reference-to-Video**, **Video Edit**, **Video Extend**


            **Text-to-Video**


            Whether to generate synchronized audio, defaults to `true`


            **Options:**

            - `true`: Video includes synchronized audio (voice, sound effects,
            background music) at no additional charge. It is recommended to
            place dialogue within double quotes to optimize audio generation

            - `false`: Output silent video


            **Image-to-Video / Reference-to-Video / Video Edit / Video Extend**


            Whether to generate synchronized audio, defaults to `true`


            **Options:**

            - `true`: Video includes synchronized audio at no additional charge

            - `false`: Output silent video
          default: true
          example: true
        content_filter:
          type: boolean
          description: >-
            Applies only to: **Text-to-Video**, **Image-to-Video**,
            **Reference-to-Video**, **Video Edit**, **Video Extend**


            Content filter, enabled by default `true`


            **Options:**

            - `true`: Standard content safety check, this is the default

            - `false`: Relaxes content restrictions, billed at +10% (`1.1x`).
            Illegal and prohibited content is always enforced regardless of this
            setting


            **Mutually exclusive with web search:**

            - `content_filter: false` and `model_params.web_search: true` cannot
            be used together; sending both returns a 400 parameter error

            - Keep `content_filter: true` (the default) when web search is
            needed
          default: true
          example: true
        output_format:
          type: string
          description: >-
            **Text-to-Video / Image-to-Video / Reference-to-Video / Video Edit /
            Video Extend**


            Output container format, defaults to `mp4`


            **Options:**

            - `mp4`: H.264 encoding with the best compatibility and standard
            color precision, this is the default

            - `mov`: H.264 + yuv444p chroma sampling + PCM audio for higher
            color fidelity, recommended for color grading, keying and
            compositing workflows. Browser inline playback may not support it;
            download and play with VLC / mpv / ffplay. No extra charge


            **Draft-to-Video**


            Output container format, defaults to `mp4`


            **Options:**

            - `mp4`: Default container format. This endpoint outputs 1080p video
            with 10-bit color depth and H.265/HEVC encoding. Playback requires
            support for 10-bit HEVC; H.264-only players may not play it

            - `mov`: H.264 + yuv444p chroma sampling + PCM audio for higher
            color fidelity, recommended for color grading, keying and
            compositing workflows. Browser inline playback may not support it;
            download and play with VLC / mpv / ffplay. No extra charge


            The draft's output format is not inherited. Specify `mov` here if
            required
          enum:
            - mp4
            - mov
          default: mp4
          example: mp4
        model_params:
          type: object
          description: |-
            Applies only to: **Text-to-Video**

            Model extension parameters
          properties:
            web_search:
              type: boolean
              description: >-
                Web search, defaults to `false`


                **Details:**

                - When enabled, the model autonomously decides whether to search
                internet content (e.g., products, weather) based on the prompt,
                improving timeliness

                - May increase latency

                - Fees are only charged when searches are actually triggered;
                multiple searches may occur once enabled


                **Mutually exclusive with the content filter:**

                - Keep `content_filter: true` when web search is enabled; using
                it together with `content_filter: false` returns a 400 parameter
                error
              default: false
              example: false
        callback_url:
          type: string
          description: >-
            HTTPS callback URL for task completion


            **Callback timing:**

            - Triggered when the task is completed or failed

            - Sent after billing confirmation is complete


            **Security restrictions:**

            - Only HTTPS protocol is supported

            - Callbacks to private IP addresses are prohibited (127.0.0.1,
            10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)

            - URL length must not exceed `2048` characters


            **Callback mechanism:**

            - Timeout: `10` seconds

            - Up to `3` retries after failure (at `1`/`2`/`4` seconds after
            failure respectively)

            - Callback response body format is consistent with the task query
            endpoint response format

            - A 2xx status code is considered successful; other status codes
            trigger retries
          format: uri
          example: https://your-domain.com/webhooks/video-task-completed
    VideoGenerationResponse:
      type: object
      properties:
        created:
          type: integer
          description: Task creation timestamp
          example: 1761313744
        id:
          type: string
          description: Task ID
          example: task-unified-1774857405-abc123
        model:
          type: string
          description: Actual model name used
          example: seedance-2.5-text-to-video
        object:
          type: string
          enum:
            - video.generation.task
          description: Specific type of the task
        progress:
          type: integer
          description: Task progress percentage (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: Task status
          enum:
            - pending
            - processing
            - completed
            - failed
          example: pending
        task_info:
          $ref: '#/components/schemas/VideoTaskInfo'
          description: Video task details
        type:
          type: string
          enum:
            - text
            - image
            - audio
            - video
          description: Output type of the task
          example: video
        usage:
          $ref: '#/components/schemas/VideoUsage'
          description: Usage and billing information
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Error code identifier
            message:
              type: string
              description: Error description message
            type:
              type: string
              description: Error type
    VideoTaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: >-
            Whether the task can be cancelled. Seedance 2.5 does not support
            user cancellation; this field always returns `false`.
          example: false
        estimated_time:
          type: integer
          description: Estimated completion time (seconds)
          minimum: 0
          example: 165
        video_duration:
          type: integer
          description: Video duration (seconds)
          example: 8
    VideoUsage:
      type: object
      description: Usage and billing information
      properties:
        billing_rule:
          type: string
          description: Billing rule
          enum:
            - per_call
            - per_token
            - per_second
          example: per_second
        credits_reserved:
          type: number
          description: Estimated credits consumed
          minimum: 0
          example: 50
        user_group:
          type: string
          description: User group category
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##All endpoints require Bearer Token authentication##


        **Get API Key:**


        Visit the [API Key Management Page](https://evolink.ai/dashboard/keys)
        to obtain your API Key


        **Add to request header:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.