Kling Motion Control 2.6 transfers motion from a reference video onto the character in a reference image. On APIMart it uses model ID kling-v2-6-motion-control with std (720p) and pro (1080p) modes; the output follows the reference video length (3–10 s or 3–30 s) and is billed per second of that video.
Service Highlights
Video link valid for 72 hours
Transparent pricing with no hidden fees. Pay only for what you use.
| Variant | Tier | GoldCurrent price | Platinum | Diamond | Official | Your savings |
|---|---|---|---|---|---|---|
kling-v2-6-motion-control | 720P | 0.5712Credits(~$0.0571)/sec | 0.5426Credits(~$0.0543)/sec | 0.5141Credits(~$0.0514)/sec | 0.714Credits(~$0.0714)/sec | 20% |
| 1080P | 0.9144Credits(~$0.0914)/sec | 0.8687Credits(~$0.0869)/sec | 0.823Credits(~$0.0823)/sec | 1.143Credits(~$0.1143)/sec | 20% |
* Actual costs are subject to final output.
Send one character image and one reference video to Kling Motion Control 2.6 through APIMart. The character performs the motion from the video, and you pay per second of the reference clip.
50K+
Active Users
99.9%
Uptime
2x
Faster
—
Cost Savings
Call kling-v2-6-motion-control with one POST request. Generation is asynchronous: submit a task, then poll the task endpoint for the video URL.
Save the key you created above in the APIMART_API_KEY environment variable and send it as Authorization: Bearer <key> on every Kling API request.
POST /v1/videos/generations with model kling-v2-6-motion-control, image_url, video_url, character_orientation and mode. Billing follows the reference video's actual duration. The example.com URLs are placeholders: replace them with your own publicly accessible files. The task ID is in data[0].task_id.
Poll GET /v1/tasks/{task_id} until status is completed, then read the video URL from data.result.videos[0].url[0] and the final charge from cost. APIMart keeps results for 72 hours, so download the videos you want to keep.
See the Kling Motion Control API reference for every parameter, scenario and response field.
curl -X POST https://api.apimart.ai/v1/videos/generations \
-H "Authorization: Bearer $APIMART_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-v2-6-motion-control",
"prompt": "The character follows the dance in the reference video, smooth motion, realistic style",
"image_url": "https://example.com/character.png",
"video_url": "https://example.com/dance-reference.mp4",
"character_orientation": "video",
"mode": "std",
"keep_original_sound": "yes"
}'import os
import time
import requests
API_BASE = "https://api.apimart.ai"
headers = {"Authorization": f"Bearer {os.environ['APIMART_API_KEY']}"}
# 1. Submit the generation task
payload = {
"model": "kling-v2-6-motion-control",
"prompt": "The character follows the dance in the reference video, smooth motion, realistic style",
"image_url": "https://example.com/character.png",
"video_url": "https://example.com/dance-reference.mp4",
"character_orientation": "video",
"mode": "std",
"keep_original_sound": "yes"
}
resp = requests.post(f"{API_BASE}/v1/videos/generations", headers=headers, json=payload, timeout=60)
resp.raise_for_status()
task_id = resp.json()["data"][0]["task_id"]
# 2. Poll the task until it finishes
for _ in range(200):
task_resp = requests.get(f"{API_BASE}/v1/tasks/{task_id}", headers=headers, timeout=30)
task_resp.raise_for_status()
task = task_resp.json()["data"]
if task["status"] == "completed":
print(task["result"]["videos"][0]["url"][0])
break
if task["status"] == "failed":
raise RuntimeError(task.get("error", {}).get("message", "generation failed"))
time.sleep(10)
else:
raise TimeoutError(f"task {task_id} did not finish in time; continue GET polling with this task ID")TASK_ID="task_xxx" # replace with the task_id returned by the POST request
curl "https://api.apimart.ai/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $APIMART_API_KEY"| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Required | Default: kling-v2-6-motion-control | kling-v2-6-motion-control or kling-v3-motion-control. |
image_url | string | Required | Default: — | Public URL of the reference image with the character to animate. |
video_url | string | Required | Default: — | Public direct link to the reference video; MP4 or MOV under 100 MB is recommended. At least 3 seconds. |
character_orientation | string | Required | Default: — | image (reference video 3–10 s) or video (reference video 3–30 s). |
mode | string | Required | Default: — | std (720p) or pro (1080p, higher quality, more latency). |
prompt | string | Optional | Default: — | Optional description of motion, camera movement and style. |
keep_original_sound | string | Optional | Default: yes | yes keeps the reference video's audio; no drops it. |
nsfw_check | boolean | Optional | Default: false | Review the prompt and input image with omni-moderation-latest before submission. |
Compare Kling video models on APIMart. Check each model’s availability, capabilities and pricing on its own page.
| Model | Best for | Resolution | Duration |
|---|---|---|---|
| Kling 4.0 API | Text, frame and multimodal generation, video editing and extension, always with stereo audio | 720P / 1080P | 3–30 s |
| Kling 3.0 API | Cinematic text-to-video and image-to-video with first/last-frame control and multi-shot prompts | 720P / 1080P / 4K | 3–15 s |
| Kling 3.0 Omni API | All-in-one generation from text, images and video, with reference roles and video editing | 720P / 1080P / 4K | 3–15 s |
| Kling 3.0 Turbo API | Speed-optimized text-to-video and first-frame image-to-video | 720P / 1080P | 3–15 s |
| Kling Video O1 API | One model for text-to-video, image references, first/last frames and video editing | 720P / 1080P | 5 s / 10 s |
| Kling 2.6 API | Native audio (pro mode), dynamic masks and camera control | 720P / 1080P | 5 s / 10 s |
| Kling Motion Control 2.6 APIThis page | Transfer motion from a reference video onto the subject of your image | 720P / 1080P | Follows reference video |
| Kling 3.0 Motion Control API | Newer Kling 3.0 generation of reference-video motion transfer | 720P / 1080P | Follows reference video |
Every feature below matches the kling-v2-6-motion-control parameters in the APIMart docs.
Real-world applications of reference image and reference video motion control
Generate motion-controlled clips in three steps
Register on APIMart and create your API key.
Upload a reference image and a reference video, then choose character orientation, mode and whether to keep the original sound.
Call POST /v1/videos/generations with image_url, video_url, character_orientation, mode and an optional prompt.
What teams are saying about Kling Motion Control. These are original Kling Motion Control series reviews and may refer to either model.
“This is exactly what we needed for fast iteration. A reference image locks the subject, while a reference video gives us reliable motion timing.”
Sarah Johnson
Creative Director
“We dropped the motion-control API into our pipeline and immediately cut integration time. The minimal API surface makes it a joy to scale.”
James Liu
Senior Developer
Inputs, orientation, modes, pricing and API integration.
Kling Motion Control 2.6 animates the character in a reference image with the motion from a reference video. On APIMart it uses model ID kling-v2-6-motion-control. You send image_url, video_url, character_orientation and mode, and receive a video that follows the reference motion.
They are two generations of the same motion-control workflow: kling-v2-6-motion-control and kling-v3-motion-control. Both take image_url, video_url, character_orientation and mode, offer std and pro, follow the length of your reference video and are billed per second. Each model and mode has its own rate; Kling 2.6 Motion Control is the lower-cost option.
Yes. The native motion-control route requires both image_url and video_url. The prompt is optional, while character_orientation and mode are required for every task.
There is no fixed default length: the generated video follows the duration of your reference video. The reference video must be at least 3 seconds, up to 10 seconds when character_orientation is image and up to 30 seconds when it is video. Billing is per second based on the reference video's actual duration, for kling-v2-6-motion-control in std or pro mode.
image uses the character's facing from your image and allows a 3–10 second reference video. video uses the facing from the reference video and allows 3–30 seconds. Choose video for full-body dances and turns.
std outputs 720p, balances speed and quality and has the lower per-second rate. pro outputs 1080p, takes longer to generate and has a higher rate. Both modes accept the same inputs.
Yes, by default. keep_original_sound is yes unless you set it to no, in which case the original audio track is dropped.
Billing is per second of the reference video, measured by the server from video_url, with separate std and pro rates. The pricing table on this page shows the live price; multiply it by the length of your reference video. You only pay for successful requests.
Yes. The Kling Motion Control 2.6 API (std and pro modes) is billed per second, based on the actual duration of your reference video. The pricing table on this page lists each specification of this model, and the prices shown are Gold member prices (20% off). Platinum and Diamond members save even more, up to 28%, and you only pay for successful requests.
Sign up for an APIMart account, open the API Keys page and create a key. The same key works for the Kling Motion Control 2.6 API and every other model on APIMart, with pay-as-you-go billing and no subscription.
No. There is no free quota for the Kling Motion Control 2.6 API on APIMart. Billing is pay-as-you-go, you only pay for successful requests, and every price comes with 20% off.
Send POST /v1/videos/generations with model kling-v2-6-motion-control, image_url, video_url, character_orientation and mode, plus an optional prompt. Poll GET /v1/tasks/{task_id} until the status is completed and download the video within 72 hours.
Explore more models in the same category.

Kling V3 Motion Control
kling-motion-control on APIMart uses a reference image plus a reference video to transfer subject motion into generated clips. Add an optional prompt, choose character orientation and mode, and control sound or watermark settings for kling motion workflows.

HappyHorse
HappyHorse-1.0 is an AI model that generates videos based on text input.
SkyReels V4 Std
SkyReels-V4-Fast is the first unified framework for joint audiovisual generation, restoration, and editing at cinema-grade quality, efficiently achieving 1080p, 15-second multi-shot video generation with synchronized audio and visuals through a dual-stream MMDiT architecture.

Wan 2.7 R2v
wan2.7‑r2v is the reference‑to‑video variant within Alibaba’s Wan 2.7 video generation model family. It uses one or more reference images or short clips as visual anchors and, combined with a text prompt, generates new video content that preserves the appearance and identity of characters or objects from the references while animating motion and scene direction. This makes it especially useful for consistent character representation, product showcases, brand assets, and creative workflows where visual continuity is important.