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

# Wan 2.5 Image to Video

> Animate one reference image into a 5 or 10 second video with synchronized audio and output up to 1080p.

<Tip>
  1. Submit the request with `VIDGO_API_KEY`. Save the returned `task_id` to track generation.
  2. Use [Query Task Status](/api-manual/task-management/status) to retrieve the result. With a `callback_url`, Vidgo sends the result to your [webhook](/api-manual/task-management/webhooks) when the task reaches `finished` or `failed`.
</Tip>

# Wan 2.5 Image to Video

Animate one reference image into a 5 or 10 second video with synchronized audio and output up to 1080p.

## Available Model

* `alibaba/wan-2.5/image-to-video`: Animate a reference image using a motion prompt.

## Request Parameters

Set `model` and optional `callback_url` at the request root. Place the following generation parameters inside `input`.

### prompt

* `prompt` (string, required): Describe the subject, scene, and motion. Use 1–1500 characters after trimming surrounding whitespace.

### image\_urls

* `image_urls` (string\[], required): Provide exactly one publicly accessible HTTP(S) image URL.

### resolution

* `resolution` (string, optional): Output resolution: 480p, 720p, or 1080p. Default: 720p.

### duration

* `duration` (integer, optional): Video duration: 5 or 10 seconds. Default: 5.

### audio

* `audio` (string, optional): Optional audio file URL to supply a recording for the video.

### negative\_prompt

* `negative_prompt` (string, optional): Optional description of elements to exclude from the scene.

### seed

* `seed` (integer, optional): Optional integer random seed for reusing generation settings.

## Retrieve the Video

Query the task with `task_id`. Continue polling while `status` is `not_started` or `running`. At `finished`, read the video URL from `data.files[].file_url`. At `failed`, read `data.error_message` for the error details.


## OpenAPI

````yaml api-manual/video-series/alibaba-wan-2-5-image-to-video.json POST /api/generate/submit
openapi: 3.0.0
info:
  title: Vidgo API - Wan 2.5 Image to Video
  description: >-
    Animate a reference image into a 5 or 10 second clip with Wan 2.5, with
    audio input and video output up to 1080p.
  version: 1.0.0
servers:
  - url: https://api.vidgo.ai
security:
  - BearerAuth: []
paths:
  /api/generate/submit:
    post:
      tags:
        - Video Series
      summary: Submit Wan 2.5 Image to Video Task
      description: >-
        Send only the fields shown for this workflow. Parameters from other
        workflows are rejected before credits are deducted.


        When supplied, prompt must not be blank. Input URL fields require
        HTTP(S) URLs with a hostname and no embedded credentials.


        Set duration to 5 or 10 seconds. If omitted, duration defaults to 5
        seconds.
      operationId: submit_alibaba_wan_2_5_image_to_video
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - input
              additionalProperties: true
              properties:
                model:
                  type: string
                  example: alibaba/wan-2.5/image-to-video
                input:
                  type: object
                  required:
                    - image_urls
                    - prompt
                  properties:
                    prompt:
                      type: string
                      maxLength: 1500
                      minLength: 1
                      description: >-
                        Describe the subject, scene, and motion. Use 1–1500
                        characters after trimming surrounding whitespace.
                    image_urls:
                      type: array
                      items:
                        type: string
                        format: uri
                        description: Publicly accessible HTTP(S) image URL.
                      minItems: 1
                      maxItems: 1
                      description: >-
                        Provide exactly one publicly accessible HTTP(S) image
                        URL.
                    resolution:
                      type: string
                      enum:
                        - 480p
                        - 720p
                        - 1080p
                      default: 720p
                      description: 'Output resolution: 480p, 720p, or 1080p. Default: 720p.'
                    duration:
                      type: integer
                      enum:
                        - 5
                        - 10
                      default: 5
                      description: 'Video duration: 5 or 10 seconds. Default: 5.'
                    audio:
                      type: string
                      description: >-
                        Optional audio file URL to supply a recording for the
                        video.
                      example: https://example.com/audio.mp3
                    negative_prompt:
                      type: string
                      description: >-
                        Optional description of elements to exclude from the
                        scene.
                    seed:
                      type: integer
                      description: >-
                        Optional integer random seed for reusing generation
                        settings.
                  additionalProperties: false
                callback_url:
                  type: string
                  nullable: true
                  description: >-
                    Optional public HTTP(S) endpoint for task completion
                    notifications. HTTPS is recommended. Omit, use null, or use
                    an empty string to disable callbacks.
              description: >-
                Set model and optional callback_url at the request root. Place
                generation parameters inside input.
            examples:
              basic:
                summary: Basic workflow
                value:
                  model: alibaba/wan-2.5/image-to-video
                  input:
                    image_urls:
                      - https://example.com/image.png
                    prompt: >-
                      A quiet forest under soft morning light, with natural
                      detail.
                    resolution: 720p
                    duration: 5
              callback:
                summary: 10-second video with a completion callback
                value:
                  model: alibaba/wan-2.5/image-to-video
                  input:
                    image_urls:
                      - https://example.com/image.png
                    prompt: >-
                      A quiet forest under soft morning light, with natural
                      detail.
                    resolution: 720p
                    duration: 10
                  callback_url: https://your-domain.com/callback
      responses:
        '200':
          description: Task submitted
          content:
            application/json:
              schema:
                type: object
                required:
                  - code
                  - data
                properties:
                  code:
                    type: integer
                    enum:
                      - 200
                  data:
                    type: object
                    required:
                      - task_id
                      - status
                      - created_time
                    properties:
                      task_id:
                        type: string
                      status:
                        type: string
                        enum:
                          - not_started
                          - running
                          - finished
                          - failed
                      created_time:
                        type: string
                        format: date-time
              example:
                code: 200
                data:
                  task_id: task-unified-example
                  status: running
                  created_time: '2026-09-10T08:00:00'
        '400':
          description: Input validation, media access, or account balance error
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '401':
          description: Invalid credentials
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '404':
          description: Unknown or disabled model
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '408':
          description: Request timed out
          content:
            text/plain:
              schema:
                type: string
              example: Request timeout
        '422':
          description: Invalid JSON or non-object request body
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '429':
          description: Rate or API key credit limit exceeded
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '502':
          description: Generation task creation error
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '503':
          description: Model configuration or capability is not approved
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Use VIDGO_API_KEY.

````