Skip to main content
POST
Search Workflow Runs

Authentication and permissions

Token requirements: User-based token (OAuth) or Organization-scoped API key or Team-scoped API key. Send a bearer access token for one of these identities. The permissions and resource restrictions below also apply.
Permissions joined by + are all required; or separates alternatives. Full-access keys still cannot call endpoints marked unsupported. Team keys must allow every team checked by the request. OAuth access depends on the user’s roles and resource access.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
teamId
string

The ID of the team. Required.

workflowId
string | null

Filter by workflow ID.

statuses
enum<string>[]

Filter by statuses (multiple allowed).

Available options:
WORKFLOW_RUN_STATUS_UNSPECIFIED,
WORKFLOW_RUN_STATUS_PENDING,
WORKFLOW_RUN_STATUS_RUNNING,
WORKFLOW_RUN_STATUS_COMPLETED,
WORKFLOW_RUN_STATUS_FAILED,
WORKFLOW_RUN_STATUS_DENIED,
WORKFLOW_RUN_STATUS_CANCELED
targetUserId
string | null

Filter by the target user for the workflow run.

initiatedByUserId
string | null

Filter by the user who initiated the workflow run.

createdAfter
string | null

Filter by runs created after this timestamp (RFC3339 format).

createdBefore
string | null

Filter by runs created before this timestamp (RFC3339 format).

linkedTicketId
string | null

Filter by linked ticket ID.

pageSize
integer<int32> | null

Maximum number of results to return. Default is 50, maximum is 200. Larger values are silently coerced server-side; the actual value used is returned in the X-Served-Page-Size response header.

pageToken
string | null

Token for pagination. Leave empty for the first request.

includeOutput
boolean | null

When true (default), each returned run includes its output field (the full workflow result). For multi-row search responses this can be megabytes per row — set to false if you only need run metadata; you can then fetch full output per-run via GetWorkflowRun. Strongly recommended false for any caller that does not need output.

parentWorkflowRunId
string | null

Filter to the direct child runs (sub-workflows) of this parent run. Pass a run ID here to list the runs it spawned one level deep; combine with statuses (e.g. FAILED) to find the failing children.

includeChildRuns
boolean | null

Whether to include child runs (sub-workflows) in the results. Unset means true (all runs are returned — matches include_output's unset-means-true convention). Set explicitly to false to return only top-level runs; on journey-heavy teams child runs can be >90% of total rows, so this avoids paging them just to discard them client-side. include_child_runs=false is mutually exclusive with parent_workflow_run_id (a run cannot both have a given parent and no parent); combining them is a 400.

includeRunsWithLinkedTicket
boolean | null

When true, return only runs that are linked to a ticket (linked_ticket_id set). Unset and explicit false are equivalent — no filter is applied. Useful for building per-ticket run indexes without fetching unlinked runs.

Response

200 - application/json

Success

data
WorkflowRun · object[]

The list of workflow runs.

nextPageToken
string | null

Token for retrieving the next page of results. Empty if no more results.