Benchling Study Schema API

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`.

Operations 10

POST /study-schema Create StudySchema #
GET /study-schema/items List StudySchema items #
GET /study-schema/{study_schema_id} Get StudySchema by ID #
PATCH /study-schema/{study_schema_id} Update StudySchema #
GET /study-schema/{study_schema_id}/entry-templates/items List EntryTemplate items #
GET /study-schema/{study_schema_id}/field-definitions/items List SchemaFieldDefinition items #
POST /study-schema:batch-create Batch create StudySchema #
PATCH /study-schema:batch-update Batch update StudySchema #
POST /study-schema:bulk-create Bulk create StudySchema #
PATCH /study-schema:bulk-update Bulk update StudySchema #

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-studyschema-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-studyschema-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 Study Schema API
  version: 2.0.0
  description: '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`.'
servers:
- url: /api/v3
security:
- oAuth: []
- basicApiKeyAuth: []
tags:
- description: '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`.'
  name: StudySchema
  x-bnch-organization: Benchling
paths:
  /study-schema:
    post:
      description: Create StudySchema.
      operationId: StudySchema.Create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateStudySchemaInput'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StudySchema'
          description: Created
        '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: Create StudySchema
      tags:
      - StudySchema
      x-bnch-rate-limit-tier: 4
  /study-schema/items:
    get:
      description: List StudySchema items.
      operationId: StudySchema.List
      parameters:
      - $ref: '#/components/parameters/archiveReason.anyOf'
      - $ref: '#/components/parameters/archived.anyOf'
      - $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/modifiedAt.gt'
      - $ref: '#/components/parameters/modifiedAt.gte'
      - $ref: '#/components/parameters/modifiedAt.lt'
      - $ref: '#/components/parameters/modifiedAt.lte'
      - $ref: '#/components/parameters/name.anyOf'
      - $ref: '#/components/parameters/name.anyOf.caseSensitive'
      - $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) and modifiedAt (modified time, oldest first). Use :asc or :desc to specify ascending or descending order. Default is modifiedAt:desc.'
        in: query
        name: sort
        schema:
          default: modifiedAt:desc
          enum:
          - createdAt:asc
          - createdAt:desc
          - modifiedAt:asc
          - modifiedAt:desc
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StudySchemaPaginatedList'
          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 StudySchema items
      tags:
      - StudySchema
      x-bnch-rate-limit-tier: 4
  /study-schema/{study_schema_id}:
    get:
      description: Get a single StudySchema by ID.
      operationId: StudySchema.Get
      parameters:
      - description: ID of the StudySchema.
        in: path
        name: study_schema_id
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/returning'
      - $ref: '#/components/parameters/omit'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StudySchema'
          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 StudySchema by ID
      tags:
      - StudySchema
      x-bnch-rate-limit-tier: 5
    patch:
      description: Update StudySchema.
      operationId: StudySchema.Update
      parameters:
      - description: ID of the StudySchema.
        in: path
        name: study_schema_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateStudySchemaInput'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StudySchema'
          description: OK
        '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: Update StudySchema
      tags:
      - StudySchema
      x-bnch-rate-limit-tier: 4
  /study-schema/{study_schema_id}/entry-templates/items:
    get:
      description: List EntryTemplate items.
      operationId: StudySchema.entryTemplates.List
      parameters:
      - description: ID of the StudySchema.
        in: path
        name: study_schema_id
        required: true
        schema:
          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/EntryTemplateUnpaginatedList'
          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 EntryTemplate items
      tags:
      - StudySchema
      x-bnch-rate-limit-tier: 4
  /study-schema/{study_schema_id}/field-definitions/items:
    get:
      description: List SchemaFieldDefinition items.
      operationId: StudySchema.fieldDefinitions.List
      parameters:
      - description: ID of the StudySchema.
        in: path
        name: study_schema_id
        required: true
        schema:
          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/SchemaFieldDefinitionUnpaginatedList'
          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 SchemaFieldDefinition items
      tags:
      - StudySchema
      x-bnch-rate-limit-tier: 4
  /study-schema:batch-create:
    post:
      description: Batch create StudySchema synchronously in one transaction. Maximum 25 items per request.
      operationId: StudySchema.BatchCreate
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              properties:
                items:
                  items:
                    $ref: '#/components/schemas/CreateStudySchemaInput'
                  maxItems: 25
                  minItems: 1
                  type: array
              required:
              - items
              type: object
      responses:
        '201':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/StudySchema'
                    type: array
                required:
                - items
                type: object
          description: Created
        '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: Batch create StudySchema
      tags:
      - StudySchema
      x-bnch-rate-limit-tier: 3
  /study-schema:batch-update:
    patch:
      description: Batch update StudySchema synchronously in one transaction. Maximum 25 items per request.
      operationId: StudySchema.BatchUpdate
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              properties:
                items:
                  items:
                    $ref: '#/components/schemas/UpdateStudySchemaInputWithPathParams'
                  maxItems: 25
                  minItems: 1
                  type: array
              required:
              - items
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                additionalProperties: false
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/StudySchema'
                    type: array
                required:
                - items
                type: object
          description: OK
        '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: Batch update StudySchema
      tags:
      - StudySchema
      x-bnch-rate-limit-tier: 3
  /study-schema:bulk-create:
    post:
      description: Bulk create StudySchema.
      operationId: StudySchema.BulkCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkImport'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncTaskLink'
          description: Task started
        '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: Bulk create StudySchema
      tags:
      - StudySchema
      x-bnch-rate-limit-tier: 2
  /study-schema:bulk-update:
    patch:
      description: Bulk update StudySchema.
      operationId: StudySchema.BulkUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkImport'
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncTaskLink'
          description: Task started
        '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: Bulk update StudySchema
      tags:
      - StudySchema
      x-bnch-rate-limit-tier: 2
components:
  schemas:
    CustomEntitySchemaRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    CreateDnaSequenceLinkFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent DNA sequence. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        linkDefinitionId:
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - DNA_SEQUENCE_LINK
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      - isMulti
      - linkDefinitionId
      type: object
    CreateDateFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isRequired:
          type: boolean
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - DATE
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      type: object
    CreateFloatFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        displayPrecision:
          type: integer
        isRequired:
          type: boolean
        name:
          type: string
        numericMax:
          type: number
        numericMin:
          type: number
        systemName:
          type: string
        type:
          enum:
          - FLOAT
          type: string
        unitId:
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      type: object
    CustomField:
      description: 'A name-value pair for storing additional metadata on objects that support custom fields.

        CustomFields provide a flexible way to attach arbitrary string data to entities, containers,

        datasets, and other Benchling objects without modifying their schemas. Objects that can

        have custom fields implement the HasCustomFields interface. Unlike schema-defined fields,

        custom fields are not validated against a schema and can be freely added or modified.'
      properties:
        __typename:
          type: string
        name:
          type:
          - 'null'
          - string
        value:
          type:
          - 'null'
          - string
      type: object
    AssayRequestLinkFieldDefinition:
      description: A schema field definition for linking to assay requests.
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          type: boolean
        isRequired:
          type: boolean
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    EntrySchemaRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    RunSchemaRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    CreateBooleanFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isRequired:
          type: boolean
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - BOOLEAN
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      type: object
    LongTextFieldDefinition:
      description: A long text field definition for multi-line text values with no length restrictions.
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isRequired:
          type: boolean
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    SchemaFieldValue:
      description: 'Represents a field value on a schematized object, pairing a `fieldDefinition` (describing the

        field''s type and constraints) with its actual `value` (a `BenchlingValue` such as text, number,

        date, or link to another object). The value may be null if no value has been set. Used within

        the `schemaFields` collection on objects that implement `HasSchema` to provide access to all

        custom field values defined by the object''s schema.'
      properties:
        __typename:
          type: string
        fieldDefinition:
          $ref: '#/components/schemas/SchemaFieldDefinitionRef'
        id:
          type: string
        linkedEntityId:
          type:
          - 'null'
          - string
        value:
          description: Union of BooleanValue, DateTimeValue, DateValue, DecimalValue, IntegerValue, JsonValue, ObjectLinkValue, ObjectLinkListValue, TextAndUrlValue, TextValue, ArrayValue
          oneOf:
          - anyOf:
            - $ref: '#/components/schemas/BooleanValue'
            - $ref: '#/components/schemas/DateTimeValue'
            - $ref: '#/components/schemas/DateValue'
            - $ref: '#/components/schemas/DecimalValue'
            - $ref: '#/components/schemas/IntegerValue'
            - $ref: '#/components/schemas/JsonValue'
            - $ref: '#/components/schemas/ObjectLinkValue'
            - $ref: '#/components/schemas/ObjectLinkListValue'
            - $ref: '#/components/schemas/TextAndUrlValue'
            - $ref: '#/components/schemas/TextValue'
            - $ref: '#/components/schemas/ArrayValue'
            discriminator:
              propertyName: __typename
          - type: 'null'
      type: object
    ResultSchemaRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    CustomEntityLinkFieldDefinition:
      description: A schema field definition for linking to custom entities.
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent custom entity. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        linkDefinition:
          oneOf:
          - $ref: '#/components/schemas/CustomEntitySchemaRef'
          - type: 'null'
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    UpdateStudySchemaInput:
      additionalProperties: false
      example:
        entryTemplateIds:
        - etr_kT6BHBdZ
        - etr_3wievUIJ
        isDesignApprovalRequired: false
        name: Phase II Clinical Study (Updated)
      properties:
        archiveReason:
          type: string
        archived:
          type: boolean
        description:
          description: Updated description. When provided, must be at most 1000 characters.
          type: string
        displayName:
          deprecated: true
          description: Deprecated. Use name instead.
          type: string
        entryTemplateIds:
          description: Replacement entry template IDs for this schema.
          items:
            type: string
          type: array
        idGenerationMode:
          description: 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.
          enum:
          - AUTO_GENERATED_FROM_PREFIX
          - MANUAL
          type: string
        isDesignApprovalRequired:
          description: Updated design approval requirement.
          type: boolean
        name:
          description: Updated user-facing name. When provided, must be non-empty after stripping whitespace, at most 255 characters, and unique within the organization.
          type: string
        prefix:
          description: Updated ID prefix for this schema.
          type: string
        systemName:
          description: 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.
          type: string
      type: object
    DateTimeValue:
      description: A type that represents datetime values.
      properties:
        __typename:
          type: string
        value:
          description: The datetime value with UTC as the timezone.
          format: datetime
          type: string
      type: object
    TranslationLinkFieldDefinition:
      description: A schema field definition for linking to translations (AA sequences created from RNA).
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent AA sequence. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    OrganizationRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    MixtureLinkFieldDefinition:
      description: A schema field definition for linking to mixtures.
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent mixture. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        linkDefinition:
          oneOf:
          - $ref: '#/components/schemas/MixtureSchemaRef'
          - type: 'null'
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
      type: object
    DropdownRef:
      properties:
        __typename:
          type: string
        id:
          format: api_id
          type: string
      type: object
    CreateRnaSequenceLinkFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent RNA sequence. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        linkDefinitionId:
          type: string
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - RNA_SEQUENCE_LINK
          type: string
      required:
      - name
      - systemName
      - isRequired
      - type
      - isMulti
      - linkDefinitionId
      type: object
    BaseFieldDefinition:
      description: 'A basic schema field definition for primitive data types. Used for fields with types like TEXT,

        INTEGER, FLOAT, BOOLEAN, DATE, DATETIME, JSON, and LONG_TEXT. Each field has a user-facing

        `name` and a `systemName` for warehouse/API access. Fields can be archived when no longer needed. For fields

        that link to other objects, use `SchemaLinkFieldDefinition`; for dropdown selections, use

        `DropdownLinkFieldDefinition`.'
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        derivationType:
          enum:
          - DIRECT
          - COMPUTED
          - SNAPSHOT
          type: string
        description:
          type:
          - 'null'
          - string
        id:
          type: string
        isMulti:
          description: Determines whether multiple values are allowed
          type: boolean
        isRequired:
          description: Determines whether values must be provided
          type: boolean
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
          - AA_PART_LINK
          - AA_SEQUENCE_LINK
          - ASSAY_REQUEST_LINK
          - ASSAY_RESULT_LINK
          - ASSAY_RUN_LINK
          - BATCH_LINK
          - BLOB_LINK
          - BOOLEAN
          - CUSTOM_ENTITY_LINK
          - DATE
          - DATETIME
          - DNA_SEQUENCE_LINK
          - ENTITY_LINK
          - ENTRY_LINK
          - FLOAT
          - INTEGER
          - JSON
          - LONG_TEXT
          - MIXTURE_LINK
          - MOLECULE_LINK
          - BASE_MOLECULE_LINK
          - PART_LINK
          - SAMPLE_LINK
          - DROPDOWN
          - STORAGE_LINK
          - TEXT
          - TRANSCRIPTION_LINK
          - TRANSLATION_LINK
          type: string
      type: object
    StudySchema:
      description: '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`.'
      properties:
        __typename:
          type: string
        archiveReason:
          type:
          - 'null'
          - string
        archived:
          type: boolean
        createdAt:
          format: datetime
          type:
          - 'null'
          - string
        creator:
          $ref: '#/components/schemas/PrincipalRef'
        description:
          description: A description of this study schema for documentation purposes.
          type: string
        entryTemplates:
          format: uri
          type: string
        fieldDefinitions:
          format: uri
          type: string
        id:
          type: string
        idGenerationMode:
          description: How Study IDs are assigned for studies of this schema.
          enum:
          - AUTO_GENERATED_FROM_PREFIX
          - MANUAL
          type: string
        isDesignApprovalRequired:
          type: boolean
        modifiedAt:
          format: datetime
          type:
          - 'null'
          - string
        name:
          type: string
        organization:
          $ref: '#/components/schemas/OrganizationRef'
        prefix:
          type:
          - 'null'
          - string
        studyType:
          enum:
          - CUSTOM
          - PROCESS_DEVELOPMENT
          - ASSAY_DEVELOPMENT
          - CLINICAL
          - PRECLINICAL
          type: string
      type: object
    CreateCustomEntityLinkFieldDefinitionInput:
      additionalProperties: false
      properties:
        description:
          type: string
        isMulti:
          type: boolean
        isParent:
          description: 'Means the link is from a child to a parent custom entity. Important for the registry''s lot-numbering

            functionality.'
          type: boolean
        isRequired:
          type: boolean
        linkDefinitionId:
          type:
          - 'null'
          - string
        name:
          type: string
        systemName:
          type: string
        type:
          enum:
        

# --- truncated at 32 KB (101 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/benchling/refs/heads/main/openapi/benchling-studyschema-api-openapi.yml