Benchling Request V2 Submission API

A workflow request submitted from a `RequestV2Definition` (known as "Request Template" in the UI). When a request is submitted (status transitions to SENT), a `WorkflowTaskGroup` is automatically created to fulfill the request, containing tasks defined by the template's workflow task schema. Requests are authored in a `Document` and stored within `Folder`s. The `status` field tracks the request lifecycle: requests start as DRAFT while being composed, become SENT when submitted, and transition to FULFILLED when all associated workflow tasks reach terminal status. Requests can also be DISCARDED (before submission) or CANCELLED (after submission). Users can be added as `watchers` to receive notifications about request status changes. Requests can be linked to `Study` entities for research coordination (see `Studyable` interface).

Operations 3

GET /request-v2-submission/items List RequestV2Submission items #
GET /request-v2-submission/{request_v2_submission_id} Get RequestV2Submission by ID #
GET /request-v2-submission/{request_v2_submission_id}/authors/items List Principal items #

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-requestv2submission-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-requestv2submission-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 Request V2 Submission API
  version: 2.0.0
  description: 'A workflow request submitted from a `RequestV2Definition` (known as "Request Template" in the UI).

    When a request is submitted (status transitions to SENT), a `WorkflowTaskGroup` is automatically

    created to fulfill the request, containing tasks defined by the template''s workflow task schema.

    Requests are authored in a `Document` and stored within `Folder`s. The `status` field tracks

    the request lifecycle: requests start as DRAFT while being composed, become SENT when submitted,

    and transition to FULFILLED when all associated workflow tasks reach terminal status. Requests

    can also be DISCARDED (before submission) or CANCELLED (after submission). Users can

    be added as `watchers` to receive notifications about request status changes. Requests can be

    linked to `Study` entities for research coordination (see `Studyable` interface).'
servers:
- url: /api/v3
security:
- oAuth: []
- basicApiKeyAuth: []
tags:
- description: 'A workflow request submitted from a `RequestV2Definition` (known as "Request Template" in the UI).

    When a request is submitted (status transitions to SENT), a `WorkflowTaskGroup` is automatically

    created to fulfill the request, containing tasks defined by the template''s workflow task schema.

    Requests are authored in a `Document` and stored within `Folder`s. The `status` field tracks

    the request lifecycle: requests start as DRAFT while being composed, become SENT when submitted,

    and transition to FULFILLED when all associated workflow tasks reach terminal status. Requests

    can also be DISCARDED (before submission) or CANCELLED (after submission). Users can

    be added as `watchers` to receive notifications about request status changes. Requests can be

    linked to `Study` entities for research coordination (see `Studyable` interface).'
  name: RequestV2Submission
  x-bnch-organization: Benchling
paths:
  /request-v2-submission/items:
    get:
      description: List RequestV2Submission items.
      operationId: RequestV2Submission.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
      - 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/RequestV2SubmissionPaginatedList'
          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 RequestV2Submission items
      tags:
      - RequestV2Submission
      x-bnch-rate-limit-tier: 4
  /request-v2-submission/{request_v2_submission_id}:
    get:
      description: Get a single RequestV2Submission by ID.
      operationId: RequestV2Submission.Get
      parameters:
      - description: ID of the RequestV2Submission.
        in: path
        name: request_v2_submission_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/RequestV2Submission'
          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 RequestV2Submission by ID
      tags:
      - RequestV2Submission
      x-bnch-rate-limit-tier: 5
  /request-v2-submission/{request_v2_submission_id}/authors/items:
    get:
      description: List Principal items.
      operationId: RequestV2Submission.authors.List
      parameters:
      - description: ID of the RequestV2Submission.
        in: path
        name: request_v2_submission_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/PrincipalUnpaginatedList'
          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 Principal items
      tags:
      - RequestV2Submission
      x-bnch-rate-limit-tier: 4
components:
  schemas:
    LegacyAppInstallation:
      description: 'Represents a legacy (pre-App Store) Benchling App installation on a tenant. Legacy apps

        are configured directly with webhook URLs and configuration specs rather than through

        app definition versions. This type is maintained for backward compatibility with older

        app integrations. For new apps, see `AppInstallation`.'
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        configurationSpecs:
          items:
            $ref: '#/components/schemas/AppConfigOption'
          type: array
        configurationValues:
          format: uri
          type: string
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        creator:
          oneOf:
          - $ref: '#/components/schemas/PrincipalRef'
          - type: 'null'
        description:
          type:
          - 'null'
          - string
        featureSpecs:
          items:
            anyOf:
            - $ref: '#/components/schemas/CanvasFeatureSpec'
            - $ref: '#/components/schemas/AssayRunFeatureSpec'
            - $ref: '#/components/schemas/AppHomepageFeatureSpec'
            description: Union of CanvasFeatureSpec, AssayRunFeatureSpec, AppHomepageFeatureSpec
            discriminator:
              propertyName: __typename
          type: array
        featureValues:
          items:
            $ref: '#/components/schemas/AssayRunFeatureValue'
          type: array
        id:
          type: string
        messageSubscriptions:
          items:
            $ref: '#/components/schemas/AppMessageSubscription'
          type: array
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        publicKey:
          type:
          - 'null'
          - string
        versionNumber:
          type:
          - 'null'
          - string
        webhookUrl:
          type:
          - 'null'
          - string
      type: object
    JsonAppConfigSpec:
      description: Specifies that an app configuration field should accept a JSON value.
      properties:
        __typename:
          type: string
        requiredConfig:
          type:
          - 'null'
          - boolean
      type: object
    DateAppConfigSpec:
      description: Specifies that an app configuration field should accept a date value.
      properties:
        __typename:
          type: string
        requiredConfig:
          type:
          - 'null'
          - boolean
      type: object
    CanvasFeatureSpec:
      description: 'Defines a canvas feature for a Benchling App, which provides an embedded UI surface within

        entries or templates. Canvases allow apps to render custom interactive content.'
      properties:
        __typename:
          type: string
        featureId:
          type: string
        locations:
          oneOf:
          - items:
              enum:
              - ENTRY
              - ENTRY_TEMPLATE
              - APP_HOME
              type: string
            type: array
          - type: 'null'
        name:
          type: string
      type: object
    AppMessageSubscription:
      description: 'Represents an app''s subscription to a specific event type, specifying the event type and

        how notifications should be delivered (see `DeliveryMethod`).'
      properties:
        __typename:
          type: string
        deliveryMethod:
          enum:
          - WEBHOOK
          - WEBHOOK_INTERNAL
          type: string
        type:
          enum:
          - V2_BETA_CANVAS_CREATED
          - V2_CANVAS_CREATED
          - V2_CANVAS_USER_INTERACTED
          - V2_CANVAS_INITIALIZED
          - V2_APP_ACTIVATE_REQUESTED
          - V2_APP_DEACTIVATED
          - V2_APP_INSTALLED
          - V2_BETA_APP_CONFIGURATION_UPDATED
          - V2_ASSAY_RUN_CREATED
          - V2_ASSAY_RUN_UPDATED_FIELDS
          - V2_ENTITY_REGISTERED
          - V2_ENTRY_CREATED
          - V2_ENTRY_UPDATED_FIELDS
          - V2_ENTRY_UPDATED_REVIEW_RECORD
          - V2_REQUEST_CREATED
          - V2_REQUEST_UPDATED_FIELDS
          - V2_REQUEST_UPDATED_STATUS
          - V2_WORKFLOW_TASK_GROUP_CREATED
          - V2_WORKFLOW_TASK_GROUP_MAPPING_COMPLETED
          - V2_WORKFLOW_TASK_GROUP_UPDATED_WATCHERS
          - V2_WORKFLOW_TASK_CREATED
          - V2_WORKFLOW_TASK_UPDATED_ASSIGNEE
          - V2_WORKFLOW_TASK_UPDATED_SCHEDULED_ON
          - V2_WORKFLOW_TASK_UPDATED_STATUS
          - V2_WORKFLOW_TASK_UPDATED_FIELDS
          - V2_WORKFLOW_OUTPUT_CREATED
          - V2_WORKFLOW_OUTPUT_UPDATED_FIELDS
          - V2_AUTOMATION_FILE_TRANSFORM_UPDATED_STATUS_RUNNING
          - V2_AUTOMATION_FILE_TRANSFORM_UPDATED_STATUS_PENDING
          - V2_AUTOMATION_FILE_TRANSFORM_UPDATED_STATUS_SUCCEEDED
          - V2_AUTOMATION_FILE_TRANSFORM_UPDATED_STATUS_FAILED
          - V3_CUSTOM_ENTITY_CREATED
          - V3_CUSTOM_ENTITY_UPDATED
          - V3_DNA_OLIGO_CREATED
          - V3_DNA_OLIGO_UPDATED
          - V3_DNA_SEQUENCE_CREATED
          - V3_DNA_SEQUENCE_UPDATED
          - V3_ENTRY_CREATED
          - V3_PROJECT_CREATED
          - V3_PROJECT_UPDATED
          - V3_RNA_OLIGO_CREATED
          - V3_RNA_OLIGO_UPDATED
          - V3_RNA_SEQUENCE_CREATED
          - V3_RNA_SEQUENCE_UPDATED
          - V3_RUN_CREATED
          type: string
      type: object
    RequestV2Submission:
      description: 'A workflow request submitted from a `RequestV2Definition` (known as "Request Template" in the UI).

        When a request is submitted (status transitions to SENT), a `WorkflowTaskGroup` is automatically

        created to fulfill the request, containing tasks defined by the template''s workflow task schema.

        Requests are authored in a `Document` and stored within `Folder`s. The `status` field tracks

        the request lifecycle: requests start as DRAFT while being composed, become SENT when submitted,

        and transition to FULFILLED when all associated workflow tasks reach terminal status. Requests

        can also be DISCARDED (before submission) or CANCELLED (after submission). Users can

        be added as `watchers` to receive notifications about request status changes. Requests can be

        linked to `Study` entities for research coordination (see `Studyable` interface).'
      properties:
        __typename:
          type: string
        archivableParent:
          oneOf:
          - $ref: '#/components/schemas/FolderRef'
          - type: 'null'
        archiveDatetime:
          format: datetime
          type:
          - 'null'
          - string
        archiveReason:
          type:
          - 'null'
          - string
        archiveUser:
          oneOf:
          - $ref: '#/components/schemas/PrincipalRef'
          - type: 'null'
        archived:
          type: boolean
        authors:
          description: The authors of the request. By default, this is set to the creator.
          oneOf:
          - format: uri
            type: string
          - type: 'null'
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        creator:
          $ref: '#/components/schemas/PrincipalRef'
        definition:
          $ref: '#/components/schemas/RequestV2DefinitionRef'
          description: The configuration model for the request submission.
        displayId:
          type:
          - 'null'
          - string
        folder:
          $ref: '#/components/schemas/FolderRef'
        id:
          type: string
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        status:
          description: The first-class status of the request. Once submitted, this status is an aggregation of task statuses.
          enum:
          - DRAFT
          - SENT
          - DISCARDED
          - CANCELLED
          - FULFILLED
          type: string
        workflowTaskGroup:
          description: The task group created to fulfill the request.
          oneOf:
          - $ref: '#/components/schemas/WorkflowTaskGroupRef'
          - type: 'null'
      type: object
    DropdownAppConfigSpec:
      description: Specifies that an app configuration field should be a dropdown with predefined options.
      properties:
        __typename:
          type: string
        options:
          oneOf:
          - items:
              $ref: '#/components/schemas/AppConfigDropdownOption'
            type: array
          - type: 'null'
        requiredConfig:
          type:
          - 'null'
          - boolean
      type: object
    ArrayAppConfigSpec:
      description: Specifies that an app configuration field should accept an array of values.
      properties:
        __typename:
          type: string
        elementDefinition:
          description: Defines the named config options allowed within this array and their type constraints.
          items:
            $ref: '#/components/schemas/ArrayAppConfigOption'
          type: array
        maxElements:
          description: Maximum number of elements allowed in the array (1-500); null means no maximum.
          type:
          - 'null'
          - integer
        minElements:
          description: Minimum number of elements allowed in the array (0-500); null means no minimum.
          type:
          - 'null'
          - integer
        requiredConfig:
          type:
          - 'null'
          - boolean
      type: object
    PrincipalUnpaginatedList:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: '#/components/schemas/Principal'
          type: array
      type: object
    AppInstallation:
      description: 'Represents an installed Benchling App on a tenant, created from an `AppDefinitionVersion`.

        App installations store tenant-specific configuration values and feature bindings. As a

        Principal, app installations can be attributed as actors for API operations and auditing.'
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        configurationValues:
          format: uri
          type: string
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        creator:
          oneOf:
          - $ref: '#/components/schemas/PrincipalRef'
          - type: 'null'
        featureValues:
          items:
            $ref: '#/components/schemas/AssayRunFeatureValue'
          type: array
        id:
          type: string
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
      type: object
    ServicePrincipal:
      description: 'Represents a non-human identity used for system integrations and automated processes

        within Benchling. Service principals act as the identity for service accounts that

        perform actions via APIs or background processes without human intervention. Unlike

        `User`, which represents a human user, ServicePrincipal is used when an integration

        or automated system needs to be attributed as the actor for auditing and attribution

        purposes. Service principals implement the Principal interface, allowing them to

        appear as creators or actors on domain objects. Also known as "service account" in

        some contexts.'
      properties:
        __typename:
          type: string
        id:
          type: string
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type:
          - 'null'
          - string
      type: object
    AssayRunFeatureSpec:
      description: 'Defines an assay run feature for a Benchling App, allowing the app to process or generate

        lab automation run data.'
      properties:
        __typename:
          type: string
        featureId:
          type: string
        name:
          type: string
      type: object
    User:
      description: 'Represents a human user in Benchling who can log in, perform actions, and own data.

        Users belong to one or more Organizations and may be members of Teams within those

        organizations. As an Owner, users can own Projects, Folders, and other resources.

        As a Principal, users can be assigned as reviewers, authors, or collaborators on

        various items. Users have attributes like email and username for identification.

        Users are distinct from `ServicePrincipal`, which represents non-human service

        accounts used for integrations.'
      properties:
        __typename:
          type: string
        createdAt:
          format: datetime
          type: string
        email:
          type: string
        id:
          type: string
        lastSeen:
          format: datetime
          type:
          - 'null'
          - string
        modifiedAt:
          format: datetime
          type: string
        name:
          type:
          - 'null'
          - string
        status:
          enum:
          - ACTIVE
          - SUSPENDED
          type: string
        username:
          type: string
      type: object
    AppHomepageFeatureSpec:
      description: 'Defines a homepage feature for a Benchling App, providing a dedicated landing page within

        the Benchling application for the app''s functionality.'
      properties:
        __typename:
          type: string
        featureId:
          type: string
        name:
          type: string
      type: object
    Principal:
      anyOf:
      - $ref: '#/components/schemas/AppInstallation'
      - $ref: '#/components/schemas/LegacyAppInstallation'
      - $ref: '#/components/schemas/ServicePrincipal'
      - $ref: '#/components/schemas/User'
      discriminator:
        propertyName: __typename
      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
    AppConfigWorkflowTaskSchemaOutput:
      description: Defines the output field structure for a workflow task schema configuration.
      properties:
        __typename:
          type: string
        fieldDefinitions:
          oneOf:
          - items:
              $ref: '#/components/schemas/AppConfigFieldDefinition'
            type: array
          - type: 'null'
      type: object
    ResourceAppConfigSpec:
      description: 'Specifies that an app configuration field should reference a Benchling object instance.

        The type field identifies the kind of object required, matching the BenchlingAppType

        values used in app manifests (e.g. dna_sequence, folder, registry). Covers all instance

        reference types with no additional spec constraints beyond requiredConfig. For schema

        references use SchemaAppConfigSpec or EntitySchemaAppConfigSpec.'
      properties:
        __typename:
          type: string
        requiredConfig:
          type:
          - 'null'
          - boolean
        type:
          enum:
          - BOX_SCHEMA
          - CONTAINER_SCHEMA
          - ENTRY_SCHEMA
          - LEGACY_REQUEST_SCHEMA
          - LOCATION_SCHEMA
          - PLATE_SCHEMA
          - RESULT_SCHEMA
          - RUN_SCHEMA
          - WORKFLOW_TASK_SCHEMA
          - AA_SEQUENCE
          - ASSAY_RESULT
          - ASSAY_RUN
          - AUTOMATION_INPUT_GENERATOR
          - AUTOMATION_OUTPUT_PROCESSOR
          - BLOB
          - BOX
          - CONTAINER
          - CUSTOM_ENTITY
          - DNA_ALIGNMENT
          - DNA_OLIGO
          - DNA_SEQUENCE
          - DROPDOWN
          - DROPDOWN_OPTION
          - ENTRY
          - FIELD
          - FOLDER
          - LEGACY_REQUEST
          - LOCATION
          - MIXTURE
          - MOLECULE
          - PLATE
          - PROJECT
          - REGISTRY
          - RNA_OLIGO
          - RNA_SEQUENCE
          - WORKFLOW_TASK_STATUS
          - WORKLIST
          - null
          type:
          - 'null'
          - string
      type: object
    RequestV2DefinitionRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    IntegerAppConfigSpec:
      description: Specifies that an app configuration field should accept an integer value.
      properties:
        __typename:
          type: string
        enum:
          description: Optional enum constraint — if present, the value must be one of these integers.
          oneOf:
          - items:
              type: integer
            type: array
          - type: 'null'
        requiredConfig:
          type:
          - 'null'
          - boolean
      type: object
    AppConfigOption:
      description: 'Defines a configuration option in an app''s configuration schema. Each option has a name,

        optional description, and a configSpec defining the expected value type and validation.'
      properties:
        __typename:
          type: string
        configSpec:
          anyOf:
          - $ref: '#/components/schemas/BooleanAppConfigSpec'
          - $ref: '#/components/schemas/IntegerAppConfigSpec'
          - $ref: '#/components/schemas/FloatAppConfigSpec'
          - $ref: '#/components/schemas/TextAppConfigSpec'
          - $ref: '#/components/schemas/SecureTextAppConfigSpec'
          - $ref: '#/components/schemas/DateAppConfigSpec'
          - $ref: '#/components/schemas/DateTimeAppConfigSpec'
          - $ref: '#/components/schemas/JsonAppConfigSpec'
          - $ref: '#/components/schemas/ArrayAppConfigSpec'
          - $ref: '#/components/schemas/DropdownAppConfigSpec'
          - $ref: '#/components/schemas/EntitySchemaAppConfigSpec'
          - $ref: '#/components/schemas/WorkflowTaskSchemaAppConfigSpec'
          - $ref: '#/components/schemas/SchemaAppConfigSpec'
          - $ref: '#/components/schemas/ResourceAppConfigSpec'
          description: Union of BooleanAppConfigSpec, IntegerAppConfigSpec, FloatAppConfigSpec, TextAppConfigSpec, SecureTextAppConfigSpec, DateAppConfigSpec, DateTimeAppConfigSpec, JsonAppConfigSpec, ArrayAppConfigSpec, DropdownAppConfigSpec, EntitySchemaAppConfigSpec, WorkflowTaskSchemaAppConfigSpec, SchemaAppConfigSpec, ResourceAppConfigSpec
          discriminator:
            propertyName: __typename
        description:
          type:
          - 'null'
          - string
        name:
          type: string
      type: object
    BooleanAppConfigSpec:
      description: Specifies that an app configuration field should accept a boolean value.
      properties:
        __typename:
          type: string
        requiredConfig:
          type:
          - 'null'
          - boolean
      type: object
    PrincipalRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    TextAppConfigSpec:
      description: Specifies that an app configuration field should accept a text string.
      properties:
        __typename:
          type: string
        enum:
          description: Optional enum constraint — if present, the value must be one of these strings.
          oneOf:
          - items:
              type: string
            type: array
          - type: 'null'
        requiredConfig:
          type:
          - 'null'
          - boolean
      type: object
    FolderRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    FloatAppConfigSpec:
      description: Specifies that an app configuration field should accept a floating-point number.
      properties:
        __typename:
          type: string
        enum:
          description: Optional enum constraint — if present, the value must be one of these floats.
          oneOf:
          - items:
              type: number
            type: array
          - type: 'null'
        requiredConfig:
          type:
          - 'null'
          - boolean
      type: object
    AssayRunFeatureValue:
      description: 'Links an app''s assay run feature to a specific resource (typically a run schema) on a

        tenant. The featureId identifies the feature from the app definition, and resourceId

        references the tenant-specific resource it''s bound to.'
      properties:
        __typename:
          type: string
        featureId:
          description: Developer-specified feature ID as defined in the app manifest / app definition version
          type: string
        resourceId:
          type:
          - 'null'
          - string
      type: object
    WorkflowTaskGroupRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    AppConfigDropdownOption:
      description: Defines an option within a dropdown-type app configuration field.
      properties:
        __typename:
          type: string
        description:
          type:
          - 'null'
          - string
        name:
          type: string
        requiredConfig:
          type:
          - 'null'
          - boolean
      type: object
    WorkflowTaskSchemaAppConfigSpec:
      description: 'Specifies that an app configuration field should reference a workflow task schema.

        Kept separate from SchemaAppConfigSpec because it supports output field definitions.'
      properties:
        __typename:
          type: string
        fieldDefinitions:
          oneOf:
          - items:
              $ref: '#/components/schemas/AppConfigFieldDefinition'
            type: array
          - type: 'null'
        output:
          description: Output field definitions for the workflow task schema.
          oneOf:
          - $ref: '#/components/schemas/AppConfigWorkflowTaskSchemaOutput'
          - type: 'null'
        requiredConfig:
          type:
          - 'null'
          - boolean
      type: object
    ArrayAppConfigOption:
      description: 'A config option nested within an array-type app configuration field. Structurally

        identical to AppConfigOption — it has a name and a configSpec — but its configSpec

        accepts the same config types as the top level except nested arrays (see

        ArrayAppConfigElementSpec).'
      properties:
        __typename:
          type: string
        configSpec:
          anyOf:
          - $ref: '#/components/schemas/BooleanAppConfigSpec'
          - $ref: '#/components/schemas/IntegerAppConfigSpec'
          - $ref: '#/components/schemas/FloatAppConfigSpec'
          - $ref: '#/components/schemas/TextAppConfigSpec'
          - $ref: '#/components/schemas/SecureTextAppConfigSpec'
          - $ref: '#/components/schemas/DateAppConfigSpec'
          - $ref: '#/components/schemas/DateTimeAppConfigSpec'
          - $ref: '#/components/schemas/JsonAppConfigSpec'
          - $ref: '#/components/schemas/DropdownAppConfigSpec'
          - $ref: '#/components/schemas/EntitySchemaAppConfigSpec'
          - $ref: '#/components/schemas/WorkflowTaskSchemaAppConfigSpec'
          - $ref: '#/components/schemas/SchemaAppConfigSpec'
          - $ref: '#/components/schemas/ResourceAppConfigSpec'
          description: Union of BooleanAppConfigSpec, IntegerAppConfigSpec, FloatAppConfigSpec, TextAppConfigSpec, SecureTextAppConfigSpec, DateAppConfigSpec, DateTimeAppConfigSpec, JsonAppConfigSpec, DropdownAppConfigSpec, EntitySchemaAppConfigSpec, WorkflowTaskSchemaAppConfigSpec, SchemaAppConfigSpec, ResourceAppConfigSpec
          discriminator:
            propertyName: __typename
        description:
          type:
          - 'null'
          - string
        name:
          type: string
      type: object
    EntitySchemaAppConfigSpec:
      description: 'Specifies that an app configuration field should reference an entity schema.

        Kept separate from SchemaAppConfigSpec because it carries a subtype constraint.'
      properties:
        __typename:
          type: string
        fieldDefinitions:
          oneOf:
          - items:
              $ref: '#/components/schemas/AppConfigFieldDefinition'
            type: array
          - type: 'null'
        requiredConfig:
          type:
          - 'null'
          - boolean
        subtype:
          description: 'Optional subtype constraint — if present, the referenced schema must be of this

            entity type (e.g. DNA_SEQUENCE, AA_SEQUENCE).'
          enum:
          - AA_SEQUENCE
          - CUSTOM_ENTITY
          - DNA_OLIGO
          - DNA_SEQUENCE
          - MIXTURE
          - MOLECULE
          - RNA_OLIGO
          - RNA_SEQUENCE
          - null
          type:
          - 'null'
          - string
      type: object
    AppConfigFieldDefinition:
      description: 'Defines a field within an app configuration that references schema fields. Specifies the

        field name, type, whether it accepts multiple values, and whether

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