Benchling Apps API

Create and manage Benchling apps on your tenant

Operations 20

POST /app-canvases Create an App Canvas #
GET /app-canvases/{canvas_id} Get App Canvas #
PATCH /app-canvases/{canvas_id} Update App Canvas #
POST /app-canvases:archive Archive app canvases #
POST /app-canvases:unarchive Unarchive app canvases #
GET /app-configuration-items Get app configuration items #
POST /app-configuration-items Create app configuration item #
GET /app-configuration-items/{item_id} Get app configuration item #
PATCH /app-configuration-items/{item_id} Update app configuration item #
POST /app-configuration-items:bulk-create Bulk Create app configuration items. Limit of 1000 App Config Items per request. #
POST /app-configuration-items:bulk-update Bulk Update app configuration items. Limit of 1000 App Config Items per request. #
POST /app-sessions Create a new app session #
GET /app-sessions/{id} Get an app session #
PATCH /app-sessions/{id} Update app session #
GET /apps List apps #
POST /apps Create an app #
GET /apps/{app_id} Get an app by ID #
PATCH /apps/{app_id} Update an app #
POST /apps:archive Archive apps #
POST /apps:unarchive Unarchive apps #

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-apps-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-apps-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 AA Sequences Apps API
  version: 2.0.0
  description: 'AA Sequences are the working units of cells that make everything run (they help make structures, catalyze reactions and allow for signaling - a kind of internal cell communication). On Benchling, these are comprised of a string of amino acids and collections of other attributes, such as annotations.

    '
servers:
- url: /api/v2
security:
- oAuth: []
- basicApiKeyAuth: []
tags:
- description: Create and manage Benchling apps on your tenant
  name: Apps
paths:
  /app-canvases:
    post:
      description: 'Create an App Canvas that a Benchling App can write to and read user interaction from.

        '
      operationId: createAppCanvas
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppCanvasCreate'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppCanvas'
          description: Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: Forbidden
      summary: Create an App Canvas
      tags:
      - Apps
  /app-canvases/{canvas_id}:
    get:
      description: Get the current state of the App Canvas, including user input elements.
      operationId: getAppCanvas
      parameters:
      - example: cnvs_Q4mPJ34a
        in: path
        name: canvas_id
        required: true
        schema:
          type: string
      - description: Comma-separated list of fields to return. Modifies the output shape. To return all keys at a given level, enumerate them or use the wildcard, '*'. For more information, [click here](https://docs.benchling.com/docs/getting-started-1#returning-query-parameter).
        in: query
        name: returning
        schema:
          example: id,modifiedAt
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppCanvas'
          description: OK
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
      summary: Get App Canvas
      tags:
      - Apps
    patch:
      description: Update App Canvas
      operationId: updateAppCanvas
      parameters:
      - example: cnvs_Q4mPJ34a
        in: path
        name: canvas_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppCanvasUpdate'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppCanvas'
          description: OK
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
      summary: Update App Canvas
      tags:
      - Apps
  /app-canvases:archive:
    post:
      description: Archive app canvases
      operationId: archiveAppCanvases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppCanvasesArchive'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppCanvasesArchivalChange'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
      summary: Archive app canvases
      tags:
      - Apps
  /app-canvases:unarchive:
    post:
      description: Unarchive app canvases
      operationId: unarchiveAppCanvases
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppCanvasesUnarchive'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppCanvasesArchivalChange'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
      summary: Unarchive app canvases
      tags:
      - Apps
  /app-configuration-items:
    get:
      description: Get app configuration items
      operationId: listAppConfigurationItems
      parameters:
      - description: Token for pagination
        in: query
        name: nextToken
        schema:
          type: string
      - description: Number of results to return. Defaults to 50, maximum of 100.
        in: query
        name: pageSize
        schema:
          default: 50
          maximum: 100
          minimum: 0
          type: integer
      - description: 'Datetime, in RFC 3339 format. Supports the > and < operators. Time zone defaults to UTC. Restricts results to those modified in the specified range. e.g. > 2017-04-30. Date ranges can be specified with the following nomenclature > YYYY-MM-DD AND <YYYY-MM-DD.

          '
        examples:
          and-range:
            summary: Filter for all models modified within a certain range using the AND operator.
            value: '> 2022-03-01 AND < 2022-04-01'
          full-rfc-3339-format:
            summary: Filter for modified models using the full RFC 3339 format
            value: '> 2020-12-31T21:07:14-05:00'
          greater-than-example:
            summary: Filter for all models modified after a certain date
            value: '> 2022-03-01'
        in: query
        name: modifiedAt
        schema:
          type: string
      - description: App id to which the configuration belongs.
        example: app_e59sjL23Pqn30xHg
        in: query
        name: appId
        schema:
          type: string
      - description: 'Comma-separated list of ids. Matches all of the provided IDs, or returns a 400 error that includes a list of which IDs are invalid.

          '
        in: query
        name: ids
        schema:
          example: aci_VfVOART1,aci_RFhDGaaC
          type: string
      - in: query
        name: sort
        schema:
          default: modifiedAt:desc
          description: 'Method by which to order search results. Valid sorts are modifiedAt (modified time, most recent first) and createdAt (created time, most recent first). Optionally add :asc or :desc to specify ascending or descending order.

            '
          enum:
          - createdAt
          - createdAt:asc
          - createdAt:desc
          - modifiedAt
          - modifiedAt:asc
          - modifiedAt:desc
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppConfigurationPaginatedList'
          description: OK
          headers:
            Result-Count:
              description: The total number of items that match the given query
              schema:
                type: integer
            x-rate-limit-limit:
              description: The number of allowed requests in the current rate-limit period
              schema:
                type: integer
            x-rate-limit-remaining:
              description: The number of requests remaining in the current rate-limit period
              schema:
                type: integer
            x-rate-limit-reset:
              description: The number of seconds remaining in the current rate-limit period
              schema:
                type: integer
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
      summary: Get app configuration items
      tags:
      - Apps
    post:
      description: Create app configuration item
      operationId: createAppConfigurationItem
      requestBody:
        content:
          application/json:
            example: "{\n  \"appId\": \"app_J39na03L1nsLS34o\",\n  \"path\": [\n    \"My Schema 1\",\n    \"My Field 1\"\n  ],\n  \"type\": \"field\",\n  \"value\": \"tsf_HXUnClU9\"\n}\n"
            schema:
              $ref: '#/components/schemas/AppConfigItemCreate'
      responses:
        '201':
          content:
            application/json:
              example: "{\n  \"apiURL\": \"string\",\n  \"app\": {\n    \"id\": \"string\"\n  },\n  \"createdAt\": \"2024-03-14T21:52:32.929Z\",\n  \"id\": \"string\",\n  \"type\": \"field\",\n  \"modifiedAt\": \"2024-03-14T21:52:32.929Z\",\n  \"path\": [\n    \"My Schema 1\",\n    \"My Field 1\"\n  ],\n  \"value\": \"tsf_HXUnClU9\"\n}\n"
              schema:
                $ref: '#/components/schemas/AppConfigItem'
          description: Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
      summary: Create app configuration item
      tags:
      - Apps
  /app-configuration-items/{item_id}:
    get:
      description: Get app configuration item
      operationId: getAppConfigurationItemById
      parameters:
      - example: aci_e59sjL23Pqn30xHg
        in: path
        name: item_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              example: "{\n  \"apiURL\": \"string\",\n  \"app\": {\n    \"id\": \"string\"\n  },\n  \"createdAt\": \"2024-03-14T21:54:20.435Z\",\n  \"id\": \"string\",\n  \"type\": \"field\",\n  \"modifiedAt\": \"2024-03-14T21:54:20.435Z\",\n  \"path\": [\n    \"My Schema 1\",\n    \"My Field 1\"\n  ]\n}\n"
              schema:
                $ref: '#/components/schemas/AppConfigItem'
          description: OK
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
      summary: Get app configuration item
      tags:
      - Apps
    patch:
      description: Update app configuration item
      operationId: updateAppConfigurationItem
      parameters:
      - example: aci_e59sjL23Pqn30xHg
        in: path
        name: item_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            example: "{\n  \"apiURL\": \"string\",\n  \"app\": {\n    \"id\": \"string\"\n  },\n  \"createdAt\": \"2024-03-14T21:59:01.233Z\",\n  \"id\": \"string\",\n  \"type\": \"field\",\n  \"modifiedAt\": \"2024-03-14T21:59:01.233Z\",\n  \"path\": [\n    \"My Schema 1\",\n    \"My Field 1\"\n  ]\n}\n"
            schema:
              $ref: '#/components/schemas/AppConfigItemUpdate'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppConfigItem'
          description: OK
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
      summary: Update app configuration item
      tags:
      - Apps
  /app-configuration-items:bulk-create:
    post:
      description: Bulk Create app configuration items
      operationId: bulkCreateAppConfigurationItems
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppConfigItemsBulkCreateRequest'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncTaskLink'
          description: Accepted
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
      summary: Bulk Create app configuration items. Limit of 1000 App Config Items per request.
      tags:
      - Apps
  /app-configuration-items:bulk-update:
    post:
      description: Bulk Update app configuration items
      operationId: bulkUpdateAppConfigurationItems
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppConfigItemsBulkUpdateRequest'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncTaskLink'
          description: Accepted
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
      summary: Bulk Update app configuration items. Limit of 1000 App Config Items per request.
      tags:
      - Apps
  /app-sessions:
    post:
      description: 'Create a new app session. Sessions cannot be archived once created.

        '
      operationId: createAppSession
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppSessionCreate'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppSession'
          description: Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: Forbidden
      summary: Create a new app session
      tags:
      - Apps
  /app-sessions/{id}:
    get:
      description: Get an app session
      operationId: getAppSessionById
      parameters:
      - example: sesn_J2PGE0Z516Y
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: Comma-separated list of fields to return. Modifies the output shape. To return all keys at a given level, enumerate them or use the wildcard, '*'. For more information, [click here](https://docs.benchling.com/docs/getting-started-1#returning-query-parameter).
        in: query
        name: returning
        schema:
          example: id,modifiedAt
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppSession'
          description: OK
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
      summary: Get an app session
      tags:
      - Apps
    patch:
      description: Update app session
      operationId: updateAppSession
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppSessionUpdate'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppSession'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
      summary: Update app session
      tags:
      - Apps
  /apps:
    get:
      description: List apps
      operationId: listBenchlingApps
      parameters:
      - description: Number of results to return.
        in: query
        name: pageSize
        schema:
          default: 50
          maximum: 100
          type: integer
      - description: Token for pagination
        in: query
        name: nextToken
        schema:
          type: string
      - description: 'Method by which to order search results. Valid sorts are name, modifiedAt, and createdAt. Optionally add :asc or :desc to specify ascending or descending order. Default is modifiedAt.

          '
        in: query
        name: sort
        schema:
          default: modifiedAt
          enum:
          - createdAt
          - createdAt:asc
          - createdAt:desc
          - modifiedAt
          - name
          - modifiedAt:asc
          - name:asc
          - modifiedAt:desc
          - name:desc
          type: string
      - description: 'Comma-separated list of ids. Matches all of the provided IDs, or returns a 400 error that includes a list of which IDs are invalid.

          '
        in: query
        name: ids
        schema:
          example: app_J39na03L1nsLS34o,app_ae92kBv9aNSl593z,app_e59sjL23Pqn30xHg
          type: string
      - description: 'Datetime, in RFC 3339 format. Supports the > and < operators. Time zone defaults to UTC. Restricts results to those modified in the specified range. e.g. > 2017-04-30. Date ranges can be specified with the following nomenclature > YYYY-MM-DD AND <YYYY-MM-DD.

          '
        examples:
          and-range:
            summary: Filter for all models modified within a certain range using the AND operator.
            value: '> 2022-03-01 AND < 2022-04-01'
          full-rfc-3339-format:
            summary: Filter for modified models using the full RFC 3339 format
            value: '> 2020-12-31T21:07:14-05:00'
          greater-than-example:
            summary: Filter for all models modified after a certain date
            value: '> 2022-03-01'
        in: query
        name: modifiedAt
        schema:
          type: string
      - description: Name of an app. Restricts results to those with the specified name.
        in: query
        name: name
        schema:
          type: string
      - description: Name substring of an app. Restricts results to those with names that include the provided substring.
        in: query
        name: nameIncludes
        schema:
          type: string
      - description: 'Comma-separated list of app names. Maximum of 100. Restricts results to those that match any of the specified names, case insensitive.  Warning - this filter can be non-performant due to case insensitivity.

          '
        in: query
        name: names.anyOf
        schema:
          example: MyName1, MyName2
          type: string
      - description: 'Comma-separated list of app names. Maximum of 100. Restricts results to those that match any of the specified names, case sensitive.

          '
        in: query
        name: names.anyOf.caseSensitive
        schema:
          example: MyName1,MyName2
          type: string
      - description: Comma separated list of users IDs
        in: query
        name: creatorIds
        schema:
          example: ent_a0SApq3z
          type: string
      - description: Comma-separated list of organization and/or team API IDs. Restricts results to apps that are members of all given groups.
        in: query
        name: memberOf
        schema:
          type: string
      - description: Comma-separated list of organization and/or team API IDs. Restricts results to apps that are admins of all given groups.
        in: query
        name: adminOf
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BenchlingAppsPaginatedList'
          description: OK
          headers:
            Result-Count:
              description: The total number of items that match the given query
              schema:
                type: integer
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: Forbidden
      summary: List apps
      tags:
      - Apps
    post:
      deprecated: true
      description: Create an app
      operationId: createBenchlingApp
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BenchlingAppCreate'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BenchlingApp'
          description: Created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: Forbidden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictError'
          description: Conflict
      summary: Create an app
      tags:
      - Apps
  /apps/{app_id}:
    get:
      description: Get an app by ID
      operationId: getBenchlingAppByID
      parameters:
      - example: app_J39na03L1nsLS34o
        in: path
        name: app_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BenchlingApp'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
      summary: Get an app by ID
      tags:
      - Apps
    patch:
      deprecated: true
      description: Update an app
      operationId: patchBenchlingApp
      parameters:
      - example: app_e59sjL23Pqn30xHg
        in: path
        name: app_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BenchlingAppUpdate'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BenchlingApp'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
          description: Not Found
      summary: Update an app
      tags:
      - Apps
  /apps:archive:
    post:
      deprecated: true
      description: Archive apps
      operationId: archiveBenchlingApps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BenchlingAppsArchive'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BenchlingAppsArchivalChange'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
      summary: Archive apps
      tags:
      - Apps
  /apps:unarchive:
    post:
      deprecated: true
      description: Unarchive apps
      operationId: unarchiveBenchlingApps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BenchlingAppsUnarchive'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BenchlingAppsArchivalChange'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
          description: Bad Request
      summary: Unarchive apps
      tags:
      - Apps
components:
  schemas:
    AppConfigItemsBulkCreateRequest:
      properties:
        appConfigurationItems:
          items:
            $ref: '#/components/schemas/AppConfigItemCreate'
          maxItems: 1000
          type: array
      required:
      - appConfigurationItems
      type: object
    BenchlingApp:
      additionalProperties: false
      allOf:
      - $ref: '#/components/schemas/BenchlingAppUpdate'
      - additionalProperties: false
        properties:
          apiURL:
            example: https://benchling.com/api/v2/apps/app_e59sjL23Pqn30xHg
            format: uri
            readOnly: true
            type: string
          archiveRecord:
            allOf:
            - $ref: '#/components/schemas/ArchiveRecord'
            readOnly: true
          createdAt:
            description: DateTime at which the the app was created
            format: date-time
            readOnly: true
            type: string
          creator:
            allOf:
            - $ref: '#/components/schemas/UserSummary'
            readOnly: true
          id:
            example: app_e59sjL23Pqn30xHg
            readOnly: true
            type: string
          modifiedAt:
            description: DateTime at which the the app was last modified
            format: date-time
            readOnly: true
            type: string
          webURL:
            example: https://benchling.com/developer/apps/app_e59sjL23Pqn30xHg
            format: uri
            readOnly: true
            type: string
        type: object
    FieldAppConfigItem:
      allOf:
      - $ref: '#/components/schemas/BaseAppConfigItem'
      - $ref: '#/components/schemas/LinkedAppConfigResourceMixin'
      - properties:
          type:
            enum:
            - field
            example: field
            type: string
          value:
            example: tsf_e59a3b23
            type:
            - string
            - 'null'
    MarkdownUiBlock:
      additionalProperties: false
      properties:
        id:
          example: user_generated_id
          type: string
        type:
          enum:
          - MARKDOWN
          type: string
        value:
          example: '# This is a markdown block

            1. with **bold text**.'
          type: string
      required:
      - type
      - value
      type: object
    AppConfigItemCreate:
      discriminator:
        mapping:
          aa_sequence: '#/components/schemas/AppConfigItemGenericCreate'
          boolean: '#/components/schemas/AppConfigItemBooleanCreate'
          box: '#/components/schemas/AppConfigItemGenericCreate'
          box_schema: '#/components/schemas/AppConfigItemGenericCreate'
          container: '#/components/schemas/AppConfigItemGenericCreate'
          container_schema: '#/components/schemas/AppConfigItemGenericCreate'
          custom_entity: '#/components/schemas/AppConfigItemGenericCreate'
          date: '#/components/schemas/AppConfigItemDateCreate'
          datetime: '#/components/schemas/AppConfigItemDatetimeCreate'
          dna_oligo: '#/components/schemas/AppConfigItemGenericCreate'
          dna_sequence: '#/components/schemas/AppConfigItemGenericCreate'
          dropdown: '#/components/schemas/AppConfigItemGenericCreate'
          dropdown_option: '#/components/schemas/AppConfigItemGenericCreate'
          entity_schema: '#/components/schemas/AppConfigItemGenericCreate'
          entry: '#/components/schemas/AppConfigItemGenericCreate'
          entry_schema: '#/components/schemas/AppConfigItemGenericCreate'
          field: '#/components/schemas/AppConfigItemGenericCreate'
          float: '#/components/schemas/AppConfigItemFloatCreate'
          folder: '#/components/schemas/AppConfigItemGenericCreate'
          integer: '#/components/schemas/AppConfigItemIntegerCreate'
          json: '#/components/schemas/AppConfigItemJsonCreate'
          legacy_request_schema: '#/components/schemas/AppConfigItemGenericCreate'
          location: '#/components/schemas/AppConfigItemGenericCreate'
          location_schema: '#/components/schemas/AppConfigItemGenericCreate'
          mixture: '#/components/schemas/AppConfigItemGenericCreate'
          molecule: '#/components/schemas/AppConfigItemGenericCreate'
          plate: '#/components/schemas/AppConfigItemGenericCreate'
          plate_schema: '#/components/schemas/AppConfigItemGenericCreate'
          project: '#/components/schemas/AppConfigItemGenericCreate'
          registry: '#/components/schemas/AppConfigItemGenericCreate'
          result_schema: '#/components/schemas/AppConfigItemGenericCreate'
          rna_oligo: '#/components/schemas/AppConfigItemGenericCreate'
          rna_sequence: '#/components/schemas/AppConfigItemGenericCreate'
          run_schema: '#/components/schemas/AppConfigItemGenericCreate'
          secure_text: '#/components/schemas/AppConfigItemGenericCreate'
          text: '#/components/schemas/AppConfigItemGenericCreate'
          workflow_task_schema: '#/components/schemas/AppConfigItemGenericCreate'
          workflow_task_status: '#/components/schemas/AppConfigItemGenericCreate'
          worklist: '#/components/schemas/AppConfigItemGenericCreate'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/AppConfigItemGenericCreate'
      - $ref: '#/components/schemas/AppConfigItemBooleanCreate'
      - $ref: '#/components/schemas/AppConfigItemIntegerCreate'
      - $ref: '#/components/schemas/AppConfigItemFloatCreate'
      - $ref: '#/components/schemas/AppConfigItemDateCreate'
      - $ref: '#/components/schemas/AppConfigItemDatetimeCreate'
      - $ref: '#/components/schemas/AppConfigItemJsonCreate'
      type: object
    LinkedAppConfigResourceSummary:
      additionalProperties: false
      properties:
        id:
          description: The API ID of the linked resource
          example: tsf_e59a3b23
          type: string
        name:
          description: The name of the resource in Benchling
          example: Parent Sample
          type: string
      type: object
    AppSessionUpdate:
      additionalProperties: false
      description: Update a session's messages or increase timeoutSeconds.
      properties:
        messages:
          description: 'An array of `SessionMessage` describing the current session state.

            '
          items:
            $ref: '#/components/schemas/AppSessionMessageCreate'
          maxItems: 10
          type: array
        status:
          $ref: '#/components/schemas/AppSessionUpdateStatus'
  

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