---
title: "Batch update TestOrder"
method: PATCH
path: "/api/v3/test-order:batch-update"
tags: ["Test Order"]
---

# Batch update TestOrder

`PATCH /api/v3/test-order:batch-update`

## Request

- Base URL: `https://{tenant_name}.benchling.com`
- URL: `https://{tenant_name}.benchling.com/api/v3/test-order:batch-update`
- Auth: HTTP bearer

Batch update Test Orders synchronously in one transaction. Maximum 25 items per request.

Each item follows the same requirements as the single-update endpoint. If any item fails validation, the transaction fails and no Test Orders are updated.

## Request body

- object
  - `items` UpdateTestOrderInputWithPathParams[], required
    - `containerId` string, nullable: Omit to leave unchanged, or provide `null` to remove the container association.
    - `id` string, required
    - `status` 'PENDING' | 'BLOCKED' | 'IN_PROGRESS' | 'CANCELLED' | 'INVALID' | 'COMPLETED': Status changes must follow the permitted Test Order lifecycle transitions.

## Response `200`

OK

- TestOrderBatchupdateResponse200
  - `items` TestOrder[], required
    - `__typename` string
    - `analysisComment` string, nullable: Additional comments provided for a test order with a status of blocked, invalid, or canceled.
    - `container` ContainerRef
      - `__typename` string
      - `id` string, api_id
    - `createdAt` string, datetime: Timestamp of when the test order was created.
    - `dilutionFactor` integer, nullable: The dilution factor of the test order.
    - `id` string: The ID of the test order.
    - `modifiedAt` string, datetime: Timestamp of when the test order was last modified.
    - `name` string: The name of the test order.
    - `plateWellAssociations` TestOrderLinkedPlateWell[]: The plate wells this test order has been linked to.
      - `__typename` string
      - `plate` WellPlateRef
        - `__typename` string
        - `id` string, api_id
      - `wellPosition` string: Alphanumeric position of plate well eg. A1, B19
    - `procedure` ProcedureRef
      - `__typename` string
      - `id` string, api_id
    - `procedureMethodExecutionInstance` ProcedureMethodExecutionInstanceRef
      - `__typename` string
      - `id` string, api_id
    - `result` ResultRef
      - `__typename` string
      - `id` string, api_id
    - `retestSourceProcedureMethodExecutionInstance` ProcedureMethodExecutionInstanceRef
      - `__typename` string
      - `id` string, api_id
    - `sample` EntityRef
      - `__typename` string
      - `id` string, api_id
    - `status` 'PENDING' | 'BLOCKED' | 'IN_PROGRESS' | 'CANCELLED' | 'INVALID' | 'COMPLETED': The status of the test order.
    - `testDefinition` TestDefinitionRef
      - `__typename` string
      - `id` string, api_id

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `429`: Too Many Requests
- `500`: Internal Server Error

---

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