> 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 create EnzymeList

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

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

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

## 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 CreateEnzymeListInput, required)

## Response

### 201

Created

- `items` (list of EnzymeList, required)

## Errors

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

### CreateEnzymeListInput

- `name` (string, required) — 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.
- `ownerId` (string, required) — The API ID of the user or organization that owns the enzyme list.
- `description` (string, optional, nullable) — Description of the Enzyme List
- `enzymeIds` (list of string, optional) — API IDs of enzymes from the global restriction-enzyme catalog to include in the new list. Omit to create an empty list. Each ID must be valid and IDs must not repeat within the list.

### 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": [
    {
      "name": "Common cloning enzymes",
      "ownerId": "ent_aBcDeFgH",
      "description": "Frequently used restriction enzymes for molecular cloning",
      "enzymeIds": [
        "enz_pEcJJ79A",
        "enz_xHoII12B"
      ]
    }
  ]
}
```

**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-create"

payload = { "items": [
        {
            "name": "Common cloning enzymes",
            "ownerId": "ent_aBcDeFgH",
            "description": "Frequently used restriction enzymes for molecular cloning",
            "enzymeIds": ["enz_pEcJJ79A", "enz_xHoII12B"]
        }
    ] }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript
const url = 'https://{tenant_name}.benchling.com/api/v3/enzyme-list:batch-create';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"items":[{"name":"Common cloning enzymes","ownerId":"ent_aBcDeFgH","description":"Frequently used restriction enzymes for molecular cloning","enzymeIds":["enz_pEcJJ79A","enz_xHoII12B"]}]}'
};

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