> 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 NucleotideMonomer items

GET https://{tenant_name}.benchling.com/api/v3/nucleotide-monomer/items

List NucleotideMonomer items.

Reference: https://docs.benchling.com/docs/api/benchling-api/nucleotide-monomer/list

## Authentication

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

## Request

### Query parameters

- `archiveReason.anyOf` (string, optional) — Restricts items to those with any of the specified archive reasons. Use "NOT_ARCHIVED" to filter for unarchived items. Use "ANY_ARCHIVED" to filter for archived items regardless of reason. Use "ANY_ARCHIVED_OR_NOT_ARCHIVED" to return items for both archived and unarchived. Comma-separated list.
- `archived.anyOf` (boolean, optional) — If true, returns archived items. If false, returns unarchived items. If both true and false, returns archived and unarchived items. Comma-separated list.
- `createdAt.gt` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created after the specified time. e.g. > 2017-04-30.
- `createdAt.gte` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or after the specified time. e.g. >= 2017-04-30.
- `createdAt.lt` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created before the specified time. e.g. \< 2017-04-30.
- `createdAt.lte` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or before the specified time. e.g. \<= 2017-04-30.
- `id.anyOf` (string, optional) — Restricts results to those matching any of the specified IDs. Comma-separated list.
- `modifiedAt.gt` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified after the specified time. e.g. > 2017-04-30.
- `modifiedAt.gte` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or after the specified time. e.g. >= 2017-04-30.
- `modifiedAt.lt` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified before the specified time. e.g. \< 2017-04-30.
- `modifiedAt.lte` (string, optional) — Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or before the specified time. e.g. \<= 2017-04-30.
- `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.
- `sort` (enum, optional, default: modifiedAt:desc) — Method by which to order results. Valid sorts are: createdAt (created time, oldest first) and modifiedAt (modified time, oldest first). Use :asc or :desc to specify ascending or descending order. Default is modifiedAt:desc.
  - Allowed values: `createdAt:asc`, `createdAt:desc`, `modifiedAt:asc`, `modifiedAt:desc`

### Headers

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

## Response

### 200

OK

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

## Errors

### 400 Nucleotide Monomer 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 Nucleotide Monomer 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 Nucleotide Monomer 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 Nucleotide Monomer 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 Nucleotide Monomer 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

### NucleotideMonomer

A building block component of modified oligonucleotides, representing a sugar, phosphate, or base subunit. Monomers are the chemical units that assemble to form nucleotides in therapeutic oligonucleotide design. Each monomer has a symbol identifier, chemical structure (SMILES), molecular weight, and attachment points defining where it bonds to other monomers. The naturalAnalog field links modified monomers to their natural counterparts (e.g., a 2'-O-methyl ribose analog links to natural ribose 'r'). Monomers are referenced in ModifiedNucleotide and CustomNotationAlias to specify the exact chemistry of modified sequences. Also known as building blocks in oligonucleotide synthesis contexts.

- `__typename` (string, optional)
- `archiveReason` (string, optional, nullable)
- `archived` (boolean, optional)
- `attachmentPoints` (list of string, optional) — A list of the capping group present at each location where the monomer can form a bond with other monomers.
- `calculatedMolecularWeight` (double, optional, nullable) — The molecular weight of the monomer as calculated by RDKit based on the monomer chemical structure.
- `canonicalSmiles` (string, optional) — The SMILES representation of the monomer chemical structure after being standardized.
- `createdAt` (string, optional)
- `customMolecularWeight` (double, optional, nullable) — Optional molecular weight value that the user can provide to override the calculated molecular weight.
- `exactMolecularWeight` (double, optional) — The exact molecular weight of the monomer as calculated by RDKit based on the monomer chemical structure.
- `id` (string, optional)
- `modifiedAt` (string, optional)
- `monomerType` (enum, optional) — The part of the nucleotide structure that the monomer fits into, i.e. backbone or branch.
  - Allowed values: `BACKBONE`, `BRANCH`
- `name` (string, optional)
- `naturalAnalog` (enum, optional) — Natural equivalent of the monomer. For example, a modified ribose would have `r` as the natural analog, which is the symbol for natural ribose.
  - Allowed values: `A`, `C`, `G`, `T`, `U`, `N`, `r`, `d`, `p`, `Y`, `M`, `K`, `W`, `S`, `B`, `H`, `V`
- `originalSmiles` (string, optional, nullable) — The SMILES string that was originally provided upon creation of the monomer.
- `polymerType` (enum, optional) — The polymer type of the monomer, per the HELM definition of polymer type. Because nucleotide monomers are only used in modified nucleotide sequences, the polymer type of a NucleotideMonomer is always `RNA`.
  - Allowed values: `RNA`
- `symbol` (string, optional) — User-defined identifier of the monomer, unique on the monomer type.
- `visualColor` (string, optional, nullable) — The color code of the monomer visual symbol.
- `visualSymbol` (enum, optional, nullable) — The shape of the monomer visual symbol.
  - Allowed values: `DIAMOND_FILLED`, `DIAMOND_HOLLOW`, `DIAMOND_DASHED`, `STAR_FILLED`, `STAR_HOLLOW`, `TRIANGLE_FILLED`, `TRIANGLE_HOLLOW`, `DYAD_FILLED`, `DYAD_HOLLOW`, `CLOVER_FILLED`, `CLOVER_HOLLOW`, `TRIAD_FILLED`, `TRIAD_HOLLOW`, `RECTANGLE_FILLED`, `RECTANGLE_HOLLOW`, `LETTERS_C`, `LETTERS_CO`, `LETTERS_M`, `LETTERS_MP`, `LETTERS_P`, `LETTERS_PS`, `LETTERS_R`, `LETTERS_RS`, `LETTERS_S`, `LETTERS_SP`

### GeneralErrorDetail

### TooManyRequestsErrorBodyDetail

### InternalServerErrorBodyDetail

## Examples

**Response**

```json
{
  "items": [
    {
      "__typename": "__typename",
      "archiveReason": "archiveReason",
      "archived": true,
      "attachmentPoints": [
        "attachmentPoints"
      ],
      "calculatedMolecularWeight": 1.1,
      "canonicalSmiles": "canonicalSmiles",
      "createdAt": "createdAt",
      "customMolecularWeight": 1.1,
      "exactMolecularWeight": 1.1,
      "id": "id",
      "modifiedAt": "modifiedAt",
      "monomerType": "BACKBONE",
      "name": "name",
      "naturalAnalog": "A",
      "originalSmiles": "originalSmiles",
      "polymerType": "RNA",
      "symbol": "symbol",
      "visualColor": "visualColor",
      "visualSymbol": "DIAMOND_FILLED"
    }
  ],
  "nextToken": "nextToken"
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/nucleotide-monomer/items"

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

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

print(response.json())
```

```javascript
const url = 'https://{tenant_name}.benchling.com/api/v3/nucleotide-monomer/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);
}
```