A continuous five-second vertical cinematic shot of one small unbranded red alpine cable-car cabin suspended from a taut overhead cable. The camera follows slowly alongside the cabin as it emerges from a thin bank of white cloud; distant rugged snow peaks gradually appear behind it. The cabin maintains its rigid shape, hangs upright and advances steadily along the cable, with subtle realistic sway. Cold blue shadows and warm early sun. Spacious mountain atmosphere, coherent depth and restrained camera movement, no cuts, no lettering or logos.
Kling 1.6 Standard Text to Video API
kwaivgi/kling-video/v1.6/standard/text-to-videoKling 1.6 Standard Text to Video transforms natural language prompts into cohesive 720p video clips, with flexible 5-second or 10-second durations, realistic physical dynamics, and cinematic camera control. It preserves prompt intent and spatial continuity across dynamic scene transitions while rendering authentic lighting and natural character movement.
Examples
REST API Spec
Quick Start
Submit an endpoint request and poll for status. Replace example URLs with your accessible files.
Step 1: Configure API authentication
Obtain an API key from the dashboard and include Authorization: Bearer <API_KEY> in every request header.
- Submission Endpoint
- POST
https://api.vidgo.ai/api/generate/submit - Auth Header
- Authorization: Bearer VIDGO_API_KEY
Step 2: Submit a generation task
POST /api/generate/submit. Pass model and optional callback_url at the root level, with generation parameters inside input.
REQUEST_BODY=$(cat <<'JSON'
{
"model": "kwaivgi/kling-video/v1.6/standard/text-to-video",
"input": {
"prompt": "A quiet forest in morning light, with a slow camera pan.",
"duration": 5
}
}
JSON
)
RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
CODE=$(printf '%s' "$RESPONSE" | jq -r '.code // empty')
if [ "$CODE" != "0" ] && [ "$CODE" != "200" ]; then
printf 'API error: %s
' "$RESPONSE" >&2
exit 1
fi
printf '%s
' "$RESPONSE"Step 3: Poll for task completion
Poll status with task_id; continue while not_started or running, and stop on finished or failed. Read video URLs from data.files[].file_url on success, or data.error_message on failure.
Status Endpoint
GET https://api.vidgo.ai/api/generate/status/{task_id}Poll status using task_id; continue while not_started or running, stop when finished or failed. On success, read data.files[].file_url; on failure, read data.error_message.
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "task-example",
"status": "not_started",
"created_time": "2026-09-23T08:00:00"
}
}{
"code": 200,
"data": {
"task_id": "task-unified-...",
"status": "finished",
"files": [
{
"file_url": "https://storage.vidgo.ai/generated/video.mp4",
"file_type": "video"
}
],
"created_time": "2026-08-22T10:00:00Z",
"progress": 100,
"error_message": null
}
}Complete end-to-end script example
Expand to view a production-ready script with retry logic, error handling, and timeout safeguards.
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "kwaivgi/kling-video/v1.6/standard/text-to-video",
"input": {
"prompt": "A quiet forest in morning light, with a slow camera pan.",
"duration": 5
}
}
JSON
)
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
TASK_ID=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.data.task_id // .task_id // empty')
BUSINESS_CODE=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Submit failed:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
START_TIME=$(date +%s)
POLL_DELAY=2
while true; do
if [ $(( $(date +%s) - START_TIME )) -ge 600 ]; then
printf 'Timed out after 600 seconds
' >&2
exit 1
fi
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/$TASK_ID" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
BUSINESS_CODE=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Status request failed:
%s
' "$STATUS_RESPONSE" >&2
exit 1
fi
case "$STATUS" in
finished)
printf '%s' "$STATUS_RESPONSE" | jq -r '(.data.files // .files // [])[]?.file_url'
break
;;
failed)
printf '%s' "$STATUS_RESPONSE" | jq -r '.data.error_message // .error_message // "Generation failed"' >&2
exit 1
;;
not_started|running)
sleep "$POLL_DELAY"
if [ "$POLL_DELAY" -lt 10 ]; then POLL_DELAY=$((POLL_DELAY + 1)); fi
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
doneRequest Parameters (input object)
Supported generation parameters inside the input object when submitting a POST request to /api/generate/submit:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| prompt | string | Required | — | Required nonblank string, at most 2,500 Unicode characters after trimming. |
| duration | integer | Required | — | Required integer: 5 or 10 seconds. No strings, booleans or fractional durations. No API default; the playground starts at 5 seconds. |
| aspect_ratio | string | Optional | — | Optional: 1:1, 16:9 or 9:16. No default. |
| negative_prompt | string | Optional | — | Optional string, at most 2,500 Unicode characters. |
| cfg_scale | number | Optional | — | Optional finite number from 0 to 1. No default. Not supported in Elements. |
Response Fields (query result)
Task details returned when polling GET /api/generate/status/{task_id}:
| Field | Type | Description |
|---|---|---|
| code | integer | Business response code, 200 on success. |
| data.task_id | string | Globally unique asynchronous task identifier. |
| data.status | string | Execution status: not_started, running, finished, or failed. |
| data.files | array | Generated video files upon completion, each with file_url and file_type. |
| data.error_message | string | null | Error description if task fails. |
Task Lifecycle
Clients should inspect the status field and stop polling when reaching finished or failed:
not_startedTask received and queued for execution.
runningGeneration is in progress.
finishedGeneration complete; retrieve video URL from data.files.
failedGeneration failed; inspect data.error_message; deducted credits are refunded per standard policy.
Polling & Error Handling
- Recommended Polling IntervalStart polling every 2–3 seconds, increasing to 5 seconds as the task continues, to avoid excessive requests.
- Network Fluctuations & RetriesIf status polling encounters 5xx or timeouts, the task is still running; retry querying after a brief pause.
- Asynchronous Webhook CallbackProvide callback_url at the root of the request payload to receive the completed task result automatically via POST.
Specifications
| Specification | Value | Description |
|---|---|---|
| Model ID | kwaivgi/kling-video/v1.6/standard/text-to-video | Root-level model field. |
| Duration | 5 / 10s | Required integer: 5 or 10 seconds. No strings, booleans or fractional durations. No API default; the playground starts at 5 seconds. |
Kling 1.6 Standard Text to Video
Kling 1.6 Standard Text to Video is developed by Kuaishou (Kwaivgi) for cost-effective, high-quality text-to-video workflows. Developers and creators can submit descriptive prompts up to 2,500 Unicode characters to choreograph multi-stage subject action, ambient lighting, and expressive camera movement. The model renders continuous 5-second or 10-second videos in 720p resolution with physically believable motion, flexible aspect ratio selection, and transparent 9 credits per second pricing.
Why Choose This?
Direct Text-to-Video GenerationBring creative visions to life straight from descriptive prompts without requiring initial image assets or storyboards.
Realistic Physical DynamicsSimulates real-world gravity, fluid movements, and fabric inertia for authentic character movement and environmental interaction.
Multiple Aspect RatiosSupports 16:9 widescreen, 9:16 vertical, and 1:1 square compositions for seamless deployment across desktop, mobile, and social platforms.
Fine-Tuned Prompt GuidanceSupports up to 2,500 characters, optional negative prompts, and cfg_scale tuning from 0 to 1 to balance prompt adherence with creativity.
Predictable Per-Second PricingBilled at an affordable 9 credits per second ($0.045/s)—45 credits for 5s and 90 credits for 10s—with automatic credit refunds on failed tasks.
Parameters
| Parameter | Requirement | Description |
|---|---|---|
| prompt | Required | Required nonblank string, at most 2,500 Unicode characters after trimming. |
| duration | Required | Required integer: 5 or 10 seconds. No strings, booleans or fractional durations. No API default; the playground starts at 5 seconds. |
| aspect_ratio | Optional | Optional: 1:1, 16:9 or 9:16. No default. |
| negative_prompt | Optional | Optional string, at most 2,500 Unicode characters. |
| cfg_scale | Optional | Optional finite number from 0 to 1. No default. Not supported in Elements. |
How to Use
Describe Subject and SettingDefine character appearances, primary subjects, and lighting conditions in the opening sentences of your prompt.
Specify Camera MovementIncorporate cinematic camera language such as pan, tilt, zoom, or tracking shots to establish depth and perspective.
Configure Duration and RatioSelect 5 seconds or 10 seconds and choose an aspect ratio (16:9, 9:16, or 1:1) that fits your destination platform.
Adjust Negative Prompt and GuidanceOptionally add negative_prompt to suppress unwanted artifacts and tune cfg_scale to control prompt adherence.
Submit and Retrieve OutputPost your request to the asynchronous submit endpoint and poll with task_id to download the completed MP4 video.
Pricing
9 credits / second · $0.045 / second. 1 credit = $0.005. Fal comparison: $0.056 / second; save 20%.
| Usage | Rate | Details |
|---|---|---|
| 5 seconds | 45 credits · $0.225 | 9 credits × 5 seconds |
| 10 seconds | 90 credits · $0.450 | 9 credits × 10 seconds |
Best Use Cases
Social Media and Marketing ClipsQuickly produce engaging, high-impact video content for TikTok, Instagram Reels, and digital campaigns.
Creative Film PrevisualizationPrototype cinematic shot sequences, pacing, and camera angles during early pre-production to test script concepts.
Advertising Concept MockupsConvert storyboard drafts and copy ideas into dynamic video pitches with believable lighting and movement.
Game and Animation VisualsVisualize fantasy and sci-fi environments, atmospheric landscapes, and dynamic character introductions.
Pro Tips
- Use Action-Oriented Verbs: Structure prompts with sequential action phrases like 'walks toward the camera and turns around' for smoother motion.
- Utilize the 2,500-Character Capacity: Add rich details about lighting, textures, and ambient dynamics (e.g., 'falling leaves drifting in the wind') to enhance visual depth.
- Calibrate cfg_scale for Your Goal: Set cfg_scale to 0.3–0.5 for stylistic creative freedom, or 0.7–1.0 for strict adherence to descriptive scripts.
- Filter Artifacts with Negative Prompts: Add terms such as 'blurry, distorted anatomy, overexposed, low quality' to maintain clean output.
- Match Duration to Scene Complexity: Choose 5 seconds (45 credits) for quick cutaways and 10 seconds (90 credits) for developing narrative arcs.
Notes
- Text-Only Input Contract: This endpoint only accepts prompt strings and text control parameters; image input fields are not supported.
- 720p Resolution Output: Standard tier renders in 720p resolution; choose the Pro endpoint if your workflow requires native 1080p full HD.
- Asynchronous Task Execution: Tasks are tracked asynchronously via unique task_id; credits are deducted upon validation and refunded if generation fails.
Kling 1.6 Standard Text to Video API frequently asked questions
What is the Kling 1.6 Standard Text to Video API?
Kling 1.6 Standard Text to Video is a Kuaishou (Kwaivgi) model for generating video clips from text prompts. It produces 720p resolution videos from natural language descriptions with 5-second and 10-second duration options, realistic physical dynamics, and multiple cinematic aspect ratios. Built on advanced multimodal diffusion architecture, it preserves scene composition and lighting continuity while rendering fluid, natural motion. You can call it programmatically or try it from the playground above.
Does Kling 1.6 Standard Text to Video support 10-second video generation?
Yes. The model provides both 5-second and 10-second duration options. Generating a 10-second clip costs 90 credits and enables longer continuous action, multi-stage storytelling, and gradual camera transitions.
What aspect ratios are supported by Kling 1.6 Standard Text to Video?
The endpoint supports three standard aspect ratios: 16:9 widescreen, 9:16 vertical, and 1:1 square. You can configure aspect_ratio in your request to match desktop displays, mobile feeds, or square banners.
What does the cfg_scale parameter control in Kling 1.6 Standard Text to Video?
The cfg_scale parameter controls prompt adherence as a finite number between 0 and 1. Higher values force the generation to follow the text prompt strictly, while lower values give the model greater creative flexibility.
How is Kling 1.6 Standard Text to Video priced?
The endpoint is billed per second at 9 credits per second (1 credit = $0.005, or $0.045 per second). A 5-second clip costs 45 credits ($0.225) and a 10-second clip costs 90 credits ($0.450), with automatic refunds if generation fails.
What is the maximum prompt length for Kling 1.6 Standard Text to Video?
The prompt field supports up to 2,500 Unicode characters after trimming whitespace. This generous limit allows for detailed descriptions of characters, environments, actions, and camera movements.
When should I choose Kling 1.6 Standard instead of Pro?
Standard is ideal for cost-sensitive workflows, early concept exploration, and high-volume iterations at 720p resolution for 9 credits per second. Choose the Pro endpoint when your project requires native 1080p full HD resolution and enhanced fine detail.