Faceless Videos
Create faceless videos with the automatic video workflow.
POST /faceless-videos
Creates a faceless video using the automatic video workflow.
Authentication is required.
Requires generations:write.
curl -X POST https://videotok.app/api/v1/faceless-videos \
-H "Authorization: Bearer vt_live_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: faceless-001" \
-d '{
"prompt": "Explain why small brands should test TikTok ads before Meta ads.",
"aspect_ratio": "9:16",
"duration": "26",
"image_style": "Veo 3.1 Lite",
"voice_id": "ash",
"language": "en",
"brand_kit_id": 42,
"reference_image_urls": ["https://example.com/product.png"]
}'
Fields
| Field | Type | Notes |
|---|---|---|
prompt | string | Used to write the script when no script is supplied. |
script | string | Optional finished script. |
title | string | Optional internal title. |
aspect_ratio | string | 9:16 or 16:9. |
duration | string | Default is 26. |
image_style | string | Default is Veo 3.1 Lite. |
voice_id | string | Default is ash. |
language | string | Default is en. |
reference_image_urls | string[] | Up to 10 product or style images. |
selected_ai_styles | string[] | Optional AI style names. |
selected_flux_dev_styles | string[] | Optional Flux style names. |
brand_kit_id | number | Optional brand kit. |
idempotency_key | string | Body fallback when no Idempotency-Key header is sent. |
Response
{
"object": "faceless_video_generation",
"status": "queued",
"video_id": 1234,
"credits_deducted": 2500,
"remaining_credits": 45000,
"script": "..."
}
GET /videos/{id}
Returns a video record created by faceless video or editor endpoints.
Requires generations:read or generations:write.
curl https://videotok.app/api/v1/videos/1234 \
-H "Authorization: Bearer vt_live_..."
When complete, url contains the final video URL.