Get Available Motions

October 7, 2025 (January 6, 2026)

Table of contents

  1. Request Headers
  2. Query Parameters
  3. Responses
  4. Model
  5. Examples
  6. Try It

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}
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. When true, retrieves user’s own motion assets. When false or omitted, retrieves official Kling motion templates.

Notes:

  • Use the url field as motionUrl when 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 resourceUrl from upload response
Responses
  • 200 OK

    [
      {
        "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
      }
    ]
    
  • 401 Unauthorized

    {
      "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())
    
Try It