@retell-ai/mcp-server 5.21.0 → 5.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -196,35 +196,36 @@ const EMBEDDED_METHODS: MethodEntry[] = [
196
196
  },
197
197
  {
198
198
  name: 'list',
199
- endpoint: '/v2/list-calls',
199
+ endpoint: '/v3/list-calls',
200
200
  httpMethod: 'post',
201
201
  summary: '',
202
- description: 'Retrieve call details',
202
+ description: 'List calls with unified cursor pagination response.',
203
203
  stainlessPath: '(resource) call > (method) list',
204
204
  qualified: 'client.call.list',
205
205
  params: [
206
- "filter_criteria?: { agent_id?: string[]; batch_call_id?: string[]; call_id?: string[]; call_status?: 'not_connected' | 'ongoing' | 'ended' | 'error'[]; call_successful?: boolean[]; call_type?: 'web_call' | 'phone_call'[]; direction?: 'inbound' | 'outbound'[]; disconnection_reason?: string[]; duration_ms?: { lower_threshold?: number; upper_threshold?: number; }; dynamic_variables?: object; e2e_latency_p50?: { lower_threshold?: number; upper_threshold?: number; }; end_timestamp?: { lower_threshold?: number; upper_threshold?: number; }; from_number?: string[]; in_voicemail?: boolean[]; metadata?: object; start_timestamp?: { lower_threshold?: number; upper_threshold?: number; }; to_number?: string[]; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]; version?: number[]; };",
206
+ "filter_criteria?: { agent?: { agent_id: string; version?: number[]; }[]; batch_call_id?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }; call_id?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }; call_status?: { op: 'in'; type: 'enum'; value: 'not_connected' | 'ongoing' | 'ended' | 'error'[]; }; call_successful?: { op: 'eq'; type: 'boolean'; value: boolean; }; call_type?: { op: 'in'; type: 'enum'; value: 'web_call' | 'phone_call'[]; }; combined_cost?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; custom_analysis_data?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; key?: string; } | { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; key?: string; } | { op: 'eq'; type: 'boolean'; value: boolean; key?: string; } | { op: 'bt'; type: 'range'; value: number[]; key?: string; } | { op: 'in'; type: 'enum'; value: string[]; key?: string; } | { op: 'pr' | 'np'; type: 'present'; key?: string; }[]; custom_attributes?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; key?: string; } | { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; key?: string; } | { op: 'eq'; type: 'boolean'; value: boolean; key?: string; } | { op: 'bt'; type: 'range'; value: number[]; key?: string; } | { op: 'in'; type: 'enum'; value: string[]; key?: string; } | { op: 'pr' | 'np'; type: 'present'; key?: string; }[]; data_storage_setting?: { op: 'in'; type: 'enum'; value: 'everything' | 'everything_except_pii' | 'basic_attributes_only'[]; }; direction?: { op: 'in'; type: 'enum'; value: 'inbound' | 'outbound'[]; }; disconnection_reason?: { op: 'in'; type: 'enum'; value: string[]; }; duration_ms?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; dynamic_variables?: { key: string; op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }[]; e2e_latency_p50?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; end_timestamp?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; from_number?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }; in_voicemail?: { op: 'eq'; type: 'boolean'; value: boolean; }; metadata?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; key?: string; } | { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; key?: string; } | { op: 'eq'; type: 'boolean'; value: boolean; key?: string; } | { op: 'bt'; type: 'range'; value: number[]; key?: string; } | { op: 'in'; type: 'enum'; value: string[]; key?: string; } | { op: 'pr' | 'np'; type: 'present'; key?: string; }[]; start_timestamp?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; to_number?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }; tool_calls?: { name: string; latency_ms?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; success?: { op: 'eq'; type: 'boolean'; value: boolean; }; }[]; user_sentiment?: { op: 'in'; type: 'enum'; value: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]; }; };",
207
207
  'limit?: number;',
208
208
  'pagination_key?: string;',
209
+ 'skip?: number;',
209
210
  "sort_order?: 'ascending' | 'descending';",
210
211
  ],
211
- response: 'object | object[]',
212
+ response: '{ has_more?: boolean; items?: object | object[]; pagination_key?: string; }',
212
213
  markdown:
213
- "## list\n\n`client.call.list(filter_criteria?: { agent_id?: string[]; batch_call_id?: string[]; call_id?: string[]; call_status?: 'not_connected' | 'ongoing' | 'ended' | 'error'[]; call_successful?: boolean[]; call_type?: 'web_call' | 'phone_call'[]; direction?: 'inbound' | 'outbound'[]; disconnection_reason?: string[]; duration_ms?: { lower_threshold?: number; upper_threshold?: number; }; dynamic_variables?: object; e2e_latency_p50?: { lower_threshold?: number; upper_threshold?: number; }; end_timestamp?: { lower_threshold?: number; upper_threshold?: number; }; from_number?: string[]; in_voicemail?: boolean[]; metadata?: object; start_timestamp?: { lower_threshold?: number; upper_threshold?: number; }; to_number?: string[]; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]; version?: number[]; }, limit?: number, pagination_key?: string, sort_order?: 'ascending' | 'descending'): web_call_response | phone_call_response[]`\n\n**post** `/v2/list-calls`\n\nRetrieve call details\n\n### Parameters\n\n- `filter_criteria?: { agent_id?: string[]; batch_call_id?: string[]; call_id?: string[]; call_status?: 'not_connected' | 'ongoing' | 'ended' | 'error'[]; call_successful?: boolean[]; call_type?: 'web_call' | 'phone_call'[]; direction?: 'inbound' | 'outbound'[]; disconnection_reason?: string[]; duration_ms?: { lower_threshold?: number; upper_threshold?: number; }; dynamic_variables?: object; e2e_latency_p50?: { lower_threshold?: number; upper_threshold?: number; }; end_timestamp?: { lower_threshold?: number; upper_threshold?: number; }; from_number?: string[]; in_voicemail?: boolean[]; metadata?: object; start_timestamp?: { lower_threshold?: number; upper_threshold?: number; }; to_number?: string[]; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]; version?: number[]; }`\n Filter criteria for the calls to retrieve.\n - `agent_id?: string[]`\n Only retrieve calls that are made with specific agent(s).\n - `batch_call_id?: string[]`\n Only retrieve calls with specific batch call id(s).\n - `call_id?: string[]`\n Only retrieve calls with specific call id(s).\n - `call_status?: 'not_connected' | 'ongoing' | 'ended' | 'error'[]`\n Only retrieve calls with specific call status(es).\n - `call_successful?: boolean[]`\n Only retrieve calls with specific call successful(s).\n - `call_type?: 'web_call' | 'phone_call'[]`\n Only retrieve calls with specific call type(s).\n - `direction?: 'inbound' | 'outbound'[]`\n Only retrieve calls with specific direction(s).\n - `disconnection_reason?: string[]`\n Only retrieve calls with specific disconnection reason(s).\n - `duration_ms?: { lower_threshold?: number; upper_threshold?: number; }`\n Only retrieve calls with specific range of duration(s).\n - `dynamic_variables?: object`\n Filter by dynamic variables using dot notation (e.g., `dynamic_variables.name`).\nValues are matched exactly as strings.\n\n - `e2e_latency_p50?: { lower_threshold?: number; upper_threshold?: number; }`\n - `end_timestamp?: { lower_threshold?: number; upper_threshold?: number; }`\n Only retrieve calls with specific range of end timestamp(s).\n - `from_number?: string[]`\n Only retrieve calls with specific from number(s).\n - `in_voicemail?: boolean[]`\n Only retrieve calls that are in voicemail or not in voicemail.\n - `metadata?: object`\n Filter by metadata fields using dot notation (e.g., `metadata.customer_id`).\nValues are matched exactly as strings.\n\n - `start_timestamp?: { lower_threshold?: number; upper_threshold?: number; }`\n Only retrieve calls with specific range of start timestamp(s).\n - `to_number?: string[]`\n Only retrieve calls with specific to number(s).\n - `user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]`\n Only retrieve calls with specific user sentiment(s).\n - `version?: number[]`\n The version of the agent to use for the call.\n\n- `limit?: number`\n Limit the number of calls returned. Default 50, Max 1000. To retrieve more than 1000, use pagination_key to continue fetching the next page.\n\n- `pagination_key?: string`\n The pagination key to continue fetching the next page of calls. Pagination key is represented by a call id here, and it's exclusive (not included in the fetched calls). The last call id from the list calls is usually used as pagination key here. If not set, will start from the beginning.\n\n- `sort_order?: 'ascending' | 'descending'`\n The calls will be sorted by `start_timestamp`, whether to return the calls in ascending or descending order.\n\n### Returns\n\n- `{ access_token: string; agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'web_call'; agent_name?: string; call_analysis?: object; call_cost?: object; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: object; llm_token_usage?: object; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: object | object | object | object | object[]; start_timestamp?: number; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; } | { agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'phone_call'; direction: 'inbound' | 'outbound'; from_number: string; to_number: string; agent_name?: string; call_analysis?: object; call_cost?: object; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: object; llm_token_usage?: object; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: object | object | object | object | object[]; start_timestamp?: number; telephony_identifier?: object; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst callResponses = await client.call.list();\n\nconsole.log(callResponses);\n```",
214
+ "## list\n\n`client.call.list(filter_criteria?: { agent?: { agent_id: string; version?: number[]; }[]; batch_call_id?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }; call_id?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }; call_status?: { op: 'in'; type: 'enum'; value: 'not_connected' | 'ongoing' | 'ended' | 'error'[]; }; call_successful?: { op: 'eq'; type: 'boolean'; value: boolean; }; call_type?: { op: 'in'; type: 'enum'; value: 'web_call' | 'phone_call'[]; }; combined_cost?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; custom_analysis_data?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; key?: string; } | { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; key?: string; } | { op: 'eq'; type: 'boolean'; value: boolean; key?: string; } | { op: 'bt'; type: 'range'; value: number[]; key?: string; } | { op: 'in'; type: 'enum'; value: string[]; key?: string; } | { op: 'pr' | 'np'; type: 'present'; key?: string; }[]; custom_attributes?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; key?: string; } | { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; key?: string; } | { op: 'eq'; type: 'boolean'; value: boolean; key?: string; } | { op: 'bt'; type: 'range'; value: number[]; key?: string; } | { op: 'in'; type: 'enum'; value: string[]; key?: string; } | { op: 'pr' | 'np'; type: 'present'; key?: string; }[]; data_storage_setting?: { op: 'in'; type: 'enum'; value: 'everything' | 'everything_except_pii' | 'basic_attributes_only'[]; }; direction?: { op: 'in'; type: 'enum'; value: 'inbound' | 'outbound'[]; }; disconnection_reason?: { op: 'in'; type: 'enum'; value: string[]; }; duration_ms?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; dynamic_variables?: { key: string; op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }[]; e2e_latency_p50?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; end_timestamp?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; from_number?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }; in_voicemail?: { op: 'eq'; type: 'boolean'; value: boolean; }; metadata?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; key?: string; } | { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; key?: string; } | { op: 'eq'; type: 'boolean'; value: boolean; key?: string; } | { op: 'bt'; type: 'range'; value: number[]; key?: string; } | { op: 'in'; type: 'enum'; value: string[]; key?: string; } | { op: 'pr' | 'np'; type: 'present'; key?: string; }[]; start_timestamp?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; to_number?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }; tool_calls?: { name: string; latency_ms?: object | object; success?: object; }[]; user_sentiment?: { op: 'in'; type: 'enum'; value: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]; }; }, limit?: number, pagination_key?: string, skip?: number, sort_order?: 'ascending' | 'descending'): { has_more?: boolean; items?: web_call_response | phone_call_response[]; pagination_key?: string; }`\n\n**post** `/v3/list-calls`\n\nList calls with unified cursor pagination response.\n\n### Parameters\n\n- `filter_criteria?: { agent?: { agent_id: string; version?: number[]; }[]; batch_call_id?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }; call_id?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }; call_status?: { op: 'in'; type: 'enum'; value: 'not_connected' | 'ongoing' | 'ended' | 'error'[]; }; call_successful?: { op: 'eq'; type: 'boolean'; value: boolean; }; call_type?: { op: 'in'; type: 'enum'; value: 'web_call' | 'phone_call'[]; }; combined_cost?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; custom_analysis_data?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; key?: string; } | { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; key?: string; } | { op: 'eq'; type: 'boolean'; value: boolean; key?: string; } | { op: 'bt'; type: 'range'; value: number[]; key?: string; } | { op: 'in'; type: 'enum'; value: string[]; key?: string; } | { op: 'pr' | 'np'; type: 'present'; key?: string; }[]; custom_attributes?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; key?: string; } | { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; key?: string; } | { op: 'eq'; type: 'boolean'; value: boolean; key?: string; } | { op: 'bt'; type: 'range'; value: number[]; key?: string; } | { op: 'in'; type: 'enum'; value: string[]; key?: string; } | { op: 'pr' | 'np'; type: 'present'; key?: string; }[]; data_storage_setting?: { op: 'in'; type: 'enum'; value: 'everything' | 'everything_except_pii' | 'basic_attributes_only'[]; }; direction?: { op: 'in'; type: 'enum'; value: 'inbound' | 'outbound'[]; }; disconnection_reason?: { op: 'in'; type: 'enum'; value: string[]; }; duration_ms?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; dynamic_variables?: { key: string; op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }[]; e2e_latency_p50?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; end_timestamp?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; from_number?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }; in_voicemail?: { op: 'eq'; type: 'boolean'; value: boolean; }; metadata?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; key?: string; } | { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; key?: string; } | { op: 'eq'; type: 'boolean'; value: boolean; key?: string; } | { op: 'bt'; type: 'range'; value: number[]; key?: string; } | { op: 'in'; type: 'enum'; value: string[]; key?: string; } | { op: 'pr' | 'np'; type: 'present'; key?: string; }[]; start_timestamp?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; to_number?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }; tool_calls?: { name: string; latency_ms?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; success?: { op: 'eq'; type: 'boolean'; value: boolean; }; }[]; user_sentiment?: { op: 'in'; type: 'enum'; value: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]; }; }`\n Filter criteria for calls. All conditions are implicitly connected with AND.\n - `agent?: { agent_id: string; version?: number[]; }[]`\n Filter by agent(s). Agent filters are connected by OR.\n - `batch_call_id?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }`\n Filter by batch call ID.\n - `call_id?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }`\n Filter by call ID.\n - `call_status?: { op: 'in'; type: 'enum'; value: 'not_connected' | 'ongoing' | 'ended' | 'error'[]; }`\n - `call_successful?: { op: 'eq'; type: 'boolean'; value: boolean; }`\n Filter by whether the call was successful.\n - `call_type?: { op: 'in'; type: 'enum'; value: 'web_call' | 'phone_call'[]; }`\n - `combined_cost?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }`\n Filter by combined cost of the call.\n - `custom_analysis_data?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; key?: string; } | { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; key?: string; } | { op: 'eq'; type: 'boolean'; value: boolean; key?: string; } | { op: 'bt'; type: 'range'; value: number[]; key?: string; } | { op: 'in'; type: 'enum'; value: string[]; key?: string; } | { op: 'pr' | 'np'; type: 'present'; key?: string; }[]`\n Filter by custom analysis data fields.\n - `custom_attributes?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; key?: string; } | { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; key?: string; } | { op: 'eq'; type: 'boolean'; value: boolean; key?: string; } | { op: 'bt'; type: 'range'; value: number[]; key?: string; } | { op: 'in'; type: 'enum'; value: string[]; key?: string; } | { op: 'pr' | 'np'; type: 'present'; key?: string; }[]`\n Filter by custom attributes fields.\n - `data_storage_setting?: { op: 'in'; type: 'enum'; value: 'everything' | 'everything_except_pii' | 'basic_attributes_only'[]; }`\n - `direction?: { op: 'in'; type: 'enum'; value: 'inbound' | 'outbound'[]; }`\n - `disconnection_reason?: { op: 'in'; type: 'enum'; value: string[]; }`\n - `duration_ms?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }`\n Filter by call duration in milliseconds.\n - `dynamic_variables?: { key: string; op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }[]`\n Filter by dynamic variables.\n - `e2e_latency_p50?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }`\n Filter by end-to-end latency p50.\n - `end_timestamp?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }`\n Filter by call end timestamp (epoch ms).\n - `from_number?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }`\n Filter by from number.\n - `in_voicemail?: { op: 'eq'; type: 'boolean'; value: boolean; }`\n Filter by whether the call is in voicemail.\n - `metadata?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; key?: string; } | { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; key?: string; } | { op: 'eq'; type: 'boolean'; value: boolean; key?: string; } | { op: 'bt'; type: 'range'; value: number[]; key?: string; } | { op: 'in'; type: 'enum'; value: string[]; key?: string; } | { op: 'pr' | 'np'; type: 'present'; key?: string; }[]`\n Filter by metadata fields.\n - `start_timestamp?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }`\n Filter by call start timestamp (epoch ms).\n - `to_number?: { op: 'eq' | 'ne' | 'sw' | 'ew' | 'co'; type: 'string'; value: string; }`\n Filter by to number.\n - `tool_calls?: { name: string; latency_ms?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; success?: { op: 'eq'; type: 'boolean'; value: boolean; }; }[]`\n Filter by tool call criteria. Tool call filters are connected by AND.\n - `user_sentiment?: { op: 'in'; type: 'enum'; value: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]; }`\n\n- `limit?: number`\n Maximum number of calls to return.\n\n- `pagination_key?: string`\n Opaque pagination cursor from a previous response.\n\n- `skip?: number`\n Number of records to skip for pagination.\n\n- `sort_order?: 'ascending' | 'descending'`\n Sort calls by `start_timestamp` in ascending or descending order.\n\n### Returns\n\n- `{ has_more?: boolean; items?: { access_token: string; agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'web_call'; agent_name?: string; call_analysis?: object; call_cost?: object; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: object; llm_token_usage?: object; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: object | object | object | object | object[]; start_timestamp?: number; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; } | { agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'phone_call'; direction: 'inbound' | 'outbound'; from_number: string; to_number: string; agent_name?: string; call_analysis?: object; call_cost?: object; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: object; llm_token_usage?: object; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: object | object | object | object | object[]; start_timestamp?: number; telephony_identifier?: object; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }[]; pagination_key?: string; }`\n\n - `has_more?: boolean`\n - `items?: { access_token: string; agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'web_call'; agent_name?: string; call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; call_cost?: { combined_cost: number; product_costs: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; total_duration_seconds: number; total_duration_unit_price: number; }; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: { asr?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; e2e?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; knowledge_base?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm_websocket_network_rtt?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; s2s?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; tts?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; }; llm_token_usage?: { average: number; num_requests: number; values: number[]; }; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; transition_type?: 'global' | 'global_go_back' | 'interrupt_go_back' | 'normal'; } | { digit: string; role: 'dtmf'; }[]; start_timestamp?: number; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; transition_type?: 'global' | 'global_go_back' | 'interrupt_go_back' | 'normal'; } | { digit: string; role: 'dtmf'; }[]; transfer_destination?: string; transfer_end_timestamp?: number; } | { agent_id: string; agent_version: number; call_id: string; call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'; call_type: 'phone_call'; direction: 'inbound' | 'outbound'; from_number: string; to_number: string; agent_name?: string; call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; call_cost?: { combined_cost: number; product_costs: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; total_duration_seconds: number; total_duration_unit_price: number; }; collected_dynamic_variables?: object; custom_sip_headers?: object; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; disconnection_reason?: string; duration_ms?: number; end_timestamp?: number; knowledge_base_retrieved_contents_url?: string; latency?: { asr?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; e2e?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; knowledge_base?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; llm_websocket_network_rtt?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; s2s?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; tts?: { max?: number; min?: number; num?: number; p50?: number; p90?: number; p95?: number; p99?: number; values?: number[]; }; }; llm_token_usage?: { average: number; num_requests: number; values: number[]; }; metadata?: object; opt_in_signed_url?: boolean; public_log_url?: string; recording_multi_channel_url?: string; recording_url?: string; retell_llm_dynamic_variables?: object; scrubbed_recording_multi_channel_url?: string; scrubbed_recording_url?: string; scrubbed_transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; transition_type?: 'global' | 'global_go_back' | 'interrupt_go_back' | 'normal'; } | { digit: string; role: 'dtmf'; }[]; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; successful?: boolean; } | { former_node_id: string; former_node_name: string; new_node_id: string; new_node_name: string; role: 'node_transition'; transition_type?: 'global' | 'global_go_back' | 'interrupt_go_back' | 'normal'; } | { digit: string; role: 'dtmf'; }[]; transfer_destination?: string; transfer_end_timestamp?: number; }[]`\n - `pagination_key?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst calls = await client.call.list();\n\nconsole.log(calls);\n```",
214
215
  perLanguage: {
215
216
  typescript: {
216
217
  method: 'client.call.list',
217
218
  example:
218
- "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst callResponses = await client.call.list();\n\nconsole.log(callResponses);",
219
+ "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst calls = await client.call.list();\n\nconsole.log(calls.has_more);",
219
220
  },
220
221
  python: {
221
222
  method: 'call.list',
222
223
  example:
223
- 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ncall_responses = client.call.list()\nprint(call_responses)',
224
+ 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ncalls = client.call.list()\nprint(calls.has_more)',
224
225
  },
225
226
  http: {
226
227
  example:
227
- 'curl https://api.retellai.com/v2/list-calls \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n --max-time 300 \\\n -d \'{\n "filter_criteria": {\n "agent_id": [\n "agent_oBeDLoLOeuAbiuaMFXRtDOLriT12345"\n ],\n "call_id": [\n "call_5a82f0a43ea0977566b1104fcfc"\n ],\n "call_status": [\n "ended"\n ],\n "call_successful": [\n true\n ],\n "call_type": [\n "phone_call"\n ],\n "direction": [\n "inbound"\n ],\n "start_timestamp": {\n "lower_threshold": 1738475411000,\n "upper_threshold": 1738475421000\n },\n "user_sentiment": [\n "Positive"\n ]\n }\n }\'',
228
+ 'curl https://api.retellai.com/v3/list-calls \\\n -X POST \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n --max-time 300',
228
229
  },
229
230
  },
230
231
  },
@@ -482,31 +483,37 @@ const EMBEDDED_METHODS: MethodEntry[] = [
482
483
  },
483
484
  {
484
485
  name: 'list',
485
- endpoint: '/list-chat',
486
- httpMethod: 'get',
486
+ endpoint: '/v3/list-chats',
487
+ httpMethod: 'post',
487
488
  summary: '',
488
- description: 'List all chats',
489
+ description: 'List chats with unified cursor pagination response.',
489
490
  stainlessPath: '(resource) chat > (method) list',
490
491
  qualified: 'client.chat.list',
491
- params: ['limit?: number;', 'pagination_key?: string;', "sort_order?: 'ascending' | 'descending';"],
492
+ params: [
493
+ 'filter_criteria?: object;',
494
+ 'limit?: number;',
495
+ 'pagination_key?: string;',
496
+ 'skip?: number;',
497
+ "sort_order?: 'ascending' | 'descending';",
498
+ ],
492
499
  response:
493
- "{ agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: object; chat_cost?: object; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: object | object | object | object | object[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }[]",
500
+ "{ has_more?: boolean; items?: { agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: object; chat_cost?: object; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: object | object | object | object | object[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }[]; pagination_key?: string; }",
494
501
  markdown:
495
- "## list\n\n`client.chat.list(limit?: number, pagination_key?: string, sort_order?: 'ascending' | 'descending'): object[]`\n\n**get** `/list-chat`\n\nList all chats\n\n### Parameters\n\n- `limit?: number`\n Limit the number of chats returned. Default 50, Max 1000. To retrieve more than 1000, use pagination_key to continue fetching the next page.\n\n- `pagination_key?: string`\n The pagination key to continue fetching the next page of chats. Pagination key is represented by a chat id here, and it's exclusive (not included in the fetched chats). The last chat id from the list chats is usually used as pagination key here. If not set, will start from the beginning.\n\n- `sort_order?: 'ascending' | 'descending'`\n The chats will be sorted by `start_timestamp`, whether to return the chats in ascending or descending order.\n\n### Returns\n\n- `{ agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: { chat_successful?: boolean; chat_summary?: string; custom_analysis_data?: object; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; chat_cost?: { combined_cost?: number; product_costs?: object[]; }; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: { content: string; role: 'agent' | 'user'; created_timestamp?: number; message_id?: string; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; message_id?: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; created_timestamp?: number; message_id?: string; successful?: boolean; } | { role: 'node_transition'; created_timestamp?: number; former_node_id?: string; former_node_name?: string; message_id?: string; new_node_id?: string; new_node_name?: string; transition_type?: 'global' | 'global_go_back' | 'interrupt_go_back' | 'normal'; } | { role: 'state_transition'; created_timestamp?: number; former_state_name?: string; message_id?: string; new_state_name?: string; }[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatResponses = await client.chat.list();\n\nconsole.log(chatResponses);\n```",
502
+ "## list\n\n`client.chat.list(filter_criteria?: object, limit?: number, pagination_key?: string, skip?: number, sort_order?: 'ascending' | 'descending'): { has_more?: boolean; items?: chat_response[]; pagination_key?: string; }`\n\n**post** `/v3/list-chats`\n\nList chats with unified cursor pagination response.\n\n### Parameters\n\n- `filter_criteria?: object`\n Filter criteria for chats to retrieve.\n\n- `limit?: number`\n Maximum number of chats to return.\n\n- `pagination_key?: string`\n Opaque pagination cursor from a previous response.\n\n- `skip?: number`\n Number of records to skip for pagination.\n\n- `sort_order?: 'ascending' | 'descending'`\n Sort chats by `start_timestamp` in ascending or descending order.\n\n### Returns\n\n- `{ has_more?: boolean; items?: { agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: object; chat_cost?: object; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: object | object | object | object | object[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }[]; pagination_key?: string; }`\n\n - `has_more?: boolean`\n - `items?: { agent_id: string; chat_id: string; chat_status: 'ongoing' | 'ended' | 'error'; chat_analysis?: { chat_successful?: boolean; chat_summary?: string; custom_analysis_data?: object; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }; chat_cost?: { combined_cost?: number; product_costs?: { cost: number; product: string; is_transfer_leg_cost?: boolean; unit_price?: number; }[]; }; chat_type?: 'api_chat' | 'sms_chat'; collected_dynamic_variables?: object; custom_attributes?: object; end_timestamp?: number; message_with_tool_calls?: { content: string; role: 'agent' | 'user'; created_timestamp?: number; message_id?: string; } | { arguments: string; name: string; role: 'tool_call_invocation'; tool_call_id: string; created_timestamp?: number; message_id?: string; thought_signature?: string; } | { content: string; role: 'tool_call_result'; tool_call_id: string; created_timestamp?: number; message_id?: string; successful?: boolean; } | { role: 'node_transition'; created_timestamp?: number; former_node_id?: string; former_node_name?: string; message_id?: string; new_node_id?: string; new_node_name?: string; transition_type?: 'global' | 'global_go_back' | 'interrupt_go_back' | 'normal'; } | { role: 'state_transition'; created_timestamp?: number; former_state_name?: string; message_id?: string; new_state_name?: string; }[]; metadata?: object; retell_llm_dynamic_variables?: object; start_timestamp?: number; transcript?: string; version?: number; }[]`\n - `pagination_key?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chats = await client.chat.list();\n\nconsole.log(chats);\n```",
496
503
  perLanguage: {
497
504
  typescript: {
498
505
  method: 'client.chat.list',
499
506
  example:
500
- "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst chatResponses = await client.chat.list();\n\nconsole.log(chatResponses);",
507
+ "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst chats = await client.chat.list();\n\nconsole.log(chats.has_more);",
501
508
  },
502
509
  python: {
503
510
  method: 'chat.list',
504
511
  example:
505
- 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nchat_responses = client.chat.list()\nprint(chat_responses)',
512
+ 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nchats = client.chat.list()\nprint(chats.has_more)',
506
513
  },
507
514
  http: {
508
515
  example:
509
- 'curl https://api.retellai.com/list-chat \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n --max-time 300',
516
+ 'curl https://api.retellai.com/v3/list-chats \\\n -X POST \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n --max-time 300',
510
517
  },
511
518
  },
512
519
  },
@@ -546,6 +553,34 @@ const EMBEDDED_METHODS: MethodEntry[] = [
546
553
  },
547
554
  },
548
555
  },
556
+ {
557
+ name: 'delete',
558
+ endpoint: '/delete-chat/{chat_id}',
559
+ httpMethod: 'delete',
560
+ summary: '',
561
+ description: 'Delete an existing chat',
562
+ stainlessPath: '(resource) chat > (method) delete',
563
+ qualified: 'client.chat.delete',
564
+ params: ['chat_id: string;'],
565
+ markdown:
566
+ "## delete\n\n`client.chat.delete(chat_id: string): void`\n\n**delete** `/delete-chat/{chat_id}`\n\nDelete an existing chat\n\n### Parameters\n\n- `chat_id: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.chat.delete('16b980523634a6dc504898cda492e939')\n```",
567
+ perLanguage: {
568
+ typescript: {
569
+ method: 'client.chat.delete',
570
+ example:
571
+ "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.chat.delete('16b980523634a6dc504898cda492e939');",
572
+ },
573
+ python: {
574
+ method: 'chat.delete',
575
+ example:
576
+ 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.chat.delete(\n "16b980523634a6dc504898cda492e939",\n)',
577
+ },
578
+ http: {
579
+ example:
580
+ 'curl https://api.retellai.com/delete-chat/$CHAT_ID \\\n -X DELETE \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
581
+ },
582
+ },
583
+ },
549
584
  {
550
585
  name: 'create',
551
586
  endpoint: '/create-phone-number',
@@ -665,30 +700,31 @@ const EMBEDDED_METHODS: MethodEntry[] = [
665
700
  },
666
701
  {
667
702
  name: 'list',
668
- endpoint: '/list-phone-numbers',
703
+ endpoint: '/v2/list-phone-numbers',
669
704
  httpMethod: 'get',
670
705
  summary: '',
671
- description: 'List all phone numbers',
706
+ description: 'List phone numbers with pagination',
672
707
  stainlessPath: '(resource) phone_number > (method) list',
673
708
  qualified: 'client.phoneNumber.list',
709
+ params: ['limit?: number;', 'pagination_key?: string;', "sort_order?: 'ascending' | 'descending';"],
674
710
  response:
675
- "{ last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agents?: { agent_id: string; weight: number; agent_version?: number | string; }[]; inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number | string; }[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agents?: { agent_id: string; weight: number; agent_version?: number | string; }[]; outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number | string; }[]; phone_number_pretty?: string; sip_outbound_trunk_config?: { auth_username?: string; termination_uri?: string; transport?: string; }; }[]",
711
+ "{ has_more?: boolean; items?: { last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agents?: object[]; inbound_sms_agents?: object[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agents?: object[]; outbound_sms_agents?: object[]; phone_number_pretty?: string; sip_outbound_trunk_config?: object; }[]; pagination_key?: string; }",
676
712
  markdown:
677
- "## list\n\n`client.phoneNumber.list(): object[]`\n\n**get** `/list-phone-numbers`\n\nList all phone numbers\n\n### Returns\n\n- `{ last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agents?: { agent_id: string; weight: number; agent_version?: number | string; }[]; inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number | string; }[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agents?: { agent_id: string; weight: number; agent_version?: number | string; }[]; outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number | string; }[]; phone_number_pretty?: string; sip_outbound_trunk_config?: { auth_username?: string; termination_uri?: string; transport?: string; }; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneNumberResponses = await client.phoneNumber.list();\n\nconsole.log(phoneNumberResponses);\n```",
713
+ "## list\n\n`client.phoneNumber.list(limit?: number, pagination_key?: string, sort_order?: 'ascending' | 'descending'): { has_more?: boolean; items?: phone_number_response[]; pagination_key?: string; }`\n\n**get** `/v2/list-phone-numbers`\n\nList phone numbers with pagination\n\n### Parameters\n\n- `limit?: number`\n Maximum number of items to return.\n\n- `pagination_key?: string`\n Pagination key for fetching the next page.\n\n- `sort_order?: 'ascending' | 'descending'`\n Sort order for results.\n\n### Returns\n\n- `{ has_more?: boolean; items?: { last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agents?: object[]; inbound_sms_agents?: object[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agents?: object[]; outbound_sms_agents?: object[]; phone_number_pretty?: string; sip_outbound_trunk_config?: object; }[]; pagination_key?: string; }`\n\n - `has_more?: boolean`\n - `items?: { last_modification_timestamp: number; phone_number: string; phone_number_type: 'retell-twilio' | 'retell-telnyx' | 'custom'; allowed_inbound_country_list?: string[]; allowed_outbound_country_list?: string[]; area_code?: number; fallback_number?: string; inbound_agents?: { agent_id: string; weight: number; agent_version?: number | string; }[]; inbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number | string; }[]; inbound_sms_webhook_url?: string; inbound_webhook_url?: string; nickname?: string; outbound_agents?: { agent_id: string; weight: number; agent_version?: number | string; }[]; outbound_sms_agents?: { agent_id: string; weight: number; agent_version?: number | string; }[]; phone_number_pretty?: string; sip_outbound_trunk_config?: { auth_username?: string; termination_uri?: string; transport?: string; }; }[]`\n - `pagination_key?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneNumbers = await client.phoneNumber.list();\n\nconsole.log(phoneNumbers);\n```",
678
714
  perLanguage: {
679
715
  typescript: {
680
716
  method: 'client.phoneNumber.list',
681
717
  example:
682
- "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst phoneNumberResponses = await client.phoneNumber.list();\n\nconsole.log(phoneNumberResponses);",
718
+ "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst phoneNumbers = await client.phoneNumber.list();\n\nconsole.log(phoneNumbers.has_more);",
683
719
  },
684
720
  python: {
685
721
  method: 'phone_number.list',
686
722
  example:
687
- 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nphone_number_responses = client.phone_number.list()\nprint(phone_number_responses)',
723
+ 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nphone_numbers = client.phone_number.list()\nprint(phone_numbers.has_more)',
688
724
  },
689
725
  http: {
690
726
  example:
691
- 'curl https://api.retellai.com/list-phone-numbers \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
727
+ 'curl https://api.retellai.com/v2/list-phone-numbers \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
692
728
  },
693
729
  },
694
730
  },
@@ -1033,6 +1069,34 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1033
1069
  },
1034
1070
  },
1035
1071
  },
1072
+ {
1073
+ name: 'publish',
1074
+ endpoint: '/publish-agent-version/{agent_id}',
1075
+ httpMethod: 'post',
1076
+ summary: '',
1077
+ description: 'Publish an existing draft version in place.',
1078
+ stainlessPath: '(resource) agent > (method) publish',
1079
+ qualified: 'client.agent.publish',
1080
+ params: ['agent_id: string;', 'version: number;', 'version_description?: string;'],
1081
+ markdown:
1082
+ "## publish\n\n`client.agent.publish(agent_id: string, version: number, version_description?: string): void`\n\n**post** `/publish-agent-version/{agent_id}`\n\nPublish an existing draft version in place.\n\n### Parameters\n\n- `agent_id: string`\n\n- `version: number`\n\n- `version_description?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.agent.publish('agent_xxx', { version: 15 })\n```",
1083
+ perLanguage: {
1084
+ typescript: {
1085
+ method: 'client.agent.publish',
1086
+ example:
1087
+ "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.agent.publish('agent_xxx', { version: 15 });",
1088
+ },
1089
+ python: {
1090
+ method: 'agent.publish',
1091
+ example:
1092
+ 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.agent.publish(\n agent_id="agent_xxx",\n version=15,\n)',
1093
+ },
1094
+ http: {
1095
+ example:
1096
+ 'curl https://api.retellai.com/publish-agent-version/$AGENT_ID \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "version": 15,\n "version_description": "Hotfix for transfer timeout"\n }\'',
1097
+ },
1098
+ },
1099
+ },
1036
1100
  {
1037
1101
  name: 'get-versions',
1038
1102
  endpoint: '/get-agent-versions/{agent_id}',
@@ -1263,6 +1327,34 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1263
1327
  },
1264
1328
  },
1265
1329
  },
1330
+ {
1331
+ name: 'publish',
1332
+ endpoint: '/publish-agent-version/{agent_id}',
1333
+ httpMethod: 'post',
1334
+ summary: '',
1335
+ description: 'Publish an existing draft version in place.',
1336
+ stainlessPath: '(resource) chat_agent > (method) publish',
1337
+ qualified: 'client.chatAgent.publish',
1338
+ params: ['agent_id: string;', 'version: number;', 'version_description?: string;'],
1339
+ markdown:
1340
+ "## publish\n\n`client.chatAgent.publish(agent_id: string, version: number, version_description?: string): void`\n\n**post** `/publish-agent-version/{agent_id}`\n\nPublish an existing draft version in place.\n\n### Parameters\n\n- `agent_id: string`\n\n- `version: number`\n\n- `version_description?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nawait client.chatAgent.publish('agent_xxx', { version: 15 })\n```",
1341
+ perLanguage: {
1342
+ typescript: {
1343
+ method: 'client.chatAgent.publish',
1344
+ example:
1345
+ "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nawait client.chatAgent.publish('agent_xxx', { version: 15 });",
1346
+ },
1347
+ python: {
1348
+ method: 'chat_agent.publish',
1349
+ example:
1350
+ 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nclient.chat_agent.publish(\n agent_id="agent_xxx",\n version=15,\n)',
1351
+ },
1352
+ http: {
1353
+ example:
1354
+ 'curl https://api.retellai.com/publish-agent-version/$AGENT_ID \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d \'{\n "version": 15,\n "version_description": "Hotfix for transfer timeout"\n }\'',
1355
+ },
1356
+ },
1357
+ },
1266
1358
  {
1267
1359
  name: 'get-versions',
1268
1360
  endpoint: '/get-chat-agent-versions/{agent_id}',
@@ -1374,31 +1466,31 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1374
1466
  },
1375
1467
  {
1376
1468
  name: 'list',
1377
- endpoint: '/list-retell-llms',
1469
+ endpoint: '/v2/list-retell-llms',
1378
1470
  httpMethod: 'get',
1379
1471
  summary: '',
1380
- description: 'List all Retell LLM Response Engines that can be attached to an agent.',
1472
+ description: 'List Retell LLM Response Engines with pagination',
1381
1473
  stainlessPath: '(resource) llm > (method) list',
1382
1474
  qualified: 'client.llm.list',
1383
- params: ['limit?: number;', 'pagination_key?: string;', 'pagination_key_version?: number;'],
1475
+ params: ['limit?: number;', 'pagination_key?: string;', "sort_order?: 'ascending' | 'descending';"],
1384
1476
  response:
1385
- "{ last_modification_timestamp: number; llm_id: string; begin_after_user_silence_ms?: number; begin_message?: string; default_dynamic_variables?: object; general_prompt?: string; general_tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; is_published?: boolean; kb_config?: object; knowledge_base_ids?: string[]; mcps?: object[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; starting_state?: string; states?: object[]; tool_call_strict_mode?: boolean; version?: number; }[]",
1477
+ "{ has_more?: boolean; items?: { last_modification_timestamp: number; llm_id: string; begin_after_user_silence_ms?: number; begin_message?: string; default_dynamic_variables?: object; general_prompt?: string; general_tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; is_published?: boolean; kb_config?: object; knowledge_base_ids?: string[]; mcps?: object[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; starting_state?: string; states?: object[]; tool_call_strict_mode?: boolean; version?: number; }[]; pagination_key?: string; }",
1386
1478
  markdown:
1387
- "## list\n\n`client.llm.list(limit?: number, pagination_key?: string, pagination_key_version?: number): object[]`\n\n**get** `/list-retell-llms`\n\nList all Retell LLM Response Engines that can be attached to an agent.\n\n### Parameters\n\n- `limit?: number`\n A limit on the number of objects to be returned. Limit can range between 1 and 1000, and the default is 1000.\n\n- `pagination_key?: string`\n The pagination key to continue fetching the next page of LLMs. Pagination key is represented by a llm id, pagination key and version pair is exclusive (not included in the fetched page). If not set, will start from the beginning.\n\n- `pagination_key_version?: number`\n Specifies the version of the llm associated with the pagination_key. When paginating, both the pagination_key and its version must be provided to ensure consistent ordering and to fetch the next page correctly.\n\n### Returns\n\n- `{ last_modification_timestamp: number; llm_id: string; begin_after_user_silence_ms?: number; begin_message?: string; default_dynamic_variables?: object; general_prompt?: string; general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number | string; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; is_published?: boolean; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; starting_state?: string; states?: { name: string; edges?: object[]; state_prompt?: string; tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; }[]; tool_call_strict_mode?: boolean; version?: number; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst llmResponses = await client.llm.list();\n\nconsole.log(llmResponses);\n```",
1479
+ "## list\n\n`client.llm.list(limit?: number, pagination_key?: string, sort_order?: 'ascending' | 'descending'): { has_more?: boolean; items?: llm_response[]; pagination_key?: string; }`\n\n**get** `/v2/list-retell-llms`\n\nList Retell LLM Response Engines with pagination\n\n### Parameters\n\n- `limit?: number`\n Maximum number of items to return.\n\n- `pagination_key?: string`\n Pagination key for fetching the next page.\n\n- `sort_order?: 'ascending' | 'descending'`\n Sort order for results.\n\n### Returns\n\n- `{ has_more?: boolean; items?: { last_modification_timestamp: number; llm_id: string; begin_after_user_silence_ms?: number; begin_message?: string; default_dynamic_variables?: object; general_prompt?: string; general_tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; is_published?: boolean; kb_config?: object; knowledge_base_ids?: string[]; mcps?: object[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; starting_state?: string; states?: object[]; tool_call_strict_mode?: boolean; version?: number; }[]; pagination_key?: string; }`\n\n - `has_more?: boolean`\n - `items?: { last_modification_timestamp: number; llm_id: string; begin_after_user_silence_ms?: number; begin_message?: string; default_dynamic_variables?: object; general_prompt?: string; general_tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number | string; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: { content?: string; type?: 'predefined'; } | { prompt?: string; type?: 'inferred'; } | { template: 'info_collection'; type: 'template'; }; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; is_published?: boolean; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; starting_state?: string; states?: { name: string; edges?: { description: string; destination_state_name: string; parameters?: object; }[]; state_prompt?: string; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number | string; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; }[]; tool_call_strict_mode?: boolean; version?: number; }[]`\n - `pagination_key?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst llms = await client.llm.list();\n\nconsole.log(llms);\n```",
1388
1480
  perLanguage: {
1389
1481
  typescript: {
1390
1482
  method: 'client.llm.list',
1391
1483
  example:
1392
- "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst llmResponses = await client.llm.list();\n\nconsole.log(llmResponses);",
1484
+ "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst llms = await client.llm.list();\n\nconsole.log(llms.has_more);",
1393
1485
  },
1394
1486
  python: {
1395
1487
  method: 'llm.list',
1396
1488
  example:
1397
- 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nllm_responses = client.llm.list()\nprint(llm_responses)',
1489
+ 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nllms = client.llm.list()\nprint(llms.has_more)',
1398
1490
  },
1399
1491
  http: {
1400
1492
  example:
1401
- 'curl https://api.retellai.com/list-retell-llms \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
1493
+ 'curl https://api.retellai.com/v2/list-retell-llms \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
1402
1494
  },
1403
1495
  },
1404
1496
  },
@@ -1561,31 +1653,31 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1561
1653
  },
1562
1654
  {
1563
1655
  name: 'list',
1564
- endpoint: '/list-conversation-flows',
1656
+ endpoint: '/v2/list-conversation-flows',
1565
1657
  httpMethod: 'get',
1566
1658
  summary: '',
1567
- description: 'List all conversation flows that can be attached to an agent.',
1659
+ description: 'List conversation flows with pagination',
1568
1660
  stainlessPath: '(resource) conversation_flow > (method) list',
1569
1661
  qualified: 'client.conversationFlow.list',
1570
- params: ['limit?: number;', 'pagination_key?: string;', 'pagination_key_version?: number;'],
1662
+ params: ['limit?: number;', 'pagination_key?: string;', "sort_order?: 'ascending' | 'descending';"],
1571
1663
  response:
1572
- "{ conversation_flow_id: string; version: number; begin_after_user_silence_ms?: number; begin_tag_display_position?: object; components?: object[]; default_dynamic_variables?: object; global_prompt?: string; is_transfer_llm?: boolean; kb_config?: object; knowledge_base_ids?: string[]; mcps?: object[]; model_choice?: object; model_temperature?: number; nodes?: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; notes?: object[]; start_node_id?: string; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; tools?: object | object | object[]; }[]",
1664
+ "{ has_more?: boolean; items?: { conversation_flow_id: string; version: number; begin_after_user_silence_ms?: number; begin_tag_display_position?: object; components?: object[]; default_dynamic_variables?: object; global_prompt?: string; is_transfer_llm?: boolean; kb_config?: object; knowledge_base_ids?: string[]; mcps?: object[]; model_choice?: object; model_temperature?: number; nodes?: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; notes?: object[]; start_node_id?: string; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; tools?: object | object | object[]; }[]; pagination_key?: string; }",
1573
1665
  markdown:
1574
- "## list\n\n`client.conversationFlow.list(limit?: number, pagination_key?: string, pagination_key_version?: number): object[]`\n\n**get** `/list-conversation-flows`\n\nList all conversation flows that can be attached to an agent.\n\n### Parameters\n\n- `limit?: number`\n Limit the number of conversation flows returned. Default 1000, Max 1000. To retrieve more than 1000, use pagination_key to continue fetching the next page.\n\n- `pagination_key?: string`\n The pagination key to continue fetching the next page of conversation flows. Pagination key is represented by a conversation flow id here, and it's exclusive (not included in the fetched conversation flows). The last conversation flow id from the list conversation flows is usually used as pagination key here. If not set, will start from the beginning.\n\n- `pagination_key_version?: number`\n Specifies the version of the conversation flow associated with the pagination_key. When paginating, both the pagination_key and its version must be provided to ensure consistent ordering and to fetch the next page correctly.\n\n### Returns\n\n- `{ conversation_flow_id: string; version: number; begin_after_user_silence_ms?: number; begin_tag_display_position?: { x?: number; y?: number; }; components?: { name: string; nodes: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; begin_tag_display_position?: object; mcps?: object[]; notes?: object[]; start_node_id?: string; tools?: object | object | object[]; }[]; default_dynamic_variables?: object; global_prompt?: string; is_transfer_llm?: boolean; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; nodes?: { id: string; instruction: object | object; type: 'conversation'; allow_dtmf_interruption?: boolean; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; voice_speed?: number; } | { id: string; instruction: object; type: 'subagent'; allow_dtmf_interruption?: boolean; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; tool_ids?: string[]; tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; enable_typing_sound?: boolean; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; enable_typing_sound?: boolean; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: object; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; display_position?: object; global_node_setting?: object; ignore_e164_validation?: boolean; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: object; type: 'press_digit'; delay_ms?: number; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; else_edge: object; type: 'branch'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; failed_edge: object; instruction: object | object | object; success_edge: object; type: 'sms'; display_position?: object; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: object | object | object | object[]; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; agent_id: string; edge: object; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number | string; display_position?: object; global_node_setting?: object; instruction?: object | object; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: object; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; enable_typing_sound?: boolean; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: object; type: 'component'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; }[]; notes?: { id: string; content: string; display_position: object; size: object; }[]; start_node_id?: string; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst conversationFlowResponses = await client.conversationFlow.list();\n\nconsole.log(conversationFlowResponses);\n```",
1666
+ "## list\n\n`client.conversationFlow.list(limit?: number, pagination_key?: string, sort_order?: 'ascending' | 'descending'): { has_more?: boolean; items?: conversation_flow_response[]; pagination_key?: string; }`\n\n**get** `/v2/list-conversation-flows`\n\nList conversation flows with pagination\n\n### Parameters\n\n- `limit?: number`\n Maximum number of items to return.\n\n- `pagination_key?: string`\n Pagination key for fetching the next page.\n\n- `sort_order?: 'ascending' | 'descending'`\n Sort order for results.\n\n### Returns\n\n- `{ has_more?: boolean; items?: { conversation_flow_id: string; version: number; begin_after_user_silence_ms?: number; begin_tag_display_position?: object; components?: object[]; default_dynamic_variables?: object; global_prompt?: string; is_transfer_llm?: boolean; kb_config?: object; knowledge_base_ids?: string[]; mcps?: object[]; model_choice?: object; model_temperature?: number; nodes?: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; notes?: object[]; start_node_id?: string; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; tools?: object | object | object[]; }[]; pagination_key?: string; }`\n\n - `has_more?: boolean`\n - `items?: { conversation_flow_id: string; version: number; begin_after_user_silence_ms?: number; begin_tag_display_position?: { x?: number; y?: number; }; components?: { name: string; nodes: { id: string; instruction: object | object; type: 'conversation'; allow_dtmf_interruption?: boolean; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; voice_speed?: number; } | { id: string; instruction: object; type: 'subagent'; allow_dtmf_interruption?: boolean; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; tool_ids?: string[]; tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; enable_typing_sound?: boolean; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; enable_typing_sound?: boolean; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: object; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; display_position?: object; global_node_setting?: object; ignore_e164_validation?: boolean; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: object; type: 'press_digit'; delay_ms?: number; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; else_edge: object; type: 'branch'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; failed_edge: object; instruction: object | object | object; success_edge: object; type: 'sms'; display_position?: object; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: object | object | object | object[]; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; agent_id: string; edge: object; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number | string; display_position?: object; global_node_setting?: object; instruction?: object | object; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: object; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; enable_typing_sound?: boolean; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: object; type: 'component'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; }[]; begin_tag_display_position?: { x?: number; y?: number; }; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: object; size: object; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]; default_dynamic_variables?: object; global_prompt?: string; is_transfer_llm?: boolean; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; nodes?: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; allow_dtmf_interruption?: boolean; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; allow_dtmf_interruption?: boolean; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number | string; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; enable_typing_sound?: boolean; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; enable_typing_sound?: boolean; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { template: 'info_collection'; type: 'template'; }; success_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number | string; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; enable_typing_sound?: boolean; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]`\n - `pagination_key?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst conversationFlows = await client.conversationFlow.list();\n\nconsole.log(conversationFlows);\n```",
1575
1667
  perLanguage: {
1576
1668
  typescript: {
1577
1669
  method: 'client.conversationFlow.list',
1578
1670
  example:
1579
- "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst conversationFlowResponses = await client.conversationFlow.list();\n\nconsole.log(conversationFlowResponses);",
1671
+ "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst conversationFlows = await client.conversationFlow.list();\n\nconsole.log(conversationFlows.has_more);",
1580
1672
  },
1581
1673
  python: {
1582
1674
  method: 'conversation_flow.list',
1583
1675
  example:
1584
- 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconversation_flow_responses = client.conversation_flow.list()\nprint(conversation_flow_responses)',
1676
+ 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconversation_flows = client.conversation_flow.list()\nprint(conversation_flows.has_more)',
1585
1677
  },
1586
1678
  http: {
1587
1679
  example:
1588
- 'curl https://api.retellai.com/list-conversation-flows \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
1680
+ 'curl https://api.retellai.com/v2/list-conversation-flows \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
1589
1681
  },
1590
1682
  },
1591
1683
  },
@@ -1737,30 +1829,31 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1737
1829
  },
1738
1830
  {
1739
1831
  name: 'list',
1740
- endpoint: '/list-conversation-flow-components',
1832
+ endpoint: '/v2/list-conversation-flow-components',
1741
1833
  httpMethod: 'get',
1742
1834
  summary: '',
1743
- description: 'List shared conversation flow components',
1835
+ description: 'List shared conversation flow components with pagination',
1744
1836
  stainlessPath: '(resource) conversation_flow_component > (method) list',
1745
1837
  qualified: 'client.conversationFlowComponent.list',
1838
+ params: ['limit?: number;', 'pagination_key?: string;', "sort_order?: 'ascending' | 'descending';"],
1746
1839
  response:
1747
- '{ conversation_flow_component_id: string; name: string; nodes: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; user_modified_timestamp: number; begin_tag_display_position?: object; linked_conversation_flow_ids?: string[]; mcps?: object[]; notes?: object[]; start_node_id?: string; tools?: object | object | object[]; }[]',
1840
+ '{ has_more?: boolean; items?: { conversation_flow_component_id: string; name: string; nodes: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; user_modified_timestamp: number; begin_tag_display_position?: object; linked_conversation_flow_ids?: string[]; mcps?: object[]; notes?: object[]; start_node_id?: string; tools?: object | object | object[]; }[]; pagination_key?: string; }',
1748
1841
  markdown:
1749
- "## list\n\n`client.conversationFlowComponent.list(): object[]`\n\n**get** `/list-conversation-flow-components`\n\nList shared conversation flow components\n\n### Returns\n\n- `{ conversation_flow_component_id: string; name: string; nodes: { id: string; instruction: object | object; type: 'conversation'; allow_dtmf_interruption?: boolean; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; voice_speed?: number; } | { id: string; instruction: object; type: 'subagent'; allow_dtmf_interruption?: boolean; always_edge?: object; display_position?: object; edges?: object[]; finetune_conversation_examples?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; interruption_sensitivity?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; name?: string; responsiveness?: number; skip_response_edge?: object; tool_ids?: string[]; tools?: object | object | object | object | object | object | object | object | object | object | object | object | object[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; enable_typing_sound?: boolean; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; enable_typing_sound?: boolean; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: object; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; display_position?: object; global_node_setting?: object; ignore_e164_validation?: boolean; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: object; type: 'press_digit'; delay_ms?: number; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; else_edge: object; type: 'branch'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; failed_edge: object; instruction: object | object | object; success_edge: object; type: 'sms'; display_position?: object; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: object | object | object | object[]; display_position?: object; edges?: object[]; else_edge?: object; finetune_transition_examples?: object[]; global_node_setting?: object; model_choice?: object; name?: string; } | { id: string; agent_id: string; edge: object; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number | string; display_position?: object; global_node_setting?: object; instruction?: object | object; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: object; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: object; edges?: object[]; else_edge?: object; enable_typing_sound?: boolean; finetune_transition_examples?: object[]; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: object; type: 'component'; display_position?: object; edges?: object[]; finetune_transition_examples?: object[]; global_node_setting?: object; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: object; global_node_setting?: object; instruction?: object | object; model_choice?: object; name?: string; speak_during_execution?: boolean; }[]; user_modified_timestamp: number; begin_tag_display_position?: { x?: number; y?: number; }; linked_conversation_flow_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: object; size: object; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst conversationFlowComponentResponses = await client.conversationFlowComponent.list();\n\nconsole.log(conversationFlowComponentResponses);\n```",
1842
+ "## list\n\n`client.conversationFlowComponent.list(limit?: number, pagination_key?: string, sort_order?: 'ascending' | 'descending'): { has_more?: boolean; items?: conversation_flow_component_response[]; pagination_key?: string; }`\n\n**get** `/v2/list-conversation-flow-components`\n\nList shared conversation flow components with pagination\n\n### Parameters\n\n- `limit?: number`\n Maximum number of items to return.\n\n- `pagination_key?: string`\n Pagination key for fetching the next page.\n\n- `sort_order?: 'ascending' | 'descending'`\n Sort order for results.\n\n### Returns\n\n- `{ has_more?: boolean; items?: { conversation_flow_component_id: string; name: string; nodes: object | object | object | object | object | object | object | object | object | object | object | object | object | object | object[]; user_modified_timestamp: number; begin_tag_display_position?: object; linked_conversation_flow_ids?: string[]; mcps?: object[]; notes?: object[]; start_node_id?: string; tools?: object | object | object[]; }[]; pagination_key?: string; }`\n\n - `has_more?: boolean`\n - `items?: { conversation_flow_component_id: string; name: string; nodes: { id: string; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; type: 'conversation'; allow_dtmf_interruption?: boolean; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; voice_speed?: number; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'subagent'; allow_dtmf_interruption?: boolean; always_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_conversation_examples?: { id: string; transcript: object | object | object[]; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; interruption_sensitivity?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; responsiveness?: number; skip_response_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; tool_ids?: string[]; tools?: { name: string; type: 'end_call'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; transfer_destination: object | object; transfer_option: object | object | object; type: 'transfer_call'; custom_sip_headers?: object; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; ignore_e164_validation?: boolean; speak_during_execution?: boolean; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; } | { agent_id: string; name: string; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number | string; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; keep_current_language?: boolean; keep_current_voice?: boolean; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { name: string; type: 'press_digit'; delay_ms?: number; description?: string; } | { name: string; sms_content: object | object | object; type: 'send_sms'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: object; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { code: string; name: string; type: 'code'; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; } | { description: string; name: string; type: 'extract_dynamic_variable'; variables: object | object | object | object[]; } | { name: string; type: 'bridge_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { name: string; type: 'cancel_transfer'; description?: string; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; speak_during_execution?: boolean; } | { description: string; name: string; type: 'mcp'; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; input_schema?: object; mcp_id?: string; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; }[]; voice_speed?: number; } | { id: string; type: 'end'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; tool_id: string; tool_type: 'local' | 'shared'; type: 'function'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; enable_typing_sound?: boolean; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; code: string; type: 'code'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; enable_typing_sound?: boolean; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; timeout_ms?: number; } | { id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; transfer_destination: { number: string; type: 'predefined'; extension?: string; } | { prompt: string; type: 'inferred'; }; transfer_option: { type: 'cold_transfer'; cold_transfer_mode?: 'sip_refer' | 'sip_invite'; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { type: 'warm_transfer'; agent_detection_timeout_ms?: number; enable_bridge_audio_cue?: boolean; ivr_option?: object; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; opt_out_human_detection?: boolean; private_handoff_option?: object | object; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; } | { agentic_transfer_config: object; type: 'agentic_warm_transfer'; enable_bridge_audio_cue?: boolean; on_hold_music?: 'none' | 'relaxing_sound' | 'uplifting_beats' | 'ringtone'; public_handoff_option?: object | object; show_transferee_as_caller?: boolean; transfer_ring_duration_ms?: number; }; type: 'transfer_call'; custom_sip_headers?: object; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; ignore_e164_validation?: boolean; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; instruction: { text: string; type: 'prompt'; }; type: 'press_digit'; delay_ms?: number; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'branch'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; failed_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; instruction: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { template: 'info_collection'; type: 'template'; }; success_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'sms'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; type: 'extract_dynamic_variables'; variables: { description: string; name: string; type: 'string'; conditional_prompt?: string; examples?: string[]; required?: boolean; } | { choices: string[]; description: string; name: string; type: 'enum'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'boolean'; conditional_prompt?: string; required?: boolean; } | { description: string; name: string; type: 'number'; conditional_prompt?: string; required?: boolean; }[]; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; } | { id: string; agent_id: string; edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; post_call_analysis_setting: 'both_agents' | 'only_destination_agent'; type: 'agent_swap'; agent_version?: number | string; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; keep_current_language?: boolean; keep_current_voice?: boolean; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; webhook_setting?: 'both_agents' | 'only_destination_agent' | 'only_source_agent'; } | { id: string; mcp_id: string; mcp_tool_name: string; type: 'mcp'; wait_for_result: boolean; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; else_edge?: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; enable_typing_sound?: boolean; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; response_variables?: object; speak_during_execution?: boolean; } | { id: string; component_id: string; component_type: 'local' | 'shared'; else_edge: { id: string; transition_condition: object | object | object; destination_node_id?: string; }; type: 'component'; display_position?: { x?: number; y?: number; }; edges?: { id: string; transition_condition: object | object; destination_node_id?: string; }[]; finetune_transition_examples?: { id: string; transcript: object | object | object[]; destination_node_id?: string; }[]; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; name?: string; } | { id: string; type: 'bridge_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; } | { id: string; type: 'cancel_transfer'; display_position?: { x?: number; y?: number; }; global_node_setting?: { condition: string; cool_down?: number; go_back_conditions?: object[]; negative_finetune_examples?: object[]; positive_finetune_examples?: object[]; }; instruction?: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; }; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; name?: string; speak_during_execution?: boolean; }[]; user_modified_timestamp: number; begin_tag_display_position?: { x?: number; y?: number; }; linked_conversation_flow_ids?: string[]; mcps?: { name: string; url: string; headers?: object; query_params?: object; timeout_ms?: number; }[]; notes?: { id: string; content: string; display_position: { x?: number; y?: number; }; size: { height?: number; width?: number; }; }[]; start_node_id?: string; tools?: { name: string; type: 'custom'; url: string; args_at_root?: boolean; description?: string; enable_typing_sound?: boolean; execution_message_description?: string; execution_message_type?: 'prompt' | 'static_text'; headers?: object; method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; parameters?: { properties: object; type: 'object'; required?: string[]; }; query_params?: object; response_variables?: object; speak_after_execution?: boolean; speak_during_execution?: boolean; timeout_ms?: number; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'check_availability_cal'; description?: string; timezone?: string; tool_id?: string; } | { cal_api_key: string; event_type_id: number | string; name: string; type: 'book_appointment_cal'; description?: string; timezone?: string; tool_id?: string; }[]; }[]`\n - `pagination_key?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst conversationFlowComponents = await client.conversationFlowComponent.list();\n\nconsole.log(conversationFlowComponents);\n```",
1750
1843
  perLanguage: {
1751
1844
  typescript: {
1752
1845
  method: 'client.conversationFlowComponent.list',
1753
1846
  example:
1754
- "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst conversationFlowComponentResponses = await client.conversationFlowComponent.list();\n\nconsole.log(conversationFlowComponentResponses);",
1847
+ "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst conversationFlowComponents = await client.conversationFlowComponent.list();\n\nconsole.log(conversationFlowComponents.has_more);",
1755
1848
  },
1756
1849
  python: {
1757
1850
  method: 'conversation_flow_component.list',
1758
1851
  example:
1759
- 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconversation_flow_component_responses = client.conversation_flow_component.list()\nprint(conversation_flow_component_responses)',
1852
+ 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nconversation_flow_components = client.conversation_flow_component.list()\nprint(conversation_flow_components.has_more)',
1760
1853
  },
1761
1854
  http: {
1762
1855
  example:
1763
- 'curl https://api.retellai.com/list-conversation-flow-components \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
1856
+ 'curl https://api.retellai.com/v2/list-conversation-flow-components \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
1764
1857
  },
1765
1858
  },
1766
1859
  },
@@ -2349,35 +2442,37 @@ const EMBEDDED_METHODS: MethodEntry[] = [
2349
2442
  },
2350
2443
  {
2351
2444
  name: 'list-test-case-definitions',
2352
- endpoint: '/list-test-case-definitions',
2445
+ endpoint: '/v2/list-test-case-definitions',
2353
2446
  httpMethod: 'get',
2354
2447
  summary: '',
2355
- description: 'List test case definitions for a response engine',
2448
+ description: 'List test case definitions with pagination',
2356
2449
  stainlessPath: '(resource) tests > (method) list-test-case-definitions',
2357
2450
  qualified: 'client.tests.listTestCaseDefinitions',
2358
2451
  params: [
2359
2452
  "type: 'retell-llm' | 'conversation-flow';",
2360
2453
  'conversation_flow_id?: string;',
2454
+ 'limit?: number;',
2361
2455
  'llm_id?: string;',
2456
+ 'pagination_key?: string;',
2362
2457
  ],
2363
2458
  response:
2364
- "{ creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; test_case_definition_id: string; tool_mocks: { input_match_rule: object | object; output: string; tool_name: string; result?: boolean; }[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }[]",
2459
+ "{ has_more?: boolean; items?: { creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: object | object; test_case_definition_id: string; tool_mocks: object[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }[]; pagination_key?: string; }",
2365
2460
  markdown:
2366
- "## list-test-case-definitions\n\n`client.tests.listTestCaseDefinitions(type: 'retell-llm' | 'conversation-flow', conversation_flow_id?: string, llm_id?: string): object[]`\n\n**get** `/list-test-case-definitions`\n\nList test case definitions for a response engine\n\n### Parameters\n\n- `type: 'retell-llm' | 'conversation-flow'`\n Type of response engine\n\n- `conversation_flow_id?: string`\n Conversation flow ID (required when type is conversation-flow)\n\n- `llm_id?: string`\n LLM ID (required when type is retell-llm)\n\n### Returns\n\n- `{ creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; test_case_definition_id: string; tool_mocks: { input_match_rule: object | object; output: string; tool_name: string; result?: boolean; }[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst testCaseDefinitionResponses = await client.tests.listTestCaseDefinitions({ type: 'retell-llm' });\n\nconsole.log(testCaseDefinitionResponses);\n```",
2461
+ "## list-test-case-definitions\n\n`client.tests.listTestCaseDefinitions(type: 'retell-llm' | 'conversation-flow', conversation_flow_id?: string, limit?: number, llm_id?: string, pagination_key?: string): { has_more?: boolean; items?: test_case_definition_response[]; pagination_key?: string; }`\n\n**get** `/v2/list-test-case-definitions`\n\nList test case definitions with pagination\n\n### Parameters\n\n- `type: 'retell-llm' | 'conversation-flow'`\n Type of response engine\n\n- `conversation_flow_id?: string`\n Conversation flow ID (required when type is conversation-flow)\n\n- `limit?: number`\n Maximum number of items to return.\n\n- `llm_id?: string`\n LLM ID (required when type is retell-llm)\n\n- `pagination_key?: string`\n Pagination key for fetching the next page.\n\n### Returns\n\n- `{ has_more?: boolean; items?: { creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: object | object; test_case_definition_id: string; tool_mocks: object[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }[]; pagination_key?: string; }`\n\n - `has_more?: boolean`\n - `items?: { creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; test_case_definition_id: string; tool_mocks: { input_match_rule: { type: 'any'; } | { args: object; type: 'partial_match'; }; output: string; tool_name: string; result?: boolean; }[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }[]`\n - `pagination_key?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst response = await client.tests.listTestCaseDefinitions({ type: 'retell-llm' });\n\nconsole.log(response);\n```",
2367
2462
  perLanguage: {
2368
2463
  typescript: {
2369
2464
  method: 'client.tests.listTestCaseDefinitions',
2370
2465
  example:
2371
- "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst testCaseDefinitionResponses = await client.tests.listTestCaseDefinitions({\n type: 'retell-llm',\n});\n\nconsole.log(testCaseDefinitionResponses);",
2466
+ "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.tests.listTestCaseDefinitions({ type: 'retell-llm' });\n\nconsole.log(response.has_more);",
2372
2467
  },
2373
2468
  python: {
2374
2469
  method: 'tests.list_test_case_definitions',
2375
2470
  example:
2376
- 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ntest_case_definition_responses = client.tests.list_test_case_definitions(\n type="retell-llm",\n)\nprint(test_case_definition_responses)',
2471
+ 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.tests.list_test_case_definitions(\n type="retell-llm",\n)\nprint(response.has_more)',
2377
2472
  },
2378
2473
  http: {
2379
2474
  example:
2380
- 'curl https://api.retellai.com/list-test-case-definitions \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
2475
+ 'curl https://api.retellai.com/v2/list-test-case-definitions \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
2381
2476
  },
2382
2477
  },
2383
2478
  },
@@ -2513,36 +2608,38 @@ const EMBEDDED_METHODS: MethodEntry[] = [
2513
2608
  },
2514
2609
  {
2515
2610
  name: 'list-batch-tests',
2516
- endpoint: '/list-batch-tests',
2611
+ endpoint: '/v2/list-batch-tests',
2517
2612
  httpMethod: 'get',
2518
2613
  summary: '',
2519
- description: 'List batch test jobs for a response engine',
2614
+ description: 'List batch test jobs with pagination',
2520
2615
  stainlessPath: '(resource) tests > (method) list-batch-tests',
2521
2616
  qualified: 'client.tests.listBatchTests',
2522
2617
  params: [
2523
2618
  "type: 'retell-llm' | 'conversation-flow';",
2524
2619
  'conversation_flow_id?: string;',
2620
+ 'limit?: number;',
2525
2621
  'llm_id?: string;',
2622
+ 'pagination_key?: string;',
2526
2623
  'version?: number;',
2527
2624
  ],
2528
2625
  response:
2529
- "{ creation_timestamp: number; error_count: number; fail_count: number; pass_count: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; status: 'in_progress' | 'complete'; test_case_batch_job_id: string; total_count: number; user_modified_timestamp: number; }[]",
2626
+ "{ has_more?: boolean; items?: { creation_timestamp: number; error_count: number; fail_count: number; pass_count: number; response_engine: object | object | object; status: 'in_progress' | 'complete'; test_case_batch_job_id: string; total_count: number; user_modified_timestamp: number; }[]; pagination_key?: string; }",
2530
2627
  markdown:
2531
- "## list-batch-tests\n\n`client.tests.listBatchTests(type: 'retell-llm' | 'conversation-flow', conversation_flow_id?: string, llm_id?: string, version?: number): object[]`\n\n**get** `/list-batch-tests`\n\nList batch test jobs for a response engine\n\n### Parameters\n\n- `type: 'retell-llm' | 'conversation-flow'`\n Type of response engine\n\n- `conversation_flow_id?: string`\n Conversation flow ID (required when type is conversation-flow)\n\n- `llm_id?: string`\n LLM ID (required when type is retell-llm)\n\n- `version?: number`\n Version of the response engine (defaults to latest)\n\n### Returns\n\n- `{ creation_timestamp: number; error_count: number; fail_count: number; pass_count: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; status: 'in_progress' | 'complete'; test_case_batch_job_id: string; total_count: number; user_modified_timestamp: number; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst batchTestResponses = await client.tests.listBatchTests({ type: 'retell-llm' });\n\nconsole.log(batchTestResponses);\n```",
2628
+ "## list-batch-tests\n\n`client.tests.listBatchTests(type: 'retell-llm' | 'conversation-flow', conversation_flow_id?: string, limit?: number, llm_id?: string, pagination_key?: string, version?: number): { has_more?: boolean; items?: batch_test_response[]; pagination_key?: string; }`\n\n**get** `/v2/list-batch-tests`\n\nList batch test jobs with pagination\n\n### Parameters\n\n- `type: 'retell-llm' | 'conversation-flow'`\n Type of response engine\n\n- `conversation_flow_id?: string`\n Conversation flow ID (required when type is conversation-flow)\n\n- `limit?: number`\n Maximum number of items to return.\n\n- `llm_id?: string`\n LLM ID (required when type is retell-llm)\n\n- `pagination_key?: string`\n Pagination key for fetching the next page.\n\n- `version?: number`\n Version of the response engine (defaults to latest)\n\n### Returns\n\n- `{ has_more?: boolean; items?: { creation_timestamp: number; error_count: number; fail_count: number; pass_count: number; response_engine: object | object | object; status: 'in_progress' | 'complete'; test_case_batch_job_id: string; total_count: number; user_modified_timestamp: number; }[]; pagination_key?: string; }`\n\n - `has_more?: boolean`\n - `items?: { creation_timestamp: number; error_count: number; fail_count: number; pass_count: number; response_engine: { llm_id: string; type: 'retell-llm'; version?: number; } | { llm_websocket_url: string; type: 'custom-llm'; } | { conversation_flow_id: string; type: 'conversation-flow'; version?: number; }; status: 'in_progress' | 'complete'; test_case_batch_job_id: string; total_count: number; user_modified_timestamp: number; }[]`\n - `pagination_key?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst response = await client.tests.listBatchTests({ type: 'retell-llm' });\n\nconsole.log(response);\n```",
2532
2629
  perLanguage: {
2533
2630
  typescript: {
2534
2631
  method: 'client.tests.listBatchTests',
2535
2632
  example:
2536
- "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst batchTestResponses = await client.tests.listBatchTests({ type: 'retell-llm' });\n\nconsole.log(batchTestResponses);",
2633
+ "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.tests.listBatchTests({ type: 'retell-llm' });\n\nconsole.log(response.has_more);",
2537
2634
  },
2538
2635
  python: {
2539
2636
  method: 'tests.list_batch_tests',
2540
2637
  example:
2541
- 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nbatch_test_responses = client.tests.list_batch_tests(\n type="retell-llm",\n)\nprint(batch_test_responses)',
2638
+ 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.tests.list_batch_tests(\n type="retell-llm",\n)\nprint(response.has_more)',
2542
2639
  },
2543
2640
  http: {
2544
2641
  example:
2545
- 'curl https://api.retellai.com/list-batch-tests \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
2642
+ 'curl https://api.retellai.com/v2/list-batch-tests \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
2546
2643
  },
2547
2644
  },
2548
2645
  },
@@ -2578,31 +2675,31 @@ const EMBEDDED_METHODS: MethodEntry[] = [
2578
2675
  },
2579
2676
  {
2580
2677
  name: 'list-test-runs',
2581
- endpoint: '/list-test-runs/{test_case_batch_job_id}',
2678
+ endpoint: '/v2/list-test-runs/{test_case_batch_job_id}',
2582
2679
  httpMethod: 'get',
2583
2680
  summary: '',
2584
- description: 'List all test case jobs (test runs) for a batch test job',
2681
+ description: 'List test case jobs (test runs) for a batch test job with pagination',
2585
2682
  stainlessPath: '(resource) tests > (method) list-test-runs',
2586
2683
  qualified: 'client.tests.listTestRuns',
2587
- params: ['test_case_batch_job_id: string;'],
2684
+ params: ['test_case_batch_job_id: string;', 'limit?: number;', 'pagination_key?: string;'],
2588
2685
  response:
2589
- "{ creation_timestamp: number; status: 'in_progress' | 'pass' | 'fail' | 'error'; test_case_definition_id: string; test_case_definition_snapshot: object; test_case_job_id: string; user_modified_timestamp: number; result_explanation?: string; transcript_snapshot?: object; }[]",
2686
+ "{ has_more?: boolean; items?: { creation_timestamp: number; status: 'in_progress' | 'pass' | 'fail' | 'error'; test_case_definition_id: string; test_case_definition_snapshot: test_case_definition_response; test_case_job_id: string; user_modified_timestamp: number; result_explanation?: string; transcript_snapshot?: object; }[]; pagination_key?: string; }",
2590
2687
  markdown:
2591
- "## list-test-runs\n\n`client.tests.listTestRuns(test_case_batch_job_id: string): object[]`\n\n**get** `/list-test-runs/{test_case_batch_job_id}`\n\nList all test case jobs (test runs) for a batch test job\n\n### Parameters\n\n- `test_case_batch_job_id: string`\n\n### Returns\n\n- `{ creation_timestamp: number; status: 'in_progress' | 'pass' | 'fail' | 'error'; test_case_definition_id: string; test_case_definition_snapshot: object; test_case_job_id: string; user_modified_timestamp: number; result_explanation?: string; transcript_snapshot?: object; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst testCaseJobResponses = await client.tests.listTestRuns('test_case_batch_job_id');\n\nconsole.log(testCaseJobResponses);\n```",
2688
+ "## list-test-runs\n\n`client.tests.listTestRuns(test_case_batch_job_id: string, limit?: number, pagination_key?: string): { has_more?: boolean; items?: test_case_job_response[]; pagination_key?: string; }`\n\n**get** `/v2/list-test-runs/{test_case_batch_job_id}`\n\nList test case jobs (test runs) for a batch test job with pagination\n\n### Parameters\n\n- `test_case_batch_job_id: string`\n\n- `limit?: number`\n Maximum number of items to return.\n\n- `pagination_key?: string`\n Pagination key for fetching the next page.\n\n### Returns\n\n- `{ has_more?: boolean; items?: { creation_timestamp: number; status: 'in_progress' | 'pass' | 'fail' | 'error'; test_case_definition_id: string; test_case_definition_snapshot: test_case_definition_response; test_case_job_id: string; user_modified_timestamp: number; result_explanation?: string; transcript_snapshot?: object; }[]; pagination_key?: string; }`\n\n - `has_more?: boolean`\n - `items?: { creation_timestamp: number; status: 'in_progress' | 'pass' | 'fail' | 'error'; test_case_definition_id: string; test_case_definition_snapshot: { creation_timestamp: number; dynamic_variables: object; llm_model: string; metrics: string[]; name: string; response_engine: object | object; test_case_definition_id: string; tool_mocks: object[]; type: 'simulation'; user_modified_timestamp: number; user_prompt: string; }; test_case_job_id: string; user_modified_timestamp: number; result_explanation?: string; transcript_snapshot?: object; }[]`\n - `pagination_key?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst response = await client.tests.listTestRuns('test_case_batch_job_id');\n\nconsole.log(response);\n```",
2592
2689
  perLanguage: {
2593
2690
  typescript: {
2594
2691
  method: 'client.tests.listTestRuns',
2595
2692
  example:
2596
- "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst testCaseJobResponses = await client.tests.listTestRuns('test_case_batch_job_id');\n\nconsole.log(testCaseJobResponses);",
2693
+ "import Retell from 'retell-sdk';\n\nconst client = new Retell({\n apiKey: process.env['RETELL_API_KEY'], // This is the default and can be omitted\n});\n\nconst response = await client.tests.listTestRuns('test_case_batch_job_id');\n\nconsole.log(response.has_more);",
2597
2694
  },
2598
2695
  python: {
2599
2696
  method: 'tests.list_test_runs',
2600
2697
  example:
2601
- 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\ntest_case_job_responses = client.tests.list_test_runs(\n "test_case_batch_job_id",\n)\nprint(test_case_job_responses)',
2698
+ 'import os\nfrom retell import Retell\n\nclient = Retell(\n api_key=os.environ.get("RETELL_API_KEY"), # This is the default and can be omitted\n)\nresponse = client.tests.list_test_runs(\n test_case_batch_job_id="test_case_batch_job_id",\n)\nprint(response.has_more)',
2602
2699
  },
2603
2700
  http: {
2604
2701
  example:
2605
- 'curl https://api.retellai.com/list-test-runs/$TEST_CASE_BATCH_JOB_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
2702
+ 'curl https://api.retellai.com/v2/list-test-runs/$TEST_CASE_BATCH_JOB_ID \\\n -H "Authorization: Bearer $RETELL_API_KEY"',
2606
2703
  },
2607
2704
  },
2608
2705
  },