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

GET https://{tenant_name}.benchling.com/api/v3/file/{file_id}/versions/items

List the published versions of a File, newest version first.

Reference: https://docs.benchling.com/docs/api/benchling-api/file/versions-list

## Authentication

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

## Request

### Path parameters

- `file_id` (string, required) — ID of the File.

### Query parameters

- `creator.anyOf` (string, optional) — Restricts results to those created by any of the specified user IDs. Comma-separated list.
- `id.anyOf` (string, optional) — Restricts results to those matching any of the specified IDs. Comma-separated list.
- `nextToken` (string, optional) — Token for pagination
- `pageSize` (integer, optional) — Number of results to return. Defaults to 50, maximum of 100.

### Headers

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

## Response

### 200

OK

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

## Errors

### 400 File Versions 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 File Versions 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 File Versions 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 File Versions 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 File Versions 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

### FileVersion

A FileVersion is an immutable published version in a File's history. Each update that changes a File's content publishes a new FileVersion with the next versionNumber, and the File's currentVersionId points at the latest one. The version's content is the ScratchFile it references, which is never modified after publishing. FileVersions are listed and read through their File.

- `__typename` (string, optional)
- `createdAt` (string, optional)
- `creator` (PrincipalRef, optional, nullable) — User who published the version.
- `file` (FileRef, optional) — The File this version belongs to.
- `id` (string, optional)
- `parentVersionId` (string, optional, nullable) — ID of the version that was current when this version was published, or null for a File's first version.
- `scratchFile` (ScratchFileRef, optional, nullable) — The content of the version, or null when the version has no uploaded content.
- `versionNumber` (integer, optional) — Position of the version in the File's history, starting at 1.

### GeneralErrorDetail

### TooManyRequestsErrorBodyDetail

### InternalServerErrorBodyDetail

### PrincipalRef

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

### FileRef

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

### ScratchFileRef

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

## Examples

**Response**

```json
{
  "items": [
    {
      "__typename": "__typename",
      "createdAt": "createdAt",
      "id": "id",
      "parentVersionId": "parentVersionId",
      "versionNumber": 1
    }
  ],
  "nextToken": "nextToken"
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/file/file_id/versions/items"

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

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

print(response.json())
```

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