Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/benchling-scratchplate-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
title: Benchling Scratch Plate API
version: 2.0.0
description: 'A plate design or record used for designing, tracking, and analyzing experimental plates
outside of the inventory.
Scratch plates are the working surface for plate-based workflows: you build up
a plate''s layout (well roles, contents, concentrations, metadata, measurements)
through one or more creates and updates, then optionally convert it to a
persistent inventory plate via the `bulk-put-in-inventory` endpoint.
Each layer of data (label, content, concentration, metadata, measurements, etc.)
is accessible via its `dataFrame`.
These endpoints are not generally available and may fail depending on your tenant configuration.'
servers:
- url: /api/v3
security:
- oAuth: []
- basicApiKeyAuth: []
tags:
- description: 'A plate design or record used for designing, tracking, and analyzing experimental plates
outside of the inventory.
Scratch plates are the working surface for plate-based workflows: you build up
a plate''s layout (well roles, contents, concentrations, metadata, measurements)
through one or more creates and updates, then optionally convert it to a
persistent inventory plate via the `bulk-put-in-inventory` endpoint.
Each layer of data (label, content, concentration, metadata, measurements, etc.)
is accessible via its `dataFrame`.
These endpoints are not generally available and may fail depending on your tenant configuration.'
name: ScratchPlate
x-bnch-organization: Benchling
paths:
/scratch-plate:
post:
description: 'Create one or more ScratchPlates. Three creation modes are supported:
**From scratch**: Provide `name`, `height`, `width`, and any layer fields (`wells`, `concentrationLayers`, `metadataLayers`, etc.).
**From a design template**: Provide `plateDesignTemplateId` to clone a plate design. `height` and `width` default to the design''s dimensions. Omitting a layer field preserves the design''s layer; supplying an explicit empty list removes it.'
operationId: ScratchPlate.Create
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateScratchPlateInput'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ScratchPlate'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Create ScratchPlate
tags:
- ScratchPlate
x-bnch-rate-limit-tier: 4
/scratch-plate/items:
get:
description: List ScratchPlate items.
operationId: ScratchPlate.List
parameters:
- $ref: '#/components/parameters/createdAt.gt'
- $ref: '#/components/parameters/createdAt.gte'
- $ref: '#/components/parameters/createdAt.lt'
- $ref: '#/components/parameters/createdAt.lte'
- $ref: '#/components/parameters/id.anyOf'
- $ref: '#/components/parameters/modifiedAt.gt'
- $ref: '#/components/parameters/modifiedAt.gte'
- $ref: '#/components/parameters/modifiedAt.lt'
- $ref: '#/components/parameters/modifiedAt.lte'
- $ref: '#/components/parameters/nextToken'
- $ref: '#/components/parameters/omit'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/returning'
- description: 'Method by which to order results. Valid sorts are: createdAt (created time, oldest first) and modifiedAt (modified time, oldest first). Use :asc or :desc to specify ascending or descending order. Default is modifiedAt:desc.'
in: query
name: sort
schema:
default: modifiedAt:desc
enum:
- createdAt:asc
- createdAt:desc
- modifiedAt:asc
- modifiedAt:desc
type: string
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ScratchPlatePaginatedList'
description: OK
headers: {}
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: List ScratchPlate items
tags:
- ScratchPlate
x-bnch-rate-limit-tier: 4
/scratch-plate/{scratch_plate_id}:
get:
description: Get a single ScratchPlate by ID.
operationId: ScratchPlate.Get
parameters:
- description: ID of the ScratchPlate.
in: path
name: scratch_plate_id
required: true
schema:
type: string
- $ref: '#/components/parameters/returning'
- $ref: '#/components/parameters/omit'
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ScratchPlate'
description: OK
headers: {}
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Get ScratchPlate by ID
tags:
- ScratchPlate
x-bnch-rate-limit-tier: 5
patch:
description: Update ScratchPlate.
operationId: ScratchPlate.Update
parameters:
- description: ID of the ScratchPlate.
in: path
name: scratch_plate_id
required: true
schema:
type: string
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateScratchPlateInput'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ScratchPlate'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Update ScratchPlate
tags:
- ScratchPlate
x-bnch-rate-limit-tier: 4
/scratch-plate:batch-create:
post:
description: Batch create ScratchPlate synchronously in one transaction. Maximum 25 items per request.
operationId: ScratchPlate.BatchCreate
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/CreateScratchPlateInput'
maxItems: 25
minItems: 1
type: array
required:
- items
type: object
responses:
'201':
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/ScratchPlate'
type: array
required:
- items
type: object
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Batch create ScratchPlate
tags:
- ScratchPlate
x-bnch-rate-limit-tier: 3
/scratch-plate:batch-update:
patch:
description: Batch update ScratchPlate synchronously in one transaction. Maximum 25 items per request.
operationId: ScratchPlate.BatchUpdate
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/UpdateScratchPlateInputWithPathParams'
maxItems: 25
minItems: 1
type: array
required:
- items
type: object
responses:
'200':
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/ScratchPlate'
type: array
required:
- items
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Batch update ScratchPlate
tags:
- ScratchPlate
x-bnch-rate-limit-tier: 3
/scratch-plate:bulk-create:
post:
description: 'Bulk create ScratchPlates asynchronously from an uploaded JSONL file.
Rows use the same field requirements as single create. Semantic/reference validation is row-isolated via connector validation, but two caveats apply:
- `vendorFile` / `plateReaderAsm` parse failures occur during create execution and can fail the whole chunk (up to batch size), not just one row.
- Malformed input rows fail at parse/deserialization time before connector row validation.'
operationId: ScratchPlate.BulkCreate
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkImport'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskLink'
description: Task started
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Bulk create ScratchPlate
tags:
- ScratchPlate
x-bnch-rate-limit-tier: 2
/scratch-plate:bulk-put-in-inventory:
post:
description: 'Create a registry plate from each scratch plate, populating wells from the scratch plate''s label and content layers and any column mappings. Each item targets a plate schema (explicit or inherited from the scratch plate), an inventory location, and an optional project. The new plates are added to inventory and the original scratch plates are left unchanged.
The scratch file must be a JSONL file where each line is a JSON object with the following structure:
{"request_id": "unique-id-per-row", "input_object": {}}
The input_object fields (all camelCase) are:
- scratchPlateId (required): ID of the scratch plate to convert.
- plateSchemaId: ID of the plate schema for the new inventory plate. If omitted, resolved from the scratch plate''s own plateSchemaId; fails if neither is set.
- name: Name for the new inventory plate. Defaults to the scratch plate''s name.
- barcode: Barcode assignment. Either {"barcodeMode": "USE_NAME", "useNameAsBarcode": true} or {"barcodeMode": "SPECIFY_BARCODE", "barcode": "barcode-value"}.
- sourceId: API ID of the source entity to associate with the new plate.
- parentStorableId: API ID of the storage location to place the new plate into.
- columnMappings: List of {layerName, columnName, schemaFieldName} objects mapping scratch plate layer columns onto container-schema fields.
- studyIds: List of study IDs to associate with the new plate.'
operationId: ScratchPlate.BulkPutInInventory
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkImport'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskLink'
description: Task started
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: 'Create a registry plate from each scratch plate, populating wells from the scratch plate''s label and content layers and any column mappings. Each item targets a plate schema (explicit or inherited from the scratch plate), an inventory location, and an optional project. The new plates are added to inventory and the original scratch plates are left unchanged.
The scratch file must be a JSONL file where each line is a JSON object with the following structure:
{"request_id": "unique-id-per-row", "input_object": {}}
The input_object fields (all camelCase) are:
- scratchPlateId (required): ID of the scratch plate to convert.
- plateSchemaId: ID of the plate schema for the new inventory plate. If omitted, resolved from the scratch plate''s own plateSchemaId; fails if neither is set.
- name: Name for the new inventory plate. Defaults to the scratch plate''s name.
- barcode: Barcode assignment. Either {"barcodeMode": "USE_NAME", "useNameAsBarcode": true} or {"barcodeMode": "SPECIFY_BARCODE", "barcode": "barcode-value"}.
- sourceId: API ID of the source entity to associate with the new plate.
- parentStorableId: API ID of the storage location to place the new plate into.
- columnMappings: List of {layerName, columnName, schemaFieldName} objects mapping scratch plate layer columns onto container-schema fields.
- studyIds: List of study IDs to associate with the new plate.'
tags:
- ScratchPlate
x-bnch-rate-limit-tier: 2
/scratch-plate:bulk-update:
patch:
description: Bulk update ScratchPlate.
operationId: ScratchPlate.BulkUpdate
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkImport'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskLink'
description: Task started
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Bulk update ScratchPlate
tags:
- ScratchPlate
x-bnch-rate-limit-tier: 2
/scratch-plate:transfer:
post:
description: Create destination scratch plate(s) by transferring content out of existing source plates. Each move is recorded as a destination_transfer on the child and a source_transfer on the source. The source plates are historical records and are never rewritten; instead the result also carries a copy of each source holding what remained after the transfer, which is empty when any drawn-from well could not say how much it had left.
operationId: ScratchPlate.Transfer
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ScratchPlateTransferRequestInput'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TransferScratchPlatesResult'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Create destination scratch plate(s) by transferring content out of existing source plates. Each move is recorded as a destination_transfer on the child and a source_transfer on the source. The source plates are historical records and are never rewritten; instead the result also carries a copy of each source holding what remained after the transfer, which is empty when any drawn-from well could not say how much it had left.
tags:
- ScratchPlate
x-bnch-rate-limit-tier: 4
/scratch-plate:transfer-async:
post:
description: Asynchronously create destination scratch plate(s) by transferring content out of existing source plates, alongside a copy of each source holding what remained.
operationId: ScratchPlate.TransferAsync
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ScratchPlateTransferRequestInput'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskLink'
description: Task started
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Asynchronously create destination scratch plate(s) by transferring content out of existing source plates, alongside a copy of each source holding what remained.
tags:
- ScratchPlate
x-bnch-rate-limit-tier: 4
/tasks/scratch-plate/transfer-async/{task_id}:
get:
description: Poll status for Asynchronously create destination scratch plate(s) by transferring content out of existing source plates, alongside a copy of each source holding what remained..
operationId: ScratchPlate.TransferAsync.Get
parameters:
- description: ID of the asynchronous task to poll.
in: path
name: task_id
required: true
schema:
type: string
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
properties:
message:
type: string
result:
oneOf:
- $ref: '#/components/schemas/TransferScratchPlatesResult'
- type: 'null'
status:
enum:
- NOT_STARTED
- IN_PROGRESS
- COMPLETED
- FAILED
type: string
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Poll async task status
tags:
- ScratchPlate
x-bnch-rate-limit-tier: 5
components:
schemas:
UpdateScratchPlateInput:
additionalProperties: false
properties:
concentrationLayers:
items:
$ref: '#/components/schemas/ConcentrationLayerInput'
type: array
height:
type: integer
metadataLayers:
items:
$ref: '#/components/schemas/MetadataColumnInput'
type: array
name:
type: string
parameterLayers:
items:
$ref: '#/components/schemas/ParameterLayerInput'
type: array
plateSchemaId:
type:
- 'null'
- string
wells:
items:
$ref: '#/components/schemas/ScratchPlateWellInput'
type: array
width:
type: integer
type: object
ScratchPlatePaginatedList:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/ScratchPlate'
type: array
nextToken:
type: string
type: object
ConcentrationWellInput:
additionalProperties: false
properties:
concentrationAmount:
type:
- 'null'
- number
wellPosition:
type: string
required:
- wellPosition
- concentrationAmount
type: object
ScratchPlateLayer:
description: A named layer within a `ScratchPlate`, each backed by its own `DataFrame`.
properties:
__typename:
type: string
dataFrame:
$ref: '#/components/schemas/DataFrameRef'
description: The DataFrame holding this layer's per-well data.
name:
type: string
type: object
AnyType: {}
ScratchPlateRef:
properties:
__typename:
type: string
id:
format: api_id
type: string
type: object
ContentItemInput:
additionalProperties: false
properties:
columnIndex:
type: integer
concentrationAmount:
type: number
concentrationUnitId:
type: string
concentrationUnitVersionNumber:
type: integer
containerId:
type: string
contentLayerName:
type: string
entityId:
type: string
rowIndex:
type: integer
transferQuantityAmount:
type: number
transferQuantityUnitId:
type: string
transferQuantityUnitVersionNumber:
type: integer
wellPosition:
type: string
required:
- wellPosition
- rowIndex
- columnIndex
type: object
MetadataColumnInput:
additionalProperties: false
properties:
name:
type: string
plateValue:
anyOf:
- type: string
- type: integer
- type: number
- type: boolean
- type: 'null'
systemName:
type: string
type:
enum:
- text
- integer
- float
- boolean
- date
- datetime
type: string
wells:
items:
$ref: '#/components/schemas/MetadataWellInput'
type: array
required:
- name
- type
type: object
ScratchPlateMeasurementInput:
additionalProperties: false
properties:
analyticalMethod:
type: string
columnIndex:
type: integer
detectionType:
type: string
measurementConcept:
type: string
measurementIdentifier:
type: string
measurementName:
type: string
measurementUnit:
type: string
measurementValue:
type: number
rowIndex:
type: integer
required:
- rowIndex
- columnIndex
type: object
ScratchPlateWellInput:
additionalProperties: false
properties:
columnIndex:
type: integer
roles:
items:
$ref: '#/components/schemas/WellRoleInput'
type: array
rowIndex:
type: integer
sampleSchemaId:
type: string
schemaTags:
additionalProperties:
$ref: '#/components/schemas/AnyType'
type: object
wellVolumeAmount:
type: number
wellVolumeUnitId:
type: string
wellVolumeUnitVersionNumber:
type: integer
required:
- rowIndex
- columnIndex
type: object
QuantityInput:
additionalProperties: false
properties:
amount:
type: number
unit:
$ref: '#/components/schemas/UnitInput'
required:
- amount
type: object
InternalServerError:
properties:
detail:
type:
- 'null'
- string
- object
errorId:
type: string
instance:
type: string
status:
type: integer
title:
type:
- 'null'
- string
type:
type: string
required:
- type
- title
- detail
- status
- instance
type: object
TransferScratchPlatesResult:
description: The scratch plate(s) produced by a transfer.
properties:
createdPlateIds:
deprecated: true
description: Use createdPlates instead, and select the id subfield.
items:
type: string
type: array
createdPlates:
description: The destination scratch plates created by the transfer.
items:
$ref: '#/components/schemas/ScratchPlateRef'
type: array
decrementedSourcePlates:
description: Copies of the source plates the transfer drew from, holding what remained after it. The source plates themselves are historical records and are never rewritten. Empty when any drawn-from source well could not say how much it had left, since a partial list would read as the full set of what remains.
items:
$ref: '#/components/schemas/ScratchPlateRef'
type: array
type: object
AsyncTaskLink:
properties:
pollingUri:
format: uri
type: string
taskId:
type: string
type: object
ScratchPlate:
description: 'A plate design or record used for designing, tracking, and analyzing experimental plates
outside of the inventory.
Scratch plates are the working surface for plate-based workflows: you build up
a plate''s layout (well roles, contents, concentrations, metadata, measurements)
through one or more creates and updates, then optionally convert it to a
persistent inventory plate via the `bulk-put-in-inventory` endpoint.
Each layer of data (label, content, concentration, metadata, measurements, etc.)
is accessible via its `dataFrame`.
These endpoints are not generally available and may fail depending on your tenant configuration.'
properties:
__typename:
type: string
createdAt:
format: datetime
type:
- 'null'
- string
height:
type: integer
id:
type: string
layers:
items:
$ref: '#/components/schemas/ScratchPlateLayer'
type: array
modifiedAt:
format: datetime
type:
- 'null'
- string
name:
type: string
plateSchema:
description: The plate schema associated with this scratch plate. Used as the default schema when converting to an inventory plate via `bulk-put-in-inventory`; can be overridden per-item in that call.
oneOf:
- $ref: '#/components/schemas/PlateSchemaRef'
- type: 'null'
width:
type: integer
type: object
BulkImport:
example:
fileId: scrfile_jdf8BV24kLmN
properties:
fileId:
description: The API ID of the scratch file (`scrfile_XXXXXXXX`) containing the items to import. The referenced file must be a scratch file whose upload has completed successfully.
type: string
required:
- fileId
type: object
CreateScratchPlateInput:
additionalProperties: false
properties:
concentrationLayers:
items:
$ref: '#/components/schemas/ConcentrationLayerInput'
type: array
contents:
items:
$ref: '#/components/schemas/ContentItemInput'
type: array
height:
type: integer
measurements:
items:
$ref: '#/components/schemas/ScratchPlateMeasurementInput'
type: array
metadataLayers:
items:
$ref: '#/components/schemas/MetadataColumnInput'
type: array
name:
type: string
originDesignId:
type: string
parameterLayers:
items:
$ref: '#/components/schemas/ParameterLayerInput'
type: array
plateDesignTemplateId:
type: string
plateReaderAsm:
$ref: '#/components/schemas/ScratchPlatePlateReaderAsmInput'
plateSchemaId:
type: string
vendorFile:
$ref: '#/components/schemas/ScratchPlateVendorFileInput'
wells:
items:
$ref: '#/components/schemas/ScratchPlateWellInput'
type
# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/benchling/refs/heads/main/openapi/benchling-scratchplate-api-openapi.yml