Kling V4 API docs

Open Playground →

Start building

Send your first request

Submit this model through the SandBase Unified Run API.

Production API
Unified Run API endpoint
https://api.sandbase.ai/v1/run
Model ID
kwaivgi/kling-video/v4
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
  -X POST "https://api.sandbase.ai/v1/run" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'SANDBASE_JSON'
{
  "model": "kwaivgi/kling-video/v4"
}
SANDBASE_JSON
)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
  status=$(printf '%s' "$result" | jq -r .status)
  case "$status" in completed|failed|timeout) break ;; esac
  sleep 2
  result=$(curl --fail-with-body --silent \
    -H "Authorization: Bearer $SANDBASE_API_KEY" \
    "https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"

2. Authentication

Create a SandBase API key and set it in your server environment. All requests use Bearer authentication.

API key environment variable
export SANDBASE_API_KEY="YOUR_API_KEY"

Keep the key on your server. Do not expose it in browser code or commit it to a repository.

3. Queue

Submit a request

POST to /v1/run with this model ID and its inputs. The request example above includes submission and polling.

Fetch request status and result

Use the returned run ID to poll until the status is completed, failed or timeout. Read output only after completed.

Poll run status
curl "https://api.sandbase.ai/v1/run/$RUN_ID" \
  -H "Authorization: Bearer $SANDBASE_API_KEY"

4. Files

Hosted files

Pass a publicly accessible file URL in the model’s image, video or audio field. Supported formats and limits are shown beside each Playground input.

Uploading images

Use the upload or replace control on supported image fields in the Playground. Video URL fields accept a hosted driving video; they do not imply video-upload support.

5. Schema

Input

imagestring

Optional start image URL.

promptstringrequired

Text prompt for the generated video.

Request body
{
  "model": "kwaivgi/kling-video/v4"
}

Output

A completed run exposes its result in output. The following is the model’s saved example, not a new generation.

No example output has been published yet. Use Playground → Result → JSON after a completed run to inspect your response.