> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mosaic.so/llms.txt
> Use this file to discover all available pages before exploring further.

# List Automation Runs

> List runs across every agent in a workspace, including failed-node detail, for external stalled/failed-job checks.

Returns runs for a whole workspace (not just one agent) with the nodes that failed inside each run. Pair it with [List Ingest Batches](/api/automations/get-ingest-batches) to cover the full path from upload through processing.

## Request

```bash theme={null}
curl -X GET "https://api.mosaic.so/automations/runs?status=failed&limit=100" \
  -H "Authorization: Bearer mk_your_api_key" \
  -H "x-workspace-id: [workspace_id]"
```

## Query Parameters

| Field | Type | Required | Description |
| - | - | - | - |
| `since` | string | No | ISO timestamp lower bound on run `created_at` (default: 14 days ago). |
| `status` | string | No | Comma-separated run statuses (for example `failed,cancelled`). |
| `agent_id` | string | No | Restrict results to one agent. |
| `production_id` | string | No | Restrict results to one production. |
| `batch_key` | string | No | Restrict results to one batch key. |
| `limit` | number | No | Page size (`1-500`, default `200`). |
| `offset` | number | No | Number of rows to skip for pagination. |

## Response

```json theme={null}
{
  "runs": [
    {
      "id": "7f8d9c2b-4a6e-8b3f-1d5c-9e2f3a4b5c6d",
      "agent_id": "123e4567-e89b-12d3-a456-789012345678",
      "agent_name": "Transcoding Pipeline",
      "status": "failed",
      "status_message": null,
      "created_at": "2026-10-13T18:05:00Z",
      "trigger": {
        "type": "storage_trigger",
        "batch_key": "PROD-001",
        "production_id": null,
        "source_folder_path": "/Uploads/PROD-001",
        "batch_window_id": "6b1f2c3d-0000-4a00-8f00-000000000001"
      },
      "node_count": 6,
      "failed_node_count": 1,
      "failed_nodes": [
        {
          "id": "9cb911f5-7e2e-473d-8de0-9f5e2b7c95c1",
          "name": "Google Drive Trigger",
          "status_message": "Drive download failed"
        }
      ]
    }
  ],
  "next_offset": null
}
```

`failed_nodes[]` names each tile that failed with its status message. A run that stays in `running` or `queued` past your expectation is your stalled signal; `failed` with `failed_nodes` tells you which step broke.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.