Vidu API Documentation
Last updated: May 8, 2026 ยท Base URL: https://api.imagine-future.com ยท Alternate: https://api.futurelabsai.dev
๐ Base URL
Primary: https://api.imagine-future.com
Alternate: https://api.futurelabsai.dev
Both domains point to the same API service. You can use either one. If the primary domain is unreachable, switch to the alternate.
Table of Contents
Video Generating
Other Generating
Task Management
Solutions
Kling AI
Video Generating
Text to Video
POST
https://api.imagine-future.com/ai/avu/text2video
Request Headers
| Field | Value | Description |
| Content-Type | application/json | Data Exchange Format |
| Authorization | Token {your api key} | Replace {} with your API Key |
Request Body Parameters
| Field | Type | Required | Description |
| model |
String |
Required |
Model name. Accepted values:
viduq3-turbo โ Faster generation speed than viduq3-pro
viduq3-pro โ Supports audio-visual synchronization, supports video shot segmentation
viduq2 โ New Model
viduq1 โ Clear image, smooth transition, stable camera operation
|
| style |
String |
Optional |
The style of output video. Defaults to general.
general โ General style. Allows style control through prompts
anime โ Anime style. Optimized for anime aesthetics
โ ๏ธ This parameter is not effective when using q2 or q3 models
|
| prompt |
String |
Required |
Text prompt. A textual description for video generation, with a maximum length of 5000 characters |
| duration |
Int |
Optional |
Video duration (seconds):
viduq3-pro, viduq3-turbo: default 5s, range 1โ16
viduq2: default 5s, range 1โ10
viduq1: default 5s, only 5s
|
| seed |
Int |
Optional |
Random seed. Defaults to a random seed number. Manually set values will override the default |
| aspect_ratio |
String |
Optional |
The aspect ratio of the output video. Defaults to 16:9. Accepted: 16:9, 9:16, 3:4, 4:3, 1:1
โ ๏ธ 3:4 & 4:3 only support q2 & q3 models
|
| resolution |
String |
Optional |
Resolution:
viduq3-pro, viduq3-turbo (1-16s): default 720p, available: 540p, 720p, 1080p
viduq2 (1-10s): default 720p, available: 540p, 720p, 1080p
viduq1 (5s): default 1080p, available: 1080p
|
| movement_amplitude |
String |
Optional |
The movement amplitude of objects in the frame. Defaults to auto. Accepted: auto, small, medium, large
โ ๏ธ This parameter does not take effect when using q2 & q3 models
|
| bgm |
Bool |
Optional |
Whether to add background music. Default: false
โ ๏ธ q3 model not available; BGM does not take effect when q2 duration is 9 or 10 seconds
|
| audio |
Bool |
Optional |
Whether to use direct audio-video generation capability. Default: true
false โ No direct audio-video generation, outputs silent video
true โ Requires audio-video synchronization, outputs video with sound
โ ๏ธ Only q3 models support this parameter
|
| payload |
String |
Optional |
Transparent transmission parameters. No processing, only data transmission, max 1048576 characters |
| off_peak |
Bool |
Optional |
Off-peak mode. Default: false
true โ Off-peak generate mode (lower points, 48h completion)
false โ Normal generate mode
|
| callback_url |
String |
Optional |
Callback URL for task status updates |
Example Request
curl -X POST \
-H "Authorization: Token {your_api_key}" \
-H "Content-Type: application/json" \
-d '{
"model": "viduq3-pro",
"prompt": "In an ultra-realistic fashion photography style featuring light blue and pale amber tones, an astronaut in a spacesuit walks through the fog. The background consists of enchanting white and golden lights, creating a minimalist still life and an impressive panoramic scene.",
"duration": 5,
"seed": 0,
"aspect_ratio": "16:9",
"resolution": "720p",
"movement_amplitude": "auto",
"off_peak": false
}' \
https://api.imagine-future.com/ai/avu/text2video
Response Example
{
"task_id": "916198978159124480",
"type": "text2video",
"state": "created",
"model": "viduq3-pro",
"style": "general",
"prompt": "In an ultra-realistic fashion photography style...",
"duration": 5,
"seed": 1920759782,
"aspect_ratio": "16:9",
"resolution": "720p",
"movement_amplitude": "auto",
"created_at": "2026-02-03T09:19:33.696Z",
"credits": 80,
"off_peak": false
}
Image to Video
POST
https://api.imagine-future.com/ai/avu/img2video
Request Headers
| Field | Value | Description |
| Content-Type | application/json | Data Exchange Format |
| Authorization | Token {your api key} | Replace {} with your API Key |
Request Body Parameters
| Field | Type | Required | Description |
| model |
String |
Required |
Model name. Accepted values: viduq3-turbo, viduq3-pro, viduq2, viduq1 |
| images |
Array |
Required |
Array of image URLs. The input image(s) to generate video from. Accepts 1 image URL |
| prompt |
String |
Required |
Text prompt describing the desired video motion and content, max 5000 characters |
| duration |
Int |
Optional |
Video duration (seconds). Same ranges as Text to Video |
| seed |
Int |
Optional |
Random seed |
| aspect_ratio |
String |
Optional |
Output aspect ratio. Defaults to 16:9 |
| resolution |
String |
Optional |
Resolution. Default 720p. Available: 540p, 720p, 1080p |
| movement_amplitude |
String |
Optional |
Movement amplitude. Default: auto. Accepted: auto, small, medium, large |
| off_peak |
Bool |
Optional |
Off-peak mode. Default: false |
| callback_url |
String |
Optional |
Callback URL for task status updates |
Example Request
curl -X POST \
-H "Authorization: Token {your_api_key}" \
-H "Content-Type: application/json" \
-d '{
"model": "viduq3-pro",
"images": [
"https://your-image-url.com/image.png"
],
"prompt": "The astronaut waved and the camera moved up.",
"duration": 5,
"seed": 0,
"resolution": "1080p",
"movement_amplitude": "auto",
"off_peak": false
}' \
https://api.imagine-future.com/ai/avu/img2video
Response Example
{
"task_id": "916201234567890123",
"type": "img2video",
"state": "created",
"model": "viduq3-pro",
"images": ["https://your-image-url.com/image.png"],
"prompt": "The astronaut waved and the camera moved up.",
"duration": 5,
"seed": 1920759782,
"resolution": "1080p",
"movement_amplitude": "auto",
"created_at": "2026-02-03T09:25:00.000Z",
"credits": 80,
"off_peak": false
}
Start End to Video
Generate a video by providing both a start frame and an end frame. The model interpolates between them to create smooth transition video.
POST
https://api.imagine-future.com/ai/avu/start-end2video
Request Headers
| Field | Value | Description |
| Content-Type | application/json | Data Exchange Format |
| Authorization | Token {your api key} | Replace {} with your API Key |
Request Body Parameters
| Field | Type | Required | Description |
| model |
String |
Required |
Model name. Accepted values: viduq3-turbo, viduq3-pro, viduq2, viduq1 |
| images |
Array |
Required |
Array of exactly 2 image URLs โ [start_frame, end_frame] |
| prompt |
String |
Optional |
Text prompt describing the desired transition, max 5000 characters |
| duration |
Int |
Optional |
Video duration (seconds). Same ranges as Text to Video |
| seed |
Int |
Optional |
Random seed |
| resolution |
String |
Optional |
Resolution. Default 720p |
| off_peak |
Bool |
Optional |
Off-peak mode. Default: false |
| callback_url |
String |
Optional |
Callback URL for task status updates |
Example Request
curl -X POST \
-H "Authorization: Token {your_api_key}" \
-H "Content-Type: application/json" \
-d '{
"model": "viduq3-pro",
"images": [
"https://your-images.com/start-frame.jpg",
"https://your-images.com/end-frame.jpg"
],
"prompt": "Smooth transition from day to night",
"duration": 5,
"seed": 0,
"resolution": "720p",
"off_peak": false
}' \
https://api.imagine-future.com/ai/avu/start-end2video
Reference to Video
Generate a video using reference images for subject/style consistency. The model maintains visual elements from the reference while creating new motion.
POST
https://api.imagine-future.com/ai/avu/reference2video
Request Headers
| Field | Value | Description |
| Content-Type | application/json | Data Exchange Format |
| Authorization | Token {your api key} | Replace {} with your API Key |
Request Body Parameters
| Field | Type | Required | Description |
| model |
String |
Required |
Model name. Accepted values: viduq3-turbo, viduq3-pro, viduq2, viduq1 |
| images |
Array |
Required |
Array of reference image URLs (1โ4 images) |
| prompt |
String |
Required |
Text prompt for video generation, max 5000 characters |
| duration |
Int |
Optional |
Video duration (seconds). Default 5s |
| seed |
Int |
Optional |
Random seed |
| aspect_ratio |
String |
Optional |
Output aspect ratio. Default 16:9 |
| resolution |
String |
Optional |
Resolution. Default 720p |
| off_peak |
Bool |
Optional |
Off-peak mode. Default: false |
| callback_url |
String |
Optional |
Callback URL for task status updates |
Example Request
curl -X POST \
-H "Authorization: Token {your_api_key}" \
-H "Content-Type: application/json" \
-d '{
"model": "viduq3-pro",
"images": [
"https://your-images.com/reference-character.jpg"
],
"prompt": "The character walks through a garden, camera following from behind",
"duration": 5,
"seed": 0,
"aspect_ratio": "16:9",
"resolution": "720p",
"off_peak": false
}' \
https://api.imagine-future.com/ai/avu/reference2video
Template Generating
Generate videos based on predefined templates. Templates provide structured prompts and motion presets for consistent output.
POST
https://api.imagine-future.com/ai/avu/template2video
Request Headers
| Field | Value | Description |
| Content-Type | application/json | Data Exchange Format |
| Authorization | Token {your api key} | Replace {} with your API Key |
Request Body Parameters
| Field | Type | Required | Description |
| model |
String |
Required |
Model name |
| template_id |
String |
Required |
Template ID for the desired generation template |
| images |
Array |
Required |
Array of image URLs to use with the template |
| prompt |
String |
Optional |
Additional text prompt to modify template output |
| duration |
Int |
Optional |
Video duration (seconds) |
| resolution |
String |
Optional |
Resolution. Default 720p |
| callback_url |
String |
Optional |
Callback URL for task status updates |
Image Generating
Reference to Image
Generate images using reference images for subject/style consistency.
POST
https://api.imagine-future.com/ai/avu/ref2image/nano
Request Headers
| Field | Value | Description |
| Content-Type | application/json | Data Exchange Format |
| Authorization | Token {your api key} | Replace {} with your API Key |
Request Body Parameters
| Field | Type | Required | Description |
| model |
String |
Required |
Model name |
| images |
Array |
Required |
Array of reference image URLs |
| prompt |
String |
Required |
Text prompt for image generation |
| aspect_ratio |
String |
Optional |
Output aspect ratio. Default 16:9 |
| resolution |
String |
Optional |
Resolution |
| seed |
Int |
Optional |
Random seed |
| callback_url |
String |
Optional |
Callback URL for task status updates |
Task Management
Get Creation
Retrieve the details and current status of a specific task by its task ID.
GET
https://api.imagine-future.com/ai/avu/tasks/{task_id}/creations
Request Headers
| Field | Value | Description |
| Authorization | Token {your api key} | Replace {} with your API Key |
Path Parameters
| Field | Type | Required | Description |
| task_id |
String |
Required |
The task ID returned from any generation request |
Response Fields
| Field | Type | Description |
| task_id | String | Task ID |
| type | String | Task type (text2video, img2video, etc.) |
| state | String | Task state: created, queueing, processing, success, failed |
| model | String | Model used |
| prompt | String | Input prompt |
| creations | Array | Array of generated outputs (available when state is success) |
| creations[].url | String | Download URL for the generated video/image |
| creations[].cover_url | String | Cover image URL |
| created_at | String | Task creation time (ISO 8601) |
| credits | Number | Credits consumed |
| err_code | String | Error code (when state is failed) |
Example Request
curl -H "Authorization: Token {your_api_key}" \
https://api.imagine-future.com/ai/avu/tasks/916198978159124480/creations
Response Example (Success)
{
"task_id": "916198978159124480",
"type": "text2video",
"state": "success",
"model": "viduq3-pro",
"prompt": "An astronaut walking through fog...",
"creations": [
{
"url": "https://cdn.imagine-future.com/video/result.mp4",
"cover_url": "https://cdn.imagine-future.com/video/cover.jpg"
}
],
"created_at": "2026-02-03T09:19:33.696Z",
"credits": 80
}
๐ก Polling Recommendation
Poll the Get Creation endpoint every 5โ10 seconds until state changes to success or failed.
Get Task List
Retrieve a list of all tasks with optional filtering and pagination.
GET
https://api.imagine-future.com/ai/avu/tasks/{task_id}/creations
๐ก Note
To query a specific task, use GET /ai/avu/tasks/{task_id}/creations. There is no bulk task list endpoint โ query tasks individually by their task_id.
Request Headers
| Field | Value | Description |
| Authorization | Token {your api key} | Replace {} with your API Key |
Query Parameters
| Field | Type | Required | Description |
| task_id |
String |
Required |
The task ID to query (path parameter) |
Example Request
curl -H "Authorization: Token {your_api_key}" \
"https://api.imagine-future.com/ai/avu/tasks/916198978159124480/creations"
Cancel Generation
Cancel a pending or processing task. Only tasks in created or queueing state can be cancelled.
POST
https://api.imagine-future.com/ai/avu/tasks/{task_id}/cancel
Request Headers
| Field | Value | Description |
| Authorization | Token {your api key} | Replace {} with your API Key |
Path Parameters
| Field | Type | Required | Description |
| task_id |
String |
Required |
The task ID to cancel |
Example Request
curl -X POST \
-H "Authorization: Token {your_api_key}" \
https://api.imagine-future.com/ai/avu/tasks/916198978159124480/cancel
โ ๏ธ Note
Credits consumed by tasks that have already started processing may not be fully refunded upon cancellation.
Solutions
One Click AI MV
One Click AI MV is a complete solution that generates music videos from images and audio. It supports creating MV tasks, querying progress, editing individual shots, and composing final videos.
๐ก Base URL
All One Click AI MV endpoints use https://api.imagine-future.com/ai/avu/one-click/mv as the base path.
1. Create MV Task
POST
https://api.imagine-future.com/ai/avu/one-click/mv
Request Headers
| Field | Value | Description |
| Content-Type | application/json | Data Exchange Format |
| Authorization | Token {your api key} | Replace {your api key} with your token |
Request Body Parameters
| Field | Type | Required | Description |
| images |
Array[String] |
Required |
Model images or style images for MV generation.
- Supports Base64-encoded images or image URLs (must be accessible)
- Supports 1 to 7 images
- Formats: png, jpeg, jpg, webp
- Aspect ratio must be less than 1:4 or 4:1
- Max image size: 50 MB (base64 decoded โค 10M)
|
| audio_url |
String |
Required |
Audio for MV generation.
- Supports Base64 encoding or audio URL
- Supports 1 audio file
- Formats: mp3, wav, aac, m4a
- Synthesized audio output: 10โ180 seconds
- Shot list only output: 10โ300 seconds
- Base64 decoded โค 20M
|
| prompt |
String |
Optional |
Text description for the MV video. Max 3000 characters |
| aspect_ratio |
String |
Optional |
Output aspect ratio. Default: 16:9. Accepted: 1:1, 16:9, 9:16, 4:3, 3:4 |
| resolution |
String |
Optional |
Clarity. Default: 720p. Available: 540p, 720p, 1080p |
| add_subtitle |
Bool |
Optional |
Whether subtitles are needed. Default: false |
| srt_url |
String |
Optional |
Subtitle file URL |
| language |
String |
Optional |
Audio language type. Default: automatic. Enum: en, zh |
| callback_url |
String |
Optional |
Callback URL for task status updates. Vidu will POST status changes (processing, success, failed) to this URL. Retries 3 times on failure |
| lip_sync |
Bool |
Optional |
Whether to enable lip-sync (digital human). Default: false
true โ Enable lip-sync, adds 4 credits per second
false โ No lip-sync
โ ๏ธ Note 1: Does not support non-real-person content
โ ๏ธ Note 2: Does not support non-frontal-face video clips
|
Example Request
curl -X POST \
-H "Authorization: Token {your_api_key}" \
-H "Content-Type: application/json" \
-d '{
"images": ["https://your-image-url.com/image.png"],
"prompt": "",
"audio_url": "https://your-audio-url.com/audio.mp3",
"duration": 15,
"aspect_ratio": "16:9",
"lip_sync": false
}' \
https://api.imagine-future.com/ai/avu/one-click/mv
Response Example
2. Query MV Task
GET
https://api.imagine-future.com/ai/avu/one-click/mv/{id}
Request Headers
| Field | Value | Description |
| Content-Type | application/json | Data Exchange Format |
| Authorization | Token {your api key} | Replace {your api key} with your token |
Path Parameters
| Field | Type | Required | Description |
| id |
String |
Required |
Clip ID or Subtask ID |
Example Request
curl -X GET \
-H "Authorization: Token {your_api_key}" \
https://api.imagine-future.com/ai/avu/one-click/mv/{id}
Response Fields
| Field | Subfield | Type | Description |
| id | | String | Task ID |
| state | | String | Processing status: created, processing, success, failed |
| err_code | | String | Error code (see error code table for details) |
| err_msg | | String | Error-related information |
| created_at | | String | Creation time (ISO 8601) |
| signed_url | | String | URL of generated video (available if video is less than 3 minutes) |
| job_records | | Array | Shot list + Composite Video records |
| type | String | generate_video (Video Storyboard) or compose (Compose All Storyboards) |
| index | Int | Shot Index |
| jobs | Array | Single shot modification history |
| jobs[].id | String | Job ID |
| jobs[].state | String | created, processing, success, failed |
| jobs[].signed_url | String | URL of the storyboard or composite product |
Response Example
{
"id": "901243326567555072",
"type": "mv",
"state": "success",
"job_records": [
{
"type": "generate_video",
"jobs": [
{
"id": "901245331704909824",
"type": "generate_video",
"state": "success",
"signed_url": "signed_url",
"mv_generate_video_input": {
"duration": 3,
"prompt": "2.5d building style, bright tones...",
"lyric_text": "Intro"
},
"index": 0
}
],
"index": 0
},
{
"type": "compose",
"jobs": [
{
"id": "901245503243554816",
"type": "compose",
"state": "success",
"signed_url": "signed_url",
"index": 0
}
],
"index": 0
}
],
"created_at": "2025-12-24T02:51:34.070650Z",
"signed_url": "signed_url"
}
3. Edit MV Task
Edit a specific shot in the MV by providing a new prompt. This regenerates the selected shot while keeping others intact.
POST
https://api.imagine-future.com/ai/avu/one-click/mv/{id}/edit
Request Headers
| Field | Value | Description |
| Content-Type | application/json | Data Exchange Format |
| Authorization | Token {your api key} | Replace {your api key} with your token |
Request Body Parameters
| Field | Type | Required | Description |
| id |
String |
Required |
Task ID (placed in the URL path) |
| job_id |
String |
Required |
ID of the shot to be edited |
| prompt |
String |
Required |
New text description for the shot. Max 3000 characters |
| callback_url |
String |
Optional |
Callback URL for task status updates |
Example Request
curl -X POST \
-H "Authorization: Token {your_api_key}" \
-H "Content-Type: application/json" \
-d '{
"job_id": "901334076999344129",
"prompt": "2.5D modeling style, cheerful atmosphere, close-up, the protagonist dances on the beach, waves lapping at the ankles, camera follows the spinning motion"
}' \
https://api.imagine-future.com/ai/avu/one-click/mv/{your_id}/edit
Response Example
{
"id": "your_job_id_here"
}
4. Compose MV Task
Compose (synthesize) selected shots into the final MV video. Provide the list of shot job IDs to include in the final composition.
POST
https://api.imagine-future.com/ai/avu/one-click/mv/{id}/compose
Request Headers
| Field | Value | Description |
| Content-Type | application/json | Data Exchange Format |
| Authorization | Token {your api key} | Replace {your api key} with your token |
Request Body Parameters
| Field | Type | Required | Description |
| id |
String |
Required |
Task ID (placed in the URL path) |
| job_ids |
Array[String] |
Required |
List of shot job IDs to be synthesized into the final video |
| callback_url |
String |
Optional |
Callback URL for task status updates |
Example Request
curl -X POST \
-H "Authorization: Token {your_api_key}" \
-H "Content-Type: application/json" \
-d '{
"job_ids": [
"id1",
"id2",
"id3",
"id4",
"id5",
"id6"
]
}' \
https://api.imagine-future.com/ai/avu/one-click/mv/{your_id}/compose
Response Example
{
"id": "your_job_id_here"
}
๐ก MV Workflow
The typical workflow is: Create MV Task โ Query Task (poll until shots are generated) โ Edit Task (optional, refine individual shots) โ Compose Task (combine shots into final video).
Kling AI
Kling AI integration provides Motion Control (apply motion from a reference video to a static image) and Avatar/Digital Human (generate lip-synced video from image + text/audio) capabilities.
๐ Authentication
Kling endpoints use the same authentication as other API endpoints: Authorization: Token {your_api_key}
Motion Control
Apply the motion from a reference video to a static image, generating a new video that combines the image content with the reference motion.
POST
https://api.imagine-future.com/ai/kling/v1/videos/motion-control
Request Headers
| Field | Value | Description |
| Content-Type | application/json | Data Exchange Format |
| Authorization | Token {your api key} | Replace {} with your API Key |
Request Body Parameters
| Field | Type | Required | Description |
| model_name |
String |
Optional |
Model name, e.g. kling-v2-6. If not provided, the server will use the default model |
| image_url |
String |
Required |
Reference image URL or Base64 encoded string. Formats: jpg/jpeg/png, max 10MB, size 300pxโ65536px, aspect ratio 1:2.5โ2.5:1 |
| video_url |
String |
Required |
Motion reference video URL. Formats: mp4/mov, max 100MB, size 340pxโ3850px, duration 3โ30s (depends on character_orientation) |
| mode |
String |
Required |
Generation mode:
std โ Standard mode (cost-effective)
pro โ Professional mode (high quality)
|
| character_orientation |
String |
Required |
Character orientation:
image โ Based on image orientation (video โค 10s)
video โ Based on video orientation (video โค 30s)
|
| prompt |
String |
Optional |
Text prompt, max 2500 characters. Describe scene content, camera movements, etc. |
| keep_original_sound |
String |
Optional |
Whether to keep original sound from reference video. yes = keep, no = remove |
| callback_url |
String |
Optional |
Callback URL. Task status changes will be POST-ed to this URL |
| external_task_id |
String |
Optional |
Custom task ID, must be unique per user. If not provided, the system will automatically use the internal task ID |
Example Request
curl -X POST \
-H "Authorization: Token {your_api_key}" \
-H "Content-Type: application/json" \
-d '{
"model_name": "kling-v2-6",
"image_url": "https://your-image-url.com/person.jpg",
"video_url": "https://your-video-url.com/dance-motion.mp4",
"mode": "pro",
"character_orientation": "image",
"prompt": "A person dancing gracefully in a garden",
"keep_original_sound": "no"
}' \
https://api.imagine-future.com/ai/kling/v1/videos/motion-control
Response Example
{
"code": 0,
"message": "SUCCEED",
"request_id": "req_abc123def456",
"data": {
"task_id": "881704293106061404",
"task_status": "submitted",
"task_status_msg": "",
"task_info": {
"external_task_id": "your_custom_id_or_system_id"
},
"created_at": 1715180000000,
"updated_at": 1715180000000
}
}
Avatar (Digital Human)
Generate a lip-synced digital human video from a reference image combined with text (TTS) or audio input. The model produces natural facial expressions and lip movements.
POST
https://api.imagine-future.com/ai/kling/v1/videos/avatar/image2video
Request Headers
| Field | Value | Description |
| Content-Type | application/json | Data Exchange Format |
| Authorization | Token {your api key} | Replace {} with your API Key |
Request Body Parameters
| Field | Type | Required | Description |
| model_name |
String |
Optional |
Model name, e.g. kling-v2-6. If not provided, the server will use the default model |
| image |
String |
Required |
Person reference image URL or Base64. Must contain a clear face |
| sound_file |
String |
Optional |
Audio file URL. Drives lip-sync and motion from audio. Either sound_file or text must be provided |
| text |
String |
Optional |
Text for TTS-driven lip-sync. The system converts text to speech and generates corresponding lip animation. Either text or sound_file must be provided |
| prompt |
String |
Optional |
Action description prompt. Guides body language and facial expressions of the digital human |
| mode |
String |
Required |
Generation mode:
std โ Standard mode
pro โ Professional mode
|
| callback_url |
String |
Optional |
Callback URL. Task status changes will be POST-ed to this URL |
| external_task_id |
String |
Optional |
Custom task ID, must be unique per user. If not provided, the system will automatically use the internal task ID |
โ ๏ธ Important
Either text or sound_file must be provided. If both are omitted, the request will be rejected.
Example Request
curl -X POST \
-H "Authorization: Token {your_api_key}" \
-H "Content-Type: application/json" \
-d '{
"model_name": "kling-v2-6",
"image": "https://your-image-url.com/portrait.jpg",
"text": "Hello everyone, welcome to our product demonstration.",
"mode": "pro",
"prompt": "The person speaks confidently with natural hand gestures"
}' \
https://api.imagine-future.com/ai/kling/v1/videos/avatar/image2video
Response Example
{
"code": 0,
"message": "SUCCEED",
"request_id": "req_xyz789abc012",
"data": {
"task_id": "882901234567890123",
"task_status": "submitted",
"task_status_msg": "",
"task_info": {
"external_task_id": "your_custom_id_or_system_id"
},
"created_at": 1715180100000,
"updated_at": 1715180100000
}
}
Query Kling Task
Query the current status of a Kling task. Supports querying by either the system task ID or the Kling-assigned task ID. The system automatically syncs task state and handles credit deduction when the task reaches a terminal state.
GET
https://api.imagine-future.com/ai/kling/v1/tasks/{taskId}?endpoint=videos/motion-control
Request Headers
| Field | Value | Description |
| Authorization | Token {your api key} | Replace {} with your API Key |
Path Parameters
| Field | Type | Required | Description |
| taskId |
String |
Required |
Task ID โ can be either the system's internal task ID or the Kling-assigned task_id |
Query Parameters
| Field | Type | Required | Description |
| endpoint |
String |
Optional |
Query endpoint. Default: videos/motion-control. For Avatar tasks use: videos/avatar/image2video |
Response Fields
| Field | Type | Description |
| code | Integer | Response code. 0 = success |
| message | String | Response message |
| data.task_id | String | Kling task ID |
| data.task_status | String | Task status: submitted, processing, succeed, failed |
| data.task_status_msg | String | Status description or error message |
| data.task_info.external_task_id | String | External task ID (your custom ID or system-assigned) |
| data.task_result.videos | Array | Generated video list (available when task_status is succeed) |
| data.task_result.videos[].url | String | Video download URL (expires in 30 minutes) |
| data.task_result.videos[].duration | String | Video duration in seconds |
| data.created_at | Long | Task creation timestamp (ms) |
| data.updated_at | Long | Last update timestamp (ms) |
Example Request โ Motion Control Task
curl -H "Authorization: Token {your_api_key}" \
"https://api.imagine-future.com/ai/kling/v1/tasks/881704293106061404?endpoint=videos/motion-control"
Example Request โ Avatar Task
curl -H "Authorization: Token {your_api_key}" \
"https://api.imagine-future.com/ai/kling/v1/tasks/882901234567890123?endpoint=videos/avatar/image2video"
Response Example (Success)
{
"code": 0,
"message": "SUCCEED",
"request_id": "req_query_001",
"data": {
"task_id": "881704293106061404",
"task_status": "succeed",
"task_status_msg": "",
"task_info": {
"external_task_id": "system_generated_task_id"
},
"task_result": {
"videos": [
{
"id": "video_001",
"url": "https://cdn.klingai.com/video/result_xxx.mp4",
"duration": "8"
}
]
},
"created_at": 1715180000000,
"updated_at": 1715180500000
}
}
Response Example (Processing)
{
"code": 0,
"message": "SUCCEED",
"request_id": "req_query_002",
"data": {
"task_id": "881704293106061404",
"task_status": "processing",
"task_status_msg": "",
"task_info": {
"external_task_id": "system_generated_task_id"
},
"task_result": null,
"created_at": 1715180000000,
"updated_at": 1715180200000
}
}
๐ก Task Status Mapping
Kling uses different status names than our system internally. The mapping is:
submitted โ Task created, waiting in queue
processing โ Task is being processed
succeed โ Generation complete, video available
failed โ Task failed, check task_status_msg for details
๐ก Polling Recommendation
Poll the Query Task endpoint every 10โ15 seconds until task_status changes to succeed or failed. Video URLs expire after 30 minutes โ download promptly.
Pricing
Credits consumed per generation vary by model, resolution, duration, and features.
ViduQ3
| Model | Feature | Resolution | Duration | Credits |
viduq3-pro | Text/Image/StartEnd/Ref to Video | 540p | 5s | 20 |
viduq3-pro | Text/Image/StartEnd/Ref to Video | 720p | 5s | 40 |
viduq3-pro | Text/Image/StartEnd/Ref to Video | 1080p | 5s | 80 |
viduq3-pro | Text/Image/StartEnd/Ref to Video | 720p | 8s | 64 |
viduq3-pro | Text/Image/StartEnd/Ref to Video | 1080p | 8s | 128 |
viduq3-pro | Text/Image/StartEnd/Ref to Video | 720p | 16s | 128 |
viduq3-pro | Text/Image/StartEnd/Ref to Video | 1080p | 16s | 256 |
viduq3-turbo | Text/Image/StartEnd/Ref to Video | 720p | 5s | 20 |
viduq3-turbo | Text/Image/StartEnd/Ref to Video | 1080p | 5s | 40 |
viduq3-turbo | Text/Image/StartEnd/Ref to Video | 720p | 8s | 32 |
viduq3-turbo | Text/Image/StartEnd/Ref to Video | 1080p | 8s | 64 |
ViduQ2
| Model | Feature | Resolution | Duration | Credits |
viduq2 | Text/Image to Video | 540p | 5s | 10 |
viduq2 | Text/Image to Video | 720p | 5s | 20 |
viduq2 | Text/Image to Video | 1080p | 5s | 40 |
viduq2 | Text/Image to Video | 720p | 8s | 32 |
viduq2 | Text/Image to Video | 1080p | 8s | 64 |
viduq2 | Text/Image to Video | 720p | 10s | 40 |
viduq2 | Text/Image to Video | 1080p | 10s | 80 |
ViduQ1
| Model | Feature | Resolution | Duration | Credits |
viduq1 | Text/Image to Video | 1080p | 5s | 40 |
Image General Features
| Feature | Description | Credits |
| Reference to Image | Generate image from reference images + prompt | 10 |
Template Features
| Feature | Description | Credits |
| Template to Video | Generate video from template + images | Varies by template |
Digital Human
| Feature | Description | Credits |
| Digital Human Video | Generate digital human video content | Contact sales |
Kling AI
| Feature | Mode | Description | Credits |
| Motion Control | std | Apply video motion to image (standard) | Based on duration |
| Motion Control | pro | Apply video motion to image (professional) | Based on duration |
| Avatar | std | Digital human lip-sync video (standard) | Based on duration |
| Avatar | pro | Digital human lip-sync video (professional) | Based on duration |
Video Extension & Multi Frame Generation
| Feature | Description | Credits |
| Video Extension | Extend existing video with additional frames | Same as original generation |
| Multi Frame Generation | Generate video with multiple keyframe control | Based on duration & resolution |
Solutions
๐ผ Enterprise Solutions
For custom pricing plans, volume discounts, and enterprise solutions, please contact the Futurelabs AI sales team.