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

GET https://{tenant_name}.benchling.com/api/v3/dna-sequence/{dna_sequence_id}/primers/items

List Primer items.

Reference: https://docs.benchling.com/docs/api/benchling-api/dna-sequence/primers-list

## Authentication

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

## Request

### Path parameters

- `dna_sequence_id` (string, required) — ID of the DnaSequence.

### Query parameters

- `nextToken` (string, optional) — Token for pagination
- `pageSize` (integer, optional) — Number of results to return. Defaults to 50, maximum of 100.

## Response

### 200

OK

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

## Errors

### 400 Dna Sequence Primers 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 Dna Sequence Primers 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 Dna Sequence Primers 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 Dna Sequence Primers 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 Dna Sequence Primers 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

### Primer

Represents a primer binding site on a nucleotide sequence, indicating where an oligonucleotide primer anneals for PCR amplification or sequencing. The Primer links to an Oligo entity containing the actual primer sequence and name. Position fields define the binding region on the template (start/end), while bindPosition specifies the 3' end of the binding region (critical for extension). The overhangLength indicates how many 5' bases extend beyond the binding region (used for adding restriction sites or tags). Strand indicates whether the primer binds to the `FORWARD` or `REVERSE` strand.

- `__typename` (string, optional)
- `bindPosition` (integer, optional) — 0-based index of the base at the 3' end of the binding region.
- `end` (integer, optional) — 0-based exclusive end of the binding region. For ranges ending at the end of a circular sequence, this value is always the length of the sequence, never 0.
- `id` (string, optional) — The ID of the primer.
- `nucleotideSequence` (NucleotideSequenceRef, optional) — The nucleotide sequence that this primer binds to.
- `oligo` (OligoRef, optional) — Linked primer entity, which holds the name, bases, and color for this primer bind site.
- `overhangLength` (integer, optional) — Number of 5' primer bases that are not part of the binding region.
- `start` (integer, optional) — 0-based inclusive start of the binding region.
- `strand` (enum, optional) — Strand orientation for this primer binding site: `FORWARD` or `REVERSE`.
  - Allowed values: `FORWARD`, `REVERSE`

### GeneralErrorDetail

### TooManyRequestsErrorBodyDetail

### InternalServerErrorBodyDetail

### NucleotideSequenceRef

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

### OligoRef

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

## Examples

**Response**

```json
{
  "items": [
    {
      "__typename": "__typename",
      "bindPosition": 1,
      "end": 1,
      "id": "id",
      "overhangLength": 1,
      "start": 1,
      "strand": "FORWARD"
    }
  ],
  "nextToken": "nextToken"
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/dna-sequence/dna_sequence_id/primers/items"

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

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

print(response.json())
```

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