Realtime TTS-2 is live. Built for realtime conversation that feels human. Read the Realtime TTS-2 announcement

Text-to-Speech Jobs

List batch operations

List the operations of your batch synthesis jobs. The workspace is resolved from your API key, so no workspace id is needed. Use - as the batch segment to list across every one of your batch jobs — this is how you find jobs again after losing an operation name. Add filter=-done to see only running jobs. Results cover roughly the last 7 days (operations expire with their results), their order is unspecified, and a page can be short or empty while more results remain — keep paginating until the response has no nextPageToken. The fully qualified form, /lro/v1alpha/workspaces/{workspace}/ttsBatchJobs/{batch}/operations, remains valid.

GET/lro/v1alpha/ttsBatchJobs/{batch}/operations

Authorizations

Authorizationstringrequired

Your authentication credentials. For Basic authentication, please populate Basic $INWORLD_API_KEY. You can create a key in one command with the Inworld CLI: inworld workspace add-key.

Path Parameters

batchstringrequired

A specific batch job id to list that job's operations, or - to list operations across every one of your batch jobs.

Query Parameters

filterenum<string>

Optional. -done (or NOT done, or done=false) returns only running jobs; done (or done=true) only finished ones. Omit for all. Any other filter is rejected with INVALID_ARGUMENT.

Available options:done-doneNOT donedone=truedone=false

pageSizeintegerdefault: 50

Upper bound on operations scanned per page, before expired or filtered-out entries are removed — so a returned page can be smaller. Defaults to 50, capped at 1000.

pageTokenstring

Opaque cursor from a previous response's nextPageToken. Treat it as a black box.

Response

200 - application/json

operationsobject[]

Operations on this page. May be absent when the page is empty — an empty page does not mean the listing is finished.

Show child attributes

namestring

Server-assigned operation resource name, in the format workspaces/{workspace}/ttsBatchJobs/{batch}/operations/{operation}. Pass it verbatim as the path of the Get operation endpoint to poll for completion.

metadataobject

SynthesizeSpeechBatchMetadata counting the items finished so far, present from the moment the batch is accepted through to the terminal response.

Show child attributes

@typestring

totalItemsinteger

Number of items in the batch. Fixed when the batch is accepted, so it is readable before any work starts.

completedItemsinteger

Items synthesized successfully so far. A zero counter is spelled out as 0 on the submit response but omitted from the poll response, so read it with a default rather than testing whether the key is present.

failedItemsinteger

Items that finished with an error so far. Item errors do not fail the batch — it still completes, and every item keeps its own entry in the results file. Omitted from the poll response while zero.

createTimestring

When the batch was accepted.

doneboolean

If false, the job is still running. If true, the job has finished and exactly one of error or response is set.

errorobject

Show child attributes

codeinteger

The error code, as specified by gRPC status codes.

messagestring

A short description of the error.

detailsobject[]

Show child attributes

@typestring

responseobject

Set when the batch succeeded: a SynthesizeSpeechBatchResponse naming the results file.

Show child attributes

@typestring

Type of the serialized message, always type.googleapis.com/ai.inworld.tts.v1.SynthesizeSpeechBatchResponse.

resultsUristring

Where the results live. Packaged as FILES, the default for results Inworld hosts: a pre-signed download URL for the results file. Packaged as ZIP: the archive holding that file at resultsPath — your outputConfig.resultsUri without its signature when the results were delivered to your storage, or a pre-signed download URL for an archive Inworld hosts.

resultsPathstring

Path of the results file inside the archive at resultsUri. Absent when the results are packaged as FILES, where resultsUri is the results file itself.

expireTimestring

Time at which the download URLs expire — resultsUri and, packaged as FILES, every audio URL inside the results file — approximately 7 days after the batch completes. Absent when the results were delivered to outputConfig.resultsUri.

nextPageTokenstring

Cursor for the next page. Absent when there are no further results — paginate until this field is missing, not until a page comes back short or empty.