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

# wan3.0-video

> Alibaba’s Wan audiovisual generation model. LinkModel’s initial release is planned for text-to-video and first/last-frame generation, with up to 1080P, 30-second output and synchronized audio, subject to the capabilities



## OpenAPI

````yaml /openapi/video/wan3-0-video.yaml post /videos/generations
openapi: 3.0.3
info:
  title: wan3.0-video
  version: 1.0.0
  description: >-
    Alibaba’s Wan audiovisual generation model. LinkModel’s initial release is
    planned for text-to-video and first/last-frame generation, with up to 1080P,
    30-second output and synchronized audio, subject to the capabilities enabled
    on the model page.
  x-linkmodel-sort-weight: 0
servers:
  - url: https://api.linkmodel.ai/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Alibaba
  - name: video
paths:
  /videos/generations:
    post:
      tags:
        - Alibaba
        - video
      summary: wan3.0-video
      description: >
        Alibaba’s Wan audiovisual generation model. LinkModel’s initial release
        is planned for text-to-video and first/last-frame generation, with up to
        1080P, 30-second output and synchronized audio, subject to the
        capabilities enabled on the model page.


        |   |   |

        | --- | --- |

        | **Provider** | Alibaba |

        | **Tasks** | text-to-video · image-to-video |


        ## Task lifecycle


        This endpoint creates an asynchronous task. Poll `GET
        /videos/generations/{task_id}` with the returned `task_id` until the
        task reaches a terminal state.


        If the POST request times out or its result is uncertain, do not blindly
        retry it. The original request may already have created another task and
        billing order.


        Completed asset URLs are dynamically signed. Download or copy assets
        that must be retained instead of treating the URLs as permanent
        identifiers.
      operationId: wan3-0-video
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                model:
                  type: string
                  enum:
                    - wan3.0-video
                  description: 'Must be one of: wan3.0-video.'
                prompt:
                  type: string
                  maxLength: 20000
                  description: >-
                    Enter a prompt for text-to-video. For image-to-video,
                    describe motion, camera movement, and sound.
                first_frame_image:
                  type: string
                  description: >-
                    Enter an accessible image URL for image-to-video. This
                    control does not upload local files. The API also accepts
                    OSS URLs and image Data URLs.
                last_frame_image:
                  type: string
                  description: >-
                    A last frame requires a first frame. Leave this blank for
                    first-frame-only image-to-video.


                    **Conditional limits:**

                    - A last frame requires a first frame.
                duration:
                  type: integer
                  enum:
                    - -1
                    - 2
                    - 3
                    - 4
                    - 5
                    - 6
                    - 7
                    - 8
                    - 9
                    - 10
                    - 11
                    - 12
                    - 13
                    - 14
                    - 15
                    - 16
                    - 17
                    - 18
                    - 19
                    - 20
                    - 21
                    - 22
                    - 23
                    - 24
                    - 25
                    - 26
                    - 27
                    - 28
                    - 29
                    - 30
                  default: 5
                  description: >-
                    In seconds. -1 selects automatic duration. Billing uses the
                    actual generated duration. Defaults to `5`.
                resolution:
                  type: string
                  enum:
                    - 1080P
                    - 480P
                    - 720P
                  default: 1080P
                  description: 'Must be one of: 1080P, 480P, 720P. Defaults to `1080P`.'
                size:
                  type: string
                  enum:
                    - 16x9
                    - 1x1
                    - 3x4
                    - 4x3
                    - 9x16
                    - adaptive
                  default: adaptive
                  description: >-
                    adaptive selects the aspect ratio automatically. For
                    image-to-video, use adaptive to match the input image.
                    Defaults to `adaptive`.
                seed:
                  type: integer
                  default: -1
                  minimum: -1
                  maximum: 2147483647
                  description: >-
                    -1 selects a random seed. Using the same seed does not
                    guarantee identical results. Defaults to `-1`.
                extends.audio:
                  type: boolean
                  default: true
                  description: >-
                    Turn off to generate a video without an audio track. This
                    setting does not change the unit price. Defaults to `true`.
                extends.prompt_extend:
                  type: boolean
                  default: true
                  description: Defaults to `true`.
                extends.watermark:
                  type: boolean
                  default: false
                  description: Defaults to `false`.
              required:
                - model
      responses:
        '200':
          description: >-
            Business response. `code=0` means the task was accepted; validation
            failures can return HTTP 200 with `code=400`.
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    required:
                      - code
                      - data
                      - msg
                    properties:
                      code:
                        type: integer
                        enum:
                          - 0
                        example: 0
                      data:
                        type: object
                        required:
                          - task_id
                        properties:
                          task_id:
                            type: string
                            description: Use this id to poll task status.
                            example: aurora_abc123
                          order_id:
                            type: string
                            description: Billing order id.
                            example: 019da9cf-d1db-78e1-ac23-526774d01193
                          status:
                            type: string
                            example: Processing
                          price:
                            type: number
                            description: Charged amount in the model's pricing currency.
                            example: 0.074
                      msg:
                        type: string
                        example: success
                      request_id:
                        type: string
                        format: uuid
                        example: 250b66dd-e1fb-4bb6-b5f6-c668efadc35d
                  - type: object
                    required:
                      - code
                      - msg
                    properties:
                      code:
                        type: integer
                        enum:
                          - 400
                        example: 400
                      data:
                        type: object
                        example: {}
                      msg:
                        type: string
                        example: model is required
                      request_id:
                        type: string
                        format: uuid
                        example: 96be7a7d-3e81-4916-a6b8-19b32773a693
        '400':
          description: >-
            Malformed HTTP request rejected by the Gateway. Model and parameter
            validation may instead use HTTP 200 with business `code=400`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 400
                  msg:
                    type: string
                    example: task_id is required
                  request_id:
                    type: string
                    format: uuid
                    example: 96be7a7d-3e81-4916-a6b8-19b32773a693
        '401':
          description: Unauthorized — missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 401
                  data:
                    type: object
                    example: {}
                  msg:
                    type: string
                    example: invalid api key
                  request_id:
                    type: string
                    format: uuid
                    example: bff4c295-c7da-4507-9708-4627cb6373ba
        '500':
          description: Internal error — task creation failed (e.g. insufficient balance).
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                    example: 500
                  msg:
                    type: string
                    example: >-
                      create task failed: billing: code=100601: insufficient
                      balance
                  request_id:
                    type: string
                    format: uuid
                    example: 3409f6fb-fa9a-4534-b530-195b5f6f4e32
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````