Benchling Apps API

Benchling Apps, app config, canvases, and sessions.

OpenAPI Specification

benchling-lims-apps-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Benchling AA Sequences Apps API
  description: 'Curated OpenAPI for the Benchling life-sciences R&D cloud (LIMS + ELN + registry + inventory + workflows). Benchling exposes a tenant-scoped REST API at https://{tenant}.benchling.com/api/v2 covering the same objects scientists work with in the UI: DNA/RNA/protein sequences, custom entities and the registry, sample inventory, notebook entries, assay results and runs, lab automation, workflow tasks, requests, plus an events stream and Benchling Apps/webhooks.


    Every path and method in this document is grounded in Benchling''s own published OpenAPI specification (benchling.com/api/v2/openapi.yaml). This is a curated, representative subset of the full ~325-path Benchling spec - the core CRUD, bulk, and action endpoints per resource - not the exhaustive spec. For the authoritative, complete, always-current definition, fetch Benchling''s published spec.


    Authentication: personal user API keys use HTTP Basic (Authorization: Basic {api_key}); Benchling Apps use OAuth2 client credentials (POST /api/v2/token -> Bearer {access_token}). OIDC is available to act as a specific user with their permissions. Note the {tenant} placeholder in the server URL must be replaced with your Benchling tenant subdomain.'
  version: 2.0.0
  contact:
    name: Benchling Developer Platform
    url: https://docs.benchling.com/docs/developer-platform-overview
  termsOfService: https://www.benchling.com/terms
servers:
- url: https://{tenant}.benchling.com/api/v2
  description: Tenant-scoped Benchling API. Replace {tenant} with your subdomain.
  variables:
    tenant:
      default: your-tenant
      description: Your Benchling tenant subdomain (e.g. acme for acme.benchling.com).
security:
- basicAuth: []
- appBearerAuth: []
tags:
- name: Apps
  description: Benchling Apps, app config, canvases, and sessions.
paths:
  /apps:
    get:
      operationId: listApps
      tags:
      - Apps
      summary: List Benchling Apps
      responses:
        '200':
          description: A list of apps.
    post:
      operationId: createApp
      tags:
      - Apps
      summary: Create a Benchling App
      responses:
        '201':
          description: The created app.
  /apps/{app_id}:
    get:
      operationId: getApp
      tags:
      - Apps
      summary: Get a Benchling App
      parameters:
      - name: app_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: An app.
  /app-configuration-items:
    get:
      operationId: listAppConfigurationItems
      tags:
      - Apps
      summary: List app configuration items
      responses:
        '200':
          description: A list of app configuration items.
  /app-canvases:
    post:
      operationId: createAppCanvas
      tags:
      - Apps
      summary: Create an app canvas
      responses:
        '201':
          description: The created app canvas.
  /app-sessions:
    post:
      operationId: createAppSession
      tags:
      - Apps
      summary: Create an app session
      responses:
        '201':
          description: The created app session.
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: 'Personal user API key sent as HTTP Basic auth (Authorization: Basic {api_key}). Generate a key on your Benchling user settings page.'
    appBearerAuth:
      type: oauth2
      description: Benchling Apps authenticate with OAuth2 client credentials. Exchange client_id/client_secret at POST /api/v2/token for a Bearer access_token.
      flows:
        clientCredentials:
          tokenUrl: https://{tenant}.benchling.com/api/v2/token
          scopes: {}