Skip to main content

Wan - 2.2 A14B Speech to Video Turbo

Generate videos using Wan’s advanced AI model

Query Task Status

After submitting a task, use the unified query endpoint to check progress and retrieve results:

Get Task Details

Learn how to query task status and retrieve generation results
For production use, we recommend using the callBackUrl parameter to receive automatic notifications when generation completes, rather than polling the status endpoint.
Rate limits and quotas are enforced by Apikley and may differ from upstream providers.

OpenAPI

market/wan/2-2-a14b-speech-to-video-turbo.json post /api/v1/jobs/createTask
openapi: 3.0.0
info:
  title: Wan API
  description: Apikley Wan API Documentation
  version: 1.0.0
  contact:
    name: Technical Support
    email: [email protected]
servers:
  - url: https://api.apikley.ru
    description: API Server
security:
  - BearerAuth: []
paths:
  /api/v1/jobs/createTask:
    post:
      summary: Generate content using wan/2-2-a14b-speech-to-video-turbo
      operationId: wan-2-2-a14b-speech-to-video-turbo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
              properties:
                model:
                  type: string
                  enum:
                    - wan/2-2-a14b-speech-to-video-turbo
                  default: wan/2-2-a14b-speech-to-video-turbo
                  description: >-
                    The model name to use for generation. Required field.


                    - Must be `wan/2-2-a14b-speech-to-video-turbo` for this
                    endpoint
                  example: wan/2-2-a14b-speech-to-video-turbo
                callBackUrl:
                  type: string
                  format: uri
                  description: >-
                    The URL to receive generation task completion updates.
                    Optional but recommended for production use.


                    - System will POST task status and results to this URL when
                    generation completes

                    - Callback includes generated content URLs and task
                    information

                    - Your callback endpoint should accept POST requests with
                    JSON payload containing results

                    - Alternatively, use the Get Task Details endpoint to poll
                    task status
                  example: https://your-domain.com/api/callback
                input:
                  type: object
                  description: Input parameters for the generation task
                  properties:
                    prompt:
                      description: >-
                        The text prompt used for video generation (Max length:
                        5000 characters)
                      type: string
                      maxLength: 5000
                      example: The lady is talking
                    image_url:
                      description: >-
                        URL of the input image. If the input image does not
                        match the chosen aspect ratio, it is resized and center
                        cropped (File URL after upload, not file content;
                        Accepted types: image/jpeg, image/png, image/webp; Max
                        size: 10.0MB)
                      type: string
                      example: >-
                        https://file.aiquickdraw.com/custom-page/akr/section-images/1756797663082u4pjmcrq.png
                    audio_url:
                      description: >-
                        The URL of the audio file (File URL after upload, not
                        file content; Accepted types: audio/mp3, audio/wav,
                        audio/ogg, audio/m4a, audio/flac, audio/aac,
                        audio/x-ms-wma, audio/mpeg; Max size: 10.0MB)
                      type: string
                      example: >-
                        https://file.aiquickdraw.com/custom-page/akr/section-images/17567977044127d1emlmc.mp3
                    num_frames:
                      description: >-
                        Number of frames to generate. Must be between 40 to 120,
                        (must be multiple of 4) (Min: 40, Max: 120, Step: 4)
                        (step: 4)
                      type: number
                      minimum: 40
                      maximum: 120
                      default: 80
                      example: 80
                    frames_per_second:
                      description: >-
                        Frames per second of the generated video. Must be
                        between 4 to 60. When using interpolation and
                        adjust_fps_for_interpolation is set to true (default
                        true,) the final FPS will be multiplied by the number of
                        interpolated frames plus one. For example, if the
                        generated frames per second is 16 and the number of
                        interpolated frames is 1, the final frames per second
                        will be 32. If adjust_fps_for_interpolation is set to
                        false, this value will be used as-is (Min: 4, Max: 60,
                        Step: 1) (step: 1)
                      type: number
                      minimum: 4
                      maximum: 60
                      default: 16
                      example: 16
                    resolution:
                      description: Resolution of the generated video (480p, 580p, or 720p)
                      type: string
                      enum:
                        - 480p
                        - 580p
                        - 720p
                      default: 480p
                      example: 480p
                    negative_prompt:
                      description: >-
                        Negative prompt for video generation (Max length: 500
                        characters)
                      type: string
                      maxLength: 500
                      example: ''
                    seed:
                      description: >-
                        Random seed for reproducibility. If None, a random seed
                        is chosen
                      type: integer
                    num_inference_steps:
                      description: >-
                        Number of inference steps for sampling. Higher values
                        give better quality but take longer (Min: 2, Max: 40,
                        Step: 1) (step: 1)
                      type: number
                      minimum: 2
                      maximum: 40
                      default: 27
                      example: 27
                    guidance_scale:
                      description: >-
                        Classifier-free guidance scale. Higher values give
                        better adherence to the prompt but may decrease quality
                        (Min: 1, Max: 10, Step: 0.1) (step: 0.1)
                      type: number
                      minimum: 1
                      maximum: 10
                      default: 3.5
                      example: 3.5
                    shift:
                      description: >-
                        Shift value for the video. Must be between 1.0 and 10.0
                        (Min: 1, Max: 10, Step: 0.1) (step: 0.1)
                      type: number
                      minimum: 1
                      maximum: 10
                      default: 5
                      example: 5
                    enable_safety_checker:
                      description: >-
                        If set to true, input data will be checked for safety
                        before processing (Boolean value (true/false))
                      type: boolean
                      example: true
                  required:
                    - prompt
                    - image_url
                    - audio_url
            example:
              model: wan/2-2-a14b-speech-to-video-turbo
              callBackUrl: https://your-domain.com/api/callback
              input:
                prompt: The lady is talking
                image_url: >-
                  https://file.aiquickdraw.com/custom-page/akr/section-images/1756797663082u4pjmcrq.png
                audio_url: >-
                  https://file.aiquickdraw.com/custom-page/akr/section-images/17567977044127d1emlmc.mp3
                num_frames: 80
                frames_per_second: 16
                resolution: 480p
                negative_prompt: ''
                num_inference_steps: 27
                guidance_scale: 3.5
                shift: 5
                enable_safety_checker: true
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponse'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          taskId:
                            type: string
                            description: >-
                              Task ID, can be used with Get Task Details
                              endpoint to query task status
                            example: task_wan_1765186497670
              example:
                code: 200
                msg: success
                data:
                  taskId: task_wan_1765186497670
        '500':
          $ref: '#/components/responses/Error'
components:
  schemas:
    ApiResponse:
      type: object
      properties:
        code:
          type: integer
          enum:
            - 200
            - 401
            - 402
            - 404
            - 422
            - 429
            - 455
            - 500
            - 501
            - 505
          description: >-
            Response status code


            - **200**: Success - Request has been processed successfully

            - **401**: Unauthorized - Authentication credentials are missing or
            invalid

            - **402**: Insufficient Credits - Account does not have enough
            credits to perform the operation

            - **404**: Not Found - The requested resource or endpoint does not
            exist

            - **422**: Validation Error - The request parameters failed
            validation checks

            - **429**: Rate Limited - Request limit has been exceeded for this
            resource

            - **455**: Service Unavailable - System is currently undergoing
            maintenance

            - **500**: Server Error - An unexpected error occurred while
            processing the request

            - **501**: Generation Failed - Content generation task failed

            - **505**: Feature Disabled - The requested feature is currently
            disabled
        msg:
          type: string
          description: Response message, error description when failed
          example: success
  responses:
    Error:
      description: Server Error
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        All APIs require authentication via Bearer Token.


        Get API Key:

        1. Visit [API Key Management Page](https://app.apikley.ru/keys) to get your
        API Key


        Usage:

        Add to request header:

        Authorization: Bearer APIKLEY_API_KEY


        Note:

        - Keep your API Key secure and do not share it with others

        - If you suspect your API Key has been compromised, reset it immediately
        in the management page


To find navigation and other pages in this documentation, fetch the llms.txt file at: https://docs.apikley.ru/llms.txt