Kling AI Virtual Try-On API

Composite a garment onto a person image.

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/kling-ai-virtual-try-on-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

kling-ai-virtual-try-on-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Kling AI Open Platform Account Virtual Try-On API
  description: 'The Kling AI Open Platform is the developer API for Kuaishou''s Kling generative video and image models. Every capability follows the same asynchronous pattern: submit a task with POST (receiving a task_id), then poll the matching GET endpoint by task_id until status is succeed and the generated video or image URLs are returned. Generated asset URLs are short-lived and should be downloaded promptly. Authentication uses a JWT (HS256) signed from an Access Key / Secret Key pair, passed as a Bearer token; tokens are short-lived (about 30 minutes).


    endpointsModeled: The overall path structure, async task model, JWT auth, and model catalog are grounded in Kling''s official Open Platform documentation and cross-referenced against multiple Kling API wrappers. Kling''s official reference pages block automated fetching (HTTP 446), so exact request/response field-level schemas here are honestly modeled on the documented behavior rather than copied verbatim, and should be reconciled against the live reference before code generation.'
  version: '1.0'
  contact:
    name: Kling AI Open Platform
    url: https://app.klingai.com/global/dev
servers:
- url: https://api.klingai.com
  description: Kling AI Open Platform (global)
security:
- bearerAuth: []
tags:
- name: Virtual Try-On
  description: Composite a garment onto a person image.
paths:
  /v1/images/kolors-virtual-try-on:
    post:
      operationId: createVirtualTryOnTask
      tags:
      - Virtual Try-On
      summary: Create a virtual try-on task
      description: Composite a garment image onto a person/model image.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VirtualTryOnRequest'
      responses:
        '200':
          description: Task accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskCreatedResponse'
  /v1/images/kolors-virtual-try-on/{task_id}:
    get:
      operationId: getVirtualTryOnTask
      tags:
      - Virtual Try-On
      summary: Query a virtual try-on task
      parameters:
      - $ref: '#/components/parameters/TaskId'
      responses:
        '200':
          description: Task status and, when complete, the try-on image URLs.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageTaskResponse'
components:
  schemas:
    ImageTaskResponse:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        request_id:
          type: string
        data:
          type: object
          properties:
            task_id:
              type: string
            task_status:
              type: string
              enum:
              - submitted
              - processing
              - succeed
              - failed
            task_result:
              type: object
              properties:
                images:
                  type: array
                  items:
                    type: object
                    properties:
                      index:
                        type: integer
                      url:
                        type: string
    TaskCreatedResponse:
      type: object
      properties:
        code:
          type: integer
          description: Business status code (0 indicates success).
        message:
          type: string
        request_id:
          type: string
        data:
          type: object
          properties:
            task_id:
              type: string
            task_status:
              type: string
              enum:
              - submitted
              - processing
              - succeed
              - failed
            created_at:
              type: integer
            updated_at:
              type: integer
    VirtualTryOnRequest:
      type: object
      required:
      - human_image
      - cloth_image
      properties:
        model_name:
          type: string
          example: kolors-virtual-try-on-v1-5
        human_image:
          type: string
          description: Person/model image URL or base64 string.
        cloth_image:
          type: string
          description: Garment image URL or base64 string.
        callback_url:
          type: string
  parameters:
    TaskId:
      name: task_id
      in: path
      required: true
      schema:
        type: string
      description: The task identifier returned by the create-task call.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'A JWT signed with HS256 from your Access Key (as the iss claim) and Secret Key, passed as Authorization: Bearer <token>. Tokens are short-lived (about 30 minutes; nbf is typically set 5 seconds in the past).'