> ## Documentation Index
> Fetch the complete documentation index at: https://docs.threetone.in/llms.txt
> Use this file to discover all available pages before exploring further.

# List Procedures

> List the agent's procedures on a branch with their procedure_id, version_id, name, type, trigger, and has_draft. has_draft is true when a procedure has unpublished draft changes on this branch; its name/type/trigger then reflect that draft. Does not return procedure content -- use Get Procedure to read a procedure's body.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures
openapi: 3.1.0
info:
  title: Threetone API Documentation
  description: >-
    This is the documentation for the Threetone API. You can use this API to use
    our service programmatically with API keys sent in the x-api-key header. You
    can create and manage API keys in the dashboard at
    https://threetone.in/app/developers/api-keys.
  version: '1.0'
servers:
  - url: https://api.threetone.in
    description: Production
security: []
paths:
  /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures:
    get:
      tags:
        - Agents Platform
      summary: List Procedures
      description: >-
        List the agent's procedures on a branch with their procedure_id,
        version_id, name, type, trigger, and has_draft. has_draft is true when a
        procedure has unpublished draft changes on this branch; its
        name/type/trigger then reflect that draft. Does not return procedure
        content -- use Get Procedure to read a procedure's body.
      operationId: list_procedures_route
      parameters:
        - name: agent_id
          in: path
          required: true
          schema:
            type: string
            description: Agent ID to get the procedure draft from
            examples:
              - agent_3701k3ttaq12ewp8b7qv5rfyszkz
            title: Agent Id
          description: Agent ID to get the procedure draft from
        - name: branch_id
          in: path
          required: true
          schema:
            type: string
            description: Branch ID to get the procedure draft from
            examples:
              - agtbranch_0901k4aafjxxfxt93gd841r7tv5t
            title: Branch Id
          description: Branch ID to get the procedure draft from
        - name: agent_version_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: The agent version ID to retrieve the procedure for.
            examples:
              - agtvrsn_8901k4t9z5defmb8vh3e9361y7nj
            title: Agent Version Id
          description: The agent version ID to retrieve the procedure for.
        - name: x-api-key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Your API key for programmatic access. Send it in the x-api-key
              header; you can create and manage keys from the Developers page.
            title: X-Api-Key
          description: >-
            Your API key for programmatic access. Send it in the x-api-key
            header; you can create and manage keys from the Developers page.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProceduresResponseModel'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ListProceduresResponseModel:
      properties:
        procedures:
          items:
            $ref: '#/components/schemas/ProcedureListItemResponseModel'
          type: array
          title: Procedures
          description: Procedures on the branch with their draft-aware metadata.
      type: object
      required:
        - procedures
      title: ListProceduresResponseModel
      example:
        procedures:
          - has_draft: false
            name: Customer Support Procedure
            procedure_id: agtprc_6qbpwdq8n01bxhk44bgjy6f10ck3
            trigger: When the customer asks for support
            type: free_form
            version_id: agtprcv_7rbqxer9o12cyxi55ckw6sgz1dl4
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ProcedureListItemResponseModel:
      properties:
        procedure_id:
          type: string
          title: Procedure Id
          description: Procedure ID
        version_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Version Id
          description: >-
            Version ID of a version of the procedure. None for a procedure never
            versioned.
        name:
          type: string
          title: Name
          description: Procedure name
          default: ''
        type:
          $ref: '#/components/schemas/ProcedureType'
          description: Procedure type
          default: free_form
        trigger:
          type: string
          title: Trigger
          description: >-
            When the agent should use this procedure. Empty string means this is
            a sub-procedure that should only start when another procedure
            references it.
          default: ''
        has_draft:
          type: boolean
          title: Has Draft
          description: >-
            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.
      type: object
      required:
        - procedure_id
        - has_draft
      title: ProcedureListItemResponseModel
      example:
        has_draft: false
        name: Customer Support Procedure
        procedure_id: agtprc_6qbpwdq8n01bxhk44bgjy6f10ck3
        trigger: When the customer asks for support
        type: free_form
        version_id: agtprcv_7rbqxer9o12cyxi55ckw6sgz1dl4
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    ProcedureType:
      type: string
      enum:
        - free_form
        - deterministic
      title: ProcedureType
      default: free_form

````