Skip to content

Kling video generation

Kling submits async video tasks through an OpenAI-compatible endpoint. Requests are primarily JSON and support text-to-video, image-to-video, start/end frames, motion control, and more. Extension parameters go in .

http
POST /v1/videos

A successful submission returns id and status. Poll results with Task query.

Available models

Headers

NameTypeRequiredDescription
stringYesRequest authentication. Use a Bearer Token, for example:
stringYesRequest content type; must be

Request body

NameTypeRequiredDescription
stringYesModel name
stringYesPrompt; Chinese and English are supported
stringNoVideo duration in seconds
stringNoQuick size input, for example
stringNoReference image URL (image-to-video)
objectNoExtension parameter container; put upstream native parameters here

metadata

NameTypeDescription
objectOutput config: (seconds), ( / ), ( / / ), ( / )
stringScene type: (motion control), (avatar generation), (lip sync), (template effects)
stringMotion level: / (billing tiers for motion control)
booleanOff-peak billing: off-peak generation / immediate generation
stringEnd-frame image URL for start/end frame tasks
stringReference video URL
stringNative FileInfos passthrough (advanced)
stringNative ExtInfo string passthrough (advanced)

Request example

bash
curl -X POST https://octopusx.ai/v1/videos \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "Kling-3.0-Omni",
  "prompt": "Cyberpunk city at night, camera slowly pushing in",
  "seconds": "5",
  "metadata": {
    "output_config": {
      "resolution": "720P",
      "aspect_ratio": "16:9"
    }
  }
}'

Response example

json
{
  "id": "task_ZOAIupBoCLMo3dmUGcrKUcUEUnCLctc6",
  "object": "video",
  "model": "Kling-3.0-Omni",
  "status": "processing",
  "progress": 50,
  "created_at": 1774494511
}
json
{
  "id": "task_ZOAIupBoCLMo3dmUGcrKUcUEUnCLctc6",
  "object": "video",
  "model": "Kling-3.0-Omni",
  "status": "completed",
  "progress": 100,
  "created_at": 1774494511,
  "completed_at": 1774494622,
  "metadata": {
    "url": "https://example.com/video/aigcVideoGenFile.mp4"
  },
  "video_url": "https://example.com/video/aigcVideoGenFile.mp4"
}

Response fields

NameTypeDescription
stringTask ID
stringAlways
stringModel name
stringTask status: , , , ,
integerProgress percentage
integerCreation timestamp
integerCompletion timestamp (returned when completed)
stringVideo URL (inside metadata)
stringVideo URL (same as )