← Back to catalog

Sync Lipsync

Live
videolipsync

Sync.so lip-sync: align a video to an audio track with selectable model.

Endpoint

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

Authenticate with the X-API-Key request header.

Pricing

65 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_urlstringrequiredAudio track to lip-sync to.
modelstringoptionalSync model variant.
default: sync-3
sync-3lipsync-2lipsync-2-pro

Request

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

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_synclipsync_a1b2c3",
  "status": "queued"
}
GET /v1/jobs/{id} → succeeded
{
  "id": "job_synclipsync_a1b2c3",
  "model": "sync-lipsync",
  "status": "succeeded",
  "output": {
    "outputs": [
      {
        "url": "https://cdn.trinetra.ai/out/sync-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.