---
title: "Update StudySchema"
method: PATCH
path: "/api/v3/study-schema/{study_schema_id}"
tags: ["Study Schema"]
---

# Update StudySchema

`PATCH /api/v3/study-schema/{study_schema_id}`

## Request

- Base URL: `https://{tenant_name}.benchling.com`
- URL: `https://{tenant_name}.benchling.com/api/v3/study-schema/{study_schema_id}`
- Auth: HTTP bearer

Update a study schema. Only the supplied fields are changed; `studyType` cannot be changed after creation.

## ID generation

- Changing `idGenerationMode` or `prefix` affects only studies created after this update; existing study IDs do not change.
- When changing to `AUTO_GENERATED_FROM_PREFIX`, provide a non-empty, unique `prefix`. Numbering continues from the highest existing study ID that uses the prefix.
- When changing to `MANUAL`, the prefix is cleared.

## Restrictions

- When provided, `entryTemplateIds` replaces all existing entry-template associations. It is supported only for `CUSTOM` study schemas. Provide at most 50 IDs.
- `isDesignApprovalRequired` is supported for `CUSTOM` schemas and, when design review is enabled for the tenant, for `CLINICAL` and `PRECLINICAL` schemas. It is not supported for `PROCESS_DEVELOPMENT` or `ASSAY_DEVELOPMENT` schemas.
- `systemName` can be changed only when warehouse table-name changes are enabled for the caller; otherwise, a request that changes it fails with a validation error. Supplying the schema's exact current `systemName` always succeeds.

## Path parameters

- `study_schema_id` string, required

## Request body

- UpdateStudySchemaInput
  - `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`.
  - `description` string: Updated description. When provided, must be at most 1000 characters.
  - `displayName` string: Deprecated. Use name instead.
  - `entryTemplateIds` string[]: Replacement entry template IDs for this schema.
  - `idGenerationMode` 'AUTO_GENERATED_FROM_PREFIX' | 'MANUAL': Updated study ID generation mode. Changing this setting only affects studies created from now on; existing studies keep their IDs. When switching to AUTO_GENERATED_FROM_PREFIX, numbering continues from the highest existing ID that uses the prefix. When switching to MANUAL, the prefix is automatically cleared if no prefix value is provided.
  - `isDesignApprovalRequired` boolean: Updated design approval requirement.
  - `name` string: Updated user-facing name. When provided, must be non-empty after stripping whitespace, at most 255 characters, and unique within the organization.
  - `prefix` string: Updated ID prefix for this schema.
  - `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.

## Response `200`

OK

- StudySchema: A configuration template that defines the structure and behavior of Studies within an organization. Each `StudySchema` specifies the `studyType`, which determines available features and workflow capabilities. Schemas define custom fields through `fieldDefinitions` that studies of this type must populate. The `isDesignApprovalRequired` flag controls whether study designs must go through a review process before execution. Associated `entryTemplates` provide standardized notebook templates for documenting study work. Studies reference their schema via `Study.studySchema`.
  - `__typename` string
  - `archiveReason` string, nullable
  - `archived` boolean
  - `createdAt` string, datetime, nullable
  - `creator` PrincipalRef
    - `__typename` string
    - `id` string, api_id
  - `description` string: A description of this study schema for documentation purposes.
  - `entryTemplates` string, uri
  - `fieldDefinitions` string, uri
  - `id` string
  - `idGenerationMode` 'AUTO_GENERATED_FROM_PREFIX' | 'MANUAL': How Study IDs are assigned for studies of this schema.
  - `isDesignApprovalRequired` boolean
  - `modifiedAt` string, datetime, nullable
  - `name` string
  - `organization` OrganizationRef
    - `__typename` string
    - `id` string, api_id
  - `prefix` string, nullable
  - `studyType` 'CUSTOM' | 'PROCESS_DEVELOPMENT' | 'ASSAY_DEVELOPMENT' | 'CLINICAL' | 'PRECLINICAL'

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