Kling AI API v1

REST API for Kling AI by Kuaishou — Kling v3/O3, Turbo, 2.x and 1.x video models plus lip-sync avatars, native audio, motion control, reusable elements and custom voice cloning.

OpenAPI Specification

useapi-kling-v1-openapi.yml Raw ↑
# Derived from the first-party useapi.net Postman collection: https://useapi.net/assets/postman/kling-v1.json
# method: derived  |  no operation, path, parameter or example was invented.
openapi: 3.1.0
info:
  title: Kling API v1 by useapi.net
  version: 1.0.0
  description: 'Full documentation available at [useapi.net](https://useapi.net/docs/api-kling-v1/).


    ---

    **Updated:** July 20, 2026'
  contact:
    name: useapi.net support
    email: support@useapi.net
    url: https://useapi.net/docs/support
  x-derived-from: https://useapi.net/assets/postman/kling-v1.json
externalDocs:
  description: kling documentation
  url: https://useapi.net/docs/api-kling-v1
servers:
- url: https://api.useapi.net/v1/kling
security:
- bearerAuth: []
tags:
- name: kling
  description: Kling API v1 by useapi.net
paths:
  /accounts:
    get:
      operationId: getAccounts
      summary: accounts
      description: '[Retrieve Kling accounts information.](https://useapi.net/docs/api-kling-v1/get-kling-accounts)'
      tags:
      - kling
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
    post:
      operationId: postAccounts
      summary: accounts
      description: '[Add or update Kling account.](https://useapi.net/docs/api-kling-v1/post-kling-accounts)'
      tags:
      - kling
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                email:
                  type: string
                password:
                  type: string
                maxJobs:
                  type: string
                passToken:
                  type: string
                did:
                  type: string
                userId:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /accounts/{email}:
    get:
      operationId: getAccountsByEmail
      summary: accounts/<email>
      description: '[Retrieve Kling API account configuration and balance.](https://useapi.net/docs/api-kling-v1/get-kling-accounts-email)'
      tags:
      - kling
      parameters:
      - name: email
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
    delete:
      operationId: deleteAccountsByEmail
      summary: accounts/<email>
      description: '[Delete Kling account.](https://useapi.net/docs/api-kling-v1/del-kling-accounts-email)'
      tags:
      - kling
      parameters:
      - name: email
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /scheduler:
    get:
      operationId: getScheduler
      summary: scheduler
      description: '[Retrieve running tasks](https://useapi.net/docs/api-kling-v1/get-kling-scheduler)'
      tags:
      - kling
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /scheduler/available:
    get:
      operationId: getSchedulerAvailable
      summary: scheduler/available
      description: '[Retrieve available capacity](https://useapi.net/docs/api-kling-v1/get-kling-scheduler-available)'
      tags:
      - kling
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /scheduler/{task_id}:
    delete:
      operationId: deleteSchedulerByTaskid
      summary: scheduler/<task_id>
      description: '[Cancel a running task](https://useapi.net/docs/api-kling-v1/del-kling-scheduler-task_id)'
      tags:
      - kling
      parameters:
      - name: task_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /tasks:
    get:
      operationId: getTasks
      summary: tasks
      description: '[Retrieve Kling tasks](https://useapi.net/docs/api-kling-v1/get-kling-tasks)'
      tags:
      - kling
      parameters:
      - name: email
        in: query
        required: false
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      - name: pageSize
        in: query
        required: false
        schema:
          type: string
        description: Optional page size
      - name: createdBefore
        in: query
        required: false
        schema:
          type: string
        description: Optional before date (date as a  number of milliseconds elapsed since the epoch, which is defined as
          the midnight at the beginning of January 1, 1970, UTC)
      - name: createdAfter
        in: query
        required: false
        schema:
          type: string
        description: Optional after date (date as a  number of milliseconds elapsed since the epoch, which is defined as the
          midnight at the beginning of January 1, 1970, UTC)
      - name: contentType
        in: query
        required: false
        schema:
          type: string
        description: 'Optional task type. Valid values: video,image,audio'
        example: video
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /tasks/{task_id}:
    get:
      operationId: getTasksByTaskid
      summary: tasks/<task_id>
      description: '[Retrieve Kling task](https://useapi.net/docs/api-kling-v1/get-kling-tasks-task_id)'
      tags:
      - kling
      parameters:
      - name: task_id
        in: path
        required: true
        schema:
          type: string
      - name: email
        in: query
        required: false
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
    delete:
      operationId: deleteTasksByTaskid
      summary: tasks/<task_id>
      description: '[Delete Kling task](https://useapi.net/docs/api-kling-v1/del-kling-tasks-task_id)'
      tags:
      - kling
      parameters:
      - name: task_id
        in: path
        required: true
        schema:
          type: string
      - name: email
        in: query
        required: true
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /tts/voices:
    get:
      operationId: getTtsVoices
      summary: tts/voices
      description: '[Retrieve list of TTS (text-to-speach) voices](https://useapi.net/docs/api-kling-v1/get-kling-tts-voices)'
      tags:
      - kling
      parameters:
      - name: email
        in: query
        required: false
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /tts/create:
    post:
      operationId: postTtsCreate
      summary: tts/create
      description: '[Generate speech from text](https://useapi.net/docs/api-kling-v1/post-kling-tts-create)'
      tags:
      - kling
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                email:
                  type: string
                speakerId:
                  type: string
                text:
                  type: string
                speed:
                  type: string
                emotion:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /avatars:
    get:
      operationId: getAvatars
      summary: avatars
      description: '[Retrieve avatars](https://useapi.net/docs/api-kling-v1/get-kling-avatars)'
      tags:
      - kling
      parameters:
      - name: email
        in: query
        required: true
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
    post:
      operationId: postAvatars
      summary: avatars
      description: '[Create Avatar 2.0](https://useapi.net/docs/api-kling-v1/post-kling-avatars)


        Most fields are optional and will be automatically populated using AI if not provided.'
      tags:
      - kling
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                email:
                  type: string
                imageUrl:
                  type: string
                nickname:
                  type: string
                prompt:
                  type: string
                scene:
                  type: string
                ttsSpeaker:
                  type: string
                ttsSpeed:
                  type: string
                ttsEmotionKey:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /avatars/video:
    post:
      operationId: postAvatarsVideo
      summary: avatars/video
      description: '[Generate Avatar 2.0 video](https://useapi.net/docs/api-kling-v1/post-kling-avatars-video)


        Supports both pre-recorded audio (audioUrl) and text-to-speech (text + speakerId).'
      tags:
      - kling
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                email:
                  type: string
                avatarId:
                  type: string
                imageUrl:
                  type: string
                audioUrl:
                  type: string
                text:
                  type: string
                speakerId:
                  type: string
                speed:
                  type: string
                emotion:
                  type: string
                prompt:
                  type: string
                mode:
                  type: string
                maxJobs:
                  type: string
                replyUrl:
                  type: string
                replyRef:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /avatars/{avatarId}:
    delete:
      operationId: deleteAvatarsByAvatarid
      summary: avatars/<avatarId>
      description: '[Delete Avatar 2.0](https://useapi.net/docs/api-kling-v1/del-kling-avatars-avatarId)'
      tags:
      - kling
      parameters:
      - name: avatarId
        in: path
        required: true
        schema:
          type: string
      - name: email
        in: query
        required: true
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /elements:
    get:
      operationId: getElements
      summary: elements
      description: '[Retrieve elements list](https://useapi.net/docs/api-kling-v1/get-kling-elements)'
      tags:
      - kling
      parameters:
      - name: email
        in: query
        required: true
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
    post:
      operationId: postElements
      summary: elements
      description: '[Create element](https://useapi.net/docs/api-kling-v1/post-kling-elements)


        Elements are saved character/object references for POST /images/omni and POST /videos/omni using @element_N syntax.'
      tags:
      - kling
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                email:
                  type: string
                name:
                  type: string
                coverImage:
                  type: string
                type:
                  type: string
                voice:
                  type: string
                description:
                  type: string
                tag:
                  type: string
                extraImage1:
                  type: string
                extraImage2:
                  type: string
                extraImage3:
                  type: string
                generateViews:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /elements/tags:
    get:
      operationId: getElementsTags
      summary: elements/tags
      description: '[Retrieve element tags](https://useapi.net/docs/api-kling-v1/get-kling-elements-tags)'
      tags:
      - kling
      parameters:
      - name: email
        in: query
        required: true
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /elements/voices:
    get:
      operationId: getElementsVoices
      summary: elements/voices
      description: '[Retrieve element voices](https://useapi.net/docs/api-kling-v1/get-kling-elements-voices)'
      tags:
      - kling
      parameters:
      - name: email
        in: query
        required: true
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /elements/{elementId}:
    get:
      operationId: getElementsByElementid
      summary: elements/<elementId>
      description: '[Retrieve element by ID](https://useapi.net/docs/api-kling-v1/get-kling-elements-elementId)'
      tags:
      - kling
      parameters:
      - name: elementId
        in: path
        required: true
        schema:
          type: string
      - name: email
        in: query
        required: true
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
    delete:
      operationId: deleteElementsByElementid
      summary: elements/<elementId>
      description: '[Delete element](https://useapi.net/docs/api-kling-v1/del-kling-elements-elementId)'
      tags:
      - kling
      parameters:
      - name: elementId
        in: path
        required: true
        schema:
          type: string
      - name: email
        in: query
        required: true
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /assets:
    get:
      operationId: getAssets
      summary: assets
      description: '[Retrieve generated assets](https://useapi.net/docs/api-kling-v1/get-kling-assets)'
      tags:
      - kling
      parameters:
      - name: email
        in: query
        required: false
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      - name: pageSize
        in: query
        required: false
        schema:
          type: string
        description: Optional page size
      - name: pageNum
        in: query
        required: false
        schema:
          type: string
        description: Optional page number
      - name: contentType
        in: query
        required: false
        schema:
          type: string
        description: 'Optional asset type, supported values: video, image, audio'
      - name: sort
        in: query
        required: false
        schema:
          type: string
        description: 'Optional sort direction by creation time: asc or desc (default: desc).'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /assets/download:
    get:
      operationId: getAssetsDownload
      summary: assets/download
      description: '[Download Kling assets without watermarks](https://useapi.net/docs/api-kling-v1/get-kling-assets-download)'
      tags:
      - kling
      parameters:
      - name: email
        in: query
        required: false
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      - name: fileTypes
        in: query
        required: false
        schema:
          type: string
        description: 'Optional, specify comma-separated file types you want to download (e.g., “MP4” or “MP4,WAV”). If not
          provided, all available files for the given workIds will be downloaded as a singe .zip file. Supported file types:
          MP4, MP3, WAV, PNG.'
      - name: workIds
        in: query
        required: true
        schema:
          type: string
        description: 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.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /assets/:
    post:
      operationId: postAssets
      summary: assets • use Body » binary to upload image/video/audio file
      description: '[Upload asset](https://useapi.net/docs/api-kling-v1/post-kling-assets)'
      tags:
      - kling
      parameters:
      - name: email
        in: query
        required: false
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      requestBody:
        required: true
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /assets/uploaded/:
    get:
      operationId: getAssetsUploaded
      summary: assets/uploaded
      description: '[Retrieve uploaded assets](https://useapi.net/docs/api-kling-v1/get-kling-assets-uploaded)'
      tags:
      - kling
      parameters:
      - name: email
        in: query
        required: true
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      - name: pageNum
        in: query
        required: false
        schema:
          type: string
        description: 'Optional, page number (default: 1).'
      - name: pageSize
        in: query
        required: false
        schema:
          type: string
        description: 'Optional, items per page (default: 20).'
      - name: contentType
        in: query
        required: false
        schema:
          type: string
        description: 'Optional, filter by type: video, image, or audio.'
      - name: fileName
        in: query
        required: false
        schema:
          type: string
        description: Optional, filter by file name (keyword search).
      - name: sort
        in: query
        required: false
        schema:
          type: string
        description: 'Optional sort direction by upload time: asc or desc (default: desc).'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
    delete:
      operationId: deleteAssetsUploaded
      summary: assets/uploaded
      description: '[Delete uploaded Kling assets](https://useapi.net/docs/api-kling-v1/del-kling-assets-uploaded)'
      tags:
      - kling
      parameters:
      - name: email
        in: query
        required: true
        schema:
          type: string
        description: Required. Previously configured account email.
      - name: id
        in: query
        required: true
        schema:
          type: string
        description: Required. Uploaded asset id, or comma-separated list of up to 10 numeric ids.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /videos/effects:
    get:
      operationId: getVideosEffects
      summary: videos/effects
      description: '[Get Available Video Effects](https://useapi.net/docs/api-kling-v1/get-kling-videos-effects)'
      tags:
      - kling
      parameters:
      - name: email
        in: query
        required: false
        schema:
          type: string
        description: Optional when only one kling/accounts configured. However, if you have multiple accounts configured,
          this parameter becomes required.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties: {}
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad Request — invalid or missing parameter
        '401':
          description: Unauthorized — invalid useapi.net API token
        '429':
          description: Too Many Requests — see the Retry-After header
  /videos/text2video:
    post:
      operationId: postVideosText2video
      summary: videos/text2video
      description: '[Create Video From Text](https://

# --- truncated at 32 KB (56 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/useapi/refs/heads/main/openapi/useapi-kling-v1-openapi.yml