Benchling Events API

Tenant event stream (also delivered via EventBridge and webhooks).

OpenAPI Specification

benchling-lims-events-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Benchling AA Sequences Events 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: Events
  description: Tenant event stream (also delivered via EventBridge and webhooks).
paths:
  /events:
    get:
      operationId: listEvents
      tags:
      - Events
      summary: List tenant events
      description: Returns a paginated, time-ordered stream of tenant events (entity, entry, result, workflow, and other created/updated events). The same events are delivered push-style via AWS EventBridge and Benchling App webhooks.
      parameters:
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/NextToken'
      - name: event_types
        in: query
        required: false
        schema:
          type: string
        description: Comma-separated list of event types to filter.
      - name: since
        in: query
        required: false
        schema:
          type: string
        description: Return events created after this ISO 8601 timestamp.
      responses:
        '200':
          description: A list of events.
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  parameters:
    NextToken:
      name: nextToken
      in: query
      required: false
      schema:
        type: string
      description: Pagination token from a previous response.
    PageSize:
      name: pageSize
      in: query
      required: false
      schema:
        type: integer
        default: 50
        maximum: 100
      description: Number of results per page.
  responses:
    TooManyRequests:
      description: Rate limit exceeded. Benchling returns 429 with x-rate-limit-limit, x-rate-limit-remaining, and x-rate-limit-reset headers. Back off with exponential backoff and jitter; requests are not auto-retried.
  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: {}