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

# Batch create ResultSchema

POST https://{tenant_name}.benchling.com/api/v3/result-schema:batch-create
Content-Type: application/json

Batch create ResultSchema synchronously in one transaction. Maximum 25 items per request.

Reference: https://docs.benchling.com/docs/api/benchling-api/result-schema/batchcreate

## Authentication

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

## Request

### Headers

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

### Body (application/json)

This endpoint expects an object.

- `items` (list of CreateResultSchemaInput, required)

## Response

### 201

Created

- `items` (list of ResultSchema, required)

## Errors

### 400 Result Schema Batch Create 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 Result Schema Batch Create 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 Result Schema Batch Create 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)

### 409 Result Schema Batch Create Request Conflict Error

Conflict

- `detail` (GeneralErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 429 Result Schema Batch Create 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 Result Schema Batch Create 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

### CreateResultSchemaInput

- `organizationId` (string, required) — The API ID of the organization this schema belongs to. The organization must exist and be accessible to the caller.
- `fieldDefinitions` (list of CreateResultSchemaInputFieldDefinitionsItem, optional) — Defines the metadata fields for results belonging to this schema
- `name` (string, optional) — The user-facing name of the schema. Must be non-empty after stripping whitespace, at most 255 characters, and unique within the organization.
- `systemName` (string, optional) — The SQL identifier used as the warehouse table name. If not provided, one is auto-generated from the display name. Must match the pattern [a-z_][a-z0-9_$]*, cannot be a reserved table name, cannot start with 'bnch$', and must be unique within the organization.

### ResultSchema

Defines the structure and metadata fields for a category of assay Results in Benchling's lab automation system. A ResultSchema specifies the field definitions that capture measurement data, calculated values, and other experimental outcomes. Results conforming to a schema are typically created through lab automation output processors (see AutomationOutputProcessor), structured result tables in notebook entries, or via the API. Each schema is owned by an Organization and supports collaboration settings for access control. ResultSchemas are often associated with specific assay types such as ELISA, qPCR, or mass spectrometry, enabling standardized data capture across experiments. Also known as "assay schema" in some contexts (note the assaysch prefix).

- `__typename` (string, optional)
- `archiveReason` (string, optional, nullable)
- `archived` (boolean, optional)
- `createdAt` (string, optional, nullable)
- `fieldDefinitions` (string, optional) — Defines the metadata fields for results belonging to this schema
- `id` (string, optional)
- `modifiedAt` (string, optional, nullable) — DateTime the Result Schema was last modified
- `name` (string, optional)
- `organization` (OrganizationRef, optional, nullable) — The organization that owns the schema
- `systemName` (string, optional) — The unique, machine-readable identifier for warehouse and API access.

### GeneralErrorDetail

### TooManyRequestsErrorBodyDetail

### InternalServerErrorBodyDetail

### CreateResultSchemaInputFieldDefinitionsItem

- `type`: `BOOLEAN`
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `DATE`
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `DATE_TIME`
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `DECIMAL`
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `displayPrecision` (integer, optional) — The number of decimal places to display (0 to 10).
  - `numericMax` (double, optional) — The maximum allowed value, inclusive.
  - `numericMin` (double, optional) — The minimum allowed value, inclusive.
  - `unitId` (string, optional) — The API ID of the unit to associate with this field.
- `type`: `INTEGER`
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `numericMax` (double, optional) — The maximum allowed value, inclusive.
  - `numericMin` (double, optional) — The minimum allowed value, inclusive.
  - `unitId` (string, optional) — The API ID of the unit to associate with this field.
- `type`: `JSON`
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `LONG_TEXT`
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `TEXT`
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `AA_SEQUENCE_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any AA sequence.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `PROTEIN_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any antibody.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `ENTITY_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `REQUEST_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any assay request.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `RESULT_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any assay result.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `RUN_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any assay run.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `ATTACHMENT_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `CUSTOM_ENTITY_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any custom entity.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `DNA_OLIGO_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required) — The API ID of the schema/interface that linked items must belong to.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `DNA_SEQUENCE_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any DNA sequence.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `DROPDOWN`
  - `dropdownId` (string, required) — The API ID of the Dropdown that defines the available options.
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `ENTRY_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `EQUIPMENT_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any equipment.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `FIELDSET_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required) — The API ID of the schema/interface that linked items must belong to.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `MIXTURE_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any mixture.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `MOLECULE_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any molecule.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `OLIGO_CONJUGATE_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any oligo conjugate.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `OLIGO_DUPLEX_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any oligo duplex.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `RNA_OLIGO_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required) — The API ID of the schema/interface that linked items must belong to.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `RNA_SEQUENCE_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required) — The API ID of the schema/interface that linked items must belong to.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
  - `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `type`: `STORAGE_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any storage location.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.
- `type`: `SYSTEM_CATEGORY_LINK`
  - `isMulti` (boolean, required) — When true, multiple linked values are allowed.
  - `isRequired` (boolean, required) — When true, a value must be provided for this field.
  - `linkDefinitionId` (string, required) — The API ID of the schema/interface that linked items must belong to.
  - `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
  - `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
  - `description` (string, optional) — An optional user-provided description of this field definition.

### OrganizationRef

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

## Examples

**Request**

```json
{
  "items": [
    {
      "organizationId": "organizationId"
    }
  ]
}
```

**Response**

```json
{
  "items": [
    {
      "__typename": "__typename",
      "archiveReason": "archiveReason",
      "archived": true,
      "createdAt": "createdAt",
      "fieldDefinitions": "fieldDefinitions",
      "id": "id",
      "modifiedAt": "modifiedAt",
      "name": "name",
      "systemName": "systemName"
    }
  ]
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/result-schema:batch-create"

payload = { "items": [{ "organizationId": "organizationId" }] }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://{tenant_name}.benchling.com/api/v3/result-schema:batch-create';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"items":[{"organizationId":"organizationId"}]}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```