---
title: "Update MatrixPlateSchema"
method: PATCH
path: "/api/v3/matrix-plate-schema/{matrix_plate_schema_id}"
tags: ["Matrix Plate Schema"]
---

# Update MatrixPlateSchema

`PATCH /api/v3/matrix-plate-schema/{matrix_plate_schema_id}`

## Request

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

Update MatrixPlateSchema.

## Path parameters

- `matrix_plate_schema_id` string, required

## Headers

- `EARLY-ACCESS` string

## Request body

- UpdateMatrixPlateSchemaInput
  - `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`.
  - `containerSchemaId` string, nullable: The API ID of the container schema constraining what types of containers can be inserted into plates of this type.
  - `description` string: Updated description. When provided, must be at most 1000 characters.
  - `displayName` string: Deprecated. Use name instead.
  - `height` integer: The number of rows in the grid layout.
  - `name` string: Updated user-facing name. When provided, must be non-empty after stripping whitespace, at most 255 characters, and unique within the organization.
  - `prefix` string: The prefix used for auto-generating barcodes for inventory items of this schema. Must be unique within the registry and cannot end in a digit.
  - `systemName` string: Updated SQL identifier for the warehouse table name. When provided, must match the pattern [a-z_][a-z0-9_$]*, cannot be a reserved table name, cannot start with 'bnch$', and must be unique within the organization. Changing it requires warehouse table-name changes to be enabled for the caller; otherwise the update fails with a validation error. Supplying the schema's exact current system name always succeeds.
  - `width` integer: The number of columns in the grid layout.

## Response `200`

OK

- MatrixPlateSchema: Defines the structure and constraints for a category of MatrixPlates in Benchling's inventory system. A MatrixPlateSchema specifies the grid dimensions (height and width), an optional ContainerSchema for tubes that can be inserted, and custom field definitions. Unlike WellPlateSchema where wells are permanently fixed, MatrixPlateSchema defines plates where containers can be inserted into and removed from positions. Examples include tube racks and sample storage matrices. Each schema is associated with a Registry and given a prefix for generating display IDs.
  - `__typename` string
  - `archiveReason` string, nullable: Why the schema was archived.
  - `archived` boolean: Whether the schema is archived.
  - `containerSchema` ContainerSchemaRef
    - `__typename` string
    - `id` string, api_id
  - `createdAt` string, datetime: When the schema was created.
  - `description` string: A description of the schema.
  - `fieldDefinitions` string, uri: The fields inherited by plates of this schema.
  - `height` integer: The number of rows in plates of this schema.
  - `id` string: The ID of the schema.
  - `modifiedAt` string, datetime: When the schema was last modified.
  - `name` string: The name of the schema.
  - `prefix` string: The prefix of barcodes autogenerated for plates of this schema.
  - `registry` RegistryRef
    - `__typename` string
    - `id` string, api_id
  - `systemName` string: A unique, stable identifier for this schema used for programmatic access and integrations.
  - `width` integer: The number of columns in plates of this schema.

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