Benchling Protein Version API

A historical snapshot of an `Protein` at a specific point in time, preserving the complete structural state including domains, chains, and HELM notation. Protein versions form a lineage that tracks changes over time. Each version records its creator and creation time. The parent field links to the version this one was derived from. Versions may become out of sync with their constituent entities if underlying sequences change.

Operations 2

GET /protein-version/items List ProteinVersion items #
GET /protein-version/{protein_version_id} Get ProteinVersion by ID #

Documentation

Specifications

Other Resources

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-proteinversion-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 Specification

benchling-proteinversion-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  title: Benchling Protein Version API
  version: 2.0.0
  description: 'A historical snapshot of an `Protein` at a specific point in time, preserving the complete

    structural state including domains, chains, and HELM notation. Protein versions form a

    lineage that tracks changes over time. Each version records its creator and creation time.

    The parent field links to the version this one was derived from. Versions may become out of

    sync with their constituent entities if underlying sequences change.'
servers:
- url: /api/v3
security:
- oAuth: []
- basicApiKeyAuth: []
tags:
- description: 'A historical snapshot of an `Protein` at a specific point in time, preserving the complete

    structural state including domains, chains, and HELM notation. Protein versions form a

    lineage that tracks changes over time. Each version records its creator and creation time.

    The parent field links to the version this one was derived from. Versions may become out of

    sync with their constituent entities if underlying sequences change.'
  name: ProteinVersion
  x-bnch-organization: Benchling
paths:
  /protein-version/items:
    get:
      description: List ProteinVersion items.
      operationId: ProteinVersion.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/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). Use :asc or :desc to specify ascending or descending order. Default is createdAt:desc.'
        in: query
        name: sort
        schema:
          default: createdAt:desc
          enum:
          - createdAt:asc
          - createdAt: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/ProteinVersionPaginatedList'
          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 ProteinVersion items
      tags:
      - ProteinVersion
      x-bnch-rate-limit-tier: 4
  /protein-version/{protein_version_id}:
    get:
      description: Get a single ProteinVersion by ID.
      operationId: ProteinVersion.Get
      parameters:
      - description: ID of the ProteinVersion.
        in: path
        name: protein_version_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/ProteinVersion'
          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 ProteinVersion by ID
      tags:
      - ProteinVersion
      x-bnch-rate-limit-tier: 5
components:
  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
    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
    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
    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
    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
  schemas:
    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
    ProteinFormatRef:
      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
    ProteinVersion:
      description: 'A historical snapshot of an `Protein` at a specific point in time, preserving the complete

        structural state including domains, chains, and HELM notation. Protein versions form a

        lineage that tracks changes over time. Each version records its creator and creation time.

        The parent field links to the version this one was derived from. Versions may become out of

        sync with their constituent entities if underlying sequences change.'
      properties:
        __typename:
          type: string
        chains:
          description: The chains and associated amino acid sequences on the protein.
          items:
            $ref: '#/components/schemas/ProteinChain'
          type: array
        createdAt:
          format: datetime
          type: string
        creator:
          $ref: '#/components/schemas/PrincipalRef'
        domains:
          description: The domains and associated amino acid sequences on the protein.
          items:
            $ref: '#/components/schemas/ProteinDomain'
          type: array
        format:
          $ref: '#/components/schemas/ProteinFormatRef'
          description: The protein format that defines the structure (domains, chains, interactions) for the protein.
        id:
          type: string
        name:
          type: string
        outOfSync:
          description: Indicates if constituent domain or chain entities have changed since the protein was last updated.
          type: boolean
        outOfSyncReason:
          description: Any additional information about why the protein is out of sync.
          type:
          - 'null'
          - string
        parent:
          description: The parent version of the protein.
          oneOf:
          - $ref: '#/components/schemas/ProteinVersionRef'
          - type: 'null'
      type: object
    ProteinDomain:
      description: 'Represents a domain within an `Protein`, containing the actual amino acid sequence for a specific label.

        Unlike `ProteinFormatDomain` which is a template, `ProteinDomain` is a concrete instance of the domain and

        links to the underlying amino acid sequence entity.'
      properties:
        __typename:
          type: string
        domainPositions:
          description: 'Each domain position of this domain in the protein. If this domain appears multiple times in the physical

            structure of the protein, each domain position will be listed here.'
          items:
            $ref: '#/components/schemas/ProteinFormatDomainPosition'
          type: array
        entity:
          $ref: '#/components/schemas/AaSequenceRef'
          description: The amino acid sequence entity associated with the domain.
        label:
          description: A human-readable label for the domain.
          type: string
        type:
          description: The type of the domain.
          enum:
          - VL
          - CL
          - VH
          - VHH
          - CH1
          - CH2
          - CH3
          - CH4
          - J
          - H
          - L
          - VA
          - CA
          - VB
          - CB
          - VG
          - CG
          - VD
          - CD
          - F
          - ELEMENT
          type: string
      type: object
    AaSequenceRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    ProteinVersionPaginatedList:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: '#/components/schemas/ProteinVersion'
          type: array
        nextToken:
          type: string
      type: object
    PrincipalRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    ProteinVersionRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    ProteinFormatDomainPosition:
      description: 'Defines a domain position within a1 `ProteinFormat`, specifying the domain type and identity of each

        physical domain in the protein format. Each domain position has a unique ref identifier used

        to construct HELM notation for complex polymer structures. Domain positions are grouped into ProteinFormatDomains,

        and each group can be uniquely identified by its label, and will be a single amino acid sequence entity in proteins

        of this format.'
      properties:
        __typename:
          type: string
        optional:
          description: Whether this domain is optional in the format. If true, entities of this format may not have this domain.
          type: boolean
        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 domain
          enum:
          - VL
          - CL
          - VH
          - VHH
          - CH1
          - CH2
          - CH3
          - CH4
          - J
          - H
          - L
          - VA
          - CA
          - VB
          - CB
          - VG
          - CG
          - VD
          - CD
          - F
          - ELEMENT
          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
    ProteinChain:
      description: 'Represents a polypeptide chain within an `Protein`, containing the domain composition. Each chain has a

        computed label derived from the format.'
      properties:
        __typename:
          type: string
        chainPositions:
          description: 'Each chain position of this chain in the protein. If a chain has multiplicity > 1, each chain position

            will be listed here.'
          items:
            $ref: '#/components/schemas/ProteinFormatChainPosition'
          type: array
        domains:
          description: Each domain on the chain, ordered according to the format.
          items:
            $ref: '#/components/schemas/ProteinDomain'
          type: array
        entity:
          $ref: '#/components/schemas/AaSequenceRef'
          description: The amino acid sequence entity associated with the chain.
        label:
          description: Unique label for the chain, computed from the format.
          type: string
        type:
          description: The type of the chain.
          enum:
          - HEAVY
          - LIGHT
          - NONE
          - ALPHA
          - BETA
          - JOINING
          type: string
      type: object
  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