Skip to content
DashboardGet API Key

Video Translate

Endpoints for creating and polling asynchronous video translations.

Translate a remote video
POST/v1/video-translate/generate
Translate an uploaded video
POST/v1/video-translate/generate-with-media
ModelsExpand Collapse
VideoTranslateGenerateResponse object { request_id, status }
request_id: string
formatuuid
status: "success"
VideoTranslateGenerateWithMediaResponse object { request_id, status }
request_id: string
formatuuid
status: "success"

Video TranslateRequests

Endpoints for creating and polling asynchronous video translations.

Get a video translation request
GET/v1/video-translate/requests/{id}
List video translation requests
GET/v1/video-translate/requests
ModelsExpand Collapse
RequestRetrieveResponse object { id, config, created_at, 13 more }
id: string
formatuuid
config: object { source_srt, speaker_voices, target_srts, tts_model }

The request config as returned by the API. SRT content is replaced by metadata, speaker_voices keys are canonical speaker IDs, and other keys are returned unchanged.

source_srt: optional object { supplied, file_name, language }

Public description of a supplied SRT. The subtitle content is never returned.

supplied: true
file_name: optional string
language: optional string
speaker_voices: optional map[string]
target_srts: optional map[object { supplied, file_name, language } ]
supplied: true
file_name: optional string
language: optional string
tts_model: optional "eleven_v4" or "eleven_multilingual_v2"

The explicitly selected text-to-speech model. Omitted when the request used the default.

One of the following:
"eleven_v4"
"eleven_multilingual_v2"
created_at: string
formatdate-time
disable_background_audio: boolean

Whether background audio was disabled for this request.

disable_lip_sync: boolean

Whether lip sync was disabled for this request.

formality: boolean
model: "expressive" or "classic"

Product speech model selected for the request.

One of the following:
"expressive"
"classic"
status: "queued" or "uploading" or "processing" or 2 more
One of the following:
"queued"
"uploading"
"processing"
"completed"
"failed"
target_languages: array of string
error_message: optional string

Present only when failed. A safe, bounded description, for example SRT or speaker validation errors found after the video was processed.

maxLength1001
finished_at: optional string
formatdate-time
outputs: optional map[object { audio, srt, video } ]

Present only when completed, keyed by requested target language. URLs are signed on every read.

audio: string
formaturi
srt: string
formaturi
video: string
formaturi
reference_id: optional string
source_language: optional string

Explicit source language, or the detected one once processing starts.

started_at: optional string
formatdate-time
webhook_url: optional string

The configured terminal callback URL, when supplied.

formaturi
RequestListResponse object { data, pagination }
data: array of object { id, config, created_at, 13 more }
id: string
formatuuid
config: object { source_srt, speaker_voices, target_srts, tts_model }

The request config as returned by the API. SRT content is replaced by metadata, speaker_voices keys are canonical speaker IDs, and other keys are returned unchanged.

source_srt: optional object { supplied, file_name, language }

Public description of a supplied SRT. The subtitle content is never returned.

supplied: true
file_name: optional string
language: optional string
speaker_voices: optional map[string]
target_srts: optional map[object { supplied, file_name, language } ]
supplied: true
file_name: optional string
language: optional string
tts_model: optional "eleven_v4" or "eleven_multilingual_v2"

The explicitly selected text-to-speech model. Omitted when the request used the default.

One of the following:
"eleven_v4"
"eleven_multilingual_v2"
created_at: string
formatdate-time
disable_background_audio: boolean

Whether background audio was disabled for this request.

disable_lip_sync: boolean

Whether lip sync was disabled for this request.

formality: boolean
model: "expressive" or "classic"

Product speech model selected for the request.

One of the following:
"expressive"
"classic"
status: "queued" or "uploading" or "processing" or 2 more
One of the following:
"queued"
"uploading"
"processing"
"completed"
"failed"
target_languages: array of string
error_message: optional string

Present only when failed. A safe, bounded description, for example SRT or speaker validation errors found after the video was processed.

maxLength1001
finished_at: optional string
formatdate-time
outputs: optional map[object { audio, srt, video } ]

Present only when completed, keyed by requested target language. URLs are signed on every read.

audio: string
formaturi
srt: string
formaturi
video: string
formaturi
reference_id: optional string
source_language: optional string

Explicit source language, or the detected one once processing starts.

started_at: optional string
formatdate-time
webhook_url: optional string

The configured terminal callback URL, when supplied.

formaturi

Video TranslateVoices

Endpoints for creating and polling asynchronous video translations.

List voices for speaker assignment
GET/v1/video-translate/voices
ModelsExpand Collapse
VoiceListResponse object { pagination, voices }
voices: array of object { application, default_name, description, 5 more }
application: string

Intended use case, for example narration.

default_name: string
description: string
gender: "Male" or "Female" or "Other"
One of the following:
"Male"
"Female"
"Other"
is_favorite: boolean

Whether the authenticated account marked this voice as a favorite.

language: string

Primary language label.

name: string

Effective name (the account’s custom name when set, otherwise default_name).

voice_id: string

External voice ID. Use this value in config.speaker_voices.