List Workflow Runs

Stored runs and access

Use the database-backed example workflow server and retain the returned workflow, run and session IDs. Configured authorization requires access to run the target workflow.

JWT user isolation is opt-in; non-admin service-account PAT callers always self-scope. Scoped callers can read only their own matching workflow sessions and runs. A wrong owner, missing record or cross-component ID returns 404. Authentication alone does not enable user isolation.

List shape and filtering

Supply the saved session_id. The response is a bare array, without a data wrapper or pagination metadata. Each item is a run projection, not the full polling output. For example (other fields omitted):

[{"run_id":"returned-run-id","workflow_id":"echo","run_input":"Hello","content":"Hello","status":"COMPLETED","created_at":"2026-09-07T09:00:00Z"}]

The projection uses run_input and an ISO timestamp; it does not include session_id. Keep the session ID from your request.

status uses exact uppercase matching, including CANCELLED, as well as PENDING, RUNNING, COMPLETED, ERROR and PAUSED. A lowercase or unknown value currently returns an empty array, not a validation error.

For a factory, pass the factory_input JSON query value needed for reconstruction. Remote workflow run listing returns 400. A nonexistent session returns 404, while an existing matching session can have an empty run list.

GET/workflows/{workflow_id}/runs

List runs for a workflow within a session, optionally filtered by status.

Useful for monitoring background runs and viewing run history.

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

workflow_id*Workflow Id

Query Parameters

session_id*Session Id

Session ID to list runs for

status?|

Filter by run status (PENDING, RUNNING, COMPLETED, ERROR, PAUSED)

factory_input?|

JSON object with factory-specific parameters for dynamic workflow reconstruction

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl --request GET 'https://example.com/workflows/string/runs?session_id=string'
null