---
title: "Get ProcedureRun by ID"
method: GET
path: "/api/v3/procedure-run/{procedure_run_id}"
tags: ["Procedure Run"]
---

# Get ProcedureRun by ID

`GET /api/v3/procedure-run/{procedure_run_id}`

## Request

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

Get a single ProcedureRun by ID.

## Path parameters

- `procedure_run_id` string, required

## Query parameters

- `returning` string[]
- `omit` string[]

## Headers

- `EARLY-ACCESS` string

## Response `200`

OK

- ProcedureRun: An active execution of a procedure template. Created when scientists start running an experiment based on a `Procedure`. Contains experimental conditions (`conditions` via `ProcedureRunCondition`) and their replicates, which in turn contain method execution instances (`methodExecutionInstances` via `ProcedureMethodExecutionInstance`) where actual data are recorded. Runs created before the PoW migration retain their legacy template flowchart version internally, while Workflows-backed runs expose their template through `procedureFlowchartConfigVersion`. The `defaultDataEntryMode` (see `ProcedureRunDataEntryMode`) determines whether each condition-replicate has its own worksheet or all share one. Workflow orchestration is managed through `workflowRootTaskGroup`. Also known as an "experiment" in the Benchling UI. ## Product mapping - `ProcedureRun` is the API model for the top-level **experiment run** object users work with. - "Experiment run" is the generic term spanning both recipe runs and assay runs. - Condition setup lives under `conditions` (`ProcedureRunCondition`), and actual method execution records live under `methodExecutionInstances` (`ProcedureMethodExecutionInstance`).
  - `__typename` string
  - `archiveReason` string, nullable
  - `archived` boolean
  - `conditions` string, uri: An ordered list of the conditions that are part of this ProcedureRun.
  - `createdAt` string, datetime
  - `creator` PrincipalRef
    - `__typename` string
    - `id` string, api_id
  - `description` string
  - `id` string
  - `methodExecutionInstances` string, uri
  - `modifiedAt` string, datetime
  - `name` string
  - `procedureFlowchartConfigVersion` ProcedureFlowchartConfigVersionRef
    - `__typename` string
    - `id` string, api_id
  - `procedureType` 'RECIPE' | 'ASSAY'

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `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)
