Skip to main content
POST
Translate and caption

Authorizations

Authorization
string
header
required

A workspace API key.

Headers

idempotency-key
string

Stable retry key for this logical paid call. Reuse it after a timeout to receive the original result without duplicate work or spend.

Required string length: 1 - 255
x-sigmora-quote-only
string

Send 1 to get the price, balance and budget verdict without running anything.

Allowed value: "1"
x-sigmora-max-credits
string

The approved price; a call that would cost more is refused and nothing is charged.

Pattern: ^\d+$

Body

application/json

Send exactly one source: either transcript or assetId, not both and not neither. Priced per language-minute of the transcript that results.

transcript
object
required

The transcript to translate. Send exactly one of transcript or assetId.

targetLanguages
string[]
required

One to 20 BCP 47 language tags to produce, e.g. ["es", "sw"].

Required array length: 1 - 20 elements
Required string length: 1 - 20
Example:
projectId
string
required

The existing project to file this work under. Create it with POST /v1/projects, then reuse its id across related calls. A project this workspace does not own answers not_found; the work is never silently filed somewhere else.

Required string length: 1 - 200
assetId
string

Translate a transcript this workspace has already had transcribed instead of sending one. Send exactly one of transcript or assetId. Asset ids come from GET /v1/assets (an asset is usable once transcriptReady is true). An asset in another workspace is reported as not found.

Required string length: 1 - 200
sourceLanguage
string

Source language. Required with assetId when no language was recorded for that asset — there is no default, because guessing would mis-translate a non-English asset silently.

Required string length: 1 - 20
dub
boolean
default:false

Also synthesize dubbed audio. Defaults to false; dubbing costs more than captions.

captionFormat
enum<string>

Caption file format. Omit to use the service default.

Available options:
srt,
vtt
voiceId
string

Provider-specific narration voice id used only when dub is true. Omit to use the deployment default; the public API has no universal cross-provider voice list.

Maximum string length: 120
provider
enum<string>

Premium dubbing provider. English dubs default to Speechify Simba 3.2. Non-English dubs require an explicit compatible provider; providers are never auto-switched.

Available options:
speechify,
elevenlabs,
deepgram,
gemini
model

Provider-specific approved model. Set provider whenever model is supplied.

Allowed value: "simba-3.2"
context
string

Translation context such as product names, preferred terminology, and phrases that must not be translated.

Maximum string length: 4000

Response

Success.

success
boolean
required
credits
number
required

What this call actually cost, which is not always what was quoted.

Example:

300

localization
object
required

Per-language captions with the cue timing preserved, plus dubbed audio if asked.

languageMinutes
number
required

What was billed: languages multiplied by transcript minutes.

projectId
string

The existing project this work was filed under. It matches the projectId supplied by the caller after workspace ownership was verified.

Example:

"prj_9x2a4c"

creditBalance
number

Your balance after the charge. Absent when billing is disabled for the workspace.

Example:

3900

reused
object

Present only when assetId was sent: the indexed transcript this call reused, how many cues, and when it was captured.

{key}
any