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

Text-to-Speech Jobs

List async operations

List the operations of your async synthesis jobs. The workspace is resolved from your API key, so no workspace id is needed. Use - as the job segment to list across every one of your async 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}/ttsAsyncJobs/{job}/operations, remains valid.

GET/lro/v1alpha/ttsAsyncJobs/{job}/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

jobstringrequired

A specific async job id to list that job's operations, or - to list operations across every one of your async 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}/ttsAsyncJobs/{job}/operations/{operation}. Pass it verbatim as the path of the Get operation endpoint to poll for completion.

metadataobject

Always null. An async job is a single unit of work and carries no progress metadata: done already says everything there is to know.

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 job succeeded: a SynthesizeSpeechAsyncResponse saying where the results are.

Show child attributes

@typestring

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

audioUristring

Pre-signed download URL for the synthesized audio, in the format requested via audioConfig.audioEncoding. Set when the results are packaged as FILES, the default for results Inworld hosts.

timestampsUristring

Pre-signed download URL for the timestamp alignment JSON. Only present when timestampType was set in the request and the results are packaged as FILES. The file is a JSON array of timestamp objects on one timeline from the start of the audio; see Reading the timestamps document.

resultsUristring

The zip archive holding the results, when they are packaged as ZIP. For results delivered to your storage, your outputConfig.resultsUri without its signature; for an archive Inworld hosts, a pre-signed download URL that expires at expireTime.

resultsPathstring

Path of the results document inside the archive at resultsUri. Read the name from here rather than assuming it.

expireTimestring

Time at which the download URLs expire, approximately 7 days after job completion. Absent when the results were delivered to outputConfig.resultsUri, where nothing is left with Inworld to expire.

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.