---
title: "Update ProcedureRunPlanCondition"
method: PATCH
path: "/api/v3/procedure-run-plan-condition/{procedure_run_plan_condition_id}"
tags: ["Procedure Run Plan Condition"]
---

# Update ProcedureRunPlanCondition

`PATCH /api/v3/procedure-run-plan-condition/{procedure_run_plan_condition_id}`

## Request

- Base URL: `https://{tenant_name}.benchling.com`
- URL: `https://{tenant_name}.benchling.com/api/v3/procedure-run-plan-condition/{procedure_run_plan_condition_id}`
- Auth: HTTP bearer

Update an existing condition within a draft procedure run plan.

## Constraints

- If `templateMethodVersionId` is changed, the new value must reference a method present in the parent run plan's flowchart version.
- **Per-PMDV uniformity**: After the update, all conditions for each procedure method definition version (PMDV) within the plan must still have the same count, names, descriptions, and replicate counts across all unit operations.
- If `name` is provided, it must not be empty. `name` and `description` must not exceed 255 characters.
- If `replicates` is provided, the plan's total replicates cannot exceed 500 and `replicateNumber` values must be consecutive starting from 1.
- Each template method in a run plan can contain at most 100 conditions.

## Path parameters

- `procedure_run_plan_condition_id` string, required

## Headers

- `EARLY-ACCESS` string

## Request body

- UpdateProcedureRunPlanConditionInput
  - `description` string: Description of the condition. Must not exceed 255 characters.
  - `methodParametersPlan` MethodParametersPlanInput
    - `dataParameterValues` DataParameterValuePlanInput[], required: Planned values for data parameters in this method.
      - `parameterId` string, required: The ID of the procedure parameter version. Format: `schver_XXXXXXXX`.
      - `value` DataParameterValuePlanInputValue, required: A dict with the shape {"value": <TypedValue | null>}. The inner TypedValue must match the referenced parameter's configured data type. Supported types are ft_float, ft_string, and ft_datetime (e.g., {"type": "ft_float", "floatValue": 1.5, "value": "1.5"} for numeric, {"type": "ft_string", "value": "text"} for text, or {"type": "ft_datetime", ...} for datetime). For plate-map-confirmed parameters with multiple setpoints, send one DataParameterValuePlanInput per setpoint, each with a scalar TypedValue.
    - `equipmentValues` EquipmentValuePlanInput[], required: Planned values for equipment parameters in this method.
      - `equipmentId` string, required: The ID of the equipment parameter version. Format: `schver_XXXXXXXX`.
      - `value` EquipmentValuePlanInputValue, required: A dict with the shape {"value": {"equipment": <TypedValue | null>}}. The equipment TypedValue must match the referenced equipment parameter's configured type: {"type": "ft_string", "value": "..."} for text inputs, or {"type": "ft_file_link", "targetFiles": [...]} for entity link inputs.
    - `materialInputValues` MaterialInputValuePlanInput[], required: Planned values for material inputs in this method.
      - `materialInputId` string, required: The ID of the material input parameter version. Format: `schver_XXXXXXXX`.
      - `value` MaterialInputValuePlanInputValue, required: A dict with the shape {"value": {"material": <TypedValue | null>, "amount": <TypedValue | null>}}. The material TypedValue must match the referenced material input's configured type: {"type": "ft_string", "value": "..."} for text inputs, or {"type": "ft_file_link", "targetFiles": [...]} for entity link inputs. The amount TypedValue is always ft_float (e.g., {"type": "ft_float", "floatValue": 1.0, "value": "1.0"}). Either sub-field may be null independently.
  - `name` string: Display name of the condition. Must not be empty and must not exceed 255 characters.
  - `replicates` ProcedureRunPlanConditionReplicateInput[]: Replace the full set of replicates for this condition. The plan's total number of replicates must not exceed 500, and `replicateNumber` values must be consecutive starting from 1.
    - `replicateNumber` integer, required: The 1-indexed replicate number. Must be >= 1. Replicate numbers must be consecutive starting from 1 (e.g., 1, 2, 3).
    - `sourcePmeiIds` string[]: IDs of source procedure method execution instances (PMEIs) for unit operation linking. Format: `pcmei_XXXXXXXX`. Used to connect this replicate's inputs to outputs from a previous run. IDs must be unique, and a replicate can reference at most 100 source PMEIs.

## Response `200`

OK

- ProcedureRunPlanCondition: 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.
  - `__typename` string
  - `createdAt` string, datetime
  - `description` string: The user-defined description of the condition.
  - `id` string
  - `methodParametersPlan` MethodParametersPlan: 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`.
    - `__typename` string
    - `dataParameterValues` DataParameterValuePlan[]: Planned values for data parameters keyed by parameter identifiers.
      - `__typename` string
      - `parameterId` string
      - `value` DataParameterValuePlanValue
    - `equipmentValues` EquipmentValuePlan[]: Planned values for equipment keyed by equipment identifiers.
      - `__typename` string
      - `equipmentId` string
      - `value` EquipmentValuePlanValue
    - `materialInputValues` MaterialInputValuePlan[]: Planned values for material inputs keyed by input identifiers.
      - `__typename` string
      - `materialInputId` string
      - `value` MaterialInputValuePlanValue
  - `modifiedAt` string, datetime
  - `name` string: The user-defined name of the condition.
  - `position` integer: The display order of the condition within the run.
  - `procedureRunPlan` ProcedureRunPlanRef
    - `__typename` string
    - `id` string, api_id
  - `replicates` ProcedureRunPlanConditionReplicate[]: Replicate information for this condition.
    - `__typename` string
    - `procedureRunPlanCondition` ProcedureRunPlanConditionRef
      - `__typename` string
      - `id` string, api_id
    - `replicateNumber` integer: The replicate number.
    - `sourcePmeiIds` string[]: Source PMEI IDs for this replicate. Support unit operation linking to future-pmeis when executing the draft procedure run.
  - `templateMethodVersion` ProcedureMethodDefinitionVersionRef
    - `__typename` string
    - `id` string, api_id

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