---
title: "Batch update DnaSequenceSchema"
method: PATCH
path: "/api/v3/dna-sequence-schema:batch-update"
tags: ["DNA Sequence Schema"]
---

# Batch update DnaSequenceSchema

`PATCH /api/v3/dna-sequence-schema:batch-update`

## Request

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

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

## Headers

- `EARLY-ACCESS` string

## Request body

- object
  - `items` UpdateDnaSequenceSchemaInputWithPathParams[], 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`.
    - `availableRegistrationNamingOptions` UpdateDnaSequenceSchemaInputWithPathParamsAvailableRegistrationNamingOptionsItems[]
    - `constraint` CreateSequenceSchemaConstraintInput
      - `fieldDefinitionNames` string[]: Display names of schema fields whose values are included in the composite uniqueness key together with any configured residue uniqueness (`uniqueResidues`). Required when configuring field-based uniqueness.
      - `uniqueResidues` 'IGNORE_CASE': When specified, includes the entity's nucleotide residues (case-insensitive) in the composite uniqueness key together with any configured field values (`fieldDefinitionNames`). For nucleotide sequence and oligo schemas, the only supported value is `IGNORE_CASE`.
    - `containerNameTemplate` ContainerNameTemplateInput
      - `nameTemplateParts` ContainerNameTemplatePartInput[], required
        - `configuration` union
          - TextNameTemplatePartConfigurationInput
            - `text` string, required
          - FieldNameTemplatePartConfigurationInput
            - `fieldId` string, required
        - `type` 'BARCODE' | 'BARCODE_NUMBER' | 'CHILD_ENTITY_LOT_NUMBER' | 'CONCENTRATION_UNITS' | 'CONCENTRATION_VALUE' | 'CONTAINED_ENTITY_NAME' | 'FIELD' | 'FILL_DATE' | 'FILL_YEAR' | 'LINKED_BIOENTITY_REGISTRY_IDENTIFIER' | 'PARENT_STORABLE_BARCODE' | 'PARENT_STORABLE_NAME' | 'POSITION' | 'PROJECT' | 'QUANTITY_UNITS' | 'QUANTITY_VALUE' | 'REGISTRY_IDENTIFIER_NUMBER' | 'RESTRICTION_STATUS' | 'SAMPLE_LOT_NUMBER' | 'SEPARATOR' | 'TEXT', required
    - `description` string: Updated description. When provided, must be at most 1000 characters.
    - `displayName` string: Deprecated. Use name instead.
    - `iconId` 'BASIC_FOLDER_ITEM' | 'LINEAR' | 'OLIGO_V2' | 'PLASMID' | 'PRIMER_PAIR' | 'RNA_SEQUENCE' | 'SEQUENCE': Updated icon displayed in the UI for entities registered from this schema. Optional; when omitted, the existing value is unchanged.
    - `id` string, required: The API ID of the schema to update. The schema must exist and be accessible.
    - `includeRegistryIdInChips` boolean
    - `isContainable` boolean
    - `itemIdPrefix` string: Prefix used for registry IDs (`entityRegistryId`) of entities registered from this schema.
    - `name` string: Updated user-facing name. When provided, must be non-empty after stripping whitespace, at most 255 characters, and unique within the organization.
    - `nameTemplate` EntityNameTemplateInput
      - `nameTemplateParts` EntityNameTemplatePartInput[], required
        - `configuration` union
          - TextNameTemplatePartConfigurationInput
            - `text` string, required
          - FieldNameTemplatePartConfigurationInput
            - `fieldId` string, required
          - ProteinChainNameTemplatePartConfigurationInput
            - `label` string, required
          - ProteinDomainNameTemplatePartConfigurationInput
            - `label` string, required
        - `type` 'CHILD_ENTITY_LOT_NUMBER' | 'COMPLEX_POLYMER_COMPONENT' | 'CREATED_AT_DATE' | 'CREATED_AT_YEAR' | 'FIELD' | 'LINKED_BIOENTITY_REGISTRY_IDENTIFIER' | 'PROJECT' | 'PROTEIN_CHAIN' | 'PROTEIN_DOMAIN' | 'REGISTRY_IDENTIFIER_NUMBER' | 'SALT_CODES' | 'SEPARATOR' | 'TEXT', required
      - `shouldOrderPartsBySequence` boolean, required
    - `showResidues` boolean: Updated setting for whether DNA residues are displayed in the UI. Optional; when omitted, the existing value is unchanged.
    - `systemCategories` SystemCategoryConfigurationInputBase[]
      - union
        - object: ssi_aachain variant
          - `systemCategoryId` 'ssi_aachain', required: Discriminator value: ssi_aachain
        - object: ssi_aadomain variant
          - `systemCategoryId` 'ssi_aadomain', required: Discriminator value: ssi_aadomain
        - object: ssi_aapair variant
          - `systemCategoryId` 'ssi_aapair', required: Discriminator value: ssi_aapair
        - object: ssi_aasubelement variant
          - `systemCategoryId` 'ssi_aasubelement', required: Discriminator value: ssi_aasubelement
        - object: ssi_antigen variant
          - `systemCategoryId` 'ssi_antigen', required: Discriminator value: ssi_antigen
        - object: ssi_dnachain variant
          - `systemCategoryId` 'ssi_dnachain', required: Discriminator value: ssi_dnachain
        - object: ssi_dnadomain variant
          - `systemCategoryId` 'ssi_dnadomain', required: Discriminator value: ssi_dnadomain
        - object: ssi_dnapair variant
          - `systemCategoryId` 'ssi_dnapair', required: Discriminator value: ssi_dnapair
        - object: ssi_dnasubelement variant
          - `systemCategoryId` 'ssi_dnasubelement', required: Discriminator value: ssi_dnasubelement
        - object: ssi_expirationtracking variant
          - `systemCategoryId` 'ssi_expirationtracking', required: Discriminator value: ssi_expirationtracking
        - object: ssi_freezethawtracking variant
          - `systemCategoryId` 'ssi_freezethawtracking', required: Discriminator value: ssi_freezethawtracking
          - `limit` integer
    - `systemName` string: Updated SQL identifier for the warehouse table name. When provided, must match the pattern [a-z_][a-z0-9_$]*, cannot be a reserved table name, cannot start with 'bnch$', and must be unique within the organization. Changing it requires warehouse table-name changes to be enabled for the caller; otherwise the update fails with a validation error. Supplying the schema's exact current system name always succeeds.
    - `useRegistryIdForItemDisplayLabel` boolean

## Response `200`

OK

- DnaSequenceSchemaBatchupdateResponse200
  - `items` DnaSequenceSchema[], required
    - `__typename` string
    - `archiveReason` string, nullable
    - `archived` boolean
    - `availableRegistrationNamingOptions` DnaSequenceSchemaAvailableRegistrationNamingOptionsItems[]
    - `constraint` Constraint: Defines uniqueness requirements for entities within a schema. Constraints ensure that registered entities have unique values across specified fields (see `fieldDefinitionNames`) or unique domain-specific properties (see `TypeSpecificConstraint`). The hasUniqueResidues field is a legacy indicator for sequence uniqueness.
      - `__typename` string
      - `fieldDefinitionNames` string[], nullable
      - `hasUniqueResidues` boolean, nullable
    - `containableType` 'NONE' | 'ENTITY' | 'BATCH'
    - `containerNameTemplate` ContainerNameTemplate: A name template for containers.
      - `__typename` string
      - `parts` ContainerNameTemplatePart[]
        - `__typename` string
        - `configuration` union: Union of TextNameTemplatePartConfiguration, FieldNameTemplatePartConfiguration
          - object: Configuration for a schema field name template part.
            - `__typename` string, required
            - `field` SchemaFieldDefinitionRef
              - …
          - object: Configuration for a literal text name template part.
            - `__typename` string, required
            - `text` string
        - `type` 'BARCODE' | 'BARCODE_NUMBER' | 'CHILD_ENTITY_LOT_NUMBER' | 'CONCENTRATION_UNITS' | 'CONCENTRATION_VALUE' | 'CONTAINED_ENTITY_NAME' | 'CONTAINER_CREATED_AT_DATE' | 'CONTAINER_CREATED_AT_YEAR' | 'FIELD' | 'FILL_DATE' | 'FILL_YEAR' | 'HOISTED_FIELD' | 'LINKED_BIOENTITY_REGISTRY_IDENTIFIER' | 'PARENT_STORABLE_BARCODE' | 'PARENT_STORABLE_NAME' | 'POSITION' | 'PROJECT' | 'QUANTITY_UNITS' | 'QUANTITY_VALUE' | 'REGISTRY_IDENTIFIER_NUMBER' | 'REGISTRY_IDENTIFIER_NUMBER_BASE_26' | 'RESTRICTION_STATUS' | 'SAMPLE_LOT_NUMBER' | 'SEPARATOR' | 'TEXT'
    - `createdAt` string, datetime
    - `description` string
    - `fieldDefinitions` string, uri: Field definitions configured on this schema.
    - `fieldsets` string, uri
    - `iconId` 'BASIC_FOLDER_ITEM' | 'LINEAR' | 'OLIGO_V2' | 'PLASMID' | 'PRIMER_PAIR' | 'RNA_SEQUENCE' | 'SEQUENCE': Icon displayed in the UI for entities registered from this schema.
    - `id` string
    - `includeRegistryIdInChips` boolean
    - `itemIdPrefix` string: Prefix used for registry IDs (`entityRegistryId`) of entities registered from this schema.
    - `modifiedAt` string, datetime
    - `name` string
    - `nameTemplate` EntityNameTemplate: A name template for entities.
      - `__typename` string
      - `parts` EntityNameTemplatePart[]
        - `__typename` string
        - `configuration` union: Union of TextNameTemplatePartConfiguration, FieldNameTemplatePartConfiguration, ProteinChainNameTemplatePartConfiguration, ProteinDomainNameTemplatePartConfiguration
          - object: Configuration for a schema field name template part.
            - `__typename` string, required
            - `field` SchemaFieldDefinitionRef
              - …
          - object: Configuration for a protein chain name template part.
            - `__typename` string, required
            - `proteinChain` ProteinFormatChain: A chain in a protein format, representing the slot where a polypeptide chain can be used in an entity of this format. Chains are uniquely identified by their label in the format. Chains can have multiplicity, meaning there are multiple physical instances of the same chain in a protein of this format.
              - …
          - object: Configuration for a protein domain name template part.
            - `__typename` string, required
            - `proteinDomain` 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.
              - …
          - object: Configuration for a literal text name template part.
            - `__typename` string, required
            - `text` string
        - `type` 'CHILD_ENTITY_LOT_NUMBER' | 'COMPLEX_POLYMER_COMPONENT' | 'CREATED_AT_DATE' | 'CREATED_AT_YEAR' | 'FIELD' | 'HOISTED_FIELD' | 'LINKED_BIOENTITY_REGISTRY_IDENTIFIER' | 'PROJECT' | 'PROTEIN_CHAIN' | 'PROTEIN_DOMAIN' | 'REGISTRY_IDENTIFIER_NUMBER' | 'REGISTRY_IDENTIFIER_NUMBER_BASE_26' | 'SALT_CODES' | 'SEPARATOR' | 'TEXT'
      - `shouldOrderPartsBySequence` boolean
    - `organization` OrganizationRef
      - `__typename` string
      - `id` string, api_id
    - `showResidues` boolean: Controls whether DNA residues are displayed in the UI.
    - `systemCategories` SystemCategoryConfiguration[]
      - union
        - object: Default configuration for system categories that require no additional configuration.
          - `__typename` 'BaseSystemCategoryConfiguration', required: Discriminator value: BaseSystemCategoryConfiguration
          - `systemCategory` SystemCategoryRef
            - `__typename` string
            - `id` string, api_id
        - object: Configuration that can be set on entity schemas, which enables enabling freeze/thaw cycle tracking. When enabled, containers holding entities of the schema automatically display a "Freeze/thaw count" system field that tracks how many times the sample has been frozen and thawed. The optional limit field specifies the maximum number of freeze/thaw cycles permitted before the sample is considered unfit for use; exceeding this limit can trigger warnings in inventory workflows. Once enabled on a schema, freeze/thaw tracking cannot be disabled. This feature is commonly used for biologics, enzymes, and other temperature-sensitive samples where repeated freeze/thaw cycles can degrade sample quality.
          - `__typename` 'FreezeThawTrackingConfiguration', required: Discriminator value: FreezeThawTrackingConfiguration
          - `limit` integer, nullable: Max number of freeze/thaw cycles a container containing an entity of this schema is permitted to undergo while still being considered fit for use.
          - `systemCategory` SystemCategoryRef
            - `__typename` string
            - `id` string, api_id
    - `systemName` string
    - `useRegistryIdForItemDisplayLabel` boolean
    - `validationRules` string, uri

## 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)
