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-worklist-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 form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
title: Benchling Worklist API
version: 2.0.0
description: 'A typed collection of items used to group related objects for batch operations. Unlike
folders, items can belong to multiple worklists simultaneously, making worklists useful
as temporary holding grounds for arbitrary groups of items. Each worklist has an `itemType`
that restricts what kinds of objects it can contain (containers, entities, or plates).
Common use cases include scanning containers into a worklist before adding them to a
transfer table, or grouping entities for bulk export. Worklists have an `owner` and support
`collaborations` for access control (see `Collaboratable` interface). The `items` field
returns the collection of `Worklistable` objects currently in the worklist.'
servers:
- url: /api/v3
security:
- oAuth: []
- basicApiKeyAuth: []
tags:
- description: 'A typed collection of items used to group related objects for batch operations. Unlike
folders, items can belong to multiple worklists simultaneously, making worklists useful
as temporary holding grounds for arbitrary groups of items. Each worklist has an `itemType`
that restricts what kinds of objects it can contain (containers, entities, or plates).
Common use cases include scanning containers into a worklist before adding them to a
transfer table, or grouping entities for bulk export. Worklists have an `owner` and support
`collaborations` for access control (see `Collaboratable` interface). The `items` field
returns the collection of `Worklistable` objects currently in the worklist.'
name: Worklist
x-bnch-organization: Benchling
paths:
/worklist:
post:
description: Create Worklist.
operationId: Worklist.Create
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWorklistInput'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/Worklist'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Create Worklist
tags:
- Worklist
x-bnch-rate-limit-tier: 4
/worklist/items:
get:
description: List Worklist items.
operationId: Worklist.List
parameters:
- $ref: '#/components/parameters/createdAt.gt'
- $ref: '#/components/parameters/createdAt.gte'
- $ref: '#/components/parameters/createdAt.lt'
- $ref: '#/components/parameters/createdAt.lte'
- $ref: '#/components/parameters/id.anyOf'
- $ref: '#/components/parameters/modifiedAt.gt'
- $ref: '#/components/parameters/modifiedAt.gte'
- $ref: '#/components/parameters/modifiedAt.lt'
- $ref: '#/components/parameters/modifiedAt.lte'
- $ref: '#/components/parameters/name.anyOf'
- $ref: '#/components/parameters/name.anyOf.caseSensitive'
- $ref: '#/components/parameters/nextToken'
- $ref: '#/components/parameters/omit'
- $ref: '#/components/parameters/pageSize'
- $ref: '#/components/parameters/returning'
- description: 'Method by which to order results. Valid sorts are: createdAt (created time, oldest first) and modifiedAt (modified time, oldest first). Use :asc or :desc to specify ascending or descending order. Default is modifiedAt:desc.'
in: query
name: sort
schema:
default: modifiedAt:desc
enum:
- createdAt:asc
- createdAt:desc
- modifiedAt:asc
- modifiedAt:desc
type: string
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorklistPaginatedList'
description: OK
headers: {}
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: List Worklist items
tags:
- Worklist
x-bnch-rate-limit-tier: 4
/worklist/{worklist_id}:
delete:
description: Delete Worklist.
operationId: Worklist.Delete
parameters:
- description: ID of the Worklist.
in: path
name: worklist_id
required: true
schema:
type: string
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
responses:
'204':
description: No Content
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Delete Worklist
tags:
- Worklist
x-bnch-rate-limit-tier: 4
get:
description: Get a single Worklist by ID.
operationId: Worklist.Get
parameters:
- description: ID of the Worklist.
in: path
name: worklist_id
required: true
schema:
type: string
- $ref: '#/components/parameters/returning'
- $ref: '#/components/parameters/omit'
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Worklist'
description: OK
headers: {}
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Get Worklist by ID
tags:
- Worklist
x-bnch-rate-limit-tier: 5
patch:
description: Update Worklist.
operationId: Worklist.Update
parameters:
- description: ID of the Worklist.
in: path
name: worklist_id
required: true
schema:
type: string
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWorklistInput'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Worklist'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Update Worklist
tags:
- Worklist
x-bnch-rate-limit-tier: 4
/worklist/{worklist_id}/items/items:
get:
description: List Worklistable items.
operationId: Worklist.items.List
parameters:
- description: ID of the Worklist.
in: path
name: worklist_id
required: true
schema:
type: string
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorklistableUnpaginatedList'
description: OK
headers: {}
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: List Worklistable items
tags:
- Worklist
x-bnch-rate-limit-tier: 4
/worklist:batch-create:
post:
description: Batch create Worklist synchronously in one transaction. Maximum 25 items per request.
operationId: Worklist.BatchCreate
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/CreateWorklistInput'
maxItems: 25
minItems: 1
type: array
required:
- items
type: object
responses:
'201':
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/Worklist'
type: array
required:
- items
type: object
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Batch create Worklist
tags:
- Worklist
x-bnch-rate-limit-tier: 3
/worklist:batch-delete:
post:
description: Batch delete Worklist synchronously in one transaction. Maximum 25 items per request.
operationId: Worklist.BatchDelete
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/DeleteWorklistInputWithPathParams'
maxItems: 25
minItems: 1
type: array
required:
- items
type: object
responses:
'200':
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
additionalProperties: false
properties:
id:
type: string
required:
- id
type: object
type: array
required:
- items
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Batch delete Worklist
tags:
- Worklist
x-bnch-rate-limit-tier: 3
/worklist:batch-update:
patch:
description: Batch update Worklist synchronously in one transaction. Maximum 25 items per request.
operationId: Worklist.BatchUpdate
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/UpdateWorklistInputWithPathParams'
maxItems: 25
minItems: 1
type: array
required:
- items
type: object
responses:
'200':
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/Worklist'
type: array
required:
- items
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Batch update Worklist
tags:
- Worklist
x-bnch-rate-limit-tier: 3
/worklist:bulk-create:
post:
description: Bulk create Worklist.
operationId: Worklist.BulkCreate
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkImport'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskLink'
description: Task started
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Bulk create Worklist
tags:
- Worklist
x-bnch-rate-limit-tier: 2
/worklist:bulk-update:
patch:
description: Bulk update Worklist.
operationId: Worklist.BulkUpdate
parameters:
- description: Set to true to access beta operations via /api/v3.
in: header
name: EARLY-ACCESS
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkImport'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncTaskLink'
description: Task started
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Bulk update Worklist
tags:
- Worklist
x-bnch-rate-limit-tier: 2
components:
schemas:
Molecule:
allOf:
- $ref: '#/components/schemas/IMolecule'
- description: 'A Molecule represents a small molecule chemical compound in Benchling that is imported either as a MolFile or
using SMILES (Simplified Molecular Input Line Entry System) notation. Molecules are registry entities that can
be registered, searched, and linked to other items. When present, the `canonicalSmiles` field provides a
standardized SMILES representation for comparison, while originalSmiles preserves the user-provided SMILES and
may be null if SMILES was not provided at creation. Molecules support custom fields via schemas and can be
organized in folders and projects.'
properties:
__typename:
type: string
authors:
oneOf:
- format: uri
type: string
- type: 'null'
creator:
oneOf:
- $ref: '#/components/schemas/PrincipalRef'
- type: 'null'
schemaFields:
oneOf:
- items:
$ref: '#/components/schemas/SchemaFieldValue'
type: array
- type: 'null'
type: object
MatrixPlate:
allOf:
- $ref: '#/components/schemas/IMatrixPlate'
- description: 'A MatrixPlate is a rack-style storage plate where Containers (tubes, vials) can be
inserted into and removed from grid positions. Unlike FixedPlate or WellPlate where
wells are permanently attached, MatrixPlate positions (see MatrixPlatePosition) can
be empty or hold movable containers. This makes MatrixPlates ideal for tube racks,
sample storage boxes with removable tubes, and other flexible storage formats. Each
plate tracks its capacity (totalCapacity, availableCapacity, occupiedCapacity) and
conforms to a MatrixPlateSchema that defines the grid dimensions and optionally
restricts which ContainerSchema types can be stored. MatrixPlates can be stored in
Locations, associated with Studies, and identified by barcode.'
properties:
__typename:
type: string
creator:
$ref: '#/components/schemas/PrincipalRef'
description: The user who created the plate
schemaFields:
oneOf:
- items:
$ref: '#/components/schemas/SchemaFieldValue'
type: array
- type: 'null'
type: object
AaAnnotation:
description: 'Represents an annotated region on an amino acid sequence (AaSequence). Annotations mark
functional domains, binding sites, post-translational modifications, engineered mutations,
or other biologically significant features. Each annotation defines a start and end
position (0-based, exclusive end), a name, optional type classification, display color,
and descriptive notes. Annotations appear as visual overlays on the sequence viewer.'
properties:
__typename:
type: string
aaSequence:
$ref: '#/components/schemas/AaSequenceRef'
description: AA sequence the annotation belongs to.
color:
description: Hex color when displaying the annotation.
type: string
end:
description: 0-based exclusive end index.
type: integer
id:
description: ID of the annotation.
type: string
name:
description: Name of the annotation.
type: string
notes:
description: Text notes on the annotation.
type: string
start:
description: 0-based inclusive start index.
type: integer
type:
description: Feature type of the annotation.
type:
- 'null'
- string
type: object
GridCoordinates:
description: Read model representing a fillable position in a box or plate.
properties:
__typename:
type: string
column:
description: The 0-indexed column index of the position
type: integer
index:
description: 'The 1-indexed position determined by counting across rows.
For example, for a six-well plate:
+---+---+---+
| 1 | 2 | 3 |
+---+---+---+
| 4 | 5 | 6 |
+---+---+---+'
type: integer
position:
description: 'The alphanumeric position, where rows are indexed alphabetically and columns are indexed numerically,
starting from "A1"'
type: string
row:
description: The 0-indexed row index of the position
type: integer
type: object
Transcription:
description: 'Represents a transcribed region on a DNA sequence that produces an RNA product. Transcriptions
link a region of a DnaSequence to the corresponding RnaSequence entity, enabling traceability
between DNA templates and their RNA transcripts. The position range (start/end) defines
where transcription begins and ends on the DNA template, while strand indicates the
transcribed strand direction. This feature is derived from schema field relationships
rather than being directly editable as an annotation.'
properties:
__typename:
type: string
end:
description: '0-based exclusive end index. For ranges ending at the end of a circular sequence, this value is
always the length of the sequence, never 0.'
type: integer
rnaSequence:
$ref: '#/components/schemas/RnaSequenceRef'
description: RNA sequence this transcription refers to.
start:
description: 0-based inclusive start index.
type: integer
strand:
description: Strand for this transcription; 1 for forward strand, -1 for reverse strand.
type: integer
type: object
MatrixPlatePosition:
description: A well position within a MatrixPlate.
properties:
__typename:
type: string
container:
description: Container at the current position within the matrix plate.
oneOf:
- $ref: '#/components/schemas/ContainerRef'
- type: 'null'
coordinates:
$ref: '#/components/schemas/GridCoordinates'
description: Coordinates of the current position within the matrix plate.
type: object
ProteinFormatChainPosition:
description: 'Defines each instance of a polypeptide chain within a `ProteinFormat`, specifying the chain type and
its constituent domains. Each chain position has a unique ref identifier and lists the domain positions
(see `ProteinFormatDomainPosition`) that compose it in order from N-terminus to C-terminus.
For example, a heavy chain position might reference domain positions [VH, CH1, Hinge, CH2, CH3].'
properties:
__typename:
type: string
domainPositions:
description: A list of all the domain positions that make up the chain position, in order
items:
$ref: '#/components/schemas/ProteinFormatDomainPosition'
type: array
ref:
description: 'A unique identifier for a physical component (chain or domain) in a protein format.
This is used to form a HELM reference that is used in the protein''s complex polymer structure.'
type: integer
type:
description: Type of the chain.
enum:
- HEAVY
- LIGHT
- NONE
- ALPHA
- BETA
- JOINING
type: string
type: object
IMolecule:
properties:
__typename:
type: string
aliases:
oneOf:
- items:
type: string
type: array
- type: 'null'
archiveReason:
type:
- 'null'
- string
archived:
type: boolean
canonicalSmiles:
description: 'The canonicalized chemical structure in SMILES format. E.g.,
Nc1nc(=O)n([H:1])cc1C1CC1'
type:
- 'null'
- string
createdAt:
format: datetime
type:
- 'null'
- string
customFields:
oneOf:
- items:
$ref: '#/components/schemas/CustomField'
type: array
- type: 'null'
entityRegistryId:
type:
- 'null'
- string
folder:
oneOf:
- $ref: '#/components/schemas/FolderRef'
- type: 'null'
id:
type: string
modifiedAt:
format: datetime
type:
- 'null'
- string
name:
type:
- 'null'
- string
originalSmiles:
description: 'The original chemical structure in SMILES format. Null if the user did not originally provide SMILES. E.g.,
Nc1nc(=O)n([H:1])cc1C1CC1'
type:
- 'null'
- string
project:
oneOf:
- $ref: '#/components/schemas/ProjectRef'
- type: 'null'
registrationOrigin:
oneOf:
- $ref: '#/components/schemas/RegistrationOrigin'
- type: 'null'
registry:
oneOf:
- $ref: '#/components/schemas/RegistryRef'
- type: 'null'
schema:
oneOf:
- $ref: '#/components/schemas/EntitySchemaRef'
- type: 'null'
type: object
IMixture:
properties:
__typename:
type: string
aliases:
oneOf:
- items:
type: string
type: array
- type: 'null'
allowMeasuredIngredients:
description: Derived from the mixture's schema.
type:
- 'null'
- boolean
amount:
description: 'The positive numerical amount value of this mixture in string format
(to preserve full precision). Pair with `units`. Supports scientific
notation (1.23e4).'
type:
- 'null'
- string
archiveReason:
type:
- 'null'
- string
archived:
type: boolean
createdAt:
format: datetime
type:
- 'null'
- string
customFields:
oneOf:
- items:
$ref: '#/components/schemas/CustomField'
type: array
- type: 'null'
entityRegistryId:
type:
- 'null'
- string
folder:
oneOf:
- $ref: '#/components/schemas/FolderRef'
- type: 'null'
id:
type: string
ingredients:
description: List of ingredients on this mixture.
oneOf:
- items:
$ref: '#/components/schemas/Ingredient'
type: array
- type: 'null'
modifiedAt:
format: datetime
type:
- 'null'
- string
name:
type:
- 'null'
- string
project:
oneOf:
- $ref: '#/components/schemas/ProjectRef'
- type: 'null'
registrationOrigin:
oneOf:
- $ref: '#/components/schemas/RegistrationOrigin'
- type: 'null'
registry:
oneOf:
- $ref: '#/components/schemas/RegistryRef'
- type: 'null'
schema:
oneOf:
- $ref: '#/components/schemas/EntitySchemaRef'
- type: 'null'
units:
enum:
- NL
- UL
- ML
- L
- G
- KG
- UNITS
- UG
- MG
- null
type:
- 'null'
- string
type: object
ProteinFormatRef:
properties:
__typename:
type: string
id:
format: api_id
type: string
type: object
ProjectRef:
properties:
__typename:
type: string
id:
format: api_id
type: string
type: object
RnaOligo:
allOf:
- $ref: '#/components/schemas/IRnaOligo'
- description: 'Represents a short single-stranded RNA oligonucleotide in Benchling''s molecular biology
platform. RNA oligos are synthetic sequences used in applications such as RNA interference
(siRNA, shRNA), antisense oligonucleotides (ASOs), mRNA therapeutics, or CRISPR guide RNAs.
Each oligo stores its nucleotide base sequence, annotations for features of interest, and
chemical modifications (see ModifiedNucleotide) such as 2''-O-methyl sugars or phosphorothioate
backbones that enhance stability and efficacy. RNA oligos can be registered in the Registry
with unique identifiers, organized in folders, and linked to other entities via schema
fields. Unlike RnaSequence, oligos are specifically designed for shorter, synthesizable
sequences. Also referred to as RNA probes or therapeutic oligonucleotides depending on
their application.'
properties:
__typename:
type: string
authors:
oneOf:
- format: uri
type: string
- type: 'null'
creator:
oneOf:
- $ref: '#/components/schemas/PrincipalRef'
- type: 'null'
schemaFields:
oneOf:
- items:
$ref: '#/components/schemas/SchemaFieldValue'
type: array
- type: 'null'
type: object
Primer:
description: 'Represents a primer binding site on a nucleotide sequence, indicating where an oligonucleotide primer anneals
for PCR amplification or sequencing. The Primer links to an Oligo entity containing the actual primer sequence
and name. Position fields define the binding region on the template (start/end), while bindPosition specifies
the 3'' end of the binding region (critical for extension). The overhangLength indicates how many 5'' bases
extend beyond the binding region (used for adding restriction sites or tags). Strand indicates whether the
primer binds to the forward (1) or reverse (-1) strand.'
properties:
__typename:
type: string
bindPosition:
description: 0-based index of the base at the 3' end of the binding region.
type: integer
end:
description: '0-based exclusive end of the binding region. For ranges ending at the end of a circular sequence,
this value is always the length of the sequence, never 0.'
type: integer
oligo:
$ref: '#/components/schemas/OligoRef'
description: Linked primer entity, which holds the name, bases, and color for this primer bind site.
overhangLength:
description: Number of 5' primer bases that are not part of the binding region.
type: integer
start:
description: 0-based inclusive start of the binding region.
type: integer
strand:
description: Strand for this primer; 1 for forward strand, -1 for reverse strand.
type: integer
type: object
CustomField:
description: 'A name-value pair for storing additional metadata o
# --- truncated at 32 KB (132 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/benchling/refs/heads/main/openapi/benchling-worklist-api-openapi.yml