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

GET https://{tenant_name}.benchling.com/api/v3/template-collection/{template_collection_id}/items/items

List TemplateCollectible items.

Reference: https://docs.benchling.com/docs/api/benchling-api/template-collection/items-list

## Authentication

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

## Request

### Path parameters

- `template_collection_id` (string, required) — ID of the TemplateCollection.

### 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.
- `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.
- `nextToken` (string, optional) — Token for pagination
- `pageSize` (integer, optional) — Number of results to return. Defaults to 50, maximum of 100.
- `sort` (enum, optional, default: modifiedAt:desc) — Method by which to order results. Valid sorts are: modifiedAt (modified time, oldest first). Use :asc or :desc to specify ascending or descending order. Default is modifiedAt:desc.
  - Allowed values: `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 TemplateCollectible, optional)
- `nextToken` (string, optional)

## Errors

### 400 Template Collection Items 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 Template Collection Items 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 Template Collection Items 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 Template Collection Items 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 Template Collection Items 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

### TemplateCollectible

### GeneralErrorDetail

### TooManyRequestsErrorBodyDetail

### InternalServerErrorBodyDetail

### AutomationTemplate

A reusable pipeline configuration that can be instantiated to create new Analysis objects. AutomationTemplates define a data processing workflow with AutomationSteps (see `steps`) that can be parameterized through config variables (see `AutomationTemplateVariable`) and data frame variables (see `AutomationTemplateDataFrameVariable`). When users apply a template to an Analysis, they provide values for these variables, generating a pipeline populated with actual data. Templates are organized within TemplateCollections and must be published before they can be applied.

- `__typename` (string, optional)
- `archiveReason` (string, optional, nullable)
- `archived` (boolean, optional)
- `configVariables` (string, optional)
- `createdAt` (string, optional)
- `createdFromPipeline` (AnalysisRef, optional, nullable)
- `creator` (PrincipalRef, optional)
- `dataFrameVariables` (string, optional)
- `id` (string, optional)
- `modifiedAt` (string, optional)
- `name` (string, optional)
- `steps` (string, optional)
- `templateCollection` (TemplateCollectionRef, optional)
- `webUrl` (string, optional, nullable)

### EntrySubtemplate

A reusable content block that can be inserted into `DocumentLike` objects. Subtemplates contain pre-defined note content (text, tables, etc.) that scientists commonly need to repeat across multiple entries. Unlike `EntryTemplates` which create entire new entries, subtemplates are inserted as sections within existing documents. Subtemplates belong to a `TemplateCollection` and support versioned publishing (see `PublishingRecord`) to ensure consistent use across the organization. In the UI, these may be referred to simply as "Subtemplates" or "Insertable Content."

- `__typename` (string, optional)
- `applicableReviewProcesses` (string, optional) — Review processes configured for this subtemplate's collection.
- `archiveReason` (string, optional, nullable)
- `archived` (boolean, optional)
- `authors` (string, optional, nullable) — Users who submitted this subtemplate for review.
- `createdAt` (string, optional, nullable) — DateTime the subtemplate was created at
- `creator` (PrincipalRef, optional, nullable) — User that created the subtemplate
- `id` (string, optional) — ID of the subtemplate
- `modifiedAt` (string, optional, nullable) — DateTime the subtemplate was last modified
- `name` (string, optional, nullable) — Title of the subtemplate
- `review` (ReviewRef, optional, nullable) — The active review for this subtemplate, if one exists.
- `reviewSource` (ProjectRef, optional, nullable) — Subtemplates belong to template collections rather than projects, so this field is always null.
- `templateCollection` (TemplateCollectionRef, optional) — Template collection that contains the template collectible

### EntryTemplate

A template used to create new `DocumentLike` objects with pre-populated content and structure. `EntryTemplate`s contain boilerplate text, tables, placeholders, and other note content that provides a consistent starting point for documentation. When a new `DocumentLike` object is created from a template, the template's content is cloned into the new object. Templates can optionally have an `EntrySchema` to ensure created objects capture required metadata. typeemplates belong to a `TemplateCollection` and support versioned publishing (see `PublishingRecord`). In the UI, these are typically called "Templates" within the Template Collections feature.

- `__typename` (string, optional)
- `applicableReviewProcesses` (string, optional) — Review processes configured for this template's collection.
- `archiveReason` (string, optional, nullable)
- `archived` (boolean, optional)
- `authors` (string, optional, nullable) — Users who submitted this template for review.
- `createdAt` (string, optional, nullable) — DateTime the template was created at
- `creator` (PrincipalRef, optional, nullable) — User Resource of the user who created the template
- `customFields` (list of CustomField, optional, nullable)
- `id` (string, optional) — ID of the entry template
- `modifiedAt` (string, optional, nullable) — DateTime the template was last modified
- `name` (string, optional, nullable) — Title of the template
- `review` (ReviewRef, optional, nullable) — The active review for this template, if one exists.
- `reviewSource` (ProjectRef, optional, nullable) — Project associated with the template. Templates belong to template collections rather than projects, so this field is always null.
- `schema` (EntrySchemaRef, optional, nullable) — Entry schema if set
- `schemaFields` (list of SchemaFieldValue, optional, nullable)
- `templateCollection` (TemplateCollectionRef, optional) — Template collection that contains the template collectible

### PlateDesignTemplate

A named plate design template backed by a plate record that lives in a template collection. Plate design templates allow plate records to be organized and reused as templates.

- `__typename` (string, optional)
- `archiveReason` (string, optional, nullable)
- `archived` (boolean, optional)
- `createdAt` (string, optional, nullable)
- `creator` (PrincipalRef, optional)
- `id` (string, optional)
- `modifiedAt` (string, optional, nullable)
- `name` (string, optional)
- `plateRecord` (PlateRecordRef, optional)
- `templateCollection` (TemplateCollectionRef, optional)
- `webUrl` (string, optional, nullable)

### Procedure

A reusable template that defines a structured experimental workflow. Procedures specify a sequence of method steps (see `ProcedureMethodDefinitionVersion`) connected in a flowchart (see `workflowFlowchartConfig` and `WorkflowFlowchartConfigVersion`) that scientists follow when running experiments. The `procedureType` determines whether this is a recipe (synthesis/production workflow) or an assay (analytical workflow). Procedures belong to a `TemplateCollection` for organization and access control, and support versioning through publishing (see `Publishable` and `publishingRecords`). When scientists execute a procedure, they create a `ProcedureRun` that tracks the actual experiment execution.

- `__typename` (string, optional)
- `archiveReason` (string, optional, nullable)
- `archived` (boolean, optional)
- `createdAt` (string, optional)
- `creator` (PrincipalRef, optional)
- `id` (string, optional)
- `latestProcedureFlowchartConfigVersion` (ProcedureFlowchartConfigVersionRef, optional, nullable) — A simplified view of the latest version of the flowchart config. This is the preferred way to access the latest flowchart config for procedures.
- `modifiedAt` (string, optional)
- `name` (string, optional)
- `procedureType` (enum, optional)
  - Allowed values: `RECIPE`, `ASSAY`
- `publishedProcedureFlowchartConfigVersion` (ProcedureFlowchartConfigVersionRef, optional, nullable) — A simplified view of the published version of the flowchart config. This is the preferred way to access the published flowchart config for procedures.
- `templateCollection` (TemplateCollectionRef, optional)
- `webUrl` (string, optional, nullable)
- `procedureFlowchart` (ProcedureFlowchartRef, optional, nullable, deprecated) — Use latestProcedureFlowchartConfigVersion for the latest flowchart version and publishedProcedureFlowchartConfigVersion for the published flowchart version.

### RequestV2Definition

A reusable template that defines the structure and configuration for requests in Benchling. Also known as a "Request Template" in the UI. Each RequestV2Definition specifies a `templateDocument` that serves as the document template for requests, a `workflowTaskSchema` that defines the task structure and fields, and a `prefix` used to generate human-readable display IDs (e.g., "REQ-001") for submissions created from this template. Request templates are organized within `TemplateCollection` folders and support collaboration features like starring (see `Starrable`). When users submit a request, they create a `RequestV2Submission` based on this definition. The template can include a `description` to explain its intended use and can be archived when no longer needed.

- `__typename` (string, optional)
- `archiveReason` (string, optional, nullable)
- `archived` (boolean, optional)
- `createdAt` (string, optional, nullable)
- `creator` (PrincipalRef, optional)
- `description` (string, optional, nullable) — Description of the request template.
- `id` (string, optional)
- `modifiedAt` (string, optional, nullable)
- `name` (string, optional)
- `prefix` (string, optional) — The prefix for the displayId of tasks of this schema.
- `templateCollection` (TemplateCollectionRef, optional)
- `webUrl` (string, optional, nullable)
- `workflowTaskSchema` (WorkflowTaskSchemaRef, optional) — The task schema backing this configuration.

### AnalysisRef

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

### PrincipalRef

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

### TemplateCollectionRef

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

### ReviewRef

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

### ProjectRef

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

### CustomField

A name-value pair for storing additional metadata on objects that support custom fields. CustomFields provide a flexible way to attach arbitrary string data to entities, containers, datasets, and other Benchling objects without modifying their schemas. Objects that can have custom fields implement the HasCustomFields interface. Unlike schema-defined fields, custom fields are not validated against a schema and can be freely added or modified.

- `__typename` (string, optional)
- `name` (string, optional, nullable)
- `value` (string, optional, nullable)

### EntrySchemaRef

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

### SchemaFieldValue

Represents a field value on a schematized object, pairing a `fieldDefinition` (describing the field's type and constraints) with its actual `value` (a `BenchlingValue` such as text, number, date, or link to another object). The value may be null if no value has been set. Used within the `schemaFields` collection on objects that implement `HasSchema` to provide access to all custom field values defined by the object's schema.

- `__typename` (string, optional)
- `fieldDefinition` (SchemaFieldDefinitionRef, optional)
- `id` (string, optional)
- `linkedEntityId` (string, optional, nullable)
- `value` (SchemaFieldValueValue, optional, nullable) — Union of BooleanValue, DateTimeValue, DateValue, DecimalValue, IntegerValue, JsonValue, ObjectLinkValue, ObjectLinkListValue, TextAndUrlValue, TextValue, ArrayValue

### PlateRecordRef

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

### ProcedureFlowchartConfigVersionRef

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

### ProcedureFlowchartRef

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

### WorkflowTaskSchemaRef

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

### SchemaFieldDefinitionRef

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

### SchemaFieldValueValue

### BooleanValue

A type that represents boolean values.

- `__typename` (string, optional)
- `value` (boolean, optional) — The boolean value.

### DateTimeValue

A type that represents datetime values.

- `__typename` (string, optional)
- `value` (string, optional) — The datetime value with UTC as the timezone.

### DateValue

A type that represents date values.

- `__typename` (string, optional)
- `value` (date, optional) — The date value.

### DecimalValue

A type that represents decimal value as strings.

- `__typename` (string, optional)
- `value` (string, optional, nullable) — The decimal value in a string representation
- `numericValue` (double, optional, nullable, deprecated) — Deprecated. The float representation of the decimal value.

### IntegerValue

A type that represents integer values.

- `__typename` (string, optional)
- `value` (integer, optional) — The integer value.

### JsonValue

A type that represents JSON values.

- `__typename` (string, optional)
- `value` (map from string to any, optional) — The JSON value.

### ObjectLinkValue

A type that represents links to other objects.

- `__typename` (string, optional)
- `value` (ObjectRef, optional) — The object that this value links to, or an Inaccessible object if not found with the current permission set.

### ObjectLinkListValue

A type that represents a list of links to other objects.

- `__typename` (string, optional)
- `value` (list of ObjectRef, optional) — The list of objects that this value links to. Inaccessible objects may be returned instead if the object is not found with the current permission set.

### TextAndUrlValue

A type that represents text (string) values with an associated URL.

- `__typename` (string, optional)
- `url` (string, optional) — The URL associated with the value. Please use `TextValue` if you don't want a URL.
- `value` (string, optional) — The text value. It may or may not be an empty string.

### TextValue

A type that represents text (string) values.

- `__typename` (string, optional)
- `value` (string, optional) — The text value. It may or may not be an empty string.

### ArrayValue

A type that represents a list of BenchlingValues, used for multi-value cells (e.g. alias columns).

- `__typename` (string, optional)
- `value` (list of ArrayValueValueItem, optional)

### ObjectRef

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

### ArrayValueValueItem

Union of BooleanValue, DateTimeValue, DateValue, DecimalValue, IntegerValue, JsonValue, ObjectLinkValue, ObjectLinkListValue, TextAndUrlValue, TextValue

## Examples

**Response**

```json
{
  "items": [
    {
      "__typename": "__typename",
      "archiveReason": "archiveReason",
      "archived": true,
      "configVariables": "configVariables",
      "createdAt": "createdAt",
      "dataFrameVariables": "dataFrameVariables",
      "id": "id",
      "modifiedAt": "modifiedAt",
      "name": "name",
      "steps": "steps",
      "webUrl": "webUrl"
    }
  ],
  "nextToken": "nextToken"
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/template-collection/template_collection_id/items/items"

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

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

print(response.json())
```

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