← Back to catalog

Kling Lipsync

Live
videolipsync

Sync a talking head video to a provided audio track.

Endpoint

POSThttps://brahmand-api.bulletshorts.co/v1/video/kling-lipsync

Authenticate with the X-API-Key request header.

Pricing

13 credits / call1 credit = ₹1. Billed on success: per generation.

List price. Volume / bulk customers get a discounted rate — contact us for account pricing.

Parameters

NameTypeRequiredDescriptionDefault / options
video_urlstringrequiredSource video with a visible face.
audio_urlstringoptionalAudio track to lip-sync to (audio2video mode). Provide this OR text.
textstringoptionalText to speak (text2video mode, max 120 chars). Provide this OR audio_url.
voice_idstringoptionalTTS voice id (required for text2video).
voice_languagestringoptionalTTS language.
default: zh
zhen
voice_speednumberoptionalTTS speech rate, 0.8-2.0.
default: 1.0
callback_urlstringoptionalWebhook URL notified when the task completes.

Request

curl
curl -X POST https://brahmand-api.bulletshorts.co/v1/video/kling-lipsync \
  -H "X-API-Key: $TRINETRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"video_url":"https://example.com/face.mp4","audio_url":"https://example.com/speech.mp3"}'
request body (JSON)
{
  "video_url": "https://example.com/face.mp4",
  "audio_url": "https://example.com/speech.mp3"
}

Response

Submitting a job returns 202 Accepted with a job id. Poll GET /v1/jobs/{id} until the job reaches a terminal state, or register a webhook to be notified.

202 Accepted
{
  "job_id": "job_klinglipsync_a1b2c3",
  "status": "queued"
}
GET /v1/jobs/{id} → succeeded
{
  "id": "job_klinglipsync_a1b2c3",
  "model": "kling-lipsync",
  "status": "succeeded",
  "output": {
    "outputs": [
      {
        "url": "https://cdn.trinetra.ai/out/kling-lipsync/a1b2c3.mp4",
        "type": "video"
      }
    ]
  },
  "credits_charged": 10
}

Webhook: set a webhook_url on your API key to receive a POST with the terminal job document instead of polling.