Kuaishou
Kling 4.0 Flash
kling-4.0-flash/text-to-video
Try kling-4.0-flash/text-to-video
Input
Showcases
View all showcasesOutput
videoPricing
kling-4.0-flash/text-to-video per second
| Specifications | Unit Price |
|---|---|
| 720P | |
Introduction coming soon
A detailed guide for this model is being prepared. Pricing, parameters and the API docs below are already available.
What's new
View changelog →- New model Kling 4.0 Flash Now Available: Text, Image and Reference to Video
Frequently asked questions
View all FAQs →-
How long a video can this model generate?
A single generation produces 3 to 20 seconds, 5 seconds by default, billed per second. For long videos over 20 seconds, you need to split them into multiple segments, generate each separately, and then stitch them together.
-
What is the highest resolution that can be output?
Only one tier is available: 720p. The resolution parameter only accepts 720p, and this applies equally to text-to-video, image-to-video, and reference-to-video.
-
How do I choose between image-to-video and reference-to-video?
To make the picture start moving from a still frame, use image-to-video: put only 1 first-frame image in image_urls, and the output aspect ratio follows that image. To have the people and styles from multiple images participate in the composition, use reference-to-video: image_urls can hold 1 to 10 images, and you can choose aspect_ratio yourself.
-
Can the first frame and the last frame be controlled?
Specifying the end frame is currently not supported, and there is no multi-keyframe control. Image-to-video only fixes the starting image; the ending is generated by the model according to the prompt. To make the ending more controllable, you can clearly state the final action and where the camera stops in the prompt.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: kling-4.0-flash/text-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for kling-4.0-flash/text-to-video and route default — see the parameter table below.
promptstringRequiredminLength 1maxLength 2500What happens in the shot: subject, action, camera movement, lighting and mood. Audio is generated together with the picture.
durationintegerOptionalDefault: 5min 3max 20Clip length in seconds (3-20). Billed per second.
resolutionstringOptionalDefault: "720p"Output resolution. This model renders at 720p only.
720paspect_ratiostringOptionalDefault: "16:9"Frame shape of the output. 21:9 gives an ultrawide cinematic frame.
16:99:161:121:9callbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kling-4.0-flash/text-to-video",
"input": {
"prompt": "…",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "kling-4.0-flash/text-to-video",
input: {
"prompt": "…",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "kling-4.0-flash/text-to-video",
"input": {
"prompt": "…",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
Gemini Omni 1.2 Google $0.023 /second -
Veo 3.1 Fast Google $0.170 /second -
Wan 2.7 Video Alibaba $0.100 /second -
Kandinsky 6.0 Pro $1.93 /video -
Grok Imagine 1.5 Lite xAI $0.029 /second -
Kling 2.5 Kuaishou $0.090 /second -
HeyGen Avatar IV HeyGen $0.150 /second -
Seedance 2.0 ByteDance $0.017 /second -
HeyGen Avatar V HeyGen $0.150 /second -
Gemini Omni 1.1 Google $0.450 /video -
FLUX 3 Video Black Forest Labs $0.090 /second -
LTX 2.5 Fast Lightricks $0.086 /second