Benchling Registry API

Register/unregister entities and browse registry schemas and dropdowns.

OpenAPI Specification

benchling-lims-registry-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Benchling AA Sequences Registry 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: Registry
  description: Register/unregister entities and browse registry schemas and dropdowns.
paths:
  /registries:
    get:
      operationId: listRegistries
      tags:
      - Registry
      summary: List registries
      responses:
        '200':
          description: A list of registries.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /registries/{registry_id}:
    get:
      operationId: getRegistry
      tags:
      - Registry
      summary: Get a registry
      parameters:
      - $ref: '#/components/parameters/RegistryId'
      responses:
        '200':
          description: A registry.
        '404':
          $ref: '#/components/responses/NotFound'
  /registries/{registry_id}/entity-schemas:
    get:
      operationId: listEntitySchemasForRegistry
      tags:
      - Registry
      summary: List entity schemas for a registry
      parameters:
      - $ref: '#/components/parameters/RegistryId'
      responses:
        '200':
          description: A list of entity schemas.
  /registries/{registry_id}:bulk-register-entities:
    post:
      operationId: bulkRegisterEntities
      tags:
      - Registry
      summary: Bulk-register entities into a registry
      parameters:
      - $ref: '#/components/parameters/RegistryId'
      responses:
        '202':
          description: A registration task was started.
  /registries/{registry_id}:unregister-entities:
    post:
      operationId: unregisterEntities
      tags:
      - Registry
      summary: Unregister entities from a registry
      parameters:
      - $ref: '#/components/parameters/RegistryId'
      responses:
        '200':
          description: Entities were unregistered.
components:
  responses:
    NotFound:
      description: The requested resource was not found.
    Unauthorized:
      description: Authentication credentials were missing or invalid.
    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.
  parameters:
    RegistryId:
      name: registry_id
      in: path
      required: true
      schema:
        type: string
      description: The API identifier of the registry.
  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: {}