---
title: "Get table run"
method: GET
path: "/tables/{tableId}/runs/{runId}"
tags: ["Workspace"]
---

# Get table run

`GET /tables/{tableId}/runs/{runId}`

## Request

- Base URL: `https://origami.chat/api/v2`
- URL: `https://origami.chat/api/v2/tables/{tableId}/runs/{runId}`
- Auth: HTTP bearer

Durable recovery read for table-run completion: returns the parent
run's status, source, timestamps, optional failure reason, and terminal
child counts (counts are present only once the run is terminal). This is
the fallback for a missed `table.run.completed` webhook. Purged
(retention-expired) or foreign runs return `404`.

## Response `200`

The table-run object.

- TableRun: The durable parent of a table operation (e.g. an API enrichment batch). Reconciled once its child work finishes, then fanned out via the `table.run.completed` webhook. This object is the durable status read.
  - `object` 'table_run', required
  - `id` string, uuid, required
  - `tableId` string, uuid, required
  - `source` 'agent' | 'api' | 'ui' | 'lead_source' | 'backfill', required
  - `status` 'building' | 'processing' | 'cancelling' | 'failing' | 'complete' | 'cancelled' | 'failed', required
  - `createdAt` string, date-time, required
  - `activatedAt` string, date-time, nullable
  - `completedAt` string, date-time, nullable
  - `failureReason` string, nullable
  - `counts` object, nullable: Terminal child-outcome counts; null until the run is terminal.
    - `complete` integer
    - `errored` integer
    - `cancelled` integer

## Other responses

- `404`: RUN_NOT_FOUND or TABLE_NOT_FOUND.

## Changes

- **2026-11-03** `8c6b16fe0a3b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/origami/apis/origami-agent-api/changes/tables/:tableId/runs/:runId/get.md)

---

[API](https://skmtc.dev/origami/apis/origami-agent-api.md) - [All operations](https://skmtc.dev/origami/apis/origami-agent-api/llms.txt) - [OpenAPI document](https://skmtc.dev/origami/apis/origami-agent-api/revisions/8c6b16fe0a3b?raw)
