Kling Task Query
Query Text-to-Video Task
GET /kling/v1/videos/text2video/{task_id}
curl https://crazyrouter.com/kling/v1/videos/text2video/kling_t2v_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"
Query Image-to-Video Task
GET /kling/v1/videos/image2video/{task_id}
curl https://crazyrouter.com/kling/v1/videos/image2video/kling_i2v_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"
Processing
{
"code": 0,
"message": "success",
"data": {
"task_id": "kling_t2v_abc123",
"task_status": "processing",
"task_status_msg": "Video generating"
}
}
Completed
{
"code": 0,
"message": "success",
"data": {
"task_id": "kling_t2v_abc123",
"task_status": "succeed",
"task_status_msg": "Success",
"task_result": {
"videos": [
{
"id": "video_001",
"url": "https://cdn.klingai.com/videos/...",
"duration": "5.0"
}
]
}
}
}
Failed
{
"code": 0,
"message": "success",
"data": {
"task_id": "kling_t2v_abc123",
"task_status": "failed",
"task_status_msg": "Content moderation failed"
}
}
Task Status
| Status | Description |
|---|
submitted | Submitted |
processing | Processing |
succeed | Succeeded |
failed | Failed |
Complete Workflow Example
import requests
import time
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://crazyrouter.com"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}
# 1. Submit text-to-video task
resp = requests.post(f"{BASE_URL}/kling/v1/videos/text2video", headers=headers, json={
"model_name": "kling-v1-6",
"prompt": "A cat chasing butterflies in a garden",
"duration": "5",
"aspect_ratio": "16:9"
})
task_id = resp.json()["data"]["task_id"]
# 2. Poll for results
while True:
resp = requests.get(f"{BASE_URL}/kling/v1/videos/text2video/{task_id}", headers=headers)
data = resp.json()["data"]
if data["task_status"] == "succeed":
video_url = data["task_result"]["videos"][0]["url"]
print(f"Video URL: {video_url}")
break
elif data["task_status"] == "failed":
print(f"Failed: {data['task_status_msg']}")
break
time.sleep(10)
A polling interval of 10 seconds is recommended. Video generation typically takes 2-5 minutes.