---
title: "Batch update MatrixPlate"
method: PATCH
path: "/api/v3/matrix-plate:batch-update"
tags: ["Matrix Plate"]
---

# Batch update MatrixPlate

`PATCH /api/v3/matrix-plate:batch-update`

## Request

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

Batch update MatrixPlate synchronously in one transaction. Maximum 10 items per request.

## Headers

- `EARLY-ACCESS` string

## Request body

- object
  - `items` UpdateMatrixPlateInputWithPathParams[], required
    - `archiveReason` string: Why it is being archived. Required when `archived` is `true`, and not allowed when unarchiving.
    - `archived` boolean: Set to `true` to archive or `false` to unarchive it. Archiving requires `archiveReason`.
    - `barcode` string: Barcode of the plate
    - `id` string, required
    - `name` string: Name of the plate; defaults to barcode if name is not provided
    - `parentStorageId` string, nullable
    - `projectId` string, nullable
    - `schemaFields` object
    - `shouldRemoveBarcodes` boolean: Whether to remove the barcodes of the plate and of every tube archived with it. Only allowed when archiving the plate, and can't be combined with `barcode`.

## Response `200`

OK

- MatrixPlateBatchupdateResponse200
  - `items` MatrixPlate[], required
    - `__typename` string
    - `archiveReason` string, nullable: Why the plate is archived
    - `archived` boolean: Whether the plate is archived
    - `availableCapacity` integer: The number of available positions in a matrix plate.
    - `barcode` string, nullable: Barcode of the plate
    - `createdAt` string, datetime: DateTime the plate was created
    - `id` string: The ID of the plate.
    - `modifiedAt` string, datetime: DateTime the plate was last modified
    - `name` string: Name of the plate; defaults to barcode if name is not provided
    - `occupiedCapacity` integer: The number of containers currently in a matrix plate.
    - `parentStorage` LocationRef
      - `__typename` string
      - `id` string, api_id
    - `positions` MatrixPlatePosition[]: The wells of the plate
      - `__typename` string
      - `container` ContainerRef
        - `__typename` string
        - `id` string, api_id
      - `coordinates` GridCoordinates: Read model representing a fillable position in a box or plate.
        - `__typename` string
        - `column` integer: The 0-indexed column index of the position
        - `index` integer: The 1-indexed position determined by counting across rows. For example, for a six-well plate: +---+---+---+ | 1 | 2 | 3 | +---+---+---+ | 4 | 5 | 6 | +---+---+---+
        - `position` string: The alphanumeric position, where rows are indexed alphabetically and columns are indexed numerically, starting from "A1"
        - `row` integer: The 0-indexed row index of the position
    - `project` ProjectRef
      - `__typename` string
      - `id` string, api_id
    - `schema` MatrixPlateSchemaRef
      - `__typename` string
      - `id` string, api_id
    - `totalCapacity` integer: The total capacity of a matrix plate (i.e. how many containers it can store).
    - `creator` PrincipalRef
      - `__typename` string
      - `id` string, api_id
    - `schemaFields` SchemaFieldValue[], nullable
      - `__typename` string
      - `fieldDefinition` SchemaFieldDefinitionRef
        - `__typename` string
        - `id` string, api_id
      - `id` string
      - `linkedEntityId` string, nullable
      - `value` union: Types of values that Benchling can interpret.
        - object: A type that represents a list of BenchlingValues, used for multi-value cells (e.g. alias columns).
          - `__typename` 'ArrayValue', required: Discriminator value: ArrayValue
          - `value` SingularBenchlingValue[]
            - union: A union of value types that can appear as elements within an ArrayValue. Identical to BenchlingValue but excludes ArrayValue to prevent nesting. Keep in sync with BenchlingValue.
              - …
        - object: A type that represents boolean values.
          - `__typename` 'BooleanValue', required: Discriminator value: BooleanValue
          - `value` boolean: The boolean value.
        - object: A type that represents datetime values.
          - `__typename` 'DateTimeValue', required: Discriminator value: DateTimeValue
          - `value` string, datetime: The datetime value with UTC as the timezone.
        - object: A type that represents date values.
          - `__typename` 'DateValue', required: Discriminator value: DateValue
          - `value` string, date: The date value.
        - object: A type that represents decimal value as strings.
          - `__typename` 'DecimalValue', required: Discriminator value: DecimalValue
          - `numericValue` number, double, nullable: Deprecated. The float representation of the decimal value.
          - `value` string, nullable: The decimal value in a string representation
        - object: A type that represents integer values.
          - `__typename` 'IntegerValue', required: Discriminator value: IntegerValue
          - `value` integer: The integer value.
        - object: A type that represents JSON values.
          - `__typename` 'JsonValue', required: Discriminator value: JsonValue
          - `value` union: The JSON value.
            - object
            - string[]
            - string
            - number, double
            - boolean
        - object: A type that represents a list of links to other objects.
          - `__typename` 'ObjectLinkListValue', required: Discriminator value: ObjectLinkListValue
          - `value` LinkableDomainObject[]: The list of objects that this value links to. Inaccessible objects may be returned instead if the object is not found with the current permission set.
            - union: A union representing items that can be linked to. If you have a type that can be linked to, it can only be added once it's in beta.
              - …
        - object: A type that represents links to other objects.
          - `__typename` 'ObjectLinkValue', required: Discriminator value: ObjectLinkValue
          - `value` union: A union representing items that can be linked to. If you have a type that can be linked to, it can only be added once it's in beta.
            - object: AaSequence variant
              - …
            - object: Attachment variant
              - …
            - object: Box variant
              - …
            - object: Container variant
              - …
            - object: CustomEntity variant
              - …
            - object: DnaOligo variant
              - …
            - object: DnaSequence variant
              - …
            - object: DropdownOption variant
              - …
            - object: Entry variant
              - …
            - object: Inaccessible variant
              - …
            - object: Location variant
              - …
            - object: MatrixPlate variant
              - …
            - object: Mixture variant
              - …
            - object: Molecule variant
              - …
            - object: OligoConjugate variant
              - …
            - object: OligoDuplex variant
              - …
            - object: Protein variant
              - …
            - object: Result variant
              - …
            - object: RnaOligo variant
              - …
            - object: RnaSequence variant
              - …
            - object: Run variant
              - …
            - object: WellPlate variant
              - …
        - object: A type that represents text (string) values with an associated URL.
          - `__typename` string, required
          - `url` string: The URL associated with the value. Please use `TextValue` if you don't want a URL.
          - `value` string: The text value. It may or may not be an empty string.
        - object: A type that represents text (string) values.
          - `__typename` string, required
          - `value` string: The text value. It may or may not be an empty string.

## 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)
