MaasUnionMaasUnion
API Reference
AI Model APIVideoKling Video

Kling Standard Video (Text/Image to Video)

Channel type: Kling Video (50) Gateway path: POST/GET https://maasunion.com/kling/v1/standard/videos/{text2video|image2video} Official upstream: https://api.klingai.com (/v1/videos/text2video, /v1/videos/image2video)


Overview

The standard video endpoints cover Kling's traditional video models (1.0 ~ 3.0), distinguished by the model_name field, with identical endpoints and parameter-passing structures. They support text-to-video and image-to-video (including first & last frame).

For Omni models (O1 / V3 Omni), use the Omni Video endpoint; for 3.0 Turbo, use the Turbo endpoint.

Supported Models

model_nameSupported capabilities
kling-v3Text-to-Video, Image-to-Video
kling-v2-6Text-to-Video, Image-to-Video
kling-v2-5-turboText-to-Video, Image-to-Video
kling-v2-1-masterImage-to-Video
kling-v2-1Image-to-Video
kling-v2-masterText-to-Video, Image-to-Video
kling-v1-6Text-to-Video, Image-to-Video
kling-v1-5Text-to-Video, Image-to-Video
kling-v1Text-to-Video, Image-to-Video

Authentication

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

Upstream authentication is handled automatically by the gateway; the client does not need to pass the Kling key.


Text-to-Video

POST https://maasunion.com/kling/v1/standard/videos/text2video

Request Parameters

ParameterTypeRequiredDescription
model_namestringYesModel name, see the table above
promptstringYesPositive prompt
negative_promptstringNoNegative prompt
durationstringNoVideo duration (seconds): 5 / 10; some models support longer
modestringNoGeneration mode: std (720P) / pro (1080P) / 4k
aspect_ratiostringNoAspect ratio: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9
soundstringNoWhether to generate sound: on / off
callback_urlstringNoCallback URL for task status changes
external_task_idstringNoCustom task ID (unique on the user side)
cfg_scalenumberNoPrompt relevance, 0~1
callback_urlstringNoCallback URL

Request Example

curl --request POST \
  --url "https://maasunion.com/kling/v1/standard/videos/text2video" \
  --header "Authorization: Bearer {your_api_token}" \
  --header "Content-Type: application/json" \
  --data '{
    "model_name": "kling-v2-6",
    "prompt": "一只猫在草地上奔跑",
    "negative_prompt": "模糊, 变形",
    "duration": "5",
    "mode": "pro",
    "aspect_ratio": "16:9",
    "sound": "on"
  }'

Create Response

{
  "code": 0,
  "message": "string",
  "request_id": "string",
  "data": {
    "task_id": "gateway_public_task_id",
    "task_info": { "external_task_id": "string" },
    "task_status": "submitted",
    "created_at": 1722769557708,
    "updated_at": 1722769557708
  }
}
FieldDescription
codeError code; 0 means success
data.task_idGateway task ID, used for subsequent queries
data.task_statussubmitted / processing / succeed / failed

Image-to-Video

POST https://maasunion.com/kling/v1/standard/videos/image2video

Request Parameters

ParameterTypeRequiredDescription
model_namestringYesModel name
imagestringConditionalFirst frame image URL or Base64
image_tailstringConditionalLast frame image URL or Base64
promptstringNoPrompt
negative_promptstringNoNegative prompt
durationstringNoVideo duration (seconds)
modestringNostd / pro / 4k
aspect_ratiostringNoAspect ratio
soundstringNoon / off
callback_urlstringNoCallback URL
external_task_idstringNoCustom task ID

At least one of image and image_tail is required; choose one of image_tail, dynamic_masks/static_mask, or camera_control.

Request Example

curl --request POST \
  --url "https://maasunion.com/kling/v1/standard/videos/image2video" \
  --header "Authorization: Bearer {your_api_token}" \
  --header "Content-Type: application/json" \
  --data '{
    "model_name": "kling-v2-6",
    "image": "https://example.com/start-frame.jpg",
    "image_tail": "https://example.com/end-frame.jpg",
    "prompt": "镜头向前推进",
    "duration": "5",
    "mode": "pro"
  }'

Optional Extended Parameters

ParameterTypeDescription
multi_shotbooleanMulti-shot video; when true, prompt is invalid
shot_typestringShot mode: customize / intelligence
multi_promptarray[{index, prompt, duration}], required in customize mode
element_listarray[{element_id}] references subjects (Omni models)
voice_listarray[{voice_id}] references voices, specified in prompt with <<<voice_1>>>
dynamic_masks / static_maskobjectCamera motion control
camera_controlobjectCamera control parameters

Query Task

GET https://maasunion.com/kling/v1/standard/videos/text2video/{task_id} GET https://maasunion.com/kling/v1/standard/videos/image2video/{task_id}

Path parameterTypeRequiredDescription
task_idstringYesThe data.task_id from the create task response

Request Example

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

Query Response

{
  "code": 0,
  "message": "string",
  "request_id": "string",
  "data": {
    "task_id": "gateway_public_task_id",
    "task_status": "succeed",
    "task_status_msg": "string",
    "watermark_info": { "enabled": false },
    "task_result": {
      "videos": [
        {
          "id": "string",
          "url": "string",
          "watermark_url": "string",
          "duration": "5"
        }
      ]
    },
    "task_info": { "external_task_id": "string" },
    "final_unit_deduction": "string",
    "created_at": 1722769557708,
    "updated_at": 1722769557708
  }
}
FieldDescription
data.task_statussubmitted / processing / succeed / failed
data.task_status_msgReason shown on failure
data.task_result.videos[].urlVideo download URL (valid for about 30 days; please persist in time)
data.task_result.videos[].watermark_urlWatermarked video URL
data.final_unit_deductionNumber of credits deducted by the upstream

Task Status

task_statusMeaning
submittedSubmitted
processingProcessing
succeedSucceeded
failedFailed

Error Handling

When code != 0, the request failed; message / task_status_msg contains the specific reason. Common cases:

  • model_name not passed or the model is not enabled on the gateway
  • Invalid token or insufficient balance
  • Upstream parameter validation failed (e.g. neither image nor image_tail was passed)
  • Content moderation interception (see task_status=failed and task_status_msg when querying)

For more general information, see Kling Gateway Overview.

How is this guide?