Skip to main content
GET
/
v1
/
workflows
/
reviews
from retab import Retab

client = Retab()

# Open reviews waiting on a human, across all workflows
queue = client.workflows.runs.reviews.list(status="awaiting_review", limit=50)

for item in queue.data:
    print(item.workflow_run_id, item.block_id, item.status)

# Only the reviews I've claimed
mine = client.workflows.runs.reviews.list(mine=True)
print(len(mine.data), "claimed", mine.has_more)
{
  "data": [
    {
      "workflow_run_id": "run_abc123",
      "block_id": "block_extract",
      "workflow_id": "wf_1",
      "status": "awaiting_review",
      "rev": 3,
      "latest_version_seq": 1,
      "claim": {
        "holder": {
          "kind": "human",
          "id": "user_42",
          "display_name": "Dana Rivera"
        },
        "claimed_at": "2026-05-13T08:55:00.000Z",
        "expires_at": "2026-05-13T09:55:00.000Z"
      },
      "created_at": "2026-05-13T08:14:02.341Z",
      "updated_at": "2026-05-13T09:02:51.118Z"
    },
    {
      "workflow_run_id": "run_def456",
      "block_id": "hil-2",
      "workflow_id": "wf_1",
      "status": "awaiting_review",
      "rev": 0,
      "latest_version_seq": 0,
      "claim": null,
      "created_at": "2026-05-13T09:40:10.002Z",
      "updated_at": "2026-05-13T09:40:10.002Z"
    }
  ],
  "has_more": false
}

Documentation Index

Fetch the complete documentation index at: https://docs.retab.com/llms.txt

Use this file to discover all available pages before exploring further.

List the review queue — every gated block run that has an open review overlay, plus recently decided ones. Each item is a ReviewQueueItem summary, not the full overlay. Use Get Review to fetch the complete overlay (versions, decisions, audit trail) for a given (run_id, block_id) pair. Filter the queue with the query parameters:
ParameterNotes
workflow_idOptional — restrict to a single workflow.
statusawaiting_review / approved / rejected. Omit to return all.
minetrue returns only overlays you currently hold the advisory claim on.
limit1200. Defaults to a server-side page size; paginate with has_more.
This is the entry point for building a review inbox. For the end-to-end loop — claiming, editing, and submitting a verdict — see the HIL Reviews guide.
from retab import Retab

client = Retab()

# Open reviews waiting on a human, across all workflows
queue = client.workflows.runs.reviews.list(status="awaiting_review", limit=50)

for item in queue.data:
    print(item.workflow_run_id, item.block_id, item.status)

# Only the reviews I've claimed
mine = client.workflows.runs.reviews.list(mine=True)
print(len(mine.data), "claimed", mine.has_more)
{
  "data": [
    {
      "workflow_run_id": "run_abc123",
      "block_id": "block_extract",
      "workflow_id": "wf_1",
      "status": "awaiting_review",
      "rev": 3,
      "latest_version_seq": 1,
      "claim": {
        "holder": {
          "kind": "human",
          "id": "user_42",
          "display_name": "Dana Rivera"
        },
        "claimed_at": "2026-05-13T08:55:00.000Z",
        "expires_at": "2026-05-13T09:55:00.000Z"
      },
      "created_at": "2026-05-13T08:14:02.341Z",
      "updated_at": "2026-05-13T09:02:51.118Z"
    },
    {
      "workflow_run_id": "run_def456",
      "block_id": "hil-2",
      "workflow_id": "wf_1",
      "status": "awaiting_review",
      "rev": 0,
      "latest_version_seq": 0,
      "claim": null,
      "created_at": "2026-05-13T09:40:10.002Z",
      "updated_at": "2026-05-13T09:40:10.002Z"
    }
  ],
  "has_more": false
}

Authorizations

Api-Key
string
header
required

Query Parameters

workflow_id
string | null
status
enum<string>
default:awaiting_review
Available options:
awaiting_review,
approved,
rejected
mine
boolean
default:false

Only reviews claimed by the caller.

limit
integer
default:50
Required range: 1 <= x <= 200

Response

Successful Response

The paginated review-queue list (§7).

data
ReviewQueueItem · object[]
required
has_more
boolean
default:false

True when the queue has more rows than this page returned.