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

# Get Entry by ID

GET https://{tenant_name}.benchling.com/api/v3/entry/{entry_id}

Get a single Entry by ID.

Reference: https://docs.benchling.com/docs/api/benchling-api/entry/get

## Authentication

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

## Request

### Path parameters

- `entry_id` (string, required) — ID of the Entry.

### Query parameters

- `returning` (string, optional) — Comma-separated list of top-level fields to include in each returned item. Cannot overlap with omit.
- `omit` (string, optional) — Comma-separated list of top-level fields to omit from each returned item. Cannot overlap with returning.

### Headers

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

## Response

### 200

OK

- `__typename` (string, optional)
- `authors` (string, optional, nullable) — Lists the authors of the entry. Defaults to the creator but may be edited.
- `creator` (PrincipalRef, optional, nullable) — Identifies who created the entry.
- `parts` (string, optional) — Lists ordered document parts that make up the document content.
- `schemaFields` (list of SchemaFieldValue, optional, nullable) — Lists values for fields defined by the entry schema.
- `applicableReviewProcesses` (string, optional) — Lists review processes configured for the entry's project. Use the paginated list of applicable review processes for the full list including stages and version details.
- `archiveReason` (string, optional, nullable) — Specifies the archive reason when the entry is archived.
- `archived` (boolean, optional) — Specifies whether the entry is archived.
- `createdAt` (string, optional, nullable) — Specifies when the entry was created.
- `customFields` (list of CustomField, optional, nullable) — Lists custom field values on the entry.
- `displayId` (string, optional, nullable) — Specifies the display ID for the entry.
- `folder` (FolderRef, optional, nullable) — Specifies the folder that contains the entry.
- `id` (string, optional) — Identifies the entry.
- `modifiedAt` (string, optional, nullable) — Specifies when the entry was last modified.
- `name` (string, optional, nullable) — Specifies the title of the entry.
- `review` (ReviewRef, optional, nullable) — Specifies the active review for the entry when one exists. Null when the entry has not been sent for review or the review was retracted.
- `reviewSource` (ProjectRef, optional) — Specifies the project that owns the entry and determines which review processes apply.
- `schema` (EntrySchemaRef, optional, nullable) — Specifies the entry schema when one is configured.
- `sections` (list of EntrySection, optional, nullable)
- `selectors` (list of TableCellSelector, optional) — Lists dropdown selectors available to table cells in the document.
- `typedSchema` (EntrySchemaRef, optional, nullable)
- `versionMetadata` (DocumentLikeVersionMetadata, optional) — Specifies version metadata for the current revision of the entry.

## Errors

### 400 Entry Get 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 Entry Get 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 Entry Get 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 Entry Get 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 Entry Get 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

### PrincipalRef

- `__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

### 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)

### FolderRef

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

### ReviewRef

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

### ProjectRef

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

### EntrySchemaRef

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

### EntrySection

Represents a logical section within an Entry used to organize content into collapsible groups. While sections include a date field and were historically known as "Entry Days," they are flexible groupings that users can organize however they want—chronologically, thematically, or by any other criteria. Each section may have a title, date, and contains a list of content items (see `EntryContent`) such as text blocks, tables, and attachments. Sections are collapsible in the UI, which helps when rendering large notebook entries.

- `__typename` (string, optional)
- `contents` (list of EntryContent, optional, nullable)
- `date` (string, optional, nullable)
- `provenanceUuid` (string, optional)
- `title` (string, optional, nullable)

### TableCellSelector

Specifies a predefined dropdown selector that can be assigned to table cells.

- `__typename` (string, optional)
- `name` (string, optional) — Specifies the display name of the selector.
- `options` (list of string, optional) — Lists the allowed dropdown option values.
- `selectorId` (string, optional) — Specifies the selector identifier within the document. Matches the selectorId field on table cells.

### DocumentLikeVersionMetadata

Version metadata for a document such as an entry, template, or subtemplate. Identifies a specific content revision and records when that revision was produced. Use this to detect changes, pin a revision, or reference a particular version without loading the full version record.

- `__typename` (string, optional)
- `createdAt` (string, optional, nullable) — Specifies when this version was created. Versions are immutable; this is the time the parent document was last edited to produce this revision.
- `versionId` (string, optional) — Identifies this version of the document.

### GeneralErrorDetail

### TooManyRequestsErrorBodyDetail

### InternalServerErrorBodyDetail

### SchemaFieldDefinitionRef

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

### SchemaFieldValueValue

### EntryContent

Represents a single content item within an EntrySection. The `type` field indicates what kind of content this is (see `ContentType`). This provides a simplified view of entry content categorization.

- `__typename` (string, optional)
- `type` (enum, optional, nullable)
  - Allowed values: `TEXT`, `LIST_ITEM`, `HEADER`, `CODE_BLOCK`, `UNSTRUCTURED_TABLE`, `PLACEHOLDER`, `EXTERNAL_FILE`, `ASSAY_RUN`, `STRUCTURED_TABLE`, `OTHER`

### 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
{
  "__typename": "__typename",
  "authors": "authors",
  "creator": {
    "__typename": "__typename",
    "id": "id"
  },
  "parts": "parts",
  "schemaFields": [
    {
      "__typename": "__typename",
      "id": "id",
      "linkedEntityId": "linkedEntityId"
    }
  ],
  "applicableReviewProcesses": "applicableReviewProcesses",
  "archiveReason": "archiveReason",
  "archived": true,
  "createdAt": "createdAt",
  "customFields": [
    {
      "__typename": "__typename",
      "name": "name",
      "value": "value"
    }
  ],
  "displayId": "displayId",
  "folder": {
    "__typename": "__typename",
    "id": "id"
  },
  "id": "id",
  "modifiedAt": "modifiedAt",
  "name": "name",
  "review": {
    "__typename": "__typename",
    "id": "id"
  },
  "reviewSource": {
    "__typename": "__typename",
    "id": "id"
  },
  "schema": {
    "__typename": "__typename",
    "id": "id"
  },
  "sections": [
    {
      "__typename": "__typename",
      "contents": [
        {}
      ],
      "date": "date",
      "provenanceUuid": "provenanceUuid",
      "title": "title"
    }
  ],
  "selectors": [
    {
      "__typename": "__typename",
      "name": "name",
      "options": [
        "options"
      ],
      "selectorId": "selectorId"
    }
  ],
  "typedSchema": {
    "__typename": "__typename",
    "id": "id"
  },
  "versionMetadata": {
    "__typename": "__typename",
    "createdAt": "createdAt",
    "versionId": "versionId"
  }
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/entry/entry_id"

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

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

print(response.json())
```

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