Read a workflow's collected data
writ_workflow_dataRead-onlyIdempotent
Reads the accumulated extracted data of a saved workflow as a table (columns + rows). q filters; run_id selects one run. Long text cells arrive preview-cut (_truncated lists the fields); refs returns full records. Crawl ids are a different namespace: a writ_crawl_site run's data lives behind writ_crawl_status / writ_saved_crawl_data, not here.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Substring filter across fields. | |
| refs | No | Hydration: full untruncated records by ref '<run_id>:<record_index>' (both fields are on every row). Max 100. | |
| view | No | all | latest | run | |
| limit | No | ||
| device | No | A linked Writ desktop's agent_id (writ_devices) to act on. Omitted: the desktop this connection chose with writ_devices action='use', if any. | |
| output | No | Response shape, for an answer a program or an API consumes rather than a reader. {shape: 'envelope' (default: Writ's full answer, projected) | 'table' ({columns, rows, total}) | 'records' (bare list of records) | 'record' (the newest record alone: one entity, a usage meter, a dashboard), fields: ['used', 'percent_used as pct', 'items.0.price as first_price'] (ordered pick, renames, dotted paths; a missing path is null, so keys are stable), exclude: ['depth'], include_meta: false (page metadata content_kind/depth/thumbnails is stripped unless true), key: 'usage' (wrap)}. On writ_crawl_site with save_as it is saved as the API's default shape. | |
| run_id | No | ||
| workflow | No | ||
| workflow_id | No | ||
| preview_chars | No | Cut string cells to this many characters (default 2000; 0 = full cells). |