> This page is for Developer Documentation.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.benchling.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.benchling.com/_mcp/server.

# List Review items

GET https://{tenant_name}.benchling.com/api/v3/review/items

List Review items.

Reference: https://docs.benchling.com/docs/api/benchling-api/review/list

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Query parameters

- `createdAt.gt` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created after the specified time. e.g. > 2017-04-30.
- `createdAt.gte` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or after the specified time. e.g. >= 2017-04-30.
- `createdAt.lt` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created before the specified time. e.g. \< 2017-04-30.
- `createdAt.lte` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or before the specified time. e.g. \<= 2017-04-30.
- `id.anyOf` (string, optional) — Restricts results to those matching any of the specified IDs. Comma-separated list.
- `nextToken` (string, optional) — Token for pagination
- `omit` (string, optional) — Comma-separated list of top-level fields to omit from each returned item. Cannot overlap with returning.
- `pageSize` (integer, optional) — Number of results to return. Defaults to 50, maximum of 100.
- `returning` (string, optional) — Comma-separated list of top-level fields to include in each returned item. Cannot overlap with omit.
- `reviewableId.anyOf` (string, optional) — Restricts results to any of the specified reviewable item IDs (e.g. entry or worksheet API IDs). Comma-separated list.
- `sort` (enum, optional, default: createdAt:desc) — Method by which to order results. Valid sorts are: createdAt (created time, oldest first). Use :asc or :desc to specify ascending or descending order. Default is createdAt:desc.
  - Allowed values: `createdAt:asc`, `createdAt:desc`

### Headers

- `EARLY-ACCESS` (string, optional) — Set to true to access beta operations via /api/v3.

## Response

### 200

OK

- `items` (list of Review, optional)
- `nextToken` (string, optional)

## Errors

### 400 Review List Request Bad Request Error

Bad Request

- `detail` (GeneralErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 403 Review List Request Forbidden Error

Forbidden

- `detail` (GeneralErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 404 Review List Request Not Found Error

Not Found

- `detail` (GeneralErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 429 Review List Request Too Many Requests Error

Too Many Requests

- `detail` (TooManyRequestsErrorBodyDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)
- `violated-policies` (list of enum, optional) — The budget policies that rejected the request, in canonical order: `user`, `integration`, then `tenant`.
  - Allowed values: `user`, `integration`, `tenant`

### 500 Review List Request Internal Server Error

Internal Server Error

- `detail` (InternalServerErrorBodyDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `errorId` (string, optional)

## Types

### Review

Represents an active or completed review of a reviewable item such as an Entry or StageEntry. A Review tracks the overall status, the assigned reviewers (see `Reviewer`), and links back to the reviewable item. Reviews follow a configured `ReviewProcess` that defines the stages and actions required for completion. The review status progresses from submission through reviewer actions until reaching a terminal state like ACCEPTED or REJECTED.

- `__typename` (string, optional)
- `createdAt` (string, optional) — Timestamp when this review was created
- `id` (string, optional) — ID of the review
- `reviewHistory` (string, optional) — Ordered list of ReviewChange records representing the full audit history of this review. Each ReviewChange captures a single action taken (e.g. send-for-review, approve, reject, retract), the timestamp it occurred, any associated comment, and an optional point-in-time snapshot. To query review history by the reviewable item's ID (e.g. an entry ID like etr\_...) instead of the review ID, use GET /benchling/review-change/items?reviewableId.anyOf=\<id>.
- `reviewProcess` (ReviewProcessRef, optional, nullable) — The review process that governs this review
- `reviewSender` (PrincipalRef, optional, nullable) — The user who last sent this reviewable for review, or self-approved in a self-review process.
- `reviewableId` (string, optional) — API identifier of the reviewable item (e.g. an Entry) that this review belongs to.
- `reviewers` (list of Reviewer, optional, nullable) — Reviewers associated with this review
- `status` (enum, optional, nullable) — The status of this review
  - Allowed values: `REVIEW_SNAPSHOT_IN_PROGRESS`, `NEEDS_REVIEW`, `REJECTED`, `RETRACTED`, `ACCEPTANCE_SNAPSHOT_IN_PROGRESS`, `ACCEPTED`, `CYCLE_COMPLETED`, `ACTION_REQUIRED`

### GeneralErrorDetail

### TooManyRequestsErrorBodyDetail

### InternalServerErrorBodyDetail

### ReviewProcessRef

- `__typename` (string, optional)
- `id` (string, optional)

### PrincipalRef

- `__typename` (string, optional)
- `id` (string, optional)

### Reviewer

Represents a user assigned to review a specific stage of an Entry's review process. Each Reviewer is associated with a Review and tracks whether they have completed their assigned action. The reviewer status progresses from BLOCKED (if sequential and waiting) to PENDING (can act) to FINISHED or REJECTED. Reviewers are assigned based on the `ReviewProcessStage` configuration and its `ReviewerType` requirements.

- `__typename` (string, optional)
- `reviewProcessStageName` (string, optional, nullable) — Name of review process stage reviewer is meant to review
- `reviewerStatus` (enum, optional, nullable) — The current status of this reviewer (FINISHED, PENDING, etc.)
  - Allowed values: `BLOCKED`, `PENDING`, `FINISHED`, `REJECTED`
- `user` (PrincipalRef, optional, nullable) — User this reviewer represents

## Examples

**Response**

```json
{
  "items": [
    {
      "__typename": "__typename",
      "createdAt": "createdAt",
      "id": "id",
      "reviewHistory": "reviewHistory",
      "reviewableId": "reviewableId",
      "reviewers": [
        {}
      ],
      "status": "REVIEW_SNAPSHOT_IN_PROGRESS"
    }
  ],
  "nextToken": "nextToken"
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/review/items"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://{tenant_name}.benchling.com/api/v3/review/items';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```