---
title: "Batch update ProteinFormat"
method: PATCH
path: "/api/v3/protein-format:batch-update"
tags: ["Protein Format"]
---

# Batch update ProteinFormat

`PATCH /api/v3/protein-format:batch-update`

## Request

- Base URL: `https://{tenant_name}.benchling.com`
- URL: `https://{tenant_name}.benchling.com/api/v3/protein-format:batch-update`
- Auth: HTTP bearer

Batch update ProteinFormat synchronously in one transaction. Maximum 25 items per request.

## Request body

- object
  - `items` UpdateProteinFormatInputWithPathParams[], required
    - `archiveReason` string: Why it is being archived. Required when `archived` is `true`, and not allowed when unarchiving.
    - `archived` boolean: Set to `true` to archive or `false` to unarchive it. Archiving requires `archiveReason`.
    - `id` string, required: API identifier of the protein format to update. Use GET /protein-format/items to list formats or GET /protein-format/{proteinFormatId} to retrieve one. Updating a protein format requires Biologics edit access for the authenticated user or app.
    - `name` string: Updated display name of the protein format. When provided, the name must be non-empty after stripping whitespace, at most 255 characters, and unique among all protein format names in the organization (including built-in format names). Built-in protein formats cannot be renamed.

## Response `200`

OK

- ProteinFormatBatchupdateResponse200
  - `items` ProteinFormat[], required
    - `__typename` string
    - `archiveReason` string, nullable
    - `archived` boolean
    - `builtIn` boolean: Whether this is an out-of-the-box Benchling-provided format. These formats come pre-loaded and cannot be modified or deleted by users.
    - `chainPositions` ProteinFormatChainPosition[]: Format chain positions include all physical instances of each chain in a protein of this format.
      - `__typename` string
      - `domainPositions` ProteinFormatDomainPosition[]: A list of all the domain positions that make up the chain position, in order
        - `__typename` string
        - `optional` boolean: Whether this domain is optional in the format. If true, entities of this format may not have this domain.
        - `ref` integer: 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` 'VL' | 'CL' | 'VH' | 'VHH' | 'CH1' | 'CH2' | 'CH3' | 'CH4' | 'J' | 'H' | 'L' | 'VA' | 'CA' | 'VB' | 'CB' | 'VG' | 'CG' | 'VD' | 'CD' | 'F' | 'ELEMENT': Type of the domain
      - `ref` integer: 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` 'HEAVY' | 'LIGHT' | 'NONE' | 'ALPHA' | 'BETA' | 'JOINING': Type of the chain.
    - `chains` ProteinFormatChain[]: The chains of protein entities of this format. Each chain can have multiple chain sites, representing multiple physical instances of the same chain.
      - `__typename` string
      - `chainPositions` ProteinFormatChainPosition[]: A list of all the chain positions of this chain in the format.
        - `__typename` string
        - `domainPositions` ProteinFormatDomainPosition[]: A list of all the domain positions that make up the chain position, in order
          - `__typename` string
          - `optional` boolean: Whether this domain is optional in the format. If true, entities of this format may not have this domain.
          - `ref` integer: 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` 'VL' | 'CL' | 'VH' | 'VHH' | 'CH1' | 'CH2' | 'CH3' | 'CH4' | 'J' | 'H' | 'L' | 'VA' | 'CA' | 'VB' | 'CB' | 'VG' | 'CG' | 'VD' | 'CD' | 'F' | 'ELEMENT': Type of the domain
        - `ref` integer: 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` 'HEAVY' | 'LIGHT' | 'NONE' | 'ALPHA' | 'BETA' | 'JOINING': Type of the chain.
      - `domains` ProteinFormatDomain[]: The domains that compose this chain.
        - `__typename` string
        - `domainPositions` ProteinFormatDomainPosition[]: A list of all the domain positions of this domain in the format.
          - `__typename` string
          - `optional` boolean: Whether this domain is optional in the format. If true, entities of this format may not have this domain.
          - `ref` integer: 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` 'VL' | 'CL' | 'VH' | 'VHH' | 'CH1' | 'CH2' | 'CH3' | 'CH4' | 'J' | 'H' | 'L' | 'VA' | 'CA' | 'VB' | 'CB' | 'VG' | 'CG' | 'VD' | 'CD' | 'F' | 'ELEMENT': Type of the domain
        - `label` string: A human-readable label for the domain, uniquely identifying the domain within the format.
        - `optional` boolean: Whether this domain is optional in the format. If true, entities of this format may not have this domain.
        - `type` 'VL' | 'CL' | 'VH' | 'VHH' | 'CH1' | 'CH2' | 'CH3' | 'CH4' | 'J' | 'H' | 'L' | 'VA' | 'CA' | 'VB' | 'CB' | 'VG' | 'CG' | 'VD' | 'CD' | 'F' | 'ELEMENT': The type of the domain (e.g., VH, VL, CH1).
      - `label` string: A human-readable label for the chain, such as 'Heavy' or 'Light 1'. Chains are labeled with an index only when multiple distinct chains of the same type exist. These labels are unique among distinct chains in a format.
      - `type` 'HEAVY' | 'LIGHT' | 'NONE' | 'ALPHA' | 'BETA' | 'JOINING': The type of the chain.
    - `createdAt` string, datetime: When the protein format was created.
    - `domainPositions` ProteinFormatDomainPosition[]: Format domain positions include all physical instances of each domain in a protein of this format.
      - `__typename` string
      - `optional` boolean: Whether this domain is optional in the format. If true, entities of this format may not have this domain.
      - `ref` integer: 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` 'VL' | 'CL' | 'VH' | 'VHH' | 'CH1' | 'CH2' | 'CH3' | 'CH4' | 'J' | 'H' | 'L' | 'VA' | 'CA' | 'VB' | 'CB' | 'VG' | 'CG' | 'VD' | 'CD' | 'F' | 'ELEMENT': Type of the domain
    - `domains` ProteinFormatDomain[]: The domains of protein entities of this format. Each domain can have multiple domain sites, representing multiple physical instances of the same domain.
      - `__typename` string
      - `domainPositions` ProteinFormatDomainPosition[]: A list of all the domain positions of this domain in the format.
        - `__typename` string
        - `optional` boolean: Whether this domain is optional in the format. If true, entities of this format may not have this domain.
        - `ref` integer: 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` 'VL' | 'CL' | 'VH' | 'VHH' | 'CH1' | 'CH2' | 'CH3' | 'CH4' | 'J' | 'H' | 'L' | 'VA' | 'CA' | 'VB' | 'CB' | 'VG' | 'CG' | 'VD' | 'CD' | 'F' | 'ELEMENT': Type of the domain
      - `label` string: A human-readable label for the domain, uniquely identifying the domain within the format.
      - `optional` boolean: Whether this domain is optional in the format. If true, entities of this format may not have this domain.
      - `type` 'VL' | 'CL' | 'VH' | 'VHH' | 'CH1' | 'CH2' | 'CH3' | 'CH4' | 'J' | 'H' | 'L' | 'VA' | 'CA' | 'VB' | 'CB' | 'VG' | 'CG' | 'VD' | 'CD' | 'F' | 'ELEMENT': The type of the domain (e.g., VH, VL, CH1).
    - `id` string: API identifier of the protein format. Custom formats use the `abfmt_` prefix; built-in formats use `builtinabfmt_`.
    - `modifiedAt` string, datetime: When the protein format was last modified.
    - `name` string: The display name of the protein format.
    - `originalVeritas` string, nullable: The VERITAS string used to create the format.
    - `variablePairs` VariablePair[]: Variable domain pairs defined on this format (e.g., VH/VL for antibodies). Each pair identifies two variable domains that together form an antigen-binding site.
      - `__typename` string
      - `label` string: A human-readable label identifying this variable pair within the format.
      - `vhVaVg` ProteinFormatDomain: A domain in a protein format, representing the slot where an amino acid sequence can be used in an entity of this format. Domains are uniquely identified by their label in the format.
        - `__typename` string
        - `domainPositions` ProteinFormatDomainPosition[]: A list of all the domain positions of this domain in the format.
          - `__typename` string
          - `optional` boolean: Whether this domain is optional in the format. If true, entities of this format may not have this domain.
          - `ref` integer: 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` 'VL' | 'CL' | 'VH' | 'VHH' | 'CH1' | 'CH2' | 'CH3' | 'CH4' | 'J' | 'H' | 'L' | 'VA' | 'CA' | 'VB' | 'CB' | 'VG' | 'CG' | 'VD' | 'CD' | 'F' | 'ELEMENT': Type of the domain
        - `label` string: A human-readable label for the domain, uniquely identifying the domain within the format.
        - `optional` boolean: Whether this domain is optional in the format. If true, entities of this format may not have this domain.
        - `type` 'VL' | 'CL' | 'VH' | 'VHH' | 'CH1' | 'CH2' | 'CH3' | 'CH4' | 'J' | 'H' | 'L' | 'VA' | 'CA' | 'VB' | 'CB' | 'VG' | 'CG' | 'VD' | 'CD' | 'F' | 'ELEMENT': The type of the domain (e.g., VH, VL, CH1).
      - `vlVbVd` ProteinFormatDomain: A domain in a protein format, representing the slot where an amino acid sequence can be used in an entity of this format. Domains are uniquely identified by their label in the format.
        - `__typename` string
        - `domainPositions` ProteinFormatDomainPosition[]: A list of all the domain positions of this domain in the format.
          - `__typename` string
          - `optional` boolean: Whether this domain is optional in the format. If true, entities of this format may not have this domain.
          - `ref` integer: 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` 'VL' | 'CL' | 'VH' | 'VHH' | 'CH1' | 'CH2' | 'CH3' | 'CH4' | 'J' | 'H' | 'L' | 'VA' | 'CA' | 'VB' | 'CB' | 'VG' | 'CG' | 'VD' | 'CD' | 'F' | 'ELEMENT': Type of the domain
        - `label` string: A human-readable label for the domain, uniquely identifying the domain within the format.
        - `optional` boolean: Whether this domain is optional in the format. If true, entities of this format may not have this domain.
        - `type` 'VL' | 'CL' | 'VH' | 'VHH' | 'CH1' | 'CH2' | 'CH3' | 'CH4' | 'J' | 'H' | 'L' | 'VA' | 'CA' | 'VB' | 'CB' | 'VG' | 'CG' | 'VD' | 'CD' | 'F' | 'ELEMENT': The type of the domain (e.g., VH, VL, CH1).

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/benchling/apis/benchling-api.md) - [All operations](https://skmtc.dev/benchling/apis/benchling-api/llms.txt) - [OpenAPI document](https://skmtc.dev/benchling/apis/benchling-api/revisions/c9f087b98b8b?raw)
