Get Available Motions
October 7, 2025
Table of contents
This endpoint retrieves a list of available motion templates that can be used with the POST /videos/motion-create endpoint to apply motions to images.
https://api.useapi.net/v1/kling/videos/motions?…
Request Headers
Authorization: Bearer {API token}
API token
is required, see Setup useapi.net for details.
Query Parameters
-
email
is optional when only one account configured. However, if you have multiple accounts configured, this parameter becomes required. -
mine
is optional, boolean value. Whentrue
, retrieves user-uploaded motions (created via POST /videos/motion-upload). Whenfalse
or omitted, retrieves official Kling motion templates. -
pageNum
is optional, integer starting from1
. Only applies whenmine=true
. Specifies the page number for pagination.
Default:1
-
pageSize
is optional, integer between1
and100
. Only applies whenmine=true
. Specifies the number of results per page.
Default:40
Notes:
- Official motions have negative
workId
values and include atag
field for categorization - User-uploaded motions have positive
workId
values and include ataskId
field - Use the
workId
value when making requests to the motion-create endpoint - Pagination parameters (
pageNum
,pageSize
) only work withmine=true
- To delete a user-uploaded motion, use DELETE /tasks/
task_id
with the motion’staskId
Responses
-
Official Motions (
mine=false
or omitted):[ { "workName": "Walking", "workId": -123456, "official": true, "tag": "basic", "resource": { "resource": "https://s21-kling.klingai.com/...motion.mp4" }, "cover": { "resource": "https://s21-kling.klingai.com/...cover.jpg" }, "extData": { "output_binary": "https://s21-kling.klingai.com/...binary.zip", "bvh_binary": "https://s21-kling.klingai.com/...bvh.zip" } } ]
User-uploaded Motions (
mine=true
):[ { "workName": "Custom Dance", "workId": 987654321, "taskId": 987654320, "official": false, "resource": { "resource": "https://s21-kling.klingai.com/...motion.mp4" }, "cover": { "resource": "https://s21-kling.klingai.com/...cover.jpg" }, "extData": { "output_binary": "https://s21-kling.klingai.com/...binary.zip", "bvh_binary": "https://s21-kling.klingai.com/...bvh.zip" } } ]
-
{ "error": "Unauthorized", "code": 401 }
Model
{ // TypeScript, all fields are optional
workName: string // Display name of the motion
workId: number // Motion identifier (negative for official, positive for user)
taskId?: number // Task ID (only present for user-uploaded motions)
official: boolean // Whether this is an official Kling motion
tag?: string // Category tag (only for official motions)
resource: {
resource: string // URL to the motion video preview
}
cover: {
resource: string // URL to the motion cover image
}
extData: {
output_binary: string // URL to the motion binary data
bvh_binary: string // URL to the BVH (motion capture) data
}
}
Examples
-
# Get official motions curl -X GET "https://api.useapi.net/v1/kling/videos/[email protected]" \ -H "Authorization: Bearer …" # Get user-uploaded motions curl -X GET "https://api.useapi.net/v1/kling/videos/[email protected]&mine=true&pageNum=1&pageSize=20" \ -H "Authorization: Bearer …"
-
const token = "API token"; const email = "Previously configured account email"; const mine = false; // false for official, true for user-uploaded const apiUrl = "https://api.useapi.net/v1/kling/videos/motions"; const response = await fetch(`${apiUrl}?email=${email}&mine=${mine}`, { method: "GET", headers: { "Authorization": `Bearer ${token}`, } }); 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/videos/motions" headers = { "Authorization" : f"Bearer {token}" } params = { "email": email, "mine": False # False for official, True for user-uploaded } response = requests.get(apiUrl, headers=headers, params=params) print(response, response.json())