Render audio to a talking-head video (non-streaming)
Non-streaming lipsync: download audioUrl, render the full clip in one pass, store the MP4, and return its public URL. No LLM, no TTS, no streaming — ideal for backend and batch jobs. Provide either avatarId (an avatar you created) or portraitUrl (registered on the fly). Bills realtime seconds like a turn. Requires scope realtime:write.
Authorization
apiKey TIC API key as a bearer token: Authorization: Bearer tic_live_... or tic_test_.... Create keys in the dashboard at /platform/dashboard or via POST /api/v1/api-keys.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Provide audioUrl plus either avatarId or portraitUrl.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/lipsync" \ -H "Content-Type: application/json" \ -d '{ "audioUrl": "http://example.com" }'{ "url": "http://example.com", "avatarId": "string", "frames": 0, "fps": 0, "durationSeconds": 0}{ "error": "string", "status": 0, "code": "string", "retryable": true, "billingUrl": "string"}{ "error": "string", "status": 0, "code": "string", "retryable": true, "billingUrl": "string"}{ "error": "string", "status": 0, "code": "string", "retryable": true, "billingUrl": "string"}{ "error": "string", "status": 0, "code": "string", "retryable": true, "billingUrl": "string"}