> This page is for Developer Documentation.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.benchling.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.benchling.com/_mcp/server.

# Set field definitions on a study schema

POST https://{tenant_name}.benchling.com/api/v3/study-schema/{study_schema_id}:set-field-definitions
Content-Type: application/json

Asynchronously set field definitions on a study schema. Requires administrator permission on the schema, Studies to be enabled, and updates to be allowed for the schema's study type.

Include every existing field, including archived fields, in the desired order. Provide a field ID to update an existing field; omit the ID to create a new field. Omitted update attributes retain their existing values. To archive a field, set `archived` to `true` and provide `archiveReason`. Omitting a field does not delete it and causes validation to fail. Configured schema field limits apply.

Reference: https://docs.benchling.com/docs/api/benchling-api/study-schema/setfielddefinitions

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `study_schema_id` (string, required) — ID of the StudySchema.

### Headers

- `EARLY-ACCESS` (string, optional) — Set to true to access beta operations via /api/v3.

### Body (application/json)

This endpoint expects a StudySchemaSetFieldDefinitionsInput.

- `fieldDefinitions` (list of StudySchemaSetFieldDefinitionsInputFieldDefinitionsItems, required) — The complete field list in the desired order, including archived fields. Include an ID for each existing field and omit the ID for new fields. Omitted update attributes retain their existing values. To archive an existing field, set archived to true and provide archiveReason. All existing fields must be included; omission is not deletion. Configured schema field limits apply.

## Response

### 202

Task started

- `pollingUri` (string, optional)
- `taskId` (string, optional)

## Errors

### 400 Bad Request Error

Bad Request

- `detail` (GeneralErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 403 Forbidden Error

Forbidden

- `detail` (GeneralErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 404 Not Found Error

Not Found

- `detail` (GeneralErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 409 Conflict Error

Conflict

- `detail` (GeneralErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 429 Too Many Requests Error

Too Many Requests

- `detail` (TooManyRequestsErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `invalidId` (string, optional)

### 500 Internal Server Error

Internal Server Error

- `detail` (InternalServerErrorDetail, required, nullable)
- `instance` (string, required)
- `status` (integer, required)
- `title` (string, required, nullable)
- `type` (string, required)
- `errorId` (string, optional)

## Types

### StudySchemaSetFieldDefinitionsInputFieldDefinitionsItems

- CreateBooleanFieldDefinitionInput: CreateBooleanFieldDefinitionInput
- CreateDateFieldDefinitionInput: CreateDateFieldDefinitionInput
- CreateDateTimeFieldDefinitionInput: CreateDateTimeFieldDefinitionInput
- CreateDecimalFieldDefinitionInput: CreateDecimalFieldDefinitionInput
- CreateIntegerFieldDefinitionInput: CreateIntegerFieldDefinitionInput
- CreateJsonFieldDefinitionInput: CreateJsonFieldDefinitionInput
- CreateLongTextFieldDefinitionInput: CreateLongTextFieldDefinitionInput
- CreateTextFieldDefinitionInput: CreateTextFieldDefinitionInput
- CreateAaSequenceLinkFieldDefinitionInput: CreateAaSequenceLinkFieldDefinitionInput
- CreateProteinLinkFieldDefinitionInput: CreateProteinLinkFieldDefinitionInput
- CreateAnyEntityLinkFieldDefinitionInput: CreateAnyEntityLinkFieldDefinitionInput
- CreateAttachmentLinkFieldDefinitionInput: CreateAttachmentLinkFieldDefinitionInput
- CreateCustomEntityLinkFieldDefinitionInput: CreateCustomEntityLinkFieldDefinitionInput
- CreateDnaSequenceLinkFieldDefinitionInput: CreateDnaSequenceLinkFieldDefinitionInput
- CreateDropdownLinkFieldDefinitionInput: CreateDropdownLinkFieldDefinitionInput
- CreateEquipmentLinkFieldDefinitionInput: CreateEquipmentLinkFieldDefinitionInput
- CreateFieldsetLinkFieldDefinitionInput: CreateFieldsetLinkFieldDefinitionInput
- CreateMixtureLinkFieldDefinitionInput: CreateMixtureLinkFieldDefinitionInput
- CreateMoleculeLinkFieldDefinitionInput: CreateMoleculeLinkFieldDefinitionInput
- CreateOligoConjugateLinkFieldDefinitionInput: CreateOligoConjugateLinkFieldDefinitionInput
- CreateOligoDuplexLinkFieldDefinitionInput: CreateOligoDuplexLinkFieldDefinitionInput
- CreateRnaSequenceLinkFieldDefinitionInput: CreateRnaSequenceLinkFieldDefinitionInput
- CreateStorableLinkFieldDefinitionInput: CreateStorableLinkFieldDefinitionInput
- CreateSystemCategoryLinkFieldDefinitionInput: CreateSystemCategoryLinkFieldDefinitionInput
- UpdateBooleanFieldDefinitionInput: UpdateBooleanFieldDefinitionInput
- UpdateDateFieldDefinitionInput: UpdateDateFieldDefinitionInput
- UpdateDateTimeFieldDefinitionInput: UpdateDateTimeFieldDefinitionInput
- UpdateDecimalFieldDefinitionInput: UpdateDecimalFieldDefinitionInput
- UpdateIntegerFieldDefinitionInput: UpdateIntegerFieldDefinitionInput
- UpdateJsonFieldDefinitionInput: UpdateJsonFieldDefinitionInput
- UpdateLongTextFieldDefinitionInput: UpdateLongTextFieldDefinitionInput
- UpdateTextFieldDefinitionInput: UpdateTextFieldDefinitionInput
- UpdateAaSequenceLinkFieldDefinitionInput: UpdateAaSequenceLinkFieldDefinitionInput
- UpdateProteinLinkFieldDefinitionInput: UpdateProteinLinkFieldDefinitionInput
- UpdateAnyEntityLinkFieldDefinitionInput: UpdateAnyEntityLinkFieldDefinitionInput
- UpdateAttachmentLinkFieldDefinitionInput: UpdateAttachmentLinkFieldDefinitionInput
- UpdateCustomEntityLinkFieldDefinitionInput: UpdateCustomEntityLinkFieldDefinitionInput
- UpdateDnaSequenceLinkFieldDefinitionInput: UpdateDnaSequenceLinkFieldDefinitionInput
- UpdateDropdownLinkFieldDefinitionInput: UpdateDropdownLinkFieldDefinitionInput
- UpdateEquipmentLinkFieldDefinitionInput: UpdateEquipmentLinkFieldDefinitionInput
- UpdateFieldsetLinkFieldDefinitionInput: UpdateFieldsetLinkFieldDefinitionInput
- UpdateMixtureLinkFieldDefinitionInput: UpdateMixtureLinkFieldDefinitionInput
- UpdateMoleculeLinkFieldDefinitionInput: UpdateMoleculeLinkFieldDefinitionInput
- UpdateOligoConjugateLinkFieldDefinitionInput: UpdateOligoConjugateLinkFieldDefinitionInput
- UpdateOligoDuplexLinkFieldDefinitionInput: UpdateOligoDuplexLinkFieldDefinitionInput
- UpdateRnaSequenceLinkFieldDefinitionInput: UpdateRnaSequenceLinkFieldDefinitionInput
- UpdateStorableLinkFieldDefinitionInput: UpdateStorableLinkFieldDefinitionInput
- UpdateSystemCategoryLinkFieldDefinitionInput: UpdateSystemCategoryLinkFieldDefinitionInput

### GeneralErrorDetail

- string
- map from string to any

### TooManyRequestsErrorDetail

- string
- map from string to any

### InternalServerErrorDetail

- string
- map from string to any

### CreateBooleanFieldDefinitionInput

- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `BOOLEAN`
- `description` (string, optional) — An optional user-provided description of this field definition.

### CreateDateFieldDefinitionInput

- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `DATE`
- `description` (string, optional) — An optional user-provided description of this field definition.

### CreateDateTimeFieldDefinitionInput

- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `DATE_TIME`
- `description` (string, optional) — An optional user-provided description of this field definition.

### CreateDecimalFieldDefinitionInput

- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `DECIMAL`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `displayPrecision` (integer, optional) — The number of decimal places to display (0 to 10).
- `numericMax` (double, optional) — The maximum allowed value, inclusive.
- `numericMin` (double, optional) — The minimum allowed value, inclusive.
- `unitId` (string, optional) — The API ID of the unit to associate with this field.

### CreateIntegerFieldDefinitionInput

- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `INTEGER`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `numericMax` (double, optional) — The maximum allowed value, inclusive.
- `numericMin` (double, optional) — The minimum allowed value, inclusive.
- `unitId` (string, optional) — The API ID of the unit to associate with this field.

### CreateJsonFieldDefinitionInput

- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `JSON`
- `description` (string, optional) — An optional user-provided description of this field definition.

### CreateLongTextFieldDefinitionInput

- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `LONG_TEXT`
- `description` (string, optional) — An optional user-provided description of this field definition.

### CreateTextFieldDefinitionInput

- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `TEXT`
- `description` (string, optional) — An optional user-provided description of this field definition.

### CreateAaSequenceLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `AA_SEQUENCE_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.

### CreateProteinLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `PROTEIN_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.

### CreateAnyEntityLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `ENTITY_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.

### CreateAttachmentLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `ATTACHMENT_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.

### CreateCustomEntityLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `CUSTOM_ENTITY_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.

### CreateDnaSequenceLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `DNA_SEQUENCE_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.

### CreateDropdownLinkFieldDefinitionInput

- `dropdownId` (string, required) — The API ID of the Dropdown that defines the available options.
- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `DROPDOWN`
- `description` (string, optional) — An optional user-provided description of this field definition.

### CreateEquipmentLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `EQUIPMENT_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.

### CreateFieldsetLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required) — The API ID of the schema/interface that linked items must belong to.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `FIELDSET_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.

### CreateMixtureLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `MIXTURE_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.

### CreateMoleculeLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `MOLECULE_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.

### CreateOligoConjugateLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `OLIGO_CONJUGATE_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.

### CreateOligoDuplexLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `OLIGO_DUPLEX_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.

### CreateRnaSequenceLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required) — The API ID of the schema/interface that linked items must belong to.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `RNA_SEQUENCE_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.

### CreateStorableLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `STORAGE_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.

### CreateSystemCategoryLinkFieldDefinitionInput

- `isMulti` (boolean, required) — When true, multiple linked values are allowed.
- `isRequired` (boolean, required) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, required) — The API ID of the schema/interface that linked items must belong to.
- `name` (string, required) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, required) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `type` (enum, required)
  - Allowed values: `SYSTEM_CATEGORY_LINK`
- `description` (string, optional) — An optional user-provided description of this field definition.

### UpdateBooleanFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `BOOLEAN`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateDateFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `DATE`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateDateTimeFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `DATE_TIME`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateDecimalFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `DECIMAL`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `displayPrecision` (integer, optional) — The number of decimal places to display (0 to 10).
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `numericMax` (double, optional) — The maximum allowed value, inclusive.
- `numericMin` (double, optional) — The minimum allowed value, inclusive.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `unitId` (string, optional) — The API ID of the unit to associate with this field.

### UpdateIntegerFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `INTEGER`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `numericMax` (double, optional) — The maximum allowed value, inclusive.
- `numericMin` (double, optional) — The minimum allowed value, inclusive.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.
- `unitId` (string, optional) — The API ID of the unit to associate with this field.

### UpdateJsonFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `JSON`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateLongTextFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `LONG_TEXT`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateTextFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `TEXT`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateAaSequenceLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `AA_SEQUENCE_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateProteinLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `PROTEIN_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateAnyEntityLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `ENTITY_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateAttachmentLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `ATTACHMENT_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateCustomEntityLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `CUSTOM_ENTITY_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateDnaSequenceLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `DNA_SEQUENCE_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateDropdownLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `DROPDOWN`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `dropdownId` (string, optional) — The API ID of the Dropdown that defines the available options.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateEquipmentLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `EQUIPMENT_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateFieldsetLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `FIELDSET_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional) — The API ID of the schema/interface that linked items must belong to.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateMixtureLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `MIXTURE_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateMoleculeLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `MOLECULE_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateOligoConjugateLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `OLIGO_CONJUGATE_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateOligoDuplexLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `OLIGO_DUPLEX_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateRnaSequenceLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `RNA_SEQUENCE_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isParent` (boolean, optional) — When true, indicates a parent-child relationship used in the registry's lot-numbering functionality.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional) — The API ID of the schema/interface that linked items must belong to.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateStorableLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `STORAGE_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional, nullable) — The API ID of the schema to constrain links to, or null to allow links to any item of the linked type.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

### UpdateSystemCategoryLinkFieldDefinitionInput

- `id` (string, required) — The API ID of the field definition to update.
- `type` (enum, required)
  - Allowed values: `SYSTEM_CATEGORY_LINK`
- `archiveReason` (string, optional) — The reason this field definition was archived, if applicable.
- `archived` (boolean, optional) — Whether this field definition has been archived.
- `description` (string, optional) — An optional user-provided description of this field definition.
- `isMulti` (boolean, optional) — When true, multiple linked values are allowed.
- `isRequired` (boolean, optional) — When true, a value must be provided for this field.
- `linkDefinitionId` (string, optional) — The API ID of the schema/interface that linked items must belong to.
- `name` (string, optional) — The user-facing display name of this field definition. Must be unique within the schema.
- `systemName` (string, optional) — The machine-readable identifier used as the warehouse column name. Must be unique within the schema.

## Examples

**Request**

```json
{
  "fieldDefinitions": [
    {
      "isRequired": true,
      "name": "string",
      "systemName": "string",
      "type": "BOOLEAN"
    }
  ]
}
```

**Response**

```json
{
  "pollingUri": "string",
  "taskId": "string"
}
```

**SDK Code**

```python
import requests

url = "https://{tenant_name}.benchling.com/api/v3/study-schema/study_schema_id:set-field-definitions"

payload = { "fieldDefinitions": [
        {
            "isRequired": True,
            "name": "string",
            "systemName": "string",
            "type": "BOOLEAN"
        }
    ] }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://{tenant_name}.benchling.com/api/v3/study-schema/study_schema_id:set-field-definitions';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"fieldDefinitions":[{"isRequired":true,"name":"string","systemName":"string","type":"BOOLEAN"}]}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```