# All of your running async jobs
curl --location 'https://api.inworld.ai/lro/v1alpha/ttsAsyncJobs/-/operations?filter=-done' \
--header "Authorization: Basic $INWORLD_API_KEY"import requests
url = "https://api.inworld.ai/lro/v1alpha/ttsAsyncJobs/-/operations"
headers = {"Authorization": "Basic <api-key>"}
operations = []
params = {"filter": "-done"}
while True:
page = requests.get(url, headers=headers, params=params).json()
operations += page.get("operations", [])
if "nextPageToken" not in page:
break # absent token means no more results; empty pages are normal
params["pageToken"] = page["nextPageToken"]
for op in operations:
print(op["name"])const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.inworld.ai/lro/v1alpha/ttsAsyncJobs/{job}/operations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"operations": [
{
"name": "workspaces/{workspace}/ttsAsyncJobs/8f14e45f-ceea-4673-93d8-04f724c8a1b2/operations/1784837936461-p0sEhU",
"done": false
}
]
}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.
# All of your running async jobs
curl --location 'https://api.inworld.ai/lro/v1alpha/ttsAsyncJobs/-/operations?filter=-done' \
--header "Authorization: Basic $INWORLD_API_KEY"import requests
url = "https://api.inworld.ai/lro/v1alpha/ttsAsyncJobs/-/operations"
headers = {"Authorization": "Basic <api-key>"}
operations = []
params = {"filter": "-done"}
while True:
page = requests.get(url, headers=headers, params=params).json()
operations += page.get("operations", [])
if "nextPageToken" not in page:
break # absent token means no more results; empty pages are normal
params["pageToken"] = page["nextPageToken"]
for op in operations:
print(op["name"])const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.inworld.ai/lro/v1alpha/ttsAsyncJobs/{job}/operations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"operations": [
{
"name": "workspaces/{workspace}/ttsAsyncJobs/8f14e45f-ceea-4673-93d8-04f724c8a1b2/operations/1784837936461-p0sEhU",
"done": false
}
]
}Authorizations
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
A specific async job id to list that job's operations, or - to list operations across every one of your async jobs.
Query Parameters
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.
done, -done, NOT done, done=true, done=false 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.
x <= 1000Opaque cursor from a previous response's nextPageToken. Treat it as a black box.
Response
A successful response.
A page of operations. Order is unspecified.
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
Show child attributes
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.