openapi: 3.2.0 info: license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html title: Benchling Procedure Run Plan API version: 2.0.0 description: 'A draft experiment plan that can be promoted to a `ProcedureRun` for execution. Scientists use run plans to configure experimental conditions, parameter values, and replicates before starting an actual experiment. Belongs to a `Study` and references a procedure template via either `templateProcedureFlowchartVersion` (for legacy flowcharts) or `procedureFlowchartConfigVersionProxy` (for new-style workflow flowcharts). Contains `ProcedureRunPlanCondition` objects that define the different experimental configurations to test. The `dataEntryMode` (see `ProcedureRunDataEntryMode`) specifies whether each condition-replicate will have its own data entry worksheet or share a single worksheet. The `confirmationMethodByParamVersionId` allows overriding default confirmation methods for specific parameters. Upon promotion, the run plan becomes a `ProcedureRun` with corresponding `ProcedureRunCondition` and `ProcedureRunConditionReplicate` objects. Also known as a "draft experiment" in the Benchling UI.' servers: - url: /api/v3 security: - oAuth: [] - basicApiKeyAuth: [] tags: - description: 'A draft experiment plan that can be promoted to a `ProcedureRun` for execution. Scientists use run plans to configure experimental conditions, parameter values, and replicates before starting an actual experiment. Belongs to a `Study` and references a procedure template via either `templateProcedureFlowchartVersion` (for legacy flowcharts) or `procedureFlowchartConfigVersionProxy` (for new-style workflow flowcharts). Contains `ProcedureRunPlanCondition` objects that define the different experimental configurations to test. The `dataEntryMode` (see `ProcedureRunDataEntryMode`) specifies whether each condition-replicate will have its own data entry worksheet or share a single worksheet. The `confirmationMethodByParamVersionId` allows overriding default confirmation methods for specific parameters. Upon promotion, the run plan becomes a `ProcedureRun` with corresponding `ProcedureRunCondition` and `ProcedureRunConditionReplicate` objects. Also known as a "draft experiment" in the Benchling UI.' name: ProcedureRunPlan x-bnch-organization: Benchling paths: /procedure-run-plan: post: description: 'Create a draft recipe or assay run plan (procedure run plan) within a study. ## Required fields | Field | Description | | --- | --- | | `description` | Human-readable description of the plan | | `studyId` | ID of the parent study (`stdy_XXXXXXXX`). Use `GET /benchling/study/items` to list studies. | | `confirmationMethodByParamVersionId` | Confirmation method overrides per parameter (pass `[]` for no overrides) | ## Optional fields | Field | Default | Description | | --- | --- | --- | | `dataEntryMode` | `INDIVIDUAL_CONDITION_REPLICATES` | Controls worksheet creation upon promotion | | `workflowFlowchartConfigVersionId` | `null` | Optional ID of the workflow flowchart config version (`wffccv_XXXXXXXX`) defining the procedure structure | ## Notes - The **creator** is automatically set to the authenticated user. - `description` must not exceed 255 characters. - The study must be of a type that supports run plans (e.g., recipe or assay run studies). Assay development studies reject `ALL_CONDITION_REPLICATES_TOGETHER` mode. - After creating the plan, add conditions using the Create ProcedureRunPlanCondition endpoint. - When the plan is ready, promote it to an active run using the Promote endpoint.' operationId: ProcedureRunPlan.Create parameters: - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateProcedureRunPlanInput' responses: '201': content: application/json: schema: $ref: '#/components/schemas/ProcedureRunPlan' 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 ProcedureRunPlan tags: - ProcedureRunPlan x-bnch-rate-limit-tier: 4 /procedure-run-plan/items: get: description: List ProcedureRunPlan items. operationId: ProcedureRunPlan.List parameters: - $ref: '#/components/parameters/createdAt.gt' - $ref: '#/components/parameters/createdAt.gte' - $ref: '#/components/parameters/createdAt.lt' - $ref: '#/components/parameters/createdAt.lte' - $ref: '#/components/parameters/creator.anyOf' - $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/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 - 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/ProcedureRunPlanPaginatedList' 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 ProcedureRunPlan items tags: - ProcedureRunPlan x-bnch-rate-limit-tier: 4 /procedure-run-plan/{procedure_run_plan_id}: get: description: Get a single ProcedureRunPlan by ID. operationId: ProcedureRunPlan.Get parameters: - description: ID of the ProcedureRunPlan. in: path name: procedure_run_plan_id required: true schema: type: string - $ref: '#/components/parameters/returning' - $ref: '#/components/parameters/omit' - 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/ProcedureRunPlan' 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 ProcedureRunPlan by ID tags: - ProcedureRunPlan x-bnch-rate-limit-tier: 5 patch: description: 'Update a run plan. ## Constraints - **Cannot update a plan that has been turned into a run.** Once a plan has been turned into a run, it is immutable. - `dataEntryMode` set to `ALL_CONDITION_REPLICATES_TOGETHER` is rejected for assay development study plans. ## Reordering conditions Use `conditionOrder` to reorder existing conditions within a procedure method definition version (PMDV). Each entry specifies a `templateMethodVersionId` and an ordered list of `conditionIds`. The list must include **every** existing condition ID for that PMDV — no duplicates, no omissions, and no IDs from other PMDVs or plans.' operationId: ProcedureRunPlan.Update parameters: - description: ID of the ProcedureRunPlan. in: path name: procedure_run_plan_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 requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateProcedureRunPlanInput' responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProcedureRunPlan' 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 ProcedureRunPlan tags: - ProcedureRunPlan x-bnch-rate-limit-tier: 4 /procedure-run-plan/{procedure_run_plan_id}/procedure-run-plan-conditions/items: get: description: List ProcedureRunPlanCondition items. operationId: ProcedureRunPlan.procedureRunPlanConditions.List parameters: - description: ID of the ProcedureRunPlan. in: path name: procedure_run_plan_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/ProcedureRunPlanConditionUnpaginatedList' 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 ProcedureRunPlanCondition items tags: - ProcedureRunPlan x-bnch-rate-limit-tier: 4 /procedure-run-plan:batch-create: post: description: Batch create ProcedureRunPlan synchronously in one transaction. Maximum 25 items per request. operationId: ProcedureRunPlan.BatchCreate parameters: - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string requestBody: content: application/json: schema: additionalProperties: false properties: items: items: $ref: '#/components/schemas/CreateProcedureRunPlanInput' maxItems: 25 minItems: 1 type: array required: - items type: object responses: '201': content: application/json: schema: additionalProperties: false properties: items: items: $ref: '#/components/schemas/ProcedureRunPlan' 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 ProcedureRunPlan tags: - ProcedureRunPlan x-bnch-rate-limit-tier: 3 /procedure-run-plan:batch-update: patch: description: Batch update ProcedureRunPlan synchronously in one transaction. Maximum 25 items per request. operationId: ProcedureRunPlan.BatchUpdate parameters: - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string requestBody: content: application/json: schema: additionalProperties: false properties: items: items: $ref: '#/components/schemas/UpdateProcedureRunPlanInputWithPathParams' maxItems: 25 minItems: 1 type: array required: - items type: object responses: '200': content: application/json: schema: additionalProperties: false properties: items: items: $ref: '#/components/schemas/ProcedureRunPlan' 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 ProcedureRunPlan tags: - ProcedureRunPlan x-bnch-rate-limit-tier: 3 /procedure-run-plan:bulk-create: post: description: Bulk create up to 25 run plans. Returns an async task link — poll the task to retrieve created object IDs. Each item follows the same field requirements as the single-create endpoint. operationId: ProcedureRunPlan.BulkCreate parameters: - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string 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 ProcedureRunPlan tags: - ProcedureRunPlan x-bnch-rate-limit-tier: 2 /procedure-run-plan:bulk-update: patch: description: Bulk update up to 25 run plans. Returns an async task link — poll the task to retrieve results. Each item follows the same constraints as the single-update endpoint. operationId: ProcedureRunPlan.BulkUpdate parameters: - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string 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 ProcedureRunPlan tags: - ProcedureRunPlan x-bnch-rate-limit-tier: 2 /procedure-run-plan:promote: post: description: Turn procedure run plans into active procedure runs. Plans must not already be converted. Returns an async task — poll the task endpoint for completion and the created procedure run IDs operationId: ProcedureRunPlan.Promote parameters: - description: Set to true to access beta operations via /api/v3. in: header name: EARLY-ACCESS required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/PromoteProcedureRunPlanInput' 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: Turn procedure run plans into active procedure runs. Plans must not already be converted. Returns an async task — poll the task endpoint for completion and the created procedure run IDs tags: - ProcedureRunPlan x-bnch-rate-limit-tier: 4 /tasks/procedure-run-plan/promote/{task_id}: get: description: Poll status for Turn procedure run plans into active procedure runs. Plans must not already be converted. Returns an async task — poll the task endpoint for completion and the created procedure run IDs. operationId: ProcedureRunPlan.Promote.Get parameters: - description: ID of the asynchronous task to poll. in: path name: task_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: properties: message: type: string result: oneOf: - $ref: '#/components/schemas/PromoteProcedureRunPlanOutput' - type: 'null' status: enum: - NOT_STARTED - IN_PROGRESS - COMPLETED - FAILED type: string 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: Poll async task status tags: - ProcedureRunPlan x-bnch-rate-limit-tier: 5 components: schemas: EquipmentValuePlan: description: 'A pre-filled value for an equipment parameter within a `MethodParametersPlan`. The `equipmentId` references the `ProcedureParameterVersion` for the equipment parameter this value applies to. The `value` field contains the planned equipment assignment in JSON format, typically specifying which piece of lab equipment will be used. Used during experiment planning to pre-assign instruments or devices that will be used when the procedure run is executed.' properties: __typename: type: string equipmentId: type: string value: type: object type: object ProcedureRunPlan: description: 'A draft experiment plan that can be promoted to a `ProcedureRun` for execution. Scientists use run plans to configure experimental conditions, parameter values, and replicates before starting an actual experiment. Belongs to a `Study` and references a procedure template via either `templateProcedureFlowchartVersion` (for legacy flowcharts) or `procedureFlowchartConfigVersionProxy` (for new-style workflow flowcharts). Contains `ProcedureRunPlanCondition` objects that define the different experimental configurations to test. The `dataEntryMode` (see `ProcedureRunDataEntryMode`) specifies whether each condition-replicate will have its own data entry worksheet or share a single worksheet. The `confirmationMethodByParamVersionId` allows overriding default confirmation methods for specific parameters. Upon promotion, the run plan becomes a `ProcedureRun` with corresponding `ProcedureRunCondition` and `ProcedureRunConditionReplicate` objects. Also known as a "draft experiment" in the Benchling UI.' properties: __typename: type: string confirmationMethodByParamVersionId: items: $ref: '#/components/schemas/ConfirmationMethodByParamVersionId' type: array createdAt: format: datetime type: string creator: $ref: '#/components/schemas/PrincipalRef' dataEntryMode: enum: - INDIVIDUAL_CONDITION_REPLICATES - ALL_CONDITION_REPLICATES_TOGETHER type: string description: type: string id: type: string modifiedAt: format: datetime type: string procedureFlowchartConfigVersionProxy: oneOf: - $ref: '#/components/schemas/ProcedureFlowchartConfigVersionProxyRef' - type: 'null' procedureRun: oneOf: - $ref: '#/components/schemas/ProcedureRunRef' - type: 'null' procedureRunPlanConditions: format: uri type: string study: $ref: '#/components/schemas/StudyRef' templateProcedureFlowchartVersion: deprecated: true description: Use procedureFlowchartConfigVersionProxy instead. oneOf: - $ref: '#/components/schemas/ProcedureFlowchartVersionRef' - type: 'null' type: object PromoteProcedureRunPlanInput: additionalProperties: false example: procedureRunPlanIds: - prp_Xk9mLpQr - prp_Yw3tRsLm properties: procedureRunPlanIds: description: 'IDs of the run plans to promote. Format: `prp_XXXXXXXX`.' items: type: string type: array required: - procedureRunPlanIds type: object ConfirmationMethodByParamVersionId: description: 'Associates a procedure parameter version with its confirmation method, keyed by the parameter version ID. Used in `ProcedureRunPlan` to look up how a specific version of a parameter''s values should be confirmed—either via TABLE (structured table entry) or PLATE_MAP (plate-based layout).' properties: __typename: type: string confirmationMethod: enum: - TABLE - PLATE_MAP type: string paramVersionId: type: string type: object ProcedureRunRef: properties: __typename: type: string id: format: api_id type: string type: object ProcedureRunPlanConditionReplicate: description: 'Represents a planned replicate within a `ProcedureRunPlanCondition`. Scientists often run the same experimental condition multiple times to obtain statistically significant results—each repetition is a replicate. The `replicateNumber` provides a one-indexed identifier (e.g., replicate 1, 2, 3). The `sourcePmeiIds` field supports unit operation linking by storing source `ProcedureMethodExecutionInstance` IDs from other procedure runs. Upon promotion of the parent `ProcedureRunPlan`, each ProcedureRunPlanConditionReplicate becomes a `ProcedureRunConditionReplicate` in the resulting procedure run.' properties: __typename: type: string replicateNumber: description: The replicate number. type: integer sourcePmeiIds: description: 'Source PMEI IDs for this replicate. Support unit operation linking to future-pmeis when executing the draft procedure run.' items: type: string type: array type: object DataParameterValuePlan: description: 'A pre-filled value for a data parameter within a `MethodParametersPlan`. The `parameterId` references the `ProcedureParameterVersion` this value applies to. The `value` field contains the planned data in JSON format, which may be a number, string, or structured value depending on the parameter''s data type configuration. Used during experiment planning to specify default values that will populate the parameter when the procedure run is created.' properties: __typename: type: string parameterId: type: string value: type: object type: object InternalServerError: properties: detail: type: - 'null' - string - object errorId: type: string instance: type: string status: type: integer title: type: - 'null' - string type: type: string required: - type - title - detail - status - instance type: object ProcedureMethodDefinitionVersionRef: properties: __typename: type: string id: format: api_id type: string type: object AsyncTaskLink: properties: pollingUri: format: uri type: string taskId: type: string type: object UpdateProcedureRunPlanInputWithPathParams: additionalProperties: false example: conditionOrder: - conditionIds: - prpc_Bm7nWsKt - prpc_Zq2rPvJx templateMethodVersionId: pcmdv_Hn5kRtYw confirmationMethodByParamVersionId: - confirmationMethod: TABLE paramVersionId: schver_Rm4nTvWz dataEntryMode: INDIVIDUAL_CONDITION_REPLICATES description: Updated dose-response plan id: prp_Xk9mLpQr workflowFlowchartConfigVersionId: wffccv_Lk3mQpXn properties: conditionOrder: description: Reorder existing conditions per procedure method definition version (PMDV). For each PMDV included, **all** existing condition IDs for that PMDV in the plan must be present exactly once. The order of IDs in `conditionIds` determines the new display positions (0-indexed). items: $ref: '#/components/schemas/ConditionOrderForPmdvInput' type: array confirmationMethodByParamVersionId: description: Replace the confirmation method overrides for specific procedure parameters. Pass an empty array to clear all overrides. items: $ref: '#/components/schemas/ConfirmationMethodByParamVersionIdInput' type: array dataEntryMode: description: Controls how data entry worksheets are created upon promotion. `INDIVIDUAL_CONDITION_REPLICATES` creates one worksheet per condition-replicate. `ALL_CONDITION_REPLICATES_TOGETHER` creates a single shared worksheet (not supported for assay run plans). enum: - INDIVIDUAL_CONDITION_REPLICATES - ALL_CONDITION_REPLICATES_TOGETHER type: string description: description: A human-readable description of the run plan. Must not exceed 255 characters. type: string id: type: string workflowFlowchartConfigVersionId: description: 'The ID of the workflow flowchart config version to switch to. Format: `wffccv_XXXXXXXX`. When changed, existing conditions should be updated to reference method versions in the new flowchart. Set to null to clear the linked procedure flowchart version.' type: - 'null' - string required: - id type: object CreateProcedureRunPlanInput: additionalProperties: false example: confirmationMethodByParamVersionId: - confirmationMethod: TABLE paramVersionId: schver_Rm4nTvWz dataEntryMode: INDIVIDUAL_CONDITION_REPLICATES description: Dose-response run plan studyId: stdy_9CYiCggY workflowFlowchartConfigVersionId: wffccv_Lk3mQpXn properties: confirmationMethodByParamVersionId: description: Override the default confirmation method for specific procedure parameters. Each entry maps a parameter version ID to a confirmation method (TABLE or PLATE_MAP). Omit or pass an empty array to use the default confirmation methods. items: $ref: '#/components/schemas/ConfirmationMethodByParamVersionIdInput' type: array dataEntryMode: description: Controls how data entry worksheets are created upon promotion. `INDIVIDUAL_CONDITION_REPLICATES` creates one worksheet per condition-replicate. `ALL_CONDITION_REPLICATES_TOGETHER` creates a single shared worksheet (not supported for assay run plans). Defaults to `INDIVIDUAL_CONDITION_REPLICATES` if omitted. enum: - INDIVIDUAL_CONDITION_REPLICATES - ALL_CONDITION_REPLICATES_TOGETHER type: string description: description: A human-readable description of the run plan. Must not exceed 255 characters. type: string studyId: description: 'The ID of the study this run plan belongs to. Format: `stdy_XXXXXXXX`.' type: string workflowFlowchartConfigVersionId: description: 'The ID of the workflow flowchart config version that defines the procedure template for this run plan. Format: `wffccv_XXXXXXXX`. Set to null to create a run plan with no linked procedure.' type: - 'null' - string required: - description - studyId - dataEntryMode - workflowFlowchartConfigVersionId - confirmationMethodByParamVersionId type: object ProcedureRunPlanPaginatedList: additionalProperties: false properties: items: items: $ref: '#/components/schemas/ProcedureRunPlan' type: array nextToken: type: string type: object BulkImport: example: fileId: scrfile_jdf8BV24kLmN properties: fileId: description: The API ID of the scratch file (`scrfile_XXXXXXXX`) containing the items to import. The referenced file must be a scratch file whose upload has completed successfully. type: string required: - fileId type: object PromotedProcedureRunItem: description: A single procedure run created by promoting a procedure run plan. properties: __typename: type: string folderId: type: string id: type: string type: object PrincipalRef: properties: __typename: type: string id: format: api_id type: string type: object ConfirmationMethodByParamVersionIdInput: additionalProperties: false properties: confirmationMethod: enum: - TABLE - PLATE_MAP type: string paramVersionId: type: string required: - paramVersionId - confirmationMethod type: object ProcedureRunPlanConditionUnpaginatedList: additionalProperties: false properties: items: items: $ref: '#/components/schemas/ProcedureRunPlanCondition' type: array type: object MethodParametersPlan: description: 'Contains the planned parameter values for a single unit operation (method) within a `ProcedureRunPlanCondition`. Links to a `ProcedureMethodDefinitionVersion` via `templateMethodVersion` to identify which method these values apply to. Parameter values are organized by category: `dataParameterValues` for data fields like numbers or text, `materialInputValues` for sample or reagent inputs, and `equipmentValues` for equipment assignments. When the parent `ProcedureRunPlan` is promoted to a `ProcedureRun`, these planned values become the starting values in the resulting `ProcedureMethodExecutionInstance`.' properties: __typename: type: string dataParameterValues: description: Planned values for data parameters keyed by parameter identifiers. items: $ref: '#/components/schemas/DataParameterValuePlan' type: array equipmentValues: description: Planned values for equipment keyed by equipment identifiers. items: $ref: '#/components/schemas/EquipmentValuePlan' type: array materialInputValues: description: Planned values for material inputs keyed by input identifiers. items: $ref: '#/components/schemas/MaterialInputValuePlan' type: array type: object StudyRef: properties: __typename: type: string id: format: api_id type: string type: object ConditionOrderForPmdvInput: additionalProperties: false properties: conditionIds: items: type: string type: array templateMethodVersionId: type: string required: - templateMethodVersionId - conditionIds type: object ProcedureRunPlanCondition: description: 'A planned experimental condition within a `ProcedureRunPlan`, representing how a procedure''s methods will be configured when the plan is promoted to an actual `ProcedureRun`. Each condition contains pre-filled parameter values (via `MethodParametersPlan`) for the procedure''s unit operations, and specifies how many replicates will be run (via `ProcedureRunPlanConditionReplicate`). Scientists use conditions to plan different experimental configurations before execution—for example, testing multiple temperatures or reagent concentrations. The `position` field determines display order within the parent run plan. Upon promotion, each ProcedureRunPlanCondition becomes a `ProcedureRunCondition` in the resulting experiment. Also known as an "experiment condition" in the Benchling UI''s experiment planning workflow.' properties: __typename: type: string createdAt: format: datetime type: string description: description: The user-defined description of the condition. type: string id: type: string methodParametersPlan: description: 'Method plan containing parameter values for this condition''s unit operation. If this value is null upon promotion to a procedure run, default values from the procedure will be used.' oneOf: - $ref: '#/components/schemas/MethodParametersPlan' - type: 'null' modifiedAt: format: datetime type: string name: description: The user-defined name of the condition. type: string position: description: The display order of the condition within the run. type: integer procedureRunPlan: $ref: '#/components/schemas/ProcedureRunPlanRef' description: The ProcedureRunPlan that this condition is a part of. replicates: description: Replicate information for this condition. items: $ref: '#/components/schemas/ProcedureRunPlanConditionReplicate' type: array templateMethodVersion: $ref: '#/components/schemas/ProcedureMethodDefinitionVersionRef' description: The procedure method definition version (PMDV) this condition belongs to. type: object PromoteProcedureRunPlanOutput: description: Output returned when promoting procedure run plans to active procedure runs. properties: creates: items: $ref: '#/components/schemas/PromotedProcedureRunItem' type: array type: object ProcedureRunPlanRef: properties: __typename: type: string id: format: api_id type: string type: object ProcedureFlowchartVersionRef: properties: __typename: type: string id: format: api_id type: string type: object ProcedureFlowchartConfigVersionProxyRef: properties: __typename: type: string id: format: api_id type: string type: object GeneralError: properties: detail: type: - 'null' - string - object instance: type: string status: type: integer title: type: - 'null' - string type: type: string required: - type - title - detail - status - instance type: object UpdateProcedureRunPlanInput: additionalProperties: false example: conditionOrder: - conditionIds: - prpc_Bm7nWsKt - prpc_Zq2rPvJx templateMethodVersionId: pcmdv_Hn5kRtYw confirmationMethodByParamVersionId: - confirmationMethod: TABLE paramVersionId: schver_Rm4nTvWz dataEntryMode: INDIVIDUAL_CONDITION_REPLICATES description: Updated dose-response plan workflowFlowchartConfigVersionId: wffccv_Lk3mQpXn properties: conditionOrder: description: Reorder existing conditions per procedure method definition version (PMDV). For each PMDV included, **all** existing condition IDs for that PMDV in the plan must be present exactly once. The order of IDs in `conditionIds` determines the new display positions (0-indexed). items: $ref: '#/components/schemas/ConditionOrderForPmdvInput' type: array confirmationMethodByParamVersionId: description: Replace the confirmation method overrides for specific procedure parameters. Pass an empty array to clear all overrides. items: $ref: '#/components/schemas/ConfirmationMethodByParamVersionIdInput' type: array dataEntryMode: description: Controls how data entry worksheets are created upon promotion. `INDIVIDUAL_CONDITION_REPLICATES` creates one worksheet per condition-replicate. `ALL_CONDITION_REPLICATES_TOGETHER` creates a single shared worksheet (not supported for assay run plans). enum: - INDIVIDUAL_CONDITION_REPLICATES - ALL_CONDITION_REPLICATES_TOGETHER type: string description: description: A human-readable description of the run plan. Must not exceed 255 characters. type: string workflowFlowchartConfigVersionId: description: 'The ID of the workflow flowchart config version to switch to. Format: `wffccv_XXXXXXXX`. When changed, existing conditions should be updated to reference method versions in the new flowchart. Set to null to clear the linked procedure flowchart version.' type: - 'null' - string type: object MaterialInputValuePlan: description: 'A pre-filled value for a material input within a `MethodParametersPlan`. The `materialInputId` references the `ProcedureParameterVersion` for the material input this value applies to. The `value` field contains the planned material specification in JSON format, typically including sample references and quantities. Used during experiment planning to pre-assign samples, reagents, or other materials that will be used when the procedure run is executed.' properties: __typename: type: string materialInputId: type: string value: type: object type: object parameters: pageSize: description: Number of results to return. Defaults to 50, maximum of 100. in: query name: pageSize schema: type: integer createdAt.gte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or after the specified time. e.g. >= 2017-04-30. in: query name: createdAt.gte schema: format: datetime type: string modifiedAt.gt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified after the specified time. e.g. > 2017-04-30. in: query name: modifiedAt.gt schema: format: datetime type: string modifiedAt.lte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or before the specified time. e.g. <= 2017-04-30. in: query name: modifiedAt.lte schema: format: datetime type: string id.anyOf: description: Restricts results to those matching any of the specified IDs. Comma-separated list. explode: false in: query name: id.anyOf schema: items: type: string maxItems: 100 type: array omit: description: Comma-separated list of top-level fields to omit from each returned item. Cannot overlap with returning. explode: false in: query name: omit schema: items: type: string type: array modifiedAt.lt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified before the specified time. e.g. < 2017-04-30. in: query name: modifiedAt.lt schema: format: datetime type: string creator.anyOf: description: Restricts results to those created by any of the specified user IDs. Comma-separated list. explode: false in: query name: creator.anyOf schema: items: type: string maxItems: 100 type: array createdAt.gt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created after the specified time. e.g. > 2017-04-30. in: query name: createdAt.gt schema: format: datetime type: string modifiedAt.gte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those modified at or after the specified time. e.g. >= 2017-04-30. in: query name: modifiedAt.gte schema: format: datetime type: string createdAt.lt: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created before the specified time. e.g. < 2017-04-30. in: query name: createdAt.lt schema: format: datetime type: string returning: description: Comma-separated list of top-level fields to include in each returned item. Cannot overlap with omit. explode: false in: query name: returning schema: items: type: string type: array nextToken: description: Token for pagination in: query name: nextToken schema: type: string createdAt.lte: description: Datetime, in RFC 3339 format. Time zone defaults to UTC. Restricts results to those created at or before the specified time. e.g. <= 2017-04-30. in: query name: createdAt.lte schema: format: datetime type: string responses: NotFound: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Not Found TooManyRequests: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Too Many Requests BadRequest: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Bad Request Forbidden: content: application/problem+json: schema: $ref: '#/components/schemas/GeneralError' description: Forbidden InternalServerError: content: application/problem+json: schema: $ref: '#/components/schemas/InternalServerError' description: Internal Server Error securitySchemes: basicApiKeyAuth: description: Use issued API key for standard access to the API scheme: basic type: http basicClientIdSecretAuth: description: Auth used as part of client credentials OAuth flow prior to receiving a bearer token. scheme: basic type: http oAuth: description: OAuth2 Client Credentials flow intended for service access flows: clientCredentials: scopes: {} tokenUrl: /oauth/token type: oauth2