Kling 2.6
Affordable Kling: 5 or 10 second clips from a description or a photo. Pro adds sound and the last frame.
Good for: short clips, stories, animating photos
Price without sound; with sound costs more — the button shows the total.
For developers →How to get a better result
"A ginger cat on a windowsill, rain outside, watercolor".
"Soft sunset", "neon light", "cozy, warm tones".
Refine the description and press "Another version" — every result is new.
Pass this model in the request kling-2.6
1. Create a task POST /api/v1/jobs/createTask
curl -X POST https://mixmedia.tech/api/v1/jobs/createTask \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-123" \
-d '{
"model": "kling-2.6",
"callBackUrl": "https://your-app.example/callback",
"input": {
"prompt": "A samurai slowly draws his sword in the rain, drops freeze in the air, the camera circles the hero",
"resolution": "720p",
"aspect_ratio": "16:9",
"duration": "5"
}
}'import time, requests
API = "https://mixmedia.tech/api/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
task = requests.post(f"{API}/jobs/createTask", headers=HEADERS, json={
"model": "kling-2.6",
"callBackUrl": "https://your-app.example/callback",
"input": {
"prompt": "A samurai slowly draws his sword in the rain, drops freeze in the air, the camera circles the hero",
"resolution": "720p",
"aspect_ratio": "16:9",
"duration": "5"
}
}).json()
task_id = task["data"]["taskId"]
while True:
info = requests.get(f"{API}/jobs/recordInfo", headers=HEADERS, params={"taskId": task_id}).json()["data"]
if info["state"] in ("success", "fail"):
break
time.sleep(4)
print(info["state"], info.get("resultJson") or info.get("failMsg"))const API = "https://mixmedia.tech/api/v1";
const headers = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };
const { data } = await fetch(`${API}/jobs/createTask`, {
method: "POST", headers,
body: JSON.stringify({
"model": "kling-2.6",
"callBackUrl": "https://your-app.example/callback",
"input": {
"prompt": "A samurai slowly draws his sword in the rain, drops freeze in the air, the camera circles the hero",
"resolution": "720p",
"aspect_ratio": "16:9",
"duration": "5"
}
}),
}).then((r) => r.json());
let info;
do {
await new Promise((r) => setTimeout(r, 4000));
info = (await fetch(`${API}/jobs/recordInfo?taskId=${data.taskId}`, { headers }).then((r) => r.json())).data;
} while (!["success", "fail"].includes(info.state));
console.log(info.state, info.resultJson ?? info.failMsg);Response: data.taskId. callBackUrl and Idempotency-Key are optional.
2. Status and result GET /api/v1/jobs/recordInfo
curl "https://mixmedia.tech/api/v1/jobs/recordInfo?taskId=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
data.state: waiting, queuing, generating, success, fail. On success data.resultJson is a JSON string with resultUrls.
3. Upload a file POST /api/v1/files/upload
curl -X POST https://mixmedia.tech/api/v1/files/upload \
-H "Authorization: Bearer YOUR_API_KEY" -F "file=@photo.jpg"
The response has data.url. Pass that URL in the file field. Any public https URL works too.
About the model
Kling 2.6 is a Kuaishou video model. 5 or 10 second clips from a description or a photo (the first frame).
Standard (720p) is the most affordable, without sound. Pro (1080p) has higher quality and lets you turn on sound (effects, music, voices) or set the last frame; sound and the last frame do not work together. You pay per second of the clip.


