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

# Doubao Seedance 2.5

> Create asynchronous video tasks with doubao-seedance-2.5 via POST /v1/predictions.



## OpenAPI

````yaml en/api-reference/video-series/seedance/doubao-seedance-2.5-video-generate.json POST /v1/predictions
openapi: 3.1.0
info:
  title: Doubao Seedance 2.5 Video Generation
  version: 1.0.0
servers:
  - url: https://api.shuyou.ai
security:
  - bearerAuth: []
paths:
  /v1/predictions:
    post:
      tags:
        - Video Generation
      summary: Doubao Seedance 2.5
      description: >-
        Doubao Seedance 2.5 (`doubao-seedance-2.5`) supports text-to-video,
        first/last-frame, and reference-guided generation. First/last-frame mode
        is mutually exclusive with `reference_image_urls`,
        `reference_video_urls`, and `reference_audio_urls`. Async mode: poll
        with Get a prediction using `data.task_id`, or use top-level `webhook`.
      operationId: createDoubaoSeedance25VideoPrediction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DoubaoSeedance25VideoPredictionRequest'
            examples:
              text_to_video:
                summary: Text to video (minimal)
                value:
                  model: doubao-seedance-2.5
                  input:
                    prompt: >-
                      A serene beach at sunset with waves gently crashing on the
                      shore, palm trees swaying in the breeze, and seagulls
                      flying across the orange sky
              text_to_video_full:
                summary: Text to video (full params)
                value:
                  model: doubao-seedance-2.5
                  input:
                    prompt: >-
                      A serene beach at sunset with waves gently crashing on the
                      shore, palm trees swaying in the breeze, and seagulls
                      flying across the orange sky
                    aspect_ratio: adaptive
                    resolution: 720p
                    duration: 5
                    generate_audio: false
                    return_last_frame: false
                    output_format: mp4
              first_last_frame:
                summary: First / last frame
                value:
                  model: doubao-seedance-2.5
                  input:
                    prompt: Smooth transition between the two keyframes
                    aspect_ratio: '16:9'
                    resolution: 720p
                    duration: 8
                    first_frame_url: https://example.com/first-frame.png
                    last_frame_url: https://example.com/last-frame.png
                  webhook: https://your-domain.com/webhook/video-done
              with_references:
                summary: Reference media
                value:
                  model: doubao-seedance-2.5
                  input:
                    prompt: >-
                      A character walking through a neon-lit street, consistent
                      appearance
                    aspect_ratio: '9:16'
                    resolution: 720p
                    duration: 10
                    generate_audio: true
                    reference_image_urls:
                      - >-
                        https://file.aiquickdraw.com/custom-page/akr/section-images/example1.png
                    reference_video_urls: []
                    reference_audio_urls: []
              auto_duration:
                summary: Automatic duration (-1)
                value:
                  model: doubao-seedance-2.5
                  input:
                    prompt: A cinematic drone shot over misty mountains at dawn
                    duration: -1
                    resolution: 720p
                    aspect_ratio: adaptive
      responses:
        '200':
          description: Async task created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PredictionTaskResponse'
              example:
                data:
                  task_id: 2c4d50261173430290971a2395a3b607
                  task_status: processing
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Insufficient quota
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Model access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    DoubaoSeedance25VideoPredictionRequest:
      type: object
      required:
        - model
        - input
      properties:
        model:
          type: string
          description: Model ID. Use `doubao-seedance-2.5` for this endpoint.
          enum:
            - doubao-seedance-2.5
          default: doubao-seedance-2.5
          example: doubao-seedance-2.5
        input:
          $ref: '#/components/schemas/DoubaoSeedance25VideoInput'
        webhook:
          type: string
          format: uri
          description: >-
            Optional HTTPS callback URL when the task completes, fails, or is
            cancelled (Predictions API).
    PredictionTaskResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            task_id:
              type: string
              description: Async task ID. Use with Get a prediction or webhook correlation.
              example: 2c4d50261173430290971a2395a3b607
            task_status:
              type: string
              description: Current task status, e.g. `processing`.
              example: processing
          required:
            - task_id
            - task_status
      required:
        - data
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            type:
              type: string
    DoubaoSeedance25VideoInput:
      type: object
      properties:
        prompt:
          type: string
          description: >-
            The text prompt used to generate the video. Max length: 30000
            characters.
          maxLength: 30000
          example: >-
            A serene beach at sunset with waves gently crashing on the shore,
            palm trees swaying in the breeze, and seagulls flying across the
            orange sky
        first_frame_url:
          type: string
          description: >-
            First frame image URL or `asset://{assetId}` (for example:
            `asset://asset-20260404242101-76djj`). Cannot be used simultaneously
            with `reference_image_urls`, `reference_video_urls`, or
            `reference_audio_urls`.
          example: https://example.com/first-frame.png
        last_frame_url:
          type: string
          description: >-
            End frame image URL or `asset://{assetId}` (for example:
            `asset://asset-20260404242101-76djj`). Cannot be passed alone;
            `first_frame_url` must be provided together with it.
          example: https://example.com/last-frame.png
        reference_image_urls:
          type: array
          description: >-
            List of image URLs or `asset://{assetId}` (for example:
            `asset://asset-20260404242101-76djj`). Single image:
            jpeg/png/webp/bmp/tiff/gif; aspect ratio (width/height) in (0.4,
            2.5); width and height in (300, 6000) px; size < 30 MB. Max 30
            items. Mutually exclusive with the first/last-frame scenario.
          items:
            type: string
          maxItems: 30
          example:
            - >-
              https://file.aiquickdraw.com/custom-page/akr/section-images/example1.png
        reference_video_urls:
          type: array
          description: >-
            List of video URLs or `asset://{assetId}` (for example:
            `asset://asset-20260404242101-76djj`). Single video: mp4/mov;
            resolution 480p or 720p; aspect ratio [0.4, 2.5]; width/height [300,
            6000] px; total pixels [409600, 927408]; size ≤ 200 MB; FPS [24,
            60]; duration [2, 30] seconds. Max 10 items. Mutually exclusive with
            the first/last-frame scenario. Total duration of reference videos
            must not exceed 30 seconds.
          items:
            type: string
          maxItems: 10
        reference_audio_urls:
          type: array
          description: >-
            List of audio URLs or `asset://{assetId}` (for example:
            `asset://asset-20260404242101-76djj`). Single audio: wav/mp3; size ≤
            15 MB; duration [2, 30] seconds. Max 10 items. Mutually exclusive
            with the first/last-frame scenario.
          items:
            type: string
          maxItems: 10
        return_last_frame:
          type: boolean
          description: >-
            Whether to return the last frame of the video. When `draft=true`,
            this parameter cannot be set to `true`. Default `false`.
          default: false
          example: false
        generate_audio:
          type: boolean
          description: >-
            Whether to generate audio for the video. `true`: generate with audio
            (higher cost); `false`: generate without audio. Enabling audio
            increases the generation cost. Default `true`.
          default: true
          example: false
        resolution:
          type: string
          description: >-
            Video resolution — `480p` for faster generation, `720p` for balance.
            Default `720p`.
          enum:
            - 480p
            - 720p
          default: 720p
          example: 720p
        aspect_ratio:
          type: string
          description: Video aspect ratio configuration. Default `adaptive`.
          enum:
            - '1:1'
            - '4:3'
            - '3:4'
            - '16:9'
            - '9:16'
            - '21:9'
            - adaptive
          default: adaptive
          example: adaptive
        duration:
          type: integer
          description: >-
            Video duration in 4–30 seconds. Pass `-1` for automatic duration
            selection — the model picks a suitable duration itself (for
            video-editing tasks, it matches the input video's length; for other
            task types, it selects within the valid range). Default `5`.
          minimum: -1
          maximum: 30
          default: 5
          example: 5
        output_format:
          type: string
          description: Video output format. Default `mp4`.
          enum:
            - mp4
            - mov
          default: mp4
          example: mp4
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: '`Authorization: Bearer YOUR_API_KEY`'

````