---
title: "GET /v2/list-conversation-flow-components"
method: GET
path: "/v2/list-conversation-flow-components"
---

# GET /v2/list-conversation-flow-components

`GET /v2/list-conversation-flow-components`

List shared conversation flow components with pagination

## Query parameters

- `limit` integer
- `sort_order` 'ascending' | 'descending'
- `pagination_key` string

## Response `200`

Successfully listed conversation flow components

- object
  - `pagination_key` string — Pagination key for the next page.
  - `has_more` boolean — Whether more results are available.
  - `items` ConversationFlowComponentResponse[]
    - `name` string, required — Name of the component
    - `flex_mode` boolean, nullable — If enabled, the whole component will be converted as a Single Prompt agent.
    - `tools` NodeTool[], nullable — Tools available within the component
      - union
        - object
          - `type` 'custom', required
          - `name` string, required — Name of the tool. Must be unique within all tools available to LLM at any given time (general tools + state tools + state edges). Must be consisted of a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64 (no space allowed).
          - `url` string, required — Describes what the tool does, sometimes can also include information about when to call the tool.
          - `description` string — Describes what this tool does and when to call this tool.
          - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' — Method to use for the request, default to POST.
          - `headers` object — Headers to add to the request.
          - `query_params` object — Query parameters to append to the request URL.
          - `parameters` ToolParameter — The parameters the functions accepts, described as a JSON Schema object. See [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format. Omitting parameters defines a function with an empty parameter list.
            - `type` 'object', required — Type must be "object" for a JSON Schema object.
            - `properties` object, required — The value of properties is an object, where each key is the name of a property and each value is a schema used to validate that property.
            - `required` string[] — List of names of required property when generating this parameter. LLM will do its best to generate the required properties in its function arguments. Property must exist in properties.
          - `response_variables` object — A mapping of variable names to JSON paths in the response body. These values will be extracted from the response and made available as dynamic variables for use.
          - `speak_during_execution` boolean — Determines whether the agent would say sentence like "One moment, let me check that." when executing the function. Recommend to turn on if your function call takes over 1s (including network) to complete, so that your agent remains responsive.
          - `speak_after_execution` boolean — Determines whether the agent would call LLM another time and speak when the result of function is obtained. Usually this needs to get turned on so user can get update for the function call.
          - `execution_message_description` string — The description for the sentence agent say during execution. Only applicable when speak_during_execution is true. Can write what to say or even provide examples. The default is "The message you will say to callee when calling this tool. Make sure it fits into the conversation smoothly.".
          - `execution_message_type` 'prompt' | 'static_text' — Type of execution message. "prompt" means the agent will use execution_message_description as a prompt to generate the message. "static_text" means the agent will speak the execution_message_description directly. Defaults to "prompt".
          - `timeout_ms` integer — The maximum time in milliseconds the tool can run before it's considered timeout. If the tool times out, the agent would have that info. The minimum value allowed is 1000 ms (1 s), and maximum value allowed is 600,000 ms (10 min). By default, this is set to 120,000 ms (2 min).
          - `args_at_root` boolean — If set to true, the parameters will be passed as root level JSON object instead of nested under "args".
          - `enable_typing_sound` boolean — If true, play a typing sound on the agent audio track while this tool is executing. Useful when the tool takes a noticeable amount of time to prevent silence on the call.
          - `tool_id` string, required — Unique identifier for the tool
        - object
          - `type` 'check_availability_cal', required
          - `name` string, required — Name of the tool. Must be unique within all tools available to LLM at any given time (general tools + state tools + state transitions). Must be consisted of a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64 (no space allowed).
          - `description` string — Describes what the tool does, sometimes can also include information about when to call the tool.
          - `cal_api_key` string, required — Cal.com Api key that have access to the cal.com event you want to check availability for.
          - `event_type_id` union, required — Cal.com event type id number for the cal.com event you want to check availability for. Can be a number or a dynamic variable in the format `{{variable_name}}` that will be resolved at runtime.
            - number
            - string
          - `timezone` string — Timezone to be used when checking availability, must be in [IANA timezone database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). Can also be a dynamic variable in the format `{{variable_name}}` that will be resolved at runtime. If not specified, will check if user specified timezone in call, and if not, will use the timezone of the Retell servers.
          - `tool_id` string, required — Unique identifier for the tool
        - object
          - `type` 'book_appointment_cal', required
          - `name` string, required — Name of the tool. Must be unique within all tools available to LLM at any given time (general tools + state tools + state transitions). Must be consisted of a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64 (no space allowed).
          - `description` string — Describes what the tool does, sometimes can also include information about when to call the tool.
          - `cal_api_key` string, required — Cal.com Api key that have access to the cal.com event you want to book appointment.
          - `event_type_id` union, required — Cal.com event type id number for the cal.com event you want to book appointment. Can be a number or a dynamic variable in the format `{{variable_name}}` that will be resolved at runtime.
            - number
            - string
          - `timezone` string — Timezone to be used when booking appointment, must be in [IANA timezone database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). Can also be a dynamic variable in the format `{{variable_name}}` that will be resolved at runtime. If not specified, will check if user specified timezone in call, and if not, will use the timezone of the Retell servers.
          - `tool_id` string, required — Unique identifier for the tool
    - `mcps` MCP[], nullable — A list of MCP server configurations to use for this component
      - `name` string, required
      - `url` string, required — The URL of the MCP server.
      - `headers` object — Headers to add to the MCP connection request.
      - `query_params` object — Query parameters to append to the MCP connection request URL.
      - `timeout_ms` integer — Maximum time to wait for a connection to be established (in milliseconds). Default to 120,000 ms (2 minutes).
    - `nodes` ConversationFlowNode[], required — Nodes that make up the component
      - union
        - ConversationNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `interruption_sensitivity` number, nullable
          - `responsiveness` number, nullable
          - `voice_speed` number, nullable
          - `allow_dtmf_interruption` boolean, nullable — If set, overrides the agent-level allow_dtmf_interruption for this node only.
          - `type` 'conversation', required — Type of the node
          - `instruction` union, required
            - NodeInstructionPrompt
              - …
            - NodeInstructionStaticText
              - …
          - `skip_response_edge` SkipResponseEdge
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `always_edge` AlwaysEdge
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `edges` NodeEdge[]
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` union, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `finetune_conversation_examples` NodeFinetuneConversationExample[]
            - `id` string, required — Unique identifier for the example
            - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the conversation should be.
              - …
          - `finetune_transition_examples` NodeFinetuneTransitionExample[]
            - `id` string, required — Unique identifier for the example
            - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
              - …
            - `destination_node_id` string — Optional destination node ID
          - `knowledge_base_ids` string[], nullable — Knowledge base IDs for RAG (Retrieval-Augmented Generation).
          - `kb_config` KBConfig
            - `top_k` integer — Max number of knowledge base chunks to retrieve
            - `filter_score` number — Similarity threshold for filtering search results
        - SubagentNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `interruption_sensitivity` number, nullable
          - `responsiveness` number, nullable
          - `voice_speed` number, nullable
          - `allow_dtmf_interruption` boolean, nullable — If set, overrides the agent-level allow_dtmf_interruption for this node only.
          - `type` 'subagent', required — Type of the node
          - `instruction` NodeInstructionPrompt, required
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - `skip_response_edge` SkipResponseEdge
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `always_edge` AlwaysEdge
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `edges` NodeEdge[]
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` union, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `finetune_conversation_examples` NodeFinetuneConversationExample[]
            - `id` string, required — Unique identifier for the example
            - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the conversation should be.
              - …
          - `finetune_transition_examples` NodeFinetuneTransitionExample[]
            - `id` string, required — Unique identifier for the example
            - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
              - …
            - `destination_node_id` string — Optional destination node ID
          - `knowledge_base_ids` string[], nullable — Knowledge base IDs for RAG (Retrieval-Augmented Generation).
          - `kb_config` KBConfig
            - `top_k` integer — Max number of knowledge base chunks to retrieve
            - `filter_score` number — Similarity threshold for filtering search results
          - `tool_ids` string[], nullable — The tool ids of the tools defined in main conversation flow or component that can be used in this subagent node.
          - `tools` Tool[], nullable — The tools owned by this subagent node. This includes other tool types like transfer_call, agent_swap, etc.
            - union
              - …
        - EndNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `type` 'end', required — Type of the node
          - `speak_during_execution` boolean — If true, will speak during execution
          - `instruction` union
            - NodeInstructionPrompt
              - …
            - NodeInstructionStaticText
              - …
        - FunctionNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `type` 'function', required — Type of the node
          - `tool_id` string, required — Tool ID for function nodes
          - `tool_type` 'local' | 'shared', required — Tool type for function nodes
          - `speak_during_execution` boolean — Whether to speak during tool execution
          - `instruction` union
            - NodeInstructionPrompt
              - …
            - NodeInstructionStaticText
              - …
          - `wait_for_result` boolean, required — Whether to wait for tool result
          - `enable_typing_sound` boolean — If true, play a typing sound while this function executes.
          - `edges` NodeEdge[]
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` union, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `else_edge` ElseEdge
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `finetune_transition_examples` NodeFinetuneTransitionExample[]
            - `id` string, required — Unique identifier for the example
            - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
              - …
            - `destination_node_id` string — Optional destination node ID
        - CodeNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `type` 'code', required — Type of the node
          - `code` string, required — JavaScript code to execute in the sandbox.
          - `timeout_ms` integer — The maximum time in milliseconds the code can run before it's considered timeout. Defaults to 30,000 ms (30 s).
          - `response_variables` object — A mapping of variable names to JSON paths in the code execution result. These mapped values will be extracted and added as dynamic variables.
          - `speak_during_execution` boolean — Whether to speak during code execution
          - `instruction` union
            - NodeInstructionPrompt
              - …
            - NodeInstructionStaticText
              - …
          - `wait_for_result` boolean, required — Whether to wait for code execution result
          - `enable_typing_sound` boolean — If true, play a typing sound while code executes.
          - `edges` NodeEdge[]
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` union, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `else_edge` ElseEdge
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `finetune_transition_examples` NodeFinetuneTransitionExample[]
            - `id` string, required — Unique identifier for the example
            - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
              - …
            - `destination_node_id` string — Optional destination node ID
        - TransferCallNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `type` 'transfer_call', required — Type of the node
          - `transfer_destination` union, required
            - TransferDestinationPredefined
              - …
            - TransferDestinationInferred
              - …
          - `ignore_e164_validation` boolean — If true, the e.164 validation will be ignored for the from_number. This can be useful when you want to dial to internal pseudo numbers. This only applies when you are using custom telephony and does not apply when you are using Retell Telephony. If omitted, the default value is false.
          - `custom_sip_headers` object — Custom SIP headers for transfer calls
          - `transfer_option` union, required
            - object
              - …
            - object
              - …
            - object
              - …
          - `edge` TransferFailedEdge, required
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `speak_during_execution` boolean — If true, will speak during execution
          - `instruction` union
            - NodeInstructionPrompt
              - …
            - NodeInstructionStaticText
              - …
        - PressDigitNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `type` 'press_digit', required — Type of the node
          - `instruction` NodeInstructionPrompt, required
            - `type` 'prompt', required — Type of instruction
            - `text` string, required — The prompt text for the instruction
          - `delay_ms` integer — Delay in milliseconds before pressing the digit
          - `edges` NodeEdge[]
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` union, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `finetune_transition_examples` NodeFinetuneTransitionExample[]
            - `id` string, required — Unique identifier for the example
            - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
              - …
            - `destination_node_id` string — Optional destination node ID
        - BranchNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `type` 'branch', required — Type of the node
          - `edges` NodeEdge[]
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` union, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `else_edge` ElseEdge, required
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `finetune_transition_examples` NodeFinetuneTransitionExample[]
            - `id` string, required — Unique identifier for the example
            - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
              - …
            - `destination_node_id` string — Optional destination node ID
        - SmsNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `type` 'sms', required — Type of the node
          - `instruction` union, required
            - union
              - …
            - SmsInstructionTemplate
              - …
          - `success_edge` SmsSuccessEdge, required
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `failed_edge` SmsFailedEdge, required
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
        - ExtractDynamicVariablesNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `type` 'extract_dynamic_variables', required — Type of the node
          - `variables` AnalysisData[], required
            - union
              - …
          - `enable_typing_sound` boolean — If true, play a typing sound while this extract step executes.
          - `edges` NodeEdge[]
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` union, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `else_edge` ElseEdge
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `finetune_transition_examples` NodeFinetuneTransitionExample[]
            - `id` string, required — Unique identifier for the example
            - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
              - …
            - `destination_node_id` string — Optional destination node ID
        - AgentSwapNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `type` 'agent_swap', required — Type of the node
          - `agent_id` string, required — The ID of the agent to swap to
          - `agent_version` union — Agent version reference. Supports a numeric version (for example 3) or a tag/environment name (for example "prod"). The string "latest" resolves to the most recently created version (the largest version number), and "latest_published" resolves to the most recently published version. When a tag is provided, resolution uses that exact tag assignment (including its dynamic variables). If the tag exists but is currently unassigned, it resolves to latest. When a numeric version, latest, or latest_published is provided, resolution applies dynamic variables from the preferred tag for that resolved version (most recently assigned), if any.
            - integer
            - string
          - `post_call_analysis_setting` 'both_agents' | 'only_destination_agent', required
          - `webhook_setting` 'both_agents' | 'only_destination_agent' | 'only_source_agent'
          - `keep_current_voice` boolean — If true, keep the current voice when swapping agents. Defaults to false.
          - `keep_current_language` boolean — If true, keep the current language when swapping agents. Defaults to false.
          - `edge` TransferFailedEdge, required
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `speak_during_execution` boolean — If true, will speak during execution
          - `instruction` union
            - NodeInstructionPrompt
              - …
            - NodeInstructionStaticText
              - …
        - MCPNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `type` 'mcp', required — Type of the node
          - `mcp_id` string, required — Unique ID of the MCP server
          - `mcp_tool_name` string, required — Name of the MCP tool to call
          - `edges` NodeEdge[]
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` union, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `else_edge` ElseEdge
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `response_variables` object — Response variables to add to dynamic variables, key is the variable name, value is the path to the variable in the response
          - `speak_during_execution` boolean — If true, will speak during execution
          - `instruction` union
            - NodeInstructionPrompt
              - …
            - NodeInstructionStaticText
              - …
          - `wait_for_result` boolean, required — If true, will wait for result before transitioning to next node
          - `enable_typing_sound` boolean — If true, play a typing sound while MCP tool executes.
          - `finetune_transition_examples` NodeFinetuneTransitionExample[]
            - `id` string, required — Unique identifier for the example
            - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
              - …
            - `destination_node_id` string — Optional destination node ID
        - ComponentNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `type` 'component', required — Type of the node
          - `component_id` string, required — The reference ID of the component
          - `component_type` 'local' | 'shared', required — Type of component: - local: stored in conversation flow's components array - shared: stored in stand-alone conversation-flow-component table
          - `edges` NodeEdge[] — Array of edges for conditional transitions
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` union, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `else_edge` ElseEdge, required
            - `id` string, required — Unique identifier for the edge
            - `transition_condition` object, required
              - …
            - `destination_node_id` string — ID of the destination node
          - `finetune_transition_examples` NodeFinetuneTransitionExample[]
            - `id` string, required — Unique identifier for the example
            - `transcript` FinetuneExampleUtterance[], required — The example transcript to finetune how the node should transition.
              - …
            - `destination_node_id` string — Optional destination node ID
        - BridgeTransferNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `type` 'bridge_transfer', required — Type of the node - initiates a warm transfer by bridging the call
          - `speak_during_execution` boolean — If true, will speak during execution
          - `instruction` union
            - NodeInstructionPrompt
              - …
            - NodeInstructionStaticText
              - …
        - CancelTransferNode
          - `id` string, required — Unique identifier for the node
          - `name` string — Optional name for display purposes
          - `global_node_setting` GlobalNodeSetting
            - `condition` string, required — Condition for global node activation, cannot be empty
            - `go_back_conditions` NodeEdge[] — The conditions for global node go back. There would be no destination_node_id for these edges.
              - …
            - `cool_down` number — The same global node won't be triggered again within the next N node transitions.
            - `positive_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Transition to this node
              - …
            - `negative_finetune_examples` GlobalNodeFinetuneTransitionExample[] — Don't transition to this node
              - …
          - `display_position` object — Position for frontend display
            - `x` number
            - `y` number
          - `model_choice` ModelChoice
            - `type` 'cascading', required — Type of model choice
            - `model` 'gpt-4.1' | 'gpt-4.1-mini' | 'gpt-4.1-nano' | 'gpt-5' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-5.1' | 'gpt-5.2' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.5' | 'claude-4.5-sonnet' | 'claude-4.6-sonnet' | 'claude-4.5-haiku' | 'gemini-2.5-flash-lite' | 'gemini-3.0-flash' | 'gemini-3.1-flash-lite', required — Available LLM models for agents.
            - `high_priority` boolean — Whether to use high priority pool with more dedicated resource, default false
          - `type` 'cancel_transfer', required — Type of the node - cancels the warm transfer and ends the transfer agent call
          - `speak_during_execution` boolean — If true, will speak during execution
          - `instruction` union
            - NodeInstructionPrompt
              - …
            - NodeInstructionStaticText
              - …
    - `start_node_id` string, nullable — ID of the starting node
    - `begin_tag_display_position` object, nullable — Display position for the begin tag in the frontend
      - `x` number
      - `y` number
    - `notes` Note[], nullable — Visual annotations displayed on the flow canvas.
      - `id` string, required — Unique identifier for the note.
      - `content` string, required — Text content of the note, can contain refs to images in the format "<image:asset_id>"
      - `display_position` object, required — Position of the note on the canvas.
        - `x` number
        - `y` number
      - `size` object, required — Dimensions of the note on the canvas.
        - `width` number
        - `height` number
    - `conversation_flow_component_id` string, required — Unique identifier for the component
    - `user_modified_timestamp` integer, required — Timestamp of last user modification
    - `linked_conversation_flow_ids` string[] — IDs of conversation flows linked to this shared component

## Other responses

- `401` — Unauthorized
- `404` — Not Found
- `429` — Too Many Requests
- `500` — Internal Server Error

---

[API](https://skmtc.net/retellai/apis/retell-sdk.md) · [All operations](https://skmtc.net/retellai/apis/retell-sdk/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/retellai/retell-sdk/versions/2a182bedbfc5/schema)
