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

# List Enzyme items

GET https://{tenant_name}.benchling.com/api/v3/enzyme/items

List Enzyme items.

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

## Authentication

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

## Request

### Query parameters

- `id.anyOf` (string, optional) — Restricts results to those matching any of the specified IDs. Comma-separated list.
- `name.anyOf` (string, optional) — Restricts results to those that match any of the specified names. Case insensitive. Warning - this filter can be non-performant due to case insensitivity. Ensure only one name filter is used at a time. Comma-separated list.
- `name.anyOf.caseSensitive` (string, optional) — Restricts results to those that match any of the specified names. Case sensitive. Ensure only one name filter is used at a time. Comma-separated list.
- `nextToken` (string, optional) — Token for pagination
- `omit` (string, optional) — Comma-separated list of top-level fields to omit from each returned item. Cannot overlap with returning.
- `pageSize` (integer, optional) — Number of results to return. Defaults to 50, maximum of 100.
- `returning` (string, optional) — Comma-separated list of top-level fields to include in each returned item. Cannot overlap with omit.

### Headers

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

## Response

### 200

OK

- `items` (list of Enzyme, optional)
- `nextToken` (string, optional)

## Errors

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

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

### Enzyme

Represents a restriction enzyme from Benchling's global catalog of commercially available enzymes. Restriction enzymes (also known as restriction endonucleases) are molecular scissors that recognize specific DNA sequences and cleave the DNA at defined positions. Each enzyme has a recognition sequence (restrictionSiteBases), such as GAATTC for EcoRI, and cut site details (see CutSiteDetail) specifying where the enzyme cuts relative to that recognition site. Enzymes can produce blunt ends or sticky ends (overhangs) depending on their cut pattern. Users can organize frequently used enzymes into EnzymeLists for convenient access during cloning workflow design.

- `__typename` (string, optional)
- `cutSites` (list of CutSiteDetail, optional) — Either one (for single cutters) or two (for double cutters) cut details.
- `id` (string, optional) — Id of the Enzyme
- `isoschizomers` (string, optional) — Other enzymes in the catalog that recognize the same restriction site.
- `name` (string, optional) — The name of the Enzyme, like EcoRI.
- `restrictionSiteBases` (string, optional) — The DNA bases recognized by the Enzyme.

### GeneralErrorDetail

### TooManyRequestsErrorBodyDetail

### InternalServerErrorBodyDetail

### CutSiteDetail

Describes the cleavage pattern of a restriction enzyme relative to its recognition site. The position field indicates where the 5' strand is cut, while offset specifies the distance from position where the 3' strand is cut. A zero offset produces blunt ends; non-zero offsets create sticky ends (overhangs). Enzymes that cut once have a single CutSiteDetail, while rare double-cutting enzymes have two. This information is essential for predicting fragment sizes and compatible ends when designing cloning strategies.

- `__typename` (string, optional)
- `offset` (integer, optional) — Location, relative to `position`, where the 3' cut is made.
- `position` (integer, optional) — Location, relative to the restriction site bases, where the 5' cut is made.

## Examples

**Response**

```json
{
  "items": [
    {
      "__typename": "__typename",
      "cutSites": [
        {}
      ],
      "id": "id",
      "isoschizomers": "isoschizomers",
      "name": "name",
      "restrictionSiteBases": "restrictionSiteBases"
    }
  ],
  "nextToken": "nextToken"
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/enzyme/items"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://{tenant_name}.benchling.com/api/v3/enzyme/items';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

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