> 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 TestOrder items

GET https://{tenant_name}.benchling.com/api/v3/procedure-method-execution-instance/{procedure_method_execution_instance_id}/created-retest-orders/items

List TestOrder items.

Reference: https://docs.benchling.com/docs/api/benchling-api/procedure-method-execution-instance/createdretestorders-list

## Authentication

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

## Request

### Path parameters

- `procedure_method_execution_instance_id` (string, required) — ID of the ProcedureMethodExecutionInstance.

### Query parameters

- `containerIds.anyOf` (list of string, optional) — Returns test orders with containers matching any of the specified container IDs. Comma-separated list.
- `containerIds.eq` (string, optional) — Returns test orders with a container matching the specified container ID.
- `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` (list of string, optional) — Restricts results to those matching any of the specified IDs. Comma-separated list.
- `modifiedAt.gt` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified after the specified time. e.g. > 2017-04-30.
- `modifiedAt.gte` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or after the specified time. e.g. >= 2017-04-30.
- `modifiedAt.lt` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified before the specified time. e.g. \< 2017-04-30.
- `modifiedAt.lte` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or before the specified time. e.g. \<= 2017-04-30.
- `name.anyOf` (list of string, optional) — Restricts results to those that match any of the specified names. Case insensitive. Warning - this filter can be non-performant due to case insensitivity. Ensure only one name filter is used at a time. Comma-separated list.
- `name.anyOf.caseSensitive` (list of string, optional) — Restricts results to those that match any of the specified names. Case sensitive. Ensure only one name filter is used at a time. Comma-separated list.
- `nextToken` (string, optional) — Token for pagination
- `pageSize` (integer, optional) — Number of results to return. Defaults to 50, maximum of 100.
- `procedureIds.anyOf` (list of string, optional) — Returns test orders associated with any of the specified procedure IDs. Comma-separated list.
- `procedureMethodExecutionInstance.eq` (string, optional) — ID of a procedure method execution instance. Restricts results to test orders plated in it.
- `sampleIds.anyOf` (list of string, optional) — Returns test orders with samples matching any of the specified sample IDs. Comma-separated list.
- `testOrderStatus.anyOf` (list of string, optional) — Restricts results to test orders with any of the specified statuses. Comma-separated list.
- `sort` (enum, optional, default: modifiedAt:desc) — Method by which to order results. Valid sorts are: createdAt (created time, oldest first) and modifiedAt (modified time, oldest first). Use :asc or :desc to specify ascending or descending order. Default is modifiedAt:desc.
  - Allowed values: `createdAt:asc`, `createdAt:desc`, `modifiedAt:asc`, `modifiedAt:desc`

### Headers

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

## Response

### 200

OK

- `items` (list of TestOrder, optional)
- `nextToken` (string, optional, nullable)

## Errors

### 400 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 Forbidden Error

Forbidden

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

### 404 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 Too Many Requests Error

Too Many Requests

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

### 500 Internal Server Error

Internal Server Error

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

## Types

### TestOrder

A Test Order represents an individual request to perform a specific test on a sample. Each Test Order references a `TestDefinition` that specifies what type of test to perform, and a `sample` (Entity) that is being tested. Test Orders track their lifecycle through `status` (see `TestStatus`), from PENDING when created, through IN_PROGRESS during execution, to COMPLETED or other terminal states. When executed via an Assay workflow, the `procedure` and `procedureMethodExecutionInstance` fields link to the execution context. Results are captured in the `result` field. Test Orders can be associated with `Study` objects for clinical/preclinical workflows and linked to specific plate wells via `plateWellAssociations` for laboratory execution tracking.

- `__typename` (string, optional)
- `analysisComment` (string, optional, nullable) — Additional comments provided for a test order with a status of blocked, invalid, or canceled.
- `container` (ContainerRef, optional, nullable) — The container associated with the sample being tested in this test order
- `createdAt` (string, optional) — Timestamp of when the test order was created.
- `dilutionFactor` (integer, optional, nullable) — The dilution factor of the test order.
- `id` (string, optional) — The ID of the test order.
- `modifiedAt` (string, optional) — Timestamp of when the test order was last modified.
- `name` (string, optional) — The name of the test order.
- `plateWellAssociations` (list of TestOrderLinkedPlateWell, optional) — The plate wells this test order has been linked to.
- `procedure` (ProcedureRef, optional, nullable) — The Assay (Procedure) for which this Test Order is created. Since a Test Definition can be used in multiple Assays, this association ensures clarity on which template should be followed for the specific Test Order. It is necessary to establish this association prior to the Assay Run to avoid ambiguity.
- `procedureMethodExecutionInstance` (ProcedureMethodExecutionInstanceRef, optional, nullable) — The execution instance of the procedure method, linking the Test Order to the specific Assay Run to enable easy retrieval of all related Test Orders.
- `result` (ResultRef, optional, nullable) — The result of the test order.
- `retestSourceProcedureMethodExecutionInstance` (ProcedureMethodExecutionInstanceRef, optional, nullable) — The execution instance of the procedure method this retest order was created in the context of, linking the Test Order to the specific Assay Run to enable easy retrieval of all related Retest Orders.
- `sample` (EntityRef, optional) — The sample being tested in this test order
- `status` (enum, optional) — The status of the test order.
  - Allowed values: `PENDING`, `BLOCKED`, `IN_PROGRESS`, `CANCELLED`, `INVALID`, `COMPLETED`
- `testDefinition` (TestDefinitionRef, optional) — The test definition associated with this test order.

### GeneralErrorDetail

- string
- map from string to any

### TooManyRequestsErrorDetail

- string
- map from string to any

### InternalServerErrorDetail

- string
- map from string to any

### ContainerRef

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

### TestOrderLinkedPlateWell

Represents the association between a Test Order and a specific well position on a plate. When samples are plated for testing, this type captures which plate (`WellPlate`) and well position (`wellPosition`) the test order's sample has been placed in. A Test Order can be linked to multiple plate wells when the sample is distributed across multiple wells.

- `__typename` (string, optional)
- `plate` (WellPlateRef, optional) — The plate linked from the test order.
- `wellPosition` (string, optional) — Alphanumeric position of plate well eg. A1, B19

### ProcedureRef

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

### ProcedureMethodExecutionInstanceRef

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

### ResultRef

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

### EntityRef

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

### TestDefinitionRef

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

### WellPlateRef

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

## Examples

**Response**

```json
{
  "items": [
    {
      "__typename": "string",
      "analysisComment": null,
      "container": {
        "__typename": "string",
        "id": "string"
      },
      "createdAt": "string",
      "dilutionFactor": null,
      "id": "string",
      "modifiedAt": "string",
      "name": "string",
      "plateWellAssociations": [
        {
          "__typename": "string",
          "plate": {
            "__typename": "string",
            "id": "string"
          },
          "wellPosition": "string"
        }
      ],
      "procedure": {
        "__typename": "string",
        "id": "string"
      },
      "procedureMethodExecutionInstance": {
        "__typename": "string",
        "id": "string"
      },
      "result": {
        "__typename": "string",
        "id": "string"
      },
      "retestSourceProcedureMethodExecutionInstance": {
        "__typename": "string",
        "id": "string"
      },
      "sample": {
        "__typename": "string",
        "id": "string"
      },
      "status": "PENDING",
      "testDefinition": {
        "__typename": "string",
        "id": "string"
      }
    }
  ],
  "nextToken": "string"
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/procedure-method-execution-instance/procedure_method_execution_instance_id/created-retest-orders/items"

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

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

print(response.json())
```

```javascript
const url = 'https://{tenant_name}.benchling.com/api/v3/procedure-method-execution-instance/procedure_method_execution_instance_id/created-retest-orders/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);
}
```