Skip to content

Kling Elements

Elements are used to reuse consistent character/object identities. You can create custom elements from images or videos and reference them in subsequent Kling video tasks.

API Overview

This project transparently proxies Kling official element APIs to the following paths:

  1. Create Element: POST /kling/v1/general/advanced-custom-elements
  2. Get Custom Element (Single): GET /kling/v1/general/advanced-custom-elements/:id
  3. List Custom Elements: GET /kling/v1/general/advanced-custom-elements
  4. List Preset Elements: GET /kling/v1/general/advanced-presets-elements
  5. Delete Element: POST /kling/v1/general/delete-elements

Notes

  1. Responses are the upstream raw JSON and are not wrapped in OpenAI-style format.
  2. In the current implementation, Element APIs are treated as management endpoints: no billing and no task-table persistence.

Authentication

Authentication method: Bearer Token

http
Authorization: Bearer YOUR_API_TOKEN

1. Create Element

Endpoint: POST /kling/v1/general/advanced-custom-elements

Description: Create a custom element (image reference or video reference). The request usually returns a task_id. You can query the final status and element_id via the single-item query endpoint.

Request Parameters (Body)

FieldTypeRequiredDescription
element_namestringRequiredElement name
element_descriptionstringRequiredElement description
reference_typestringRequiredimage_refer / video_refer
element_image_listobjectConditionally requiredRequired when reference_type=image_refer
element_video_listobjectConditionally requiredRequired when reference_type=video_refer
element_voice_idstringOptionalVoice ID
tag_listarrayOptionalTag list
callback_urlstringOptionalCallback URL
external_task_idstringOptionalBusiness-side custom task ID

element_image_list

FieldTypeRequiredDescription
frontal_imagestringRequiredFront image (URL or Base64)
refer_imagesarrayRequiredReference image list
refer_images[].image_urlstringRequiredReference image (URL or Base64)

element_video_list

FieldTypeRequiredDescription
refer_videosarrayRequiredReference video list
refer_videos[].video_urlstringRequiredVideo URL

tag_list (common tags)

tag_idtag_name
o_101Meme
o_102Character
o_103Animal
o_104Prop
o_105Clothing
o_106Scene
o_107VFX
o_108Other

cURL Examples

bash
curl -X POST "https://api.ezmodel.cloud/kling/v1/general/advanced-custom-elements" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "element_name": "your_element_name",
    "element_description": "your_element_description",
    "reference_type": "image_refer",
    "element_image_list": {
      "frontal_image": "https://example.com/a.png",
      "refer_images": [{"image_url": "https://example.com/b.png"}]
    },
    "tag_list": [{"tag_id": "o_102"}]
  }'
bash
curl -X POST "https://api.ezmodel.cloud/kling/v1/general/advanced-custom-elements" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "element_name": "your_element_name",
    "element_description": "your_element_description",
    "reference_type": "video_refer",
    "element_video_list": {
      "refer_videos": [
        {"video_url": "https://example.com/video.mp4"}
      ]
    }
  }'

2. Get Custom Element (Single)

Endpoint: GET /kling/v1/general/advanced-custom-elements/:id

Description: Query task status and result by task_id (or external_task_id).

Path Parameters

FieldTypeRequiredDescription
idstringRequiredtask_id or external_task_id

cURL Example

bash
curl -sS -H "Authorization: Bearer YOUR_API_TOKEN" \
  "https://api.ezmodel.cloud/kling/v1/general/advanced-custom-elements/860434405402222626"

3. List Custom Elements

Endpoint: GET /kling/v1/general/advanced-custom-elements

Query Parameters

FieldTypeRequiredDefaultDescription
pageNumintNo1Page number
pageSizeintNo30Items per page

cURL Example

bash
curl -sS -H "Authorization: Bearer YOUR_API_TOKEN" \
  "https://api.ezmodel.cloud/kling/v1/general/advanced-custom-elements?pageNum=1&pageSize=2"

4. List Preset Elements

Endpoint: GET /kling/v1/general/advanced-presets-elements

Query Parameters

FieldTypeRequiredDefaultDescription
pageNumintNo1Page number
pageSizeintNo30Items per page

cURL Example

bash
curl -sS -H "Authorization: Bearer YOUR_API_TOKEN" \
  "https://api.ezmodel.cloud/kling/v1/general/advanced-presets-elements?pageNum=1&pageSize=2"

Expected Differences in Responses

Under the same pageNum/pageSize values, these two listing endpoints should return different content:

  1. Preset list is usually platform preset data (owned_by is commonly kling).
  2. Custom list contains data created under the current account (owned_by is your account ID).

5. Delete Element

Endpoint: POST /kling/v1/general/delete-elements

Request Parameters (Body)

FieldTypeRequiredDescription
element_idstringRequiredElement ID to delete

cURL Example

bash
curl -X POST "https://ezmodel.cloud/kling/v1/general/delete-elements" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"element_id":"123456"}'

企业合作联系:service@ezmodel.cloud