openapi: 3.2.0 info: license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html title: Benchling Feature Library API version: 2.0.0 description: 'Represents a reusable collection of biological features for auto-annotating nucleotide and AA sequences. FeatureLibraries enable users to define common sequence motifs (such as genes, promoters, terminators, or protein domains) with associated patterns, then automatically detect and annotate those features across many sequences. Each library contains `FeatureLibraryItem`s that specify the pattern to match and the annotation details to apply. Libraries can be shared with collaborators through ownership and permission controls, making them useful for standardizing annotation practices across a team. When running auto-annotate on a sequence, users select which libraries to search against.' servers: - url: /api/v3 security: - oAuth: [] - basicApiKeyAuth: [] tags: - description: 'Represents a reusable collection of biological features for auto-annotating nucleotide and AA sequences. FeatureLibraries enable users to define common sequence motifs (such as genes, promoters, terminators, or protein domains) with associated patterns, then automatically detect and annotate those features across many sequences. Each library contains `FeatureLibraryItem`s that specify the pattern to match and the annotation details to apply. Libraries can be shared with collaborators through ownership and permission controls, making them useful for standardizing annotation practices across a team. When running auto-annotate on a sequence, users select which libraries to search against.' name: FeatureLibrary x-bnch-organization: Benchling paths: /feature-library/items: get: description: List FeatureLibrary items. operationId: FeatureLibrary.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/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/FeatureLibraryPaginatedList' 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 FeatureLibrary items tags: - FeatureLibrary x-bnch-rate-limit-tier: 4 /feature-library/{feature_library_id}: get: description: Get a single FeatureLibrary by ID. operationId: FeatureLibrary.Get parameters: - description: ID of the FeatureLibrary. in: path name: feature_library_id required: true schema: type: string - $ref: '#/components/parameters/returning' - $ref: '#/components/parameters/omit' responses: '200': content: application/json: schema: $ref: '#/components/schemas/FeatureLibrary' 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 FeatureLibrary by ID tags: - FeatureLibrary x-bnch-rate-limit-tier: 5 /feature-library/{feature_library_id}/features/items: get: description: List FeatureLibraryItem items. operationId: FeatureLibrary.features.List parameters: - $ref: '#/components/parameters/nextToken' - $ref: '#/components/parameters/pageSize' - description: ID of the FeatureLibrary. in: path name: feature_library_id required: true schema: 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: - FeatureLibrary x-bnch-rate-limit-tier: 4 components: schemas: FeatureLibraryRef: properties: __typename: type: string id: format: api_id type: string type: object FeatureLibrary: description: 'Represents a reusable collection of biological features for auto-annotating nucleotide and AA sequences. FeatureLibraries enable users to define common sequence motifs (such as genes, promoters, terminators, or protein domains) with associated patterns, then automatically detect and annotate those features across many sequences. Each library contains `FeatureLibraryItem`s that specify the pattern to match and the annotation details to apply. Libraries can be shared with collaborators through ownership and permission controls, making them useful for standardizing annotation practices across a team. When running auto-annotate on a sequence, users select which libraries to search against.' properties: __typename: type: string createdAt: description: DateTime the Feature Library was created format: datetime type: string description: description: Description of the Feature Library type: - 'null' - string features: description: List of Feature Library Items in this library format: uri type: string id: type: string modifiedAt: description: DateTime the Feature Library was last modified format: datetime type: string name: description: Name of the Feature Library type: string owner: $ref: '#/components/schemas/OwnerRef' type: object FeatureLibraryItemPaginatedList: additionalProperties: false properties: items: items: $ref: '#/components/schemas/FeatureLibraryItem' type: array nextToken: type: string type: object OwnerRef: properties: __typename: type: string id: format: api_id type: string 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 FeatureLibraryPaginatedList: additionalProperties: false properties: items: items: $ref: '#/components/schemas/FeatureLibrary' type: array nextToken: type: string 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 GeneralError: 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 parameters: pageSize: description: Number of results to return. Defaults to 50, maximum of 100. in: query name: pageSize schema: type: integer 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 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 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 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 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.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 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 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 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 nextToken: description: Token for pagination in: query name: nextToken schema: type: string 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 responses: NotFound: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Not Found TooManyRequests: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Too Many Requests BadRequest: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Bad Request Forbidden: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Forbidden InternalServerError: content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerError' description: Internal Server Error securitySchemes: 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