Make a face speak
A face (library image or video, or a public https url) lip-synced to a voice (a library audio asset such as a speak result, or a public https audio url with audio_seconds).
At most 60 s of voice per clip. SPENDS CREDITS per second of voice (generation type talking-head); dry_run quotes. Takes a minute or more: waits ~50 s, then 202 status: "generating" — poll GET /generations/{id} or POST /status. A failed job refunds its credits.
Authorization
bearerAuth Typecut API key. Generate one in app.typecut.ai → Settings → API keys. Send as Authorization: Bearer tc_live_….
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/media/talking-head" \ -H "Content-Type: application/json" \ -d '{ "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9" }'{
"data": {
"kind": "video",
"dry_run": true,
"credits": 0,
"available": 0,
"generation_id": "a3c889df-e7ae-4ae9-9838-8884129ade5e",
"credits_used": 0,
"status": "completed",
"error": "string",
"result": {
"property1": null,
"property2": null
}
}
}{
"data": {
"kind": "video",
"dry_run": true,
"credits": 0,
"available": 0,
"generation_id": "a3c889df-e7ae-4ae9-9838-8884129ade5e",
"credits_used": 0,
"status": "completed",
"error": "string",
"result": {
"property1": null,
"property2": null
}
}
}{
"error": {
"type": "string",
"code": "string",
"message": "string"
}
}{
"error": {
"type": "string",
"code": "string",
"message": "string"
}
}{
"error": {
"type": "string",
"code": "string",
"message": "string"
}
}{
"error": {
"type": "string",
"code": "string",
"message": "string"
}
}