Get Available Motions
October 7, 2025 (January 6, 2026)
Table of contents
This endpoint retrieves a list of available motion assets. Official motion videos can be used as motionUrl in POST /videos/motion-create. Uses Kling v2.6 modality asset API.
https://api.useapi.net/v1/kling/videos/motions?β¦
Request Headers
Authorization: Bearer {API token}
API tokenis required, see Setup useapi.net for details.
Query Parameters
-
emailis optional when only one account configured. However, if you have multiple accounts configured, this parameter becomes required. -
mineis optional, boolean value. Whentrue, retrieves userβs own motion assets. Whenfalseor omitted, retrieves official Kling motion templates.
Notes:
- Use the
urlfield asmotionUrlwhen making requests to motion-create - Official motions are pre-processed motion videos provided by Kling
- User motions are videos previously uploaded via POST /assets - use
resourceUrlfrom upload response
Responses
-
[ { "assetId": "motion_12345", "assetType": "MOTION", "url": "https://v15-kling.klingai.com/bs2/upload-ylab-stunt-sgp/.../motion.mp4", "coverUrl": "https://s15-kling.klingai.com/.../cover.jpg", "duration": 5760, "width": 720, "height": 1280, "hasAudio": true, "createTime": 1767669665000 } ] -
{ "error": "Unauthorized", "code": 401 }
Model
Array<{ // TypeScript, all fields are optional
assetId: string // Unique asset identifier
assetType: string // "MOTION"
url: string // URL to the motion video - use as motionUrl in motion-create
coverUrl?: string // URL to the cover/thumbnail image
duration?: number // Duration in milliseconds
width?: number // Video width in pixels
height?: number // Video height in pixels
hasAudio?: boolean // Whether the motion has audio
createTime?: number // Creation timestamp
}>
Examples
-
# Get official motions curl -X GET "https://api.useapi.net/v1/kling/videos/[email protected]" \ -H "Authorization: Bearer ..." # Get user motions curl -X GET "https://api.useapi.net/v1/kling/videos/[email protected]&mine=true" \ -H "Authorization: Bearer ..." -
const token = "API token"; const email = "Previously configured account email"; const mine = false; // false for official, true for user 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 } response = requests.get(apiUrl, headers=headers, params=params) print(response, response.json())