MaasUnionMaasUnion
API Reference
AI Model APIVideoKling Video

Kling Motion Control

Channel type: Kling Extended (66) Gateway path: POST https://maasunion.com/kling/v1/extended/videos/motion-control · GET .../motion-control/{task_id} Official upstream: https://api-beijing.klingai.com (/v1/videos/motion-control)


Overview

The motion control capability is based on a person reference image and a motion reference video, transferring the reference motion onto the specified person to generate a video.


Authentication

HeaderRequiredDescription
AuthorizationYesBearer {your_api_token}
Content-TypeRequired for POSTapplication/json

Create Task

POST https://maasunion.com/kling/v1/extended/videos/motion-control

Request Parameters

ParameterTypeRequiredDescription
model_namestringYesModel name, e.g. kling-v2-6
image_urlstringYesPerson reference image URL
promptstringNoMotion description prompt
video_urlstringYesMotion reference video URL
keep_original_soundstringNoKeep original sound: yes / no
character_orientationstringNoCharacter orientation: image
modestringNostd / pro / 4k
callback_urlstringNoCallback URL
external_task_idstringNoCustom task ID

Request Example

curl --request POST \
  --url "https://maasunion.com/kling/v1/extended/videos/motion-control" \
  --header "Authorization: Bearer {your_api_token}" \
  --header "Content-Type: application/json" \
  --data '{
    "model_name": "kling-v2-6",
    "image_url": "https://example.com/person.jpg",
    "prompt": "人物跟随参考视频中的动作",
    "video_url": "https://example.com/motion-ref.mp4",
    "keep_original_sound": "yes",
    "character_orientation": "image",
    "mode": "pro"
  }'

Create Response

{
  "code": 0,
  "message": "string",
  "request_id": "string",
  "data": {
    "task_id": "gateway_public_task_id",
    "task_status": "submitted",
    "created_at": 1722769557708,
    "updated_at": 1722769557708
  }
}

Query Task

GET https://maasunion.com/kling/v1/extended/videos/motion-control/{task_id}

curl --request GET \
  --url "https://maasunion.com/kling/v1/extended/videos/motion-control/{task_id}" \
  --header "Authorization: Bearer {your_api_token}"

The query response returns the generated video in task_result.videos, with the same structure as the standard video:

{
  "code": 0,
  "data": {
    "task_id": "gateway_public_task_id",
    "task_status": "succeed",
    "task_result": {
      "videos": [
        { "id": "string", "url": "string", "watermark_url": "string", "duration": "5" }
      ]
    },
    "final_unit_deduction": "string"
  }
}

Task Status

task_statusMeaning
submittedSubmitted
processingProcessing
succeedSucceeded
failedFailed

For more general information, see Kling Gateway Overview.

How is this guide?