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.Related Resources
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
Copy
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