Download Kling assets without watermarks

April 18, 2025 (October 16, 2026)

Table of contents

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

This endpoint allows you to download assets from your paid Kling account without watermarks by providing the work IDs.

https://api.useapi.net/v1/kling/assets/download?…

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.

  • workIds is required, specify the IDs of works to download.
    Can be a single numeric string or a comma-separated list of numeric strings (e.g., “123456789” or “123456789,987654321”).
    These IDs can be obtained from the workId field in the works array returned by the GET /assets, GET /tasks or GET /tasks/task_id endpoint.

  • fileTypes is optional, comma-separated file types to download (e.g., “MP4” or “MP4,MOV”).
    Supported file types: MP4, MOV, MP3, WAV, PNG. A video downloads as MP4 or MOV, an image as PNG.
    If omitted, the first type the work has is used: MP4 for a video, PNG for an image, MP3 for audio. A type the work does not have answers 400.

Note: A single workId with a single file type returns a link to the file itself, ready at once. Several workIds or several file types return a link to a .zip.

Responses
  • 200 OK

    {
      "cdnUrl": "https://v15-kling.klingai.com/klingai-stream-sgp/kling/download/MzI0MTU5…?x-kcdn-pid=112372",
      "status": "success",
      "fileName": "kling_20261017_Text_to_Video_A_golden_r_1499_0.mp4",
      "streaming": false,
      "fileSize": null
    }
    
  • 400 Bad Request

    {
      "error": "Invalid parameters"
    }
    
  • 401 Unauthorized

    {
      "error": "Unauthorized",
      "code": 401
    }
    
Model
{ // TypeScript
  cdnUrl: string // URL of the file, or of a .zip for several workIds or file types
  status: string // "success" when successful
  fileName: string // e.g. kling_20261017_Text_to_Video_..._0.mp4, or download_result.zip
  streaming: boolean
  fileSize: number | null
}
Examples
  • curl "https://api.useapi.net/v1/kling/assets/[email protected]&workIds=123456789,987654321" \
       -H "Accept: application/json" \
       -H "Authorization: Bearer …" 
    
  • const token = "API token";
    const email = "Previously configured account email";
    const workIds = "123456789,987654321";
    const apiUrl = `https://api.useapi.net/v1/kling/assets/download?email=${email}&workIds=${workIds}`; 
    const response = await fetch(apiUrl, {
      headers: {
        "Authorization": `Bearer ${token}`,
      },
    });
    const result = await response.json();
    console.log("response", {response, result});
    
  • import requests
    token = "API token"
    email = "Previously configured account email"
    workIds = "123456789,987654321"
    apiUrl = f"https://api.useapi.net/v1/kling/assets/download?email={email}&workIds={workIds}"
    headers = {
        "Authorization" : f"Bearer {token}"
    }
    response = requests.get(apiUrl, headers=headers)
    print(response, response.json())
    
Try It