---
title: "List Procedures"
method: GET
path: "/v1/convai/agents/{agent_id}/branches/{branch_id}/procedures"
tags: ["Agents Platform"]
---

# List Procedures

`GET /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures`

## Request

- Base URL: `https://api.elevenlabs.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.elevenlabs.io/v1/convai/agents/{agent_id}/branches/{branch_id}/procedures`
- Auth: none declared

List the procedures attached to this agent branch. By default, unpublished drafts take precedence over the latest committed version. Pass agent_version_id to list a published snapshot instead. has_draft is true when a procedure has unpublished draft changes on this branch. Procedure content is not included; use Get Procedure to read a procedure's body.

## Path parameters

- `agent_id` string, required: Agent ID to get the procedure draft from
- `branch_id` string, required: Branch ID to get the procedure draft from

## Query parameters

- `agent_version_id` string, nullable: The agent version ID to retrieve the procedure for.

## Headers

- `xi-api-key` string, nullable: Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.

## Response `200`

Successful Response

- ListProceduresResponseModel
  - `procedures` ProcedureListItemResponseModel[], required: Procedures on the branch with their draft-aware metadata.
    - `procedure_id` string, required: Procedure ID
    - `version_id` string, nullable: Version ID of a version of the procedure. None for a procedure never versioned.
    - `name` string: Procedure name
    - `type` 'free_form' | 'deterministic' | 'folder'
    - `trigger` string: When the agent should use this procedure. Empty string means this is a sub-procedure that should only start when another procedure references it.
    - `has_draft` boolean, required: True when the procedure has unpublished draft changes on this branch (a newly created or edited procedure not yet published). When true, the name, type, and trigger reflect that draft.
    - `referenced_tool_ids` string[]: Tool IDs referenced in the procedure content
    - `referenced_kb_ids` string[]: Knowledge base IDs referenced in the procedure content
    - `referenced_procedure_ids` string[]: Procedure IDs referenced in the procedure content
    - `referenced_dynamic_variables` string[]: Dynamic variable names used in the procedure content
    - `folder_parent_id` string, nullable: Procedure ID of the folder this procedure is placed in. None means root.

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-08** `1eeefe174b1d`: 1 warning, 5 info
  - added the new `folder` enum value to the `procedures/items/type` response property for the response status `200`
  - added the optional property `procedures/items/folder_parent_id` to the response with the `200` status
  - added the optional property `procedures/items/referenced_dynamic_variables` to the response with the `200` status
  - added the optional property `procedures/items/referenced_kb_ids` to the response with the `200` status
  - …2 more
- **2026-08-22** `b96b80bcbb83`: 1 info
  - added the new optional `query` request parameter `agent_version_id`
- **2026-07-31** `72c54eba117e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/changes/v1/convai/agents/:agent_id/branches/:branch_id/procedures/get.md)

---

[API](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation.md) - [All operations](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/elevenlabs/apis/elevenlabs-api-documentation/revisions/d04f5e77c40a?raw)
