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:benchling-featurelibraryitem-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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:
title: Benchling Feature Library Item API
version: 2.0.0
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
description: 'Operations tagged FeatureLibraryItem across 2 of this provider''s published API definitions: benchling-openapi.yml, benchling-v3-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: /api/v3
security:
- oAuth: []
- basicApiKeyAuth: []
tags:
- description: 'Represents a single feature definition within a FeatureLibrary used for auto-annotation.
Each item defines a searchable pattern (nucleotide or amino acid sequence), a feature type
classification (such as ''gene'', ''promoter'', or ''domain''), a display name, and a color for
visualization. When auto-annotate runs against a sequence, the pattern is matched according
to the matchType (see FeatureLibraryMatchType), and matching regions are annotated with the
item''s name, type, and color. Patterns can include special characters for flexible matching,
such as wildcards for arbitrary bases or optional flanking regions.'
name: FeatureLibraryItem
x-bnch-organization: Benchling
x-displayName: Feature Library Item
paths:
/feature-library-item:
post:
description: Create FeatureLibraryItem.
operationId: FeatureLibraryItem.Create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateFeatureLibraryItemInput'
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/FeatureLibraryItem'
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Create FeatureLibraryItem
tags:
- FeatureLibraryItem
servers:
- url: /api/v3
/feature-library-item/items:
get:
description: List FeatureLibraryItem items.
operationId: FeatureLibraryItem.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/featureLibrary.eq'
- $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/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
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FeatureLibraryItemPaginatedList'
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 FeatureLibraryItem items
tags:
- FeatureLibraryItem
servers:
- url: /api/v3
/feature-library-item/{feature_library_item_id}:
get:
description: Get a single FeatureLibraryItem by ID.
operationId: FeatureLibraryItem.Get
parameters:
- description: ID of the FeatureLibraryItem.
in: path
name: feature_library_item_id
required: true
schema:
type: string
- $ref: '#/components/parameters/returning'
- $ref: '#/components/parameters/omit'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FeatureLibraryItem'
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 FeatureLibraryItem by ID
tags:
- FeatureLibraryItem
patch:
description: Update FeatureLibraryItem.
operationId: FeatureLibraryItem.Update
parameters:
- description: ID of the FeatureLibraryItem.
in: path
name: feature_library_item_id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateFeatureLibraryItemInput'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FeatureLibraryItem'
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Update FeatureLibraryItem
tags:
- FeatureLibraryItem
servers:
- url: /api/v3
/feature-library-item:batch-create:
post:
description: Batch create FeatureLibraryItem synchronously in one transaction. Maximum 25 items per request.
operationId: FeatureLibraryItem.BatchCreate
requestBody:
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/CreateFeatureLibraryItemInput'
maxItems: 25
minItems: 1
type: array
required:
- items
type: object
responses:
'201':
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/FeatureLibraryItem'
type: array
required:
- items
type: object
description: Created
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Batch create FeatureLibraryItem
tags:
- FeatureLibraryItem
servers:
- url: /api/v3
/feature-library-item:batch-update:
patch:
description: Batch update FeatureLibraryItem synchronously in one transaction. Maximum 25 items per request.
operationId: FeatureLibraryItem.BatchUpdate
requestBody:
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/UpdateFeatureLibraryItemInputWithPathParams'
maxItems: 25
minItems: 1
type: array
required:
- items
type: object
responses:
'200':
content:
application/json:
schema:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/FeatureLibraryItem'
type: array
required:
- items
type: object
description: OK
'400':
$ref: '#/components/responses/BadRequest'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Batch update FeatureLibraryItem
tags:
- FeatureLibraryItem
servers:
- url: /api/v3
/feature-library-item:bulk-create:
post:
description: Bulk create FeatureLibraryItem.
operationId: FeatureLibraryItem.BulkCreate
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'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Bulk create FeatureLibraryItem
tags:
- FeatureLibraryItem
servers:
- url: /api/v3
/feature-library-item:bulk-update:
patch:
description: Bulk update FeatureLibraryItem.
operationId: FeatureLibraryItem.BulkUpdate
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'
'409':
$ref: '#/components/responses/Conflict'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
summary: Bulk update FeatureLibraryItem
tags:
- FeatureLibraryItem
servers:
- url: /api/v3
components:
schemas:
CreateFeatureLibraryItemInput:
additionalProperties: false
example:
color: '#F58A5E'
featureLibraryId: featlib_cWYhFmxq
featureType: promoter
matchType: NUCLEOTIDE
name: T7 promoter
pattern: TAATACGACTCACTATAGGG
properties:
color:
description: Must be a valid hex color string (for example, `#F58A5E`).
type: string
featureLibraryId:
description: Feature library id to contain this feature. Each library supports at most 5,000 items.
type: string
featureType:
description: 'The type of the Feature Library Item, like gene, promoter, etc. Note: This is an arbitrary string, not an enum'
type: string
matchType:
description: Determines how `pattern` is interpreted during auto-annotation (`NUCLEOTIDE` or `AA_SEQUENCE`). Required on create and cannot be changed on update.
enum:
- NUCLEOTIDE
- AA_SEQUENCE
type: string
name:
description: Item names must be non-empty after trimming whitespace and at most 255 characters.
type: string
pattern:
description: Patterns must be non-empty and valid for the item's `matchType`. Nucleotide patterns accept IUPAC bases plus wildcards (`#`, `<`, `>`, `()`). Amino acid patterns accept standard residues plus the same wildcard characters. Patterns are compared case-insensitively within a library, so two items cannot differ only by letter case.
type: string
required:
- name
- featureLibraryId
- pattern
- color
- matchType
type: object
FeatureLibraryItemPaginatedList:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/FeatureLibraryItem'
type: array
nextToken:
type:
- string
- 'null'
type: object
UpdateFeatureLibraryItemInput:
additionalProperties: false
example:
color: '#4ECDC4'
name: T7 promoter (strong)
pattern: TAATACGACTCACTATAGGGA
properties:
color:
description: Must be a valid hex color string (for example, `#F58A5E`).
type: string
featureLibraryId:
description: New feature library id to contain this feature.
type: string
featureType:
description: 'The type of the Feature Library Item, like gene, promoter, etc. Note: This is an arbitrary string, not an enum'
type:
- 'null'
- string
name:
description: Item names must be non-empty after trimming whitespace and at most 255 characters.
type: string
pattern:
description: Patterns must be non-empty and valid for the item's `matchType`. Nucleotide patterns accept IUPAC bases plus wildcards (`#`, `<`, `>`, `()`). Amino acid patterns accept standard residues plus the same wildcard characters. Patterns are compared case-insensitively within a library, so two items cannot differ only by letter case.
type: string
type: object
GeneralError:
properties:
detail:
type:
- 'null'
- string
- object
instance:
type: string
invalidId:
type: string
status:
type: integer
title:
type:
- 'null'
- string
type:
type: string
required:
- type
- title
- detail
- status
- instance
type: object
TooManyRequestsError:
properties:
detail:
type:
- 'null'
- string
- object
instance:
type: string
invalidId:
type: string
status:
type: integer
title:
type:
- 'null'
- string
type:
type: string
required:
- type
- title
- detail
- status
- instance
type: object
FeatureLibraryItem:
description: 'Represents a single feature definition within a FeatureLibrary used for auto-annotation.
Each item defines a searchable pattern (nucleotide or amino acid sequence), a feature type
classification (such as ''gene'', ''promoter'', or ''domain''), a display name, and a color for
visualization. When auto-annotate runs against a sequence, the pattern is matched according
to the matchType (see FeatureLibraryMatchType), and matching regions are annotated with the
item''s name, type, and color. Patterns can include special characters for flexible matching,
such as wildcards for arbitrary bases or optional flanking regions.'
properties:
__typename:
type: string
color:
description: The color of the annotations generated by the Feature Library Item. Must be a valid hex string
type: string
createdAt:
description: DateTime the Feature Library Item was created
format: datetime
type: string
featureLibrary:
$ref: '#/components/schemas/FeatureLibraryRef'
description: The Feature Library the Feature Library Item belongs to
featureType:
description: 'The type of the Feature Library Item, like gene, promoter, etc. Note: This is an arbitrary string, not an enum'
type:
- 'null'
- string
id:
type: string
matchType:
description: The match type of the Feature Library Item. Used to determine how auto-annotate matches are made
enum:
- NUCLEOTIDE
- AA_SEQUENCE
type: string
modifiedAt:
description: DateTime the Feature Library Item was last modified
format: datetime
type: string
name:
description: The name of the Feature Library Item
type: string
pattern:
description: The pattern used for matching during auto-annotation
type: string
type: object
FeatureLibraryRef:
properties:
__typename:
type: string
id:
format: api_id
type: string
type: object
AsyncTaskLink:
properties:
pollingUri:
format: uri
type: string
taskId:
type: string
type: object
UpdateFeatureLibraryItemInputWithPathParams:
additionalProperties: false
example:
color: '#4ECDC4'
id: feat_a1B2c3D4
name: T7 promoter (strong)
pattern: TAATACGACTCACTATAGGGA
properties:
color:
description: Must be a valid hex color string (for example, `#F58A5E`).
type: string
featureLibraryId:
description: New feature library id to contain this feature.
type: string
featureType:
description: 'The type of the Feature Library Item, like gene, promoter, etc. Note: This is an arbitrary string, not an enum'
type:
- 'null'
- string
id:
type: string
name:
description: Item names must be non-empty after trimming whitespace and at most 255 characters.
type: string
pattern:
description: Patterns must be non-empty and valid for the item's `matchType`. Nucleotide patterns accept IUPAC bases plus wildcards (`#`, `<`, `>`, `()`). Amino acid patterns accept standard residues plus the same wildcard characters. Patterns are compared case-insensitively within a library, so two items cannot differ only by letter case.
type: string
required:
- id
type: object
BulkImport:
example:
fileId: scrfile_jdf8BV24kLmN
properties:
fileId:
description: The API ID of the scratch file (`scrfile_XXXXXXXX`) containing the items to import. The referenced file must be a scratch file whose upload has completed successfully.
type: string
required:
- fileId
type: object
InternalServerError:
properties:
detail:
type:
- 'null'
- string
- object
errorId:
type: string
instance:
type: string
status:
type: integer
title:
type:
- 'null'
- string
type:
type: string
required:
- type
- title
- detail
- status
- instance
type: object
FeatureLibraryItemPaginatedList_2:
additionalProperties: false
properties:
items:
items:
$ref: '#/components/schemas/FeatureLibraryItem'
type: array
nextToken:
type: string
type: object
GeneralError_2:
properties:
detail:
type:
- 'null'
- string
- object
instance:
type: string
status:
type: integer
title:
type:
- 'null'
- string
type:
type: string
required:
- type
- title
- detail
- status
- instance
type: object
responses:
InternalServerError:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/InternalServerError'
description: Internal Server Error
BadRequest:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/GeneralError'
description: Bad Request
NotFound:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/GeneralError'
description: Not Found
Forbidden:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/GeneralError'
description: Forbidden
Conflict:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/GeneralError'
description: Conflict
TooManyRequests:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/TooManyRequestsError'
description: Too Many Requests
headers:
Retry-After:
description: Minimum number of seconds to wait before retrying. Only included when the request exceeded a rate limit specific to the caller. Limits shared with other callers, such as tenant-wide limits, omit this header because the wait depends on their traffic.
required: false
schema:
minimum: 1
type: integer
TooManyRequests_2:
content:
application/problem+json:
schema:
$ref: '#/components/schemas/GeneralError_2'
description: Too Many Requests
parameters:
modifiedAt.gte:
description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or after the specified time. e.g. >= 2017-04-30.
in: query
name: modifiedAt.gte
schema:
format: datetime
type: string
createdAt.lte:
description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or before the specified time. e.g. <= 2017-04-30.
in: query
name: createdAt.lte
schema:
format: datetime
type: string
omit:
description: Comma-separated list of top-level fields to omit from each returned item. Cannot overlap with returning.
explode: false
in: query
name: omit
schema:
items:
type: string
type: array
modifiedAt.lte:
description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or before the specified time. e.g. <= 2017-04-30.
in: query
name: modifiedAt.lte
schema:
format: datetime
type: string
createdAt.gt:
description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created after the specified time. e.g. > 2017-04-30.
in: query
name: createdAt.gt
schema:
format: datetime
type: string
nextToken:
description: Token for pagination
in: query
name: nextToken
schema:
type: string
modifiedAt.gt:
description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified after the specified time. e.g. > 2017-04-30.
in: query
name: modifiedAt.gt
schema:
format: datetime
type: string
pageSize:
description: Number of results to return. Defaults to 50, maximum of 100.
in: query
name: pageSize
schema:
type: integer
modifiedAt.lt:
description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified before the specified time. e.g. < 2017-04-30.
in: query
name: modifiedAt.lt
schema:
format: datetime
type: string
returning:
description: Comma-separated list of top-level fields to include in each returned item. Cannot overlap with omit.
explode: false
in: query
name: returning
schema:
items:
type: string
type: array
createdAt.gte:
description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or after the specified time. e.g. >= 2017-04-30.
in: query
name: createdAt.gte
schema:
format: datetime
type: string
createdAt.lt:
description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created before the specified time. e.g. < 2017-04-30.
in: query
name: createdAt.lt
schema:
format: datetime
type: string
featureLibrary.eq:
description: ID of a Feature Library.
in: query
name: featureLibrary.eq
schema:
type: string
id.anyOf:
description: Restricts results to those matching any of the specified IDs. Comma-separated list.
explode: false
in: query
name: id.anyOf
schema:
items:
type: string
maxItems: 100
type: array
securitySchemes:
BearerAuth:
description: Use a short-lived V3 API Explorer token.
scheme: bearer
type: http
x-fern-playground-description: Copy a short-lived V3 API Explorer token from the user's settings page
basicApiKeyAuth:
description: Use issued API key for standard access to the API
scheme: basic
type: http
basicClientIdSecretAuth:
description: Auth used as part of client credentials OAuth flow prior to receiving a bearer token.
scheme: basic
type: http
oAuth:
description: OAuth2 Client Credentials flow intended for service access
flows:
clientCredentials:
scopes: {}
tokenUrl: /oauth/token
type: oauth2
x-refined-from:
- benchling-openapi.yml
- benchling-v3-openapi.yaml