Benchling Inventory API

Locations, boxes, containers, and plates for physical samples.

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-lims-inventory-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

benchling-lims-inventory-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Benchling AA Sequences Inventory 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: Inventory
  description: Locations, boxes, containers, and plates for physical samples.
paths:
  /locations:
    get:
      operationId: listLocations
      tags:
      - Inventory
      summary: List locations
      responses:
        '200':
          description: A list of locations.
    post:
      operationId: createLocation
      tags:
      - Inventory
      summary: Create a location
      responses:
        '201':
          description: The created location.
  /boxes:
    get:
      operationId: listBoxes
      tags:
      - Inventory
      summary: List boxes
      responses:
        '200':
          description: A list of boxes.
    post:
      operationId: createBox
      tags:
      - Inventory
      summary: Create a box
      responses:
        '201':
          description: The created box.
  /boxes/{box_id}/contents:
    get:
      operationId: listBoxContents
      tags:
      - Inventory
      summary: List the contents of a box
      parameters:
      - name: box_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The contents of the box.
  /containers:
    get:
      operationId: listContainers
      tags:
      - Inventory
      summary: List containers
      responses:
        '200':
          description: A list of containers.
    post:
      operationId: createContainer
      tags:
      - Inventory
      summary: Create a container
      responses:
        '201':
          description: The created container.
  /containers/{destination_container_id}:transfer:
    post:
      operationId: transferIntoContainer
      tags:
      - Inventory
      summary: Transfer contents into a destination container
      parameters:
      - name: destination_container_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The transfer was recorded.
  /containers:check-out:
    post:
      operationId: checkOutContainers
      tags:
      - Inventory
      summary: Check out containers
      responses:
        '200':
          description: Containers were checked out.
  /plates:
    get:
      operationId: listPlates
      tags:
      - Inventory
      summary: List plates
      responses:
        '200':
          description: A list of plates.
    post:
      operationId: createPlate
      tags:
      - Inventory
      summary: Create a plate
      responses:
        '201':
          description: The created plate.
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: {}