CommunityJoin our DiscordJoin

Kling Compat API

A drop-in passthrough to Kling's native API. Same request bodies, same path shapes, same envelope — just point your existing SDK at api.thankyouai.com and swap the Authorizationheader. Not a single model — one entry point covering Kling's video, lip-sync, omni, element, and preset surfaces.

Quick start

Base URL: https://api.thankyouai.com/open/v1/kling-compat/

curl -X POST https://api.thankyouai.com/open/v1/kling-compat/v1/videos/text2video \
  -H "Authorization: Bearer $THANKYOU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model_name": "kling-v3",
    "prompt": "A serene mountain landscape at sunset",
    "mode": "std",
    "aspect_ratio": "16:9",
    "duration": "5"
  }'

Response envelope is Kling's own — {code, message, request_id, data} with a task_id you poll against the matching GET {family}/{task_id}.

Endpoints

All paths are mounted under the base URL and preserve Kling's original shape.

MethodPathPurpose
POSTv1/videos/text2videoText → video task
GETv1/videos/text2video/{task_id}Poll text2video status
POSTv1/videos/image2videoImage → video task
GETv1/videos/image2video/{task_id}Poll image2video status
POSTv1/videos/multi-image2videoMulti-image → video task
GETv1/videos/multi-image2video/{task_id}Poll multi-image2video status
POSTv1/videos/omni-videoOmni-video (t2v / i2v / v2v / v-edit)
GETv1/videos/omni-video/{task_id}Poll omni-video status
POSTv1/videos/advanced-lip-syncAdvanced lip-sync task
GETv1/videos/advanced-lip-sync/{task_id}Poll lip-sync status
POSTv1/videos/identify-faceIdentify faces (synchronous)
POSTv1/general/advanced-custom-elementsCreate custom element
GETv1/general/advanced-custom-elementsList custom elements
GETv1/general/advanced-custom-elements/{task_id}Get element task
POSTv1/general/delete-elementsSoft-delete elements
GETv1/general/advanced-presets-elementsList preset elements

What's different from ThankYou's Open API

  • Shape:Request/response bodies mirror Kling's native contract, not ThankYou's unified shape. Use Kling's docs + the deep links below for exact fields.
  • Auth: Your ThankYou API key as Authorization: Bearer …. No extra header scheme.
  • Callbacks: Send callback_url in the body as usual. ThankYou transparently rewrites it so we can record task state, then forwards each transition to your URL.
  • Billing & logs:Video tasks go through ThankYou's billing pipeline and show up in /usage with family="kling-compat". Element creation itself is free (Kling does not charge); video tasks using elements are charged normally.
  • Element IDs:Mix your own custom elements with Kling preset IDs freely — ThankYou no longer pre-validates ownership on generation; Kling's side is authoritative and billing is released on rejection.
Overview & authText to videoImage to videoOmni videoLip-syncIdentify faceCustom elementsPreset elementsIdempotencyErrorsMigration guide