Skip to main content
POST
Synthesize speech (async)

Authorizations

Authorization
string
header
required

Send your API Key in the Authorization header (Bearer <api_key>). See Authentication.

Headers

X-Idempotency-Key
string
required

Required on mutating POST requests that create tasks or change persisted data (max 64 characters). See Idempotency.

Maximum string length: 64

Body

application/json
data
object[]
required

Lines to synthesize (max 50). Each item needs text and a Voices voiceId or timbreRefAudio

Maximum array length: 50
provider
string
deprecated

Deprecated — do not send. Pass voiceId on each line instead. See Text to speech and Supported clone methods.

language
object

Target language for synthesis

trim
boolean
default:false

When true, trim leading and trailing silence from output audio

outputFormat
enum<string>
default:m4a

Output audio container: wav, mp3, or m4a

Available options:
wav,
mp3,
m4a
extraData
object

Optional client metadata on async submit; echoed in the completion webhook (extraData in callback body). Not used on sync create endpoints.

Callbacks

POST
https://{yourWebhookUrl}taskCompleted

Body

application/json

Webhook callback request body for Text to speech when event is openapi-tts. data includes synthesis results and taskId. See Webhook request body and Create TTS (async)Callbacks.

data
object
required

Product-specific results when event is openapi-tts. data includes synthesis results and taskId.

code
integer

Business outcome for this delivery

Example:

200

version
string

API version of the task (e.g. v1, v2). Matches the version in the request path (/openapi/v1/...).

Example:

"v1"

event
enum<string>

Which product completed. Route your handler by this value: openapi-tts (TTS), openapi-translate (text translation), openapi-clone-voice (voice clone), openapi-media-translation (media translation). Listed in Webhook request body.

Available options:
openapi-tts,
openapi-translate,
openapi-clone-voice,
openapi-media-translation
Example:

"openapi-tts"

pipelineKey
string

Stable ID for this async completion. Deduplicate webhook handling by this value — see Webhook request body.

Example:

"a1b2c3d4e5f6789012345678901234ab"

message
string

Detail when code is not success

extraData
object

Echo of extraData from your async submit request

Response

200

Return 2xx promptly to stop retries

Response

200 - application/json

Acceptance only (taskId, createdAt). Final results are in the Webhook callback request body.

code
integer
required

Business code; 200 means success

Example:

200

message
string

Human-readable detail when code is not success

Example:

""

data
object

Immediate response for async task submission (no task results)