Benchling Workflows API

Workflow task groups, tasks, and outputs.

OpenAPI Specification

benchling-lims-workflows-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Benchling AA Sequences Workflows 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: Workflows
  description: Workflow task groups, tasks, and outputs.
paths:
  /workflow-task-groups:
    get:
      operationId: listWorkflowTaskGroups
      tags:
      - Workflows
      summary: List workflow task groups
      responses:
        '200':
          description: A list of workflow task groups.
    post:
      operationId: createWorkflowTaskGroup
      tags:
      - Workflows
      summary: Create a workflow task group
      responses:
        '201':
          description: The created workflow task group.
  /workflow-tasks:
    get:
      operationId: listWorkflowTasks
      tags:
      - Workflows
      summary: List workflow tasks
      responses:
        '200':
          description: A list of workflow tasks.
    post:
      operationId: createWorkflowTask
      tags:
      - Workflows
      summary: Create a workflow task
      responses:
        '201':
          description: The created workflow task.
  /workflow-tasks/{workflow_task_id}:
    get:
      operationId: getWorkflowTask
      tags:
      - Workflows
      summary: Get a workflow task
      parameters:
      - name: workflow_task_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A workflow task.
    patch:
      operationId: updateWorkflowTask
      tags:
      - Workflows
      summary: Update a workflow task
      parameters:
      - name: workflow_task_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The updated workflow task.
  /workflow-outputs:
    get:
      operationId: listWorkflowOutputs
      tags:
      - Workflows
      summary: List workflow outputs
      responses:
        '200':
          description: A list of workflow outputs.
    post:
      operationId: createWorkflowOutput
      tags:
      - Workflows
      summary: Create a workflow output
      responses:
        '201':
          description: The created workflow output.
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: {}