> 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.

# Batch update EnzymeList

PATCH https://{tenant_name}.benchling.com/api/v3/enzyme-list:batch-update
Content-Type: application/json

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

Reference: https://docs.benchling.com/docs/api/benchling-api/enzyme-list/batchupdate

## Authentication

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

## Request

### Headers

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

### Body (application/json)

This endpoint expects an object.

- `items` (list of UpdateEnzymeListInputWithPathParams, required)

## Response

### 200

OK

- `items` (list of EnzymeList, required)

## Errors

### 400 Enzyme List Batch Update 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 Enzyme List Batch Update 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 Enzyme List Batch Update 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)

### 409 Enzyme List Batch Update Request Conflict Error

Conflict

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

### 429 Enzyme List Batch Update 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 Enzyme List Batch Update 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

### UpdateEnzymeListInputWithPathParams

- `id` (string, required)
- `description` (string, optional, nullable) — Description of the Enzyme List
- `enzymeIds` (list of string, optional) — API IDs of enzymes from the global restriction-enzyme catalog. When provided, replaces the entire member set (use an empty array to remove all enzymes). Each ID must be valid and IDs must not repeat within the list.
- `name` (string, optional) — Leading and trailing whitespace is stripped. Must be non-empty and at most 128 characters. Names are unique per owner (case-insensitive). Duplicate names within the same batch request are rejected when they target the same owner.

### EnzymeList

Represents a user-curated collection of restriction enzymes for molecular cloning workflows. EnzymeLists allow users and organizations to organize commonly used enzymes into named groups for easy access when planning restriction digests, cloning strategies, or analyzing DNA sequences. Each list has an owner (either a user or organization) who controls access permissions. See `Enzyme` for the individual restriction enzymes that can be added to a list.

- `__typename` (string, optional)
- `createdAt` (string, optional) — DateTime the Enzyme List was created
- `description` (string, optional, nullable) — Description of the Enzyme List
- `enzymes` (string, optional) — List of Enzymes that are part of this Enzyme List
- `id` (string, optional) — Id of the Enzyme List
- `modifiedAt` (string, optional) — DateTime the Enzyme List was last modified
- `name` (string, optional) — Name of the Enzyme List
- `owner` (OwnerRef, optional) — User or Organization owner

### GeneralErrorDetail

### TooManyRequestsErrorBodyDetail

### InternalServerErrorBodyDetail

### OwnerRef

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

## Examples

**Request**

```json
{
  "items": [
    {
      "id": "enzl_jwM0BCyX",
      "description": "Revised set of go-to restriction enzymes",
      "enzymeIds": [
        "enz_pEcJJ79A"
      ],
      "name": "Updated cloning enzymes"
    }
  ]
}
```

**Response**

```json
{
  "items": [
    {
      "__typename": "__typename",
      "createdAt": "createdAt",
      "description": "description",
      "enzymes": "enzymes",
      "id": "id",
      "modifiedAt": "modifiedAt",
      "name": "name"
    }
  ]
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/enzyme-list:batch-update"

payload = { "items": [
        {
            "id": "enzl_jwM0BCyX",
            "description": "Revised set of go-to restriction enzymes",
            "enzymeIds": ["enz_pEcJJ79A"],
            "name": "Updated cloning enzymes"
        }
    ] }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://{tenant_name}.benchling.com/api/v3/enzyme-list:batch-update';
const options = {
  method: 'PATCH',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"items":[{"id":"enzl_jwM0BCyX","description":"Revised set of go-to restriction enzymes","enzymeIds":["enz_pEcJJ79A"],"name":"Updated cloning enzymes"}]}'
};

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