Benchling Box Schema API

Defines the structure and constraints for a category of Boxes in Benchling's inventory system. A BoxSchema specifies the grid dimensions (height and width) determining how many container positions the box has, and optionally links to a ContainerSchema that constrains what type of containers can be stored in boxes of this type. BoxSchemas support custom field definitions for capturing additional metadata about boxes. Each BoxSchema can be associated with a Registry and given a prefix for generating display IDs. Examples include "96-Well Freezer Box" or "81-Position Cryo Box".

Operations 9

POST /box-schema Create BoxSchema #
GET /box-schema/items List BoxSchema items #
GET /box-schema/{box_schema_id} Get BoxSchema by ID #
PATCH /box-schema/{box_schema_id} Update BoxSchema #
GET /box-schema/{box_schema_id}/field-definitions/items List SchemaFieldDefinition items #
POST /box-schema:batch-create Batch create BoxSchema #
PATCH /box-schema:batch-update Batch update BoxSchema #
POST /box-schema:bulk-create Bulk create BoxSchema #
PATCH /box-schema:bulk-update Bulk update BoxSchema #

Documentation

Specifications

Other Resources

Work with this as data

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-boxschema-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 Specification

benchling-boxschema-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  title: Benchling Box Schema API
  version: 2.0.0
  description: 'Defines the structure and constraints for a category of Boxes in Benchling''s inventory

    system. A BoxSchema specifies the grid dimensions (height and width) determining how

    many container positions the box has, and optionally links to a ContainerSchema that

    constrains what type of containers can be stored in boxes of this type. BoxSchemas

    support custom field definitions for capturing additional metadata about boxes. Each

    BoxSchema can be associated with a Registry and given a prefix for generating display

    IDs. Examples include "96-Well Freezer Box" or "81-Position Cryo Box".'
servers:
- url: /api/v3
security:
- oAuth: []
- basicApiKeyAuth: []
tags:
- description: 'Defines the structure and constraints for a category of Boxes in Benchling''s inventory

    system. A BoxSchema specifies the grid dimensions (height and width) determining how

    many container positions the box has, and optionally links to a ContainerSchema that

    constrains what type of containers can be stored in boxes of this type. BoxSchemas

    support custom field definitions for capturing additional metadata about boxes. Each

    BoxSchema can be associated with a Registry and given a prefix for generating display

    IDs. Examples include "96-Well Freezer Box" or "81-Position Cryo Box".'
  name: BoxSchema
  x-bnch-organization: Benchling
paths:
  /box-schema:
    post:
      description: Create BoxSchema.
      operationId: BoxSchema.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/CreateBoxSchemaInput'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoxSchema'
          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 BoxSchema
      tags:
      - BoxSchema
      x-bnch-rate-limit-tier: 4
  /box-schema/items:
    get:
      description: List BoxSchema items.
      operationId: BoxSchema.List
      parameters:
      - $ref: '#/components/parameters/archiveReason.anyOf'
      - $ref: '#/components/parameters/archived.anyOf'
      - $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/name.anyOf'
      - $ref: '#/components/parameters/name.anyOf.caseSensitive'
      - $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
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoxSchemaPaginatedList'
          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 BoxSchema items
      tags:
      - BoxSchema
      x-bnch-rate-limit-tier: 4
  /box-schema/{box_schema_id}:
    get:
      description: Get a single BoxSchema by ID.
      operationId: BoxSchema.Get
      parameters:
      - description: ID of the BoxSchema.
        in: path
        name: box_schema_id
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/returning'
      - $ref: '#/components/parameters/omit'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoxSchema'
          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 BoxSchema by ID
      tags:
      - BoxSchema
      x-bnch-rate-limit-tier: 5
    patch:
      description: Update BoxSchema.
      operationId: BoxSchema.Update
      parameters:
      - description: ID of the BoxSchema.
        in: path
        name: box_schema_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/UpdateBoxSchemaInput'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoxSchema'
          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 BoxSchema
      tags:
      - BoxSchema
      x-bnch-rate-limit-tier: 4
  /box-schema/{box_schema_id}/field-definitions/items:
    get:
      description: List SchemaFieldDefinition items.
      operationId: BoxSchema.fieldDefinitions.List
      parameters:
      - description: ID of the BoxSchema.
        in: path
        name: box_schema_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:
                $ref: '#/components/schemas/SchemaFieldDefinitionUnpaginatedList'
          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 SchemaFieldDefinition items
      tags:
      - BoxSchema
      x-bnch-rate-limit-tier: 4
  /box-schema:batch-create:
    post:
      description: Batch create BoxSchema synchronously in one transaction. Maximum 25 items per request.
      operationId: BoxSchema.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/CreateBoxSchemaInput'
                  maxItems: 25
                  minItems: 1
                  type: array
              required:
              - items
              type: object
      responses:
        '201':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/BoxSchema'
                    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 BoxSchema
      tags:
      - BoxSchema
      x-bnch-rate-limit-tier: 3
  /box-schema:batch-update:
    patch:
      description: Batch update BoxSchema synchronously in one transaction. Maximum 25 items per request.
      operationId: BoxSchema.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/UpdateBoxSchemaInputWithPathParams'
                  maxItems: 25
                  minItems: 1
                  type: array
              required:
              - items
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/BoxSchema'
                    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 BoxSchema
      tags:
      - BoxSchema
      x-bnch-rate-limit-tier: 3
  /box-schema:bulk-create:
    post:
      description: Bulk create BoxSchema.
      operationId: BoxSchema.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 BoxSchema
      tags:
      - BoxSchema
      x-bnch-rate-limit-tier: 2
  /box-schema:bulk-update:
    patch:
      description: Bulk update BoxSchema.
      operationId: BoxSchema.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 BoxSchema
      tags:
      - BoxSchema
      x-bnch-rate-limit-tier: 2
components:
  schemas:
    CustomEntitySchemaRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    CreateDnaSequenceLinkFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent DNA sequence. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        linkDefinitionId:
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - DNA_SEQUENCE_LINK
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      - isMulti
      - linkDefinitionId
      type: object
    CreateDateFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isRequired:
          type: boolean
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - DATE
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      type: object
    CreateFloatFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        displayPrecision:
          type: integer
        isRequired:
          type: boolean
        name:
          type: string
        numericMax:
          type: number
        numericMin:
          type: number
        systemName:
          type: string
        type:
          enum:
          - FLOAT
          type: string
        unitId:
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      type: object
    CreateDnaOligoLinkFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent DNA Oligo. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        linkDefinitionId:
          type: string
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - DNA_OLIGO_LINK
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      - isMulti
      - linkDefinitionId
      type: object
    AssayRequestLinkFieldDefinition:
      description: A schema field definition for linking to assay requests.
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          type: boolean
        isRequired:
          type: boolean
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    RunSchemaRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    CreateBooleanFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isRequired:
          type: boolean
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - BOOLEAN
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      type: object
    LongTextFieldDefinition:
      description: A long text field definition for multi-line text values with no length restrictions.
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isRequired:
          type: boolean
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    ResultSchemaRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    CustomEntityLinkFieldDefinition:
      description: A schema field definition for linking to custom entities.
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent custom entity. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        linkDefinition:
          oneOf:
          - $ref: '#/components/schemas/CustomEntitySchemaRef'
          - type: 'null'
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    UpdateBoxSchemaInput:
      additionalProperties: false
      properties:
        archiveReason:
          type: string
        archived:
          type: boolean
        containerSchemaId:
          description: The API ID of the container schema constraining what types of containers can be stored in boxes of this type.
          type:
          - 'null'
          - string
        description:
          description: Updated description. When provided, must be at most 1000 characters.
          type: string
        displayName:
          deprecated: true
          description: Deprecated. Use name instead.
          type: string
        height:
          description: The number of rows in the grid layout.
          type: integer
        name:
          description: Updated user-facing name. When provided, must be non-empty after stripping whitespace, at most 255 characters, and unique within the organization.
          type: string
        prefix:
          description: The prefix used for auto-generating barcodes for inventory items of this schema. Must be unique within the registry and cannot end in a digit.
          type: string
        systemName:
          description: Updated SQL identifier for the warehouse table name. When provided, 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.
          type: string
        width:
          description: The number of columns in the grid layout.
          type: integer
      type: object
    TranslationLinkFieldDefinition:
      description: A schema field definition for linking to translations (AA sequences created from RNA).
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent AA sequence. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    MixtureLinkFieldDefinition:
      description: A schema field definition for linking to mixtures.
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent mixture. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        linkDefinition:
          oneOf:
          - $ref: '#/components/schemas/MixtureSchemaRef'
          - type: 'null'
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    CreateRnaSequenceLinkFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent RNA sequence. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        linkDefinitionId:
          type: string
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - RNA_SEQUENCE_LINK
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      - isMulti
      - linkDefinitionId
      type: object
    DropdownRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    CreateCustomEntityLinkFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent custom entity. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        linkDefinitionId:
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - CUSTOM_ENTITY_LINK
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      - isMulti
      - linkDefinitionId
      type: object
    BaseFieldDefinition:
      description: 'A basic schema field definition for primitive data types. Used for fields with types like TEXT,

        INTEGER, FLOAT, BOOLEAN, DATE, DATETIME, JSON, and LONG_TEXT. Each field has a user-facing

        `name` and a `systemName` for warehouse/API access. Fields can be archived when no longer needed. For fields

        that link to other objects, use `SchemaLinkFieldDefinition`; for dropdown selections, use

        `DropdownLinkFieldDefinition`.'
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          description: Determines whether multiple values are allowed
          type: boolean
        isRequired:
          description: Determines whether values must be provided
          type: boolean
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - AA_PART_LINK
          - AA_SEQUENCE_LINK
          - ASSAY_REQUEST_LINK
          - ASSAY_RESULT_LINK
          - ASSAY_RUN_LINK
          - BATCH_LINK
          - BLOB_LINK
          - BOOLEAN
          - CUSTOM_ENTITY_LINK
          - DATE
          - DATETIME
          - DNA_SEQUENCE_LINK
          - ENTITY_LINK
          - ENTRY_LINK
          - FLOAT
          - INTEGER
          - JSON
          - LONG_TEXT
          - MIXTURE_LINK
          - MOLECULE_LINK
          - BASE_MOLECULE_LINK
          - PART_LINK
          - SAMPLE_LINK
          - DROPDOWN
          - STORAGE_LINK
          - TEXT
          - TRANSCRIPTION_LINK
          - TRANSLATION_LINK
          type: string
      type: object
    CreateIntegerFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isRequired:
          type: boolean
        name:
          type: string
        numericMax:
          type: number
        numericMin:
          type: number
        systemName:
          type: string
        type:
          enum:
          - INTEGER
          type: string
        unitId:
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      type: object
    DnaOligoSchemaRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    OligoDuplexLinkFieldDefinition:
      description: A schema field definition for linking to Oligo Duplexes.
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent Oligo Duplex. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        linkDefinition:
          oneOf:
          - $ref: '#/components/schemas/OligoDuplexSchemaRef'
          - type: 'null'
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    DropdownLinkFieldDefinition:
      description: 'A schema field definition that links to a dropdown for value selection. The `linkDefinition` field

        references the `Dropdown` configuration that defines the available options. When `isMulti`

        is true, users can select multiple dropdown options for a single field value. The dropdown

        provides controlled vocabulary for consistent data entry across the organization.'
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          type: boolean
        isRequired:
          type: boolean
        linkDefinition:
          $ref: '#/components/schemas/DropdownRef'
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    EntryLinkFieldDefinition:
      description: A schema field definition for linking to notebook entries.
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          type: boolean
        isRequired:
          type: boolean
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    CreateTextFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isRequired:
          type: boolean
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - TEXT
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      type: object
    SchemaLinkFieldDefinition:
      description: 'A schema field definition for link types that reference other Benchling

# --- truncated at 32 KB (90 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/benchling/refs/heads/main/openapi/benchling-boxschema-api-openapi.yml