---
title: "List pipeline runs"
method: GET
path: "/pipeline_runs"
tags: ["Pipeline Observability"]
---

# List pipeline runs

`GET /pipeline_runs`

## Request

- Base URL: `https://api.mosaic.so`
- URL: `https://api.mosaic.so/pipeline_runs`
- Auth: HTTP bearer

Lightweight run discovery without graph, input, or output expansion. Prefer this feed for large pipeline dashboards. Paginated by creation time and ID; updated_from matches run-row changes only.

## Query parameters

- `limit` integer
- `cursor` string
- `from` string, date-time
- `to` string, date-time
- `updated_from` string, date-time
- `workspace_id` string, uuid
- `agent_id` string, uuid
- `status` string
- `folder_id` string
- `batch_id` string, uuid
- `batch_key` string
- `storage_trigger_id` string, uuid
- `production_id` string

## Headers

- `X-Workspace-Id` string, uuid

## Response `200`

Current organization-scoped evidence.

- object
  - `runs` CanvasRunEvidence[]
    - `id` string, uuid, required: Run ID; use as run_id in run endpoints.
    - `agent_id` string, uuid, nullable, required: Originating agent ID.
    - `workspace_id` string, uuid, required: Workspace that owns this run.
    - `status` string, required: Persisted run status, such as queued, running, completed, partial_complete, failed, or cancelled.
    - `status_message` string, nullable, required: Run status details.
    - `created_at` string, date-time, required: Run creation time.
    - `updated_at` string, date-time, nullable, required: Last run-row update; null for unchanged historical runs. Node/task changes can happen independently.
    - `trigger_info` object, nullable, required: Source metadata, including source_folder_id, batch_window_id, batch_key, storage_trigger_subscription_id, or production_id when supplied by the trigger.
  - `next_cursor` string, nullable

## Other responses

- `400`: Invalid UUID, cursor, limit, timestamp, filter, or unsupported updated_from on batch items.
- `401`: Missing, invalid, or revoked API key.
- `403`: Insufficient API key scope, unavailable paid-plan access, or workspace header/query mismatch. Scope errors include code, required_scope, granted_scopes, retryable, and resolution. Other authorization errors retain detail.
- `404`: Requested run, trigger, or batch is absent or outside the authorized organization/workspace.
- `500`: Database or query failure. Never interpret this as an empty successful result; use bounded backoff.

---

[API](https://skmtc.dev/mosaic/apis/mosaic-ai-api.md) - [All operations](https://skmtc.dev/mosaic/apis/mosaic-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mosaic/apis/mosaic-ai-api/revisions/c20e9fc606a4?raw)
