List Agent Runs

Beta

List an agent’s runs, newest first.

The filters are exactly the ones listed here. A query parameter this list does not accept is a 400 naming it, never silently ignored.

This endpoint is in beta: it is available to workspaces granted durable_runs_access, and every other workspace receives 402 durable_runs_not_in_plan.

Authentication

AuthorizationBearer

Enter your API key with the Bearer prefix, e.g. ‘Bearer sk_…’.

Path parameters

agent_idstringRequired

Agent id (prefixed external id, agent_...).

Headers

Speechify-VersionstringOptional

Query parameters

statusenumOptional

Narrow the list to one run status. Omit for every status. A value outside the enum is rejected with a 400 naming status, rather than quietly widening to everything - a filter that ignores a typo is how a surface reports “nothing waiting” while a run waits.

user_identitystringOptional<=256 characters

Narrow the list to runs acting for one person - the user_identity they were started with, matched exactly. Omit for every run. A scheduled run started by a trigger carrying user_identity is found here too.

cursorstringOptional
Opaque pagination cursor from a previous response.
limitintegerOptional1-200Defaults to 50

Max items per page (default 50, max 200).

Response headers

Speechify-Request-IdstringOptional
Unique identifier for this request, present on every response (2xx and non-2xx alike). If the caller sends a `Speechify-Request-Id` request header the server echoes it back (sanitized and length-capped) so one logical request can be traced end-to-end; otherwise the server generates a fresh value. Log it on every response and quote it in support requests - it is the stable handle that ties your observation to Speechify's server-side logs, and it matches the `request_id` field in the error envelope. The legacy alias `X-Request-ID` carries the same value and is still accepted on requests, until 2027-07-24. Prefer the un-prefixed name (RFC 6648).

Response

The agent's runs, newest first.
next_cursorstring or null

Opaque keyset cursor for the next page. Pass back as the cursor request parameter. null when the caller has reached the end of the list (has_more is also false in that case).

has_moreboolean
True when more rows exist beyond this page.
runslist of objects

Errors

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
404
Not Found Error