Kling 3.0 Pro — Start-End Frame to Video
curl --request POST \
--url https://api.muvi.video/v1/jobs/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"input": {
"prompt": "<string>",
"duration": "<string>",
"has_sound": "<string>",
"start_frame_url": "<string>",
"end_frame_url": "<string>",
"cfg_scale": 123,
"negative_prompt": "<string>",
"shot_type": "<string>"
}
}
'import requests
url = "https://api.muvi.video/v1/jobs/submit"
payload = {
"model": "<string>",
"input": {
"prompt": "<string>",
"duration": "<string>",
"has_sound": "<string>",
"start_frame_url": "<string>",
"end_frame_url": "<string>",
"cfg_scale": 123,
"negative_prompt": "<string>",
"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: {
prompt: '<string>',
duration: '<string>',
has_sound: '<string>',
start_frame_url: '<string>',
end_frame_url: '<string>',
cfg_scale: 123,
negative_prompt: '<string>',
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 — Start-End Frame to Video
Generate start-end frame to video using Kling 3.0 Pro via PixelByte API
POST
/
v1
/
jobs
/
submit
Kling 3.0 Pro — Start-End Frame to Video
curl --request POST \
--url https://api.muvi.video/v1/jobs/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "<string>",
"input": {
"prompt": "<string>",
"duration": "<string>",
"has_sound": "<string>",
"start_frame_url": "<string>",
"end_frame_url": "<string>",
"cfg_scale": 123,
"negative_prompt": "<string>",
"shot_type": "<string>"
}
}
'import requests
url = "https://api.muvi.video/v1/jobs/submit"
payload = {
"model": "<string>",
"input": {
"prompt": "<string>",
"duration": "<string>",
"has_sound": "<string>",
"start_frame_url": "<string>",
"end_frame_url": "<string>",
"cfg_scale": 123,
"negative_prompt": "<string>",
"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: {
prompt: '<string>',
duration: '<string>',
has_sound: '<string>',
start_frame_url: '<string>',
end_frame_url: '<string>',
cfg_scale: 123,
negative_prompt: '<string>',
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
}Generate a smooth video transition between a start frame and end frame using Kling 3.0 Pro.
| Property | Value |
|---|---|
| Provider | Kling Plus |
| Model | Kling 3.0 Pro |
| Capability | Start-End Frame to Video |
| Base Cost | 112,000 micro-cents/second ($0.112/second) |
| Processing Time | ~240 seconds |
Request Body
string
required
Model slug. Use
kling-plus/kling-3.0-pro/start-end-frame-to-video for start-end frame to video generation.object
required
Input parameters for start-end frame to video generation.
Hide properties
Hide properties
string
Text description of the video to generate. max 2500 characters.
string
Video duration in seconds. Options:
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. Default: 5.string
Enable audio generation. Options:
false, true. Default: true.string
required
URL of the starting frame image.
string
required
URL of the ending frame image.
number
Prompt adherence strength. min 0, max 1. Default:
0.5.string
Negative prompt. max 1000 characters.
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: 112,000 micro-cents per second ($0.112/second)finalCost = baseCost × has_sound × duration
| Factor | Option | Multiplier |
|---|---|---|
| Has Sound | true | 1.5x |
false | 1x | |
| Duration | 3 | 3x |
4 | 4x | |
5 | 5x | |
6 | 6x | |
7 | 7x | |
8 | 8x | |
9 | 9x | |
10 | 10x | |
11 | 11x | |
12 | 12x | |
13 | 13x | |
14 | 14x | |
15 | 15x |
Default cost (has_sound=
true, duration=5): 112,000 × 1.5 × 5 = 840,000 micro-cents ($0.84)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/start-end-frame-to-video",
"input": {
"start_frame_url": "https://example.com/start.jpg",
"end_frame_url": "https://example.com/end.jpg",
"prompt": "Smooth cinematic transition with natural camera movement.",
"duration": "5",
"has_sound": "true"
}
}'
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/start-end-frame-to-video",
"input": {
"start_frame_url": "https://example.com/start.jpg",
"end_frame_url": "https://example.com/end.jpg",
"prompt": "Smooth cinematic transition with natural camera movement.",
"duration": "5",
"has_sound": "true"
}
}
)
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/start-end-frame-to-video",
input: {
start_frame_url: "https://example.com/start.jpg",
end_frame_url: "https://example.com/end.jpg",
prompt: "Smooth cinematic transition with natural camera movement.",
duration: "5",
has_sound: "true"
}
})
});
const data = await response.json();
console.log(data);
⌘I
