Benchling Worklist API

A typed collection of items used to group related objects for batch operations. Unlike folders, items can belong to multiple worklists simultaneously, making worklists useful as temporary holding grounds for arbitrary groups of items. Each worklist has an `itemType` that restricts what kinds of objects it can contain (containers, entities, or plates). Common use cases include scanning containers into a worklist before adding them to a transfer table, or grouping entities for bulk export. Worklists have an `owner` and support `collaborations` for access control (see `Collaboratable` interface). The `items` field returns the collection of `Worklistable` objects currently in the worklist.

Operations 11

POST /worklist Create Worklist #
GET /worklist/items List Worklist items #
DELETE /worklist/{worklist_id} Delete Worklist #
GET /worklist/{worklist_id} Get Worklist by ID #
PATCH /worklist/{worklist_id} Update Worklist #
GET /worklist/{worklist_id}/items/items List Worklistable items #
POST /worklist:batch-create Batch create Worklist #
POST /worklist:batch-delete Batch delete Worklist #
PATCH /worklist:batch-update Batch update Worklist #
POST /worklist:bulk-create Bulk create Worklist #
PATCH /worklist:bulk-update Bulk update Worklist #

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-worklist-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-worklist-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 Worklist API
  version: 2.0.0
  description: 'A typed collection of items used to group related objects for batch operations. Unlike

    folders, items can belong to multiple worklists simultaneously, making worklists useful

    as temporary holding grounds for arbitrary groups of items. Each worklist has an `itemType`

    that restricts what kinds of objects it can contain (containers, entities, or plates).

    Common use cases include scanning containers into a worklist before adding them to a

    transfer table, or grouping entities for bulk export. Worklists have an `owner` and support

    `collaborations` for access control (see `Collaboratable` interface). The `items` field

    returns the collection of `Worklistable` objects currently in the worklist.'
servers:
- url: /api/v3
security:
- oAuth: []
- basicApiKeyAuth: []
tags:
- description: 'A typed collection of items used to group related objects for batch operations. Unlike

    folders, items can belong to multiple worklists simultaneously, making worklists useful

    as temporary holding grounds for arbitrary groups of items. Each worklist has an `itemType`

    that restricts what kinds of objects it can contain (containers, entities, or plates).

    Common use cases include scanning containers into a worklist before adding them to a

    transfer table, or grouping entities for bulk export. Worklists have an `owner` and support

    `collaborations` for access control (see `Collaboratable` interface). The `items` field

    returns the collection of `Worklistable` objects currently in the worklist.'
  name: Worklist
  x-bnch-organization: Benchling
paths:
  /worklist:
    post:
      description: Create Worklist.
      operationId: Worklist.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/CreateWorklistInput'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Worklist'
          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 Worklist
      tags:
      - Worklist
      x-bnch-rate-limit-tier: 4
  /worklist/items:
    get:
      description: List Worklist items.
      operationId: Worklist.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/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
      - 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/WorklistPaginatedList'
          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 Worklist items
      tags:
      - Worklist
      x-bnch-rate-limit-tier: 4
  /worklist/{worklist_id}:
    delete:
      description: Delete Worklist.
      operationId: Worklist.Delete
      parameters:
      - description: ID of the Worklist.
        in: path
        name: worklist_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:
        '204':
          description: No Content
        '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: Delete Worklist
      tags:
      - Worklist
      x-bnch-rate-limit-tier: 4
    get:
      description: Get a single Worklist by ID.
      operationId: Worklist.Get
      parameters:
      - description: ID of the Worklist.
        in: path
        name: worklist_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/Worklist'
          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 Worklist by ID
      tags:
      - Worklist
      x-bnch-rate-limit-tier: 5
    patch:
      description: Update Worklist.
      operationId: Worklist.Update
      parameters:
      - description: ID of the Worklist.
        in: path
        name: worklist_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/UpdateWorklistInput'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Worklist'
          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 Worklist
      tags:
      - Worklist
      x-bnch-rate-limit-tier: 4
  /worklist/{worklist_id}/items/items:
    get:
      description: List Worklistable items.
      operationId: Worklist.items.List
      parameters:
      - description: ID of the Worklist.
        in: path
        name: worklist_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/WorklistableUnpaginatedList'
          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 Worklistable items
      tags:
      - Worklist
      x-bnch-rate-limit-tier: 4
  /worklist:batch-create:
    post:
      description: Batch create Worklist synchronously in one transaction. Maximum 25 items per request.
      operationId: Worklist.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/CreateWorklistInput'
                  maxItems: 25
                  minItems: 1
                  type: array
              required:
              - items
              type: object
      responses:
        '201':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/Worklist'
                    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 Worklist
      tags:
      - Worklist
      x-bnch-rate-limit-tier: 3
  /worklist:batch-delete:
    post:
      description: Batch delete Worklist synchronously in one transaction. Maximum 25 items per request.
      operationId: Worklist.BatchDelete
      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/DeleteWorklistInputWithPathParams'
                  maxItems: 25
                  minItems: 1
                  type: array
              required:
              - items
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  items:
                    items:
                      additionalProperties: false
                      properties:
                        id:
                          type: string
                      required:
                      - id
                      type: object
                    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 delete Worklist
      tags:
      - Worklist
      x-bnch-rate-limit-tier: 3
  /worklist:batch-update:
    patch:
      description: Batch update Worklist synchronously in one transaction. Maximum 25 items per request.
      operationId: Worklist.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/UpdateWorklistInputWithPathParams'
                  maxItems: 25
                  minItems: 1
                  type: array
              required:
              - items
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/Worklist'
                    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 Worklist
      tags:
      - Worklist
      x-bnch-rate-limit-tier: 3
  /worklist:bulk-create:
    post:
      description: Bulk create Worklist.
      operationId: Worklist.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 Worklist
      tags:
      - Worklist
      x-bnch-rate-limit-tier: 2
  /worklist:bulk-update:
    patch:
      description: Bulk update Worklist.
      operationId: Worklist.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 Worklist
      tags:
      - Worklist
      x-bnch-rate-limit-tier: 2
components:
  schemas:
    Molecule:
      allOf:
      - $ref: '#/components/schemas/IMolecule'
      - description: 'A Molecule represents a small molecule chemical compound in Benchling that is imported either as a MolFile or

          using SMILES (Simplified Molecular Input Line Entry System) notation. Molecules are registry entities that can

          be registered, searched, and linked to other items. When present, the `canonicalSmiles` field provides a

          standardized SMILES representation for comparison, while originalSmiles preserves the user-provided SMILES and

          may be null if SMILES was not provided at creation. Molecules support custom fields via schemas and can be

          organized in folders and projects.'
        properties:
          __typename:
            type: string
          authors:
            oneOf:
            - format: uri
              type: string
            - type: 'null'
          creator:
            oneOf:
            - $ref: '#/components/schemas/PrincipalRef'
            - type: 'null'
          schemaFields:
            oneOf:
            - items:
                $ref: '#/components/schemas/SchemaFieldValue'
              type: array
            - type: 'null'
        type: object
    MatrixPlate:
      allOf:
      - $ref: '#/components/schemas/IMatrixPlate'
      - description: 'A MatrixPlate is a rack-style storage plate where Containers (tubes, vials) can be

          inserted into and removed from grid positions. Unlike FixedPlate or WellPlate where

          wells are permanently attached, MatrixPlate positions (see MatrixPlatePosition) can

          be empty or hold movable containers. This makes MatrixPlates ideal for tube racks,

          sample storage boxes with removable tubes, and other flexible storage formats. Each

          plate tracks its capacity (totalCapacity, availableCapacity, occupiedCapacity) and

          conforms to a MatrixPlateSchema that defines the grid dimensions and optionally

          restricts which ContainerSchema types can be stored. MatrixPlates can be stored in

          Locations, associated with Studies, and identified by barcode.'
        properties:
          __typename:
            type: string
          creator:
            $ref: '#/components/schemas/PrincipalRef'
            description: The user who created the plate
          schemaFields:
            oneOf:
            - items:
                $ref: '#/components/schemas/SchemaFieldValue'
              type: array
            - type: 'null'
        type: object
    AaAnnotation:
      description: 'Represents an annotated region on an amino acid sequence (AaSequence). Annotations mark

        functional domains, binding sites, post-translational modifications, engineered mutations,

        or other biologically significant features. Each annotation defines a start and end

        position (0-based, exclusive end), a name, optional type classification, display color,

        and descriptive notes. Annotations appear as visual overlays on the sequence viewer.'
      properties:
        __typename:
          type: string
        aaSequence:
          $ref: '#/components/schemas/AaSequenceRef'
          description: AA sequence the annotation belongs to.
        color:
          description: Hex color when displaying the annotation.
          type: string
        end:
          description: 0-based exclusive end index.
          type: integer
        id:
          description: ID of the annotation.
          type: string
        name:
          description: Name of the annotation.
          type: string
        notes:
          description: Text notes on the annotation.
          type: string
        start:
          description: 0-based inclusive start index.
          type: integer
        type:
          description: Feature type of the annotation.
          type:
          - 'null'
          - string
      type: object
    GridCoordinates:
      description: Read model representing a fillable position in a box or plate.
      properties:
        __typename:
          type: string
        column:
          description: The 0-indexed column index of the position
          type: integer
        index:
          description: 'The 1-indexed position determined by counting across rows.

            For example, for a six-well plate:

            +---+---+---+

            | 1 | 2 | 3 |

            +---+---+---+

            | 4 | 5 | 6 |

            +---+---+---+'
          type: integer
        position:
          description: 'The alphanumeric position, where rows are indexed alphabetically and columns are indexed numerically,

            starting from "A1"'
          type: string
        row:
          description: The 0-indexed row index of the position
          type: integer
      type: object
    Transcription:
      description: 'Represents a transcribed region on a DNA sequence that produces an RNA product. Transcriptions

        link a region of a DnaSequence to the corresponding RnaSequence entity, enabling traceability

        between DNA templates and their RNA transcripts. The position range (start/end) defines

        where transcription begins and ends on the DNA template, while strand indicates the

        transcribed strand direction. This feature is derived from schema field relationships

        rather than being directly editable as an annotation.'
      properties:
        __typename:
          type: string
        end:
          description: '0-based exclusive end index. For ranges ending at the end of a circular sequence, this value is

            always the length of the sequence, never 0.'
          type: integer
        rnaSequence:
          $ref: '#/components/schemas/RnaSequenceRef'
          description: RNA sequence this transcription refers to.
        start:
          description: 0-based inclusive start index.
          type: integer
        strand:
          description: Strand for this transcription; 1 for forward strand, -1 for reverse strand.
          type: integer
      type: object
    MatrixPlatePosition:
      description: A well position within a MatrixPlate.
      properties:
        __typename:
          type: string
        container:
          description: Container at the current position within the matrix plate.
          oneOf:
          - $ref: '#/components/schemas/ContainerRef'
          - type: 'null'
        coordinates:
          $ref: '#/components/schemas/GridCoordinates'
          description: Coordinates of the current position within the matrix plate.
      type: object
    ProteinFormatChainPosition:
      description: 'Defines each instance of a polypeptide chain within a `ProteinFormat`, specifying the chain type and

        its constituent domains. Each chain position has a unique ref identifier and lists the domain positions

        (see `ProteinFormatDomainPosition`) that compose it in order from N-terminus to C-terminus.

        For example, a heavy chain position might reference domain positions [VH, CH1, Hinge, CH2, CH3].'
      properties:
        __typename:
          type: string
        domainPositions:
          description: A list of all the domain positions that make up the chain position, in order
          items:
            $ref: '#/components/schemas/ProteinFormatDomainPosition'
          type: array
        ref:
          description: 'A unique identifier for a physical component (chain or domain) in a protein format.

            This is used to form a HELM reference that is used in the protein''s complex polymer structure.'
          type: integer
        type:
          description: Type of the chain.
          enum:
          - HEAVY
          - LIGHT
          - NONE
          - ALPHA
          - BETA
          - JOINING
          type: string
      type: object
    IMolecule:
      properties:
        __typename:
          type: string
        aliases:
          oneOf:
          - items:
              type: string
            type: array
          - type: 'null'
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        canonicalSmiles:
          description: 'The canonicalized chemical structure in SMILES format. E.g.,

            Nc1nc(=O)n([H:1])cc1C1CC1'
          type:
          - 'null'
          - string
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        customFields:
          oneOf:
          - items:
              $ref: '#/components/schemas/CustomField'
            type: array
          - type: 'null'
        entityRegistryId:
          type:
          - 'null'
          - string
        folder:
          oneOf:
          - $ref: '#/components/schemas/FolderRef'
          - type: 'null'
        id:
          type: string
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type:
          - 'null'
          - string
        originalSmiles:
          description: 'The original chemical structure in SMILES format. Null if the user did not originally provide SMILES. E.g.,

            Nc1nc(=O)n([H:1])cc1C1CC1'
          type:
          - 'null'
          - string
        project:
          oneOf:
          - $ref: '#/components/schemas/ProjectRef'
          - type: 'null'
        registrationOrigin:
          oneOf:
          - $ref: '#/components/schemas/RegistrationOrigin'
          - type: 'null'
        registry:
          oneOf:
          - $ref: '#/components/schemas/RegistryRef'
          - type: 'null'
        schema:
          oneOf:
          - $ref: '#/components/schemas/EntitySchemaRef'
          - type: 'null'
      type: object
    IMixture:
      properties:
        __typename:
          type: string
        aliases:
          oneOf:
          - items:
              type: string
            type: array
          - type: 'null'
        allowMeasuredIngredients:
          description: Derived from the mixture's schema.
          type:
          - 'null'
          - boolean
        amount:
          description: 'The positive numerical amount value of this mixture in string format

            (to preserve full precision). Pair with `units`. Supports scientific

            notation (1.23e4).'
          type:
          - 'null'
          - string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        customFields:
          oneOf:
          - items:
              $ref: '#/components/schemas/CustomField'
            type: array
          - type: 'null'
        entityRegistryId:
          type:
          - 'null'
          - string
        folder:
          oneOf:
          - $ref: '#/components/schemas/FolderRef'
          - type: 'null'
        id:
          type: string
        ingredients:
          description: List of ingredients on this mixture.
          oneOf:
          - items:
              $ref: '#/components/schemas/Ingredient'
            type: array
          - type: 'null'
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type:
          - 'null'
          - string
        project:
          oneOf:
          - $ref: '#/components/schemas/ProjectRef'
          - type: 'null'
        registrationOrigin:
          oneOf:
          - $ref: '#/components/schemas/RegistrationOrigin'
          - type: 'null'
        registry:
          oneOf:
          - $ref: '#/components/schemas/RegistryRef'
          - type: 'null'
        schema:
          oneOf:
          - $ref: '#/components/schemas/EntitySchemaRef'
          - type: 'null'
        units:
          enum:
          - NL
          - UL
          - ML
          - L
          - G
          - KG
          - UNITS
          - UG
          - MG
          - null
          type:
          - 'null'
          - string
      type: object
    ProteinFormatRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    ProjectRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    RnaOligo:
      allOf:
      - $ref: '#/components/schemas/IRnaOligo'
      - description: 'Represents a short single-stranded RNA oligonucleotide in Benchling''s molecular biology

          platform. RNA oligos are synthetic sequences used in applications such as RNA interference

          (siRNA, shRNA), antisense oligonucleotides (ASOs), mRNA therapeutics, or CRISPR guide RNAs.

          Each oligo stores its nucleotide base sequence, annotations for features of interest, and

          chemical modifications (see ModifiedNucleotide) such as 2''-O-methyl sugars or phosphorothioate

          backbones that enhance stability and efficacy. RNA oligos can be registered in the Registry

          with unique identifiers, organized in folders, and linked to other entities via schema

          fields. Unlike RnaSequence, oligos are specifically designed for shorter, synthesizable

          sequences. Also referred to as RNA probes or therapeutic oligonucleotides depending on

          their application.'
        properties:
          __typename:
            type: string
          authors:
            oneOf:
            - format: uri
              type: string
            - type: 'null'
          creator:
            oneOf:
            - $ref: '#/components/schemas/PrincipalRef'
            - type: 'null'
          schemaFields:
            oneOf:
            - items:
                $ref: '#/components/schemas/SchemaFieldValue'
              type: array
            - type: 'null'
        type: object
    Primer:
      description: 'Represents a primer binding site on a nucleotide sequence, indicating where an oligonucleotide primer anneals

        for PCR amplification or sequencing. The Primer links to an Oligo entity containing the actual primer sequence

        and name. Position fields define the binding region on the template (start/end), while bindPosition specifies

        the 3'' end of the binding region (critical for extension). The overhangLength indicates how many 5'' bases

        extend beyond the binding region (used for adding restriction sites or tags). Strand indicates whether the

        primer binds to the forward (1) or reverse (-1) strand.'
      properties:
        __typename:
          type: string
        bindPosition:
          description: 0-based index of the base at the 3' end of the binding region.
          type: integer
        end:
          description: '0-based exclusive end of the binding region. For ranges ending at the end of a circular sequence,

            this value is always the length of the sequence, never 0.'
          type: integer
        oligo:
          $ref: '#/components/schemas/OligoRef'
          description: Linked primer entity, which holds the name, bases, and color for this primer bind site.
        overhangLength:
          description: Number of 5' primer bases that are not part of the binding region.
          type: integer
        start:
          description: 0-based inclusive start of the binding region.
          type: integer
        strand:
          description: Strand for this primer; 1 for forward strand, -1 for reverse strand.
          type: integer
      type: object
    CustomField:
      description: 'A name-value pair for storing additional metadata o

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