Create element
January 12, 2026
Table of contents
This endpoint creates one or more elements from a cover image. Elements are saved character/object references that can be reused across multiple generations in POST /images/omni and POST /videos/omni using the @element_N syntax.
The generateViews option uses AI to create multiple variations of your element with different angles, which can produce up to 3 separate elements from a single image. You can review the results and delete ones you don’t like using DELETE /elements/elementId.
https://api.useapi.net/v1/kling/elements
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
API tokenis required, see Setup useapi.net for details.
Request Body
{
"email": "user@example.com",
"name": "MyCharacter",
"coverImage": "https://s21-kling.klingai.com/ai-platform/xxx/xxx.jpg",
"tag": "character"
}
-
emailis optional when only one account configured. However, if you have multiple accounts configured, this parameter becomes required. -
nameis required, the base name for the element. Maximum length: 15 characters. A 5-character random suffix is automatically appended (e.g., “MyChar” becomes “MyChar ABC12”). -
coverImageis required, the URL of the primary image for the element. You can upload images using POST /assets and use the returned URL here. -
descriptionis optional, a text description of the element. Maximum length: 100 characters. If not provided, a description is automatically generated from the image using AI. -
tagis optional, the category tag for the element. Use GET /elements/tags to get available tags. Accepts eitheridortagKey(e.g., “1” or “character”). If not provided, the tag is automatically detected from the image using AI.
Secondary Images (Manual)
You can optionally provide additional angle/view images:
extraImage1is optional, URL of first additional view.extraImage2is optional, URL of second additional view.extraImage3is optional, URL of third additional view.
Maximum 3 secondary images allowed. Cannot be used together with generateViews.
Auto-Generate Views
generateViewsis optional, set totrueto have AI generate 3 multi-angle variations. When enabled, the system generates different views of your element automatically. This can create up to 3 separate elements, one for each variation group. Cannot be used together withextraImage1/2/3. This call can take up to 60 seconds to complete since generation takes time.
Responses
-
Standard response (without generateViews):
{ "elements": [ { "id": "u_123456789012345", "name": "MyCharacter ABC12", "userId": 12345678, "description": "AI-generated description of the character", "cover": { "resource": "https://s21-kling.klingai.com/ai-platform/.../cover.jpg", "width": 768, "height": 1365, "resourceKey": "cover", "cover": true, "slotKey": "" }, "resources": [ { "resource": "https://s21-kling.klingai.com/ai-platform/.../cover.jpg", "width": 768, "height": 1365, "resourceKey": "cover", "cover": true, "slotKey": "" } ], "tagList": [], "createTime": 1736640000000, "updateTime": 1736640000000, "favored": false, "official": false } ], "count": 1 }Response with generateViews (creates up to 3 separate elements, each with 4 views):
{ "elements": [ { "id": "u_123456789012345", "name": "MyCharacter ABC12", "userId": 12345678, "description": "AI-generated description", "cover": { "resource": "https://s21-kling.klingai.com/ai-platform/.../cover.jpg", "resourceKey": "cover", "cover": true, "slotKey": "" }, "resources": [ { "resource": ".../cover.jpg", "resourceKey": "cover", "cover": true, "slotKey": "" }, { "resource": ".../side.png", "resourceKey": "secondary", "cover": false, "slotKey": "side" }, { "resource": ".../back.png", "resourceKey": "secondary", "cover": false, "slotKey": "back" }, { "resource": ".../top.png", "resourceKey": "secondary", "cover": false, "slotKey": "topView" } ], "tagList": [] }, { "id": "u_234567890123456", "name": "MyCharacter DEF34", "description": "AI-generated description", "resources": [ { "resource": ".../cover.jpg", "resourceKey": "cover", "cover": true, "slotKey": "" }, { "resource": ".../side.png", "resourceKey": "secondary", "cover": false, "slotKey": "side" }, { "resource": ".../back.png", "resourceKey": "secondary", "cover": false, "slotKey": "back" }, { "resource": ".../top.png", "resourceKey": "secondary", "cover": false, "slotKey": "topView" } ], "tagList": [] } ], "count": 2 } -
{ "error": "<error message>" } -
{ "error": "Unauthorized", "code": 401 }
Model
{ // TypeScript, all fields are optional
elements: {
id: string
name: string
userId: number
description: string
cover: {
resource: string
width: number
height: number
resourceKey: string
cover: boolean
slotKey: string
}
resources: {
resource: string
width: number
height: number
resourceKey: string
cover: boolean
slotKey: string
}[]
tagList: object[]
createTime: number
updateTime: number
favored: boolean
official: boolean
}[]
count: number
}
Usage After Creation
Once created, you can use element IDs in POST /images/omni and POST /videos/omni:
{
"prompt": "Character @element_1 walking through a beautiful garden",
"element_1": "u_123456789012345"
}
Examples
-
curl -X POST "https://api.useapi.net/v1/kling/elements" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ..." \ -d '{ "email": "user@example.com", "name": "FashionLady", "coverImage": "https://s21-kling.klingai.com/ai-platform/xxx/xxx.jpg", "tag": "character" }' -
const token = "API token"; const email = "Previously configured account email"; const apiUrl = "https://api.useapi.net/v1/kling/elements"; const response = await fetch(apiUrl, { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Bearer ${token}`, }, body: JSON.stringify({ email: email, name: "FashionLady", coverImage: "https://s21-kling.klingai.com/ai-platform/xxx/xxx.jpg", tag: "character" }) }); const result = await response.json(); console.log("response", {response, result}); -
import requests token = "API token" email = "Previously configured account email" apiUrl = "https://api.useapi.net/v1/kling/elements" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } data = { "email": email, "name": "FashionLady", "coverImage": "https://s21-kling.klingai.com/ai-platform/xxx/xxx.jpg", "tag": "character" } response = requests.post(apiUrl, headers=headers, json=data) print(response, response.json())