> 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 unstructured table content for a document part

GET https://{tenant_name}.benchling.com/api/v3/document-part-unstructured-table/{doc_part_id}

Return the unstructured table content for a DocumentPart that is an unstructured table.
Return 404 if the document part does not exist.
Return 400 if the document part is not an unstructured table.

Rows are paginated: pass `pageSize` and the `nextToken` from the previous response to page
through rows. Each row carries its absolute `rowIndex`.

Reference: https://docs.benchling.com/docs/api/benchling-api/document-part/document-part-unstructured-table-get

## Authentication

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

## Request

### Path parameters

- `doc_part_id` (string, required)

### Query parameters

- `pageSize` (integer, optional, default: 1000) — Maximum number of table rows to return in a single page.
- `nextToken` (string, optional) — Page token from a previous response, used to fetch the next page of rows.

### Headers

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

## Response

### 200

Unstructured table content

- `__typename` (string, optional)
- `caption` (Caption, optional, nullable) — Specifies the rich text caption displayed with the table. Null if the table has no caption.
- `columnDefinitions` (list of TableColumnDefinition, optional) — Lists column definitions for the table.
- `createdAt` (string, optional) — Timestamp inherited from the document content backing this part. For entry and document content, this can reflect when the containing document was created, not when the DocumentPart identifier was created.
- `documentParent` (ObjectRef, optional)
- `id` (string, optional) — Identifies the document part.
- `indentation` (integer, optional) — Specifies the indentation level for this content within the document.
- `isEvaluated` (boolean, optional) — Specifies whether formula evaluation has been applied to the table.
- `modifiedAt` (string, optional) — Specifies when this document part was last modified.
- `modifier` (PrincipalRef, optional, nullable) — Identifies who last modified this document part.
- `name` (string, optional) — Specifies the display name of the table.
- `nextToken` (string, optional) — Opaque cursor for the next page of rows. Empty string when there are no more rows. Note: a merge anchor cell may reside on an earlier page than its child cells.
- `pageSize` (integer, optional) — The page size applied to this response.
- `rowCount` (integer, optional) — Specifies the number of rows in the table.
- `rows` (list of TableRow, optional) — Lists rows in the table, each containing an ordered array of cells.
- `versionMetadata` (DocumentLikeVersionMetadata, optional) — Specifies version metadata for the parent document.

## Errors

### 400 Document Part Unstructured Table 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 Document Part Unstructured Table 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 Document Part Unstructured Table 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 Document Part Unstructured Table 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 Document Part Unstructured Table 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

### Caption

A rich text caption attached to a piece of document content, such as a table or an attachment.

- `__typename` (string, optional)
- `formats` (list of TextFormat, optional)
- `links` (list of LinkSpan, optional)
- `mentions` (list of Mention, optional)
- `text` (string, optional)

### TableColumnDefinition

Specifies a column definition within an unstructured table.

- `__typename` (string, optional)
- `isLocked` (boolean, optional) — Specifies whether the column width is locked against resizing.
- `name` (string, optional) — Specifies the column display name.
- `width` (double, optional, nullable) — Specifies the column width in pixels. Defaults to 100 when unset.

### ObjectRef

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

### PrincipalRef

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

### TableRow

Specifies a row within an unstructured table.

- `__typename` (string, optional)
- `cells` (list of TableCell, optional) — Lists cells in the row in column order.
- `rowIndex` (integer, optional) — Specifies the row's absolute position within the table, zero-based.

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

### TextFormat

Specifies inline styling applied to a character range within rich text.

- `__typename` (string, optional)
- `backgroundColor` (string, optional, nullable) — Specifies the background color applied to the character range, when set.
- `end` (integer, optional) — Specifies the exclusive end index of the character range within the plain-text body.
- `foregroundColor` (string, optional, nullable) — Specifies the text color applied to the character range, when set.
- `properties` (list of enum, optional) — Specifies the character style properties applied to the range: bold, italic, underline, strikethrough, subscript, superscript, and monospace.
  - Allowed values: `BOLD`, `ITALIC`, `UNDERLINE`, `STRIKETHROUGH`, `SUBSCRIPT`, `SUPERSCRIPT`, `MONOSPACE`
- `start` (integer, optional) — Specifies the inclusive start index of the character range within the plain-text body.

### LinkSpan

Specifies a hyperlink applied to a character range within rich text content.

- `__typename` (string, optional)
- `end` (integer, optional) — Specifies the exclusive end index of the character range within the plain-text body.
- `start` (integer, optional) — Specifies the inclusive start index of the character range within the plain-text body.
- `url` (string, optional) — Specifies the URL of the hyperlink.

### Mention

Represents an inline mention of another Benchling item within text content.

- `__typename` (string, optional)
- `itemId` (string, optional) — Identifies the referenced Benchling item.
- `position` (integer, optional) — Specifies the zero-based insertion index within the plain-text body where this mention appears. Mentions do not occupy characters in the plain-text body for purposes of format range start and end positions.

### TableCell

Specifies a cell within an unstructured table row. Cells may be standalone or participate in a merged region. The anchor cell holds the merged region span; other cells in the region reference the anchor cell coordinates.

- `__typename` (string, optional)
- `errors` (list of CellError, optional) — Lists evaluation and validation errors present on the cell. Inspect the error type on each error to distinguish evaluation failures from validation failures.
- `evaluationValue` (TableCellEvaluationValue, optional, nullable) — Specifies the evaluated value computed by formula evaluation, when present. Read-only.
- `format` (TableCellFormat, optional, nullable) — Specifies formatting properties applied to the cell. Null when the cell has no formatting.
- `inputValue` (TableCellInputValue, optional) — Specifies the cell input value. For unstructured tables this is always a text value.
- `mergeRange` (TableMergeRange, optional, nullable) — Specifies the merged region span on the anchor cell. Present only on anchor cells.
- `mergeRangeParent` (MergedCellAnchor, optional, nullable) — Specifies coordinates of the anchor cell. Present on cells within a merged region that are not the anchor.
- `selectorId` (string, optional, nullable) — Specifies the dropdown selector identifier for this cell, when present. Match this value to selectorId on dropdown selectors defined on the document.

### CellError

Specifies a single error present on a table cell. The error type field distinguishes evaluation failures from validation failures; message is the error description.

- `__typename` (string, optional)
- `errorType` (enum, optional) — Specifies whether the error is an evaluation failure or a validation failure.
  - Allowed values: `EVALUATION`, `VALIDATION`
- `message` (string, optional) — Specifies the error message.
- `type` (string, optional, nullable) — Specifies the display name for the specific error, such as reference error or value error. Populated for evaluation errors; null for validation errors.

### TableCellEvaluationValue

### TableCellFormat

Specifies formatting properties applied to an entire table cell.

- `__typename` (string, optional)
- `alignment` (enum, optional, nullable) — Specifies horizontal text alignment for the cell, when set.
  - Allowed values: `LEFT`, `CENTER`, `RIGHT`
- `backgroundColor` (string, optional, nullable) — Specifies the background color applied to the cell, when set.
- `foregroundColor` (string, optional, nullable) — Specifies the text color applied to the cell, when set.
- `link` (string, optional, nullable) — Specifies a hyperlink URL applied to the cell, when set.
- `precision` (integer, optional, nullable) — Specifies the decimal precision used to display a numeric cell.
- `properties` (list of enum, optional) — Lists character style properties applied to the cell.
  - Allowed values: `BOLD`, `ITALIC`, `UNDERLINE`, `STRIKETHROUGH`, `IMPORTANT`
- `scientificNotation` (boolean, optional, nullable) — Specifies whether a numeric cell is displayed in scientific notation.

### TableCellInputValue

Specifies the cell input value. For unstructured tables this is always a text value.

### TableMergeRange

Specifies the extent of a merged cell region, set on the anchor cell.

- `__typename` (string, optional)
- `mergeColSpan` (integer, optional) — Specifies the number of columns in the merged region, including the anchor cell.
- `mergeRowSpan` (integer, optional) — Specifies the number of rows in the merged region, including the anchor cell.

### MergedCellAnchor

Specifies coordinates of the anchor cell for a cell within a merged region.

- `__typename` (string, optional)
- `col` (integer, optional) — Specifies the zero-based column index of the anchor cell.
- `row` (integer, optional) — Specifies the zero-based row index of the anchor cell.

### StringCellEvaluationValue

Specifies a string evaluation value.

- `__typename` (string, optional)
- `value` (string, optional) — Specifies the evaluated string value.

### NumberCellEvaluationValue

Specifies a numeric evaluation value. Display formatting lives on TableCell.format.

- `__typename` (string, optional)
- `value` (string, optional) — Specifies the evaluated numeric value, carrying the most precise representation available for the cell's typed value. Serialized as a string and never pre-formatted; use TableCell.format for display formatting.

### BooleanCellEvaluationValue

Specifies a boolean evaluation value.

- `__typename` (string, optional)
- `value` (boolean, optional) — Specifies the evaluated boolean value.

### DateCellEvaluationValue

Specifies a date evaluation value.

- `__typename` (string, optional)
- `value` (date, optional) — Specifies the evaluated date value.

### DateTimeCellEvaluationValue

Specifies a datetime evaluation value.

- `__typename` (string, optional)
- `value` (string, optional) — Specifies the evaluated datetime value.

### ObjectLinkCellEvaluationValue

The evaluation-value counterpart of ObjectLinkValue: a flat id/name pair for any LinkableDomainObject a cell links to, which includes non-entity targets such as users, teams, studies, inventory items, attachments, and dropdown options. Resolve inputValue to get the concrete type.

- `__typename` (string, optional)
- `id` (string, optional) — Identifies the linked object.
- `name` (string, optional) — Specifies the display name of the linked entity.

### ArrayCellEvaluationValue

Specifies an array evaluation value containing multiple cell evaluation values.

- `__typename` (string, optional)
- `value` (list of ArrayCellEvaluationValueValueItem, optional) — Lists the evaluated values in the array.

### UnsupportedCellEvaluationValue

Specifies an evaluation value for types that cannot be represented in the current API. Use the cell input value as a fallback.

- `__typename` (string, optional)
- `errorReason` (string, optional) — Specifies the reason the evaluation value could not be represented.

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

### ArrayCellEvaluationValueValueItem

Union of StringCellEvaluationValue, NumberCellEvaluationValue, BooleanCellEvaluationValue, DateCellEvaluationValue, DateTimeCellEvaluationValue, ObjectLinkCellEvaluationValue, ArrayCellEvaluationValue, UnsupportedCellEvaluationValue

### ArrayValueValueItem

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

## Examples

**Response**

```json
{
  "__typename": "__typename",
  "caption": {
    "__typename": "__typename",
    "formats": [
      {}
    ],
    "links": [
      {}
    ],
    "mentions": [
      {}
    ],
    "text": "text"
  },
  "columnDefinitions": [
    {
      "__typename": "__typename",
      "isLocked": true,
      "name": "name",
      "width": 1.1
    }
  ],
  "createdAt": "createdAt",
  "documentParent": {
    "__typename": "__typename",
    "id": "id"
  },
  "id": "id",
  "indentation": 1,
  "isEvaluated": true,
  "modifiedAt": "modifiedAt",
  "modifier": {
    "__typename": "__typename",
    "id": "id"
  },
  "name": "name",
  "nextToken": "nextToken",
  "pageSize": 1,
  "rowCount": 1,
  "rows": [
    {
      "__typename": "__typename",
      "cells": [
        {}
      ],
      "rowIndex": 1
    }
  ],
  "versionMetadata": {
    "__typename": "__typename",
    "createdAt": "createdAt",
    "versionId": "versionId"
  }
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/document-part-unstructured-table/doc_part_id"

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

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

print(response.json())
```

```javascript
const url = 'https://{tenant_name}.benchling.com/api/v3/document-part-unstructured-table/doc_part_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);
}
```