Skip to Content
DocumentationModelsVideoKling 3.0

Kling 3.0

Use kling-3.0 to create video output. This page contains the complete request needed for this model.

Model facts

PropertyValue
Model IDkling-3.0
EndpointPOST /api/v1/generation/create
OutputVideo
Modestext-to-video, image-to-video
PricingView current pricing

Minimal request

curl -X POST https://api.api-stock.com/api/v1/generation/create \
  -H "Authorization: Bearer $API_STOCK_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "kling-3.0",
  "input": {
    "prompt": "A cinematic scene with soft natural light"
  }
}'

The create response contains a task ID:

{
  "code": 200,
  "data": {
    "taskId": "019ca881-9503-7270-a560-f00fc2b15785",
    "status": "not_started",
    "createdAt": "2026-08-22T12:00:00.000Z"
  }
}

Parameters

Parameters belong inside the top-level input object. Unknown fields are rejected.

ParameterTypeRequiredDefaultDescription
promptstringYesVideo content description max 2500 chars
resolution“720p” | “1080p” | “4k”No"720p"Video resolution tier (affects pricing)
durationnumberNo5Video duration in seconds (3-15). Billed per second min 3, max 15
aspectRatio“16:9” | “9:16” | “1:1”No"16:9"Video aspect ratio. Ignored in image-to-video mode — the ratio is taken from the input frame
generateAudiobooleanNofalseWhether to generate a native audio track (increases pricing on 720p and 1080p)
imageUrlsstring[]NoInput frames for image-to-video. One URL is used as the first frame, two as first + last frame

Modes

Minimal generation

{
  "model": "kling-3.0",
  "input": {
    "prompt": "A cinematic scene with soft natural light"
  }
}

With image urls

{
  "model": "kling-3.0",
  "input": {
    "prompt": "A cinematic scene with soft natural light",
    "imageUrls": [
      "https://example.com/input.jpg"
    ]
  }
}

Constraints

  • prompt: maximum 2500 characters.
  • resolution: allowed: 720p, 1080p, 4k.
  • duration: minimum 3; maximum 15.
  • aspectRatio: allowed: 16:9, 9:16, 1:1.

Invalid types, unsupported enum values, out-of-range numbers, and missing required fields return HTTP 400 with error.code: "invalid_input". Correct the request rather than retrying it unchanged.

Result

Poll the task or provide a top-level webhook URL in the create request:

curl https://api.api-stock.com/api/v1/task/status/$TASK_ID \
  -H "Authorization: Bearer $API_STOCK_KEY"

A successful media task returns one or more files:

{
  "code": 200,
  "data": {
    "taskId": "019ca881-9503-7270-a560-f00fc2b15785",
    "status": "finished",
    "files": [
      {
        "fileUrl": "https://storage.api-stock.com/result.mp4",
        "fileType": "video"
      }
    ],
    "createdTime": "2026-08-22T12:00:00.000Z"
  }
}

See Tasks and webhooks for terminal statuses, retries and webhook delivery.

Kling 3.0 — API Stock