List workflow runs for an app

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Lists runs across every workflow on the app, newest first.

Use status to keep only runs in one state, and since to keep only runs that started after a moment in time. Page with limit and offset.

Each row names its workflow, so this is the endpoint for an activity feed. For one workflow's history use List runs for a workflow.

This endpoint is limited to 60 requests per minute.

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>

get/api/apps/{app_id}/workflows/runs

Path parameters

app_idstring required

ID of the app whose workflows you want to work with.

ID of the app whose workflows you want to work with.

Query parameters

limitinteger

Most runs to return.

Most runs to return.

offsetinteger

How many runs to skip, for paging.

How many runs to skip, for paging.

statusstring nullable

Keep only runs in this state, for example failed.

Keep only runs in this state, for example failed.

sincestring nullable

Keep only runs that started at or after this ISO 8601 datetime.

Keep only runs that started at or after this ISO 8601 datetime.

Response

Runs across the app's workflows, newest first.

run_idstring required

ID of the run.

workflow_idstring required

ID of the workflow that ran.

workflow_namestring

Name of that workflow at the time of the run.

trigger_typestring

What started the run, for example scheduled or entity_created.

statusstring required

How the run is going: running, completed, failed, or cancelled.

started_atstring nullable

When the run started, as an ISO 8601 timestamp.

completed_atstring nullable

When the run finished. null while it is still running.

duration_msinteger

How long the run took, in milliseconds. 0 while it is still running.

steps_countinteger

Steps the run executed.

error_messagestring nullable

Why the run failed. null when it did not fail.

is_test_runboolean

true when the run was started by hand through Run a workflow now, rather than by its trigger.

credits_consumednumber

Credits the run used.

status_reasonstring

Why the run failed or was cancelled. Empty on runs that finished successfully.

Example response

[
  {
    "run_id": "0195f2a1-4c3e-7b21-9f0d-2a5c8e1b4d77",
    "workflow_id": "68b1c0d4e7b91d003c45a1f2",
    "workflow_name": "Email me new signups",
    "trigger_type": "scheduled",
    "status": "completed",
    "started_at": "2026-08-25T09:12:44Z",
    "completed_at": "2026-08-25T09:12:46Z",
    "duration_ms": 1840,
    "steps_count": 3,
    "error_message": "The email step failed because the recipient address was missing.",
    "credits_consumed": 0.5
  }
]

Changes