Skip to content
looot docs
Esc
↑↓navigate↵open⌘Jpreview
On this page

runs_list

Free, cursor-paginated run history for a workspace, filtered by status or job, with bounded summary rows by default.

Cursor-paginated run history filtered by workspace, status, or capability. Free and read-only. Each row is a bounded summary, not the full result payload; pass includeResult: true to get full run records back without calling runs_get on each one.

Inputs

Argument Type Required Default Limits Meaning
status string No - queued, running, completed, failed, blocked, stopped, reconciliation_pending, pending_provider Filter by run status.
capability string No - pattern ^[a-z][a-z0-9-]*(?:\.[a-z0-9-]+)+$ Filter by job id.
limit integer No 20 1-50 Rows per page.
cursor string No - - From a previous answer’s nextCursor.
includeResult boolean No - - Return full run records, including result, in place of the bounded summary.

Each row has runId, endpointId, providerId, status, providerResponseStatus, createdAt, completedAt, actualCost, error (same shape as run/runs_get), resultBytes, and servedEndpointId/servedProviderId (absent when none did).

Example call

{
  "status": "completed",
  "limit": 5
}

Example answer

Abridged: a full row also carries providerResponseStatus, resultBytes and, on a fallback run, servedEndpointId/servedProviderId.

{
  "nextCursor": "run_91f95b26366f480382ebdff27e77f7e8",
  "runs": [
    {
      "runId": "run_06d5d0b1fe0847b48002ead80e3da7df",
      "endpointId": "linkup-search",
      "providerId": "linkup",
      "status": "completed",
      "createdAt": "2026-09-24T21:09:03.737Z",
      "completedAt": "2026-09-24T21:09:10.916938+00:00",
      "actualCost": 0.005,
      "error": null
    }
  ]
}

Errors

Free and read-only; no runs.execute needed. A status outside the enum returns validation_error naming every accepted value. limit above 50 or below 1 is refused the same way.

REST and CLI

  • REST: GET /v1/runs
  • CLI: looot runs list [--status] [--limit] [--cursor]

Was this page helpful?