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

# Get Procedure by ID

`GET /api/v3/procedure/{procedure_id}`

## Request

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

Get a single Procedure by ID.

## Path parameters

- `procedure_id` string, required

## Query parameters

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

## Headers

- `EARLY-ACCESS` string

## Response `200`

OK

- Procedure: A reusable template that defines a structured experimental workflow. Procedures specify a sequence of method steps (see `ProcedureMethodDefinitionVersion`) connected in a flowchart (see `workflowFlowchartConfig` and `WorkflowFlowchartConfigVersion`) that scientists follow when running experiments. The `procedureType` determines whether this is a recipe (synthesis/production workflow) or an assay (analytical workflow). Procedures belong to a `TemplateCollection` for organization and access control, and support versioning through publishing (see `Publishable` and `publishingRecords`). When scientists execute a procedure, they create a `ProcedureRun` that tracks the actual experiment execution.
  - `archiveReason` string, nullable
  - `archived` boolean
  - `createdAt` string, datetime
  - `creator` PrincipalRef
    - `__typename` string
    - `id` string, api_id
  - `currentPublishingRecord` PublishingRecordRef
    - `__typename` string
    - `id` string, api_id
  - `id` string
  - `latestProcedureFlowchartConfigVersion` ProcedureFlowchartConfigVersionRef
    - `__typename` string
    - `id` string, api_id
  - `modifiedAt` string, datetime
  - `name` string
  - `procedureFlowchart` ProcedureFlowchartRef
    - `__typename` string
    - `id` string, api_id
  - `procedureType` 'RECIPE' | 'ASSAY'
  - `publishedProcedureFlowchartConfigVersion` ProcedureFlowchartConfigVersionRef
    - `__typename` string
    - `id` string, api_id
  - `templateCollection` TemplateCollectionRef
    - `__typename` string
    - `id` string, api_id
  - `webUrl` string, nullable

## 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/3873a10bf7b8?raw)
