Kling 3.0 Pro — Motion Control
curl --request POST \
--url https://api.muvi.video/v1/jobs/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"input": {
"image": "<string>",
"video": "<string>",
"prompt": "<string>",
"negative_prompt": "<string>",
"character_orientation": "<string>",
"keep_original_sound": true,
"shot_type": "<string>"
}
}
'import requests
url = "https://api.muvi.video/v1/jobs/submit"
payload = {
"model": "<string>",
"input": {
"image": "<string>",
"video": "<string>",
"prompt": "<string>",
"negative_prompt": "<string>",
"character_orientation": "<string>",
"keep_original_sound": True,
"shot_type": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
input: {
image: '<string>',
video: '<string>',
prompt: '<string>',
negative_prompt: '<string>',
character_orientation: '<string>',
keep_original_sound: true,
shot_type: '<string>'
}
})
};
fetch('https://api.muvi.video/v1/jobs/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"jobId": "<string>",
"status": "<string>",
"estimatedCompletionTime": "<string>",
"costMicroCents": 123
}Kling 3.0 Pro
Kling 3.0 Pro — Motion Control
Generate motion control using Kling 3.0 Pro via PixelByte API
POST
/
v1
/
jobs
/
submit
Kling 3.0 Pro — Motion Control
curl --request POST \
--url https://api.muvi.video/v1/jobs/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"input": {
"image": "<string>",
"video": "<string>",
"prompt": "<string>",
"negative_prompt": "<string>",
"character_orientation": "<string>",
"keep_original_sound": true,
"shot_type": "<string>"
}
}
'import requests
url = "https://api.muvi.video/v1/jobs/submit"
payload = {
"model": "<string>",
"input": {
"image": "<string>",
"video": "<string>",
"prompt": "<string>",
"negative_prompt": "<string>",
"character_orientation": "<string>",
"keep_original_sound": True,
"shot_type": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
input: {
image: '<string>',
video: '<string>',
prompt: '<string>',
negative_prompt: '<string>',
character_orientation: '<string>',
keep_original_sound: true,
shot_type: '<string>'
}
})
};
fetch('https://api.muvi.video/v1/jobs/submit', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"jobId": "<string>",
"status": "<string>",
"estimatedCompletionTime": "<string>",
"costMicroCents": 123
}Transfer the motion from a reference video to a still image using Kling 3.0 Pro, producing a character-controlled animated video.
This model uses a flat per-job base cost.
| Property | Value |
|---|---|
| Provider | Kling Plus |
| Model | Kling 3.0 Pro |
| Capability | Motion Control |
| Base Cost | 50,000 micro-cents/second ($0.05/second) |
| Processing Time | ~180 seconds |
Request Body
string
required
Model slug. Use
kling-plus/kling-3.0-pro/motion-control for motion control generation.object
required
Input parameters for motion control generation.
Hide properties
Hide properties
string
required
Reference image (JPG/PNG, max 10MB, min 300px).
string
required
Motion reference video (3-30 seconds).
string
Text description of the video to generate. max 1000 characters.
string
Negative prompt to discourage unwanted elements. max 1000 characters.
string
Character orientation reference. Options:
image, video.boolean
Retain original video sound. Default:
true.string
Camera shot composition mode. Options:
customize, intelligent. Default: customize.string
HTTPS URL to receive a webhook notification when the job completes or fails.
Pricing
Base cost: 50,000 micro-cents per second ($0.05/second)finalCost = baseCost
Default cost: Flat = 50,000 micro-cents ($0.05)
Response
string
Unique identifier for the submitted job.
string
Initial job status. Always
"pending" on successful submission.string
ISO 8601 timestamp of the estimated completion time.
number
The cost of the job in micro-cents.
Code Examples
curl -X POST https://api.muvi.video/v1/jobs/submit \
-H "Authorization: Bearer $PIXELBYTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-plus/kling-3.0-pro/motion-control",
"input": {
"image": "https://example.com/image.jpg",
"video": "https://example.com/reference.mp4",
"prompt": "A dancer moves gracefully following the reference choreography, vibrant studio lighting.",
"character_orientation": "image"
}
}'
import requests
response = requests.post(
"https://api.muvi.video/v1/jobs/submit",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"model": "kling-plus/kling-3.0-pro/motion-control",
"input": {
"image": "https://example.com/image.jpg",
"video": "https://example.com/reference.mp4",
"prompt": "A dancer moves gracefully following the reference choreography, vibrant studio lighting.",
"character_orientation": "image"
}
}
)
data = response.json()
print(data)
const response = await fetch("https://api.muvi.video/v1/jobs/submit", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "kling-plus/kling-3.0-pro/motion-control",
input: {
image: "https://example.com/image.jpg",
video: "https://example.com/reference.mp4",
prompt: "A dancer moves gracefully following the reference choreography, vibrant studio lighting.",
character_orientation: "image"
}
})
});
const data = await response.json();
console.log(data);
⌘I
