---
title: "Batch create PlateRecord"
method: POST
path: "/api/v3/plate-record:batch-create"
tags: ["Plate Record"]
---

# Batch create PlateRecord

`POST /api/v3/plate-record:batch-create`

## Request

- Base URL: `https://{tenant_name}.benchling.com`
- URL: `https://{tenant_name}.benchling.com/api/v3/plate-record:batch-create`
- Auth: HTTP bearer

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

## Request body

- object
  - `items` CreatePlateRecordInput[], required
    - `barcode` string: Barcode to record as a plate field in the metadata layer.
    - `concentrationLayers` ConcentrationLayerInput[]
      - `concentrationUnitId` string, required
      - `concentrationUnitVersionNumber` integer, required
      - `name` string, required
      - `wells` ConcentrationWellInput[]
        - `concentrationAmount` number, double, nullable, required
        - `wellPosition` string, required
    - `contents` ContentItemInput[]
      - `columnIndex` integer, required
      - `concentrationAmount` number, double
      - `concentrationUnitId` string
      - `concentrationUnitVersionNumber` integer
      - `containerBarcode` string
      - `containerContentsApiIds` string[]
      - `containerId` string
      - `contentLayerName` string
      - `entityId` string
      - `materialInputParameterVersionIdByEntityId` object: The procedure material input each placed entity fulfills, as a map from entity ID to procedure parameter version ID. Only valid when the plate record's auth parent is a procedure step document, and only for the entities this item places (the entity itself, or an entity the container holds); each entity may fulfill at most one material input.
      - `rowIndex` integer, required
      - `testOrderIds` string[]
      - `transferQuantityAmount` number, double
      - `transferQuantityUnitId` string
      - `transferQuantityUnitVersionNumber` integer
      - `wellPosition` string, required
    - `height` integer
    - `measurements` PlateRecordMeasurementInput[]
      - `analyticalMethod` string
      - `columnIndex` integer, required
      - `detectionType` string
      - `measurementConcept` string
      - `measurementIdentifier` string
      - `measurementName` string
      - `measurementUnit` string
      - `measurementValue` number, double
      - `rowIndex` integer, required
    - `metadataLayers` MetadataColumnInput[]
      - `name` string, required
      - `plateValue` union
        - string
        - integer
        - number, double
        - boolean
      - `systemName` string
      - `type` 'text' | 'integer' | 'float' | 'boolean' | 'date' | 'datetime', required
      - `wells` MetadataWellInput[]
        - `value` union, required
          - string
          - integer
          - number, double
          - boolean
        - `wellPosition` string, required
    - `name` string, required
    - `originDesignId` string
    - `parameterLayers` ParameterLayerInput[]
      - `fieldType` 'TEXT' | 'FLOAT' | 'DATETIME', required
      - `name` string, required
      - `parameterVersionId` string, required
      - `wells` ParameterWellInput[]
        - `value` union, required
          - string
          - integer
          - number, double
        - `wellPosition` string, required
    - `plateDesignTemplateId` string
    - `plateReaderAsm` PlateRecordPlateReaderAsmInput
      - `scratchFileId` string, required
    - `plateSchemaId` string
    - `storageId` string: Inventory storage ID to record as a plate field in the metadata layer.
    - `vendorFile` PlateRecordVendorFileInput
      - `scratchFileId` string, required
      - `vendor` string, required
    - `wells` PlateRecordWellInput[]
      - `columnIndex` integer, required
      - `roles` WellRoleInput[]
        - `group` string
        - `role` string, required
        - `subrole` string
      - `rowIndex` integer, required
      - `sampleSchemaId` string
      - `schemaTags` object
      - `wellVolumeAmount` number, double
      - `wellVolumeUnitId` string
      - `wellVolumeUnitVersionNumber` integer
    - `width` integer

## Response `201`

Created

- PlateRecordBatchcreateResponse201
  - `items` PlateRecord[], required
    - `__typename` string
    - `barcode` string, nullable: The plate's barcode, when one has been recorded.
    - `createdAt` string, datetime, nullable
    - `height` integer
    - `id` string
    - `isHidden` boolean: Whether the plate record is hidden from the plate's sidebar list.
    - `layers` PlateRecordLayer[]
      - `__typename` string
      - `dataFrame` DataFrameRef
        - `__typename` string
        - `id` string, api_id
      - `name` string
    - `modifiedAt` string, datetime, nullable
    - `name` string
    - `plateSchema` PlateSchemaInterfaceRef
      - `__typename` string
      - `id` string, api_id
    - `storageId` string, nullable: The plate's storage location identifier, when one has been recorded.
    - `width` integer

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/benchling/apis/benchling-api.md) - [All operations](https://skmtc.dev/benchling/apis/benchling-api/llms.txt) - [OpenAPI document](https://skmtc.dev/benchling/apis/benchling-api/revisions/c9f087b98b8b?raw)
