@retell-ai/mcp-server 5.36.0 → 5.37.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.
- package/local-docs-search.d.mts.map +1 -1
- package/local-docs-search.d.ts.map +1 -1
- package/local-docs-search.js +68 -52
- package/local-docs-search.js.map +1 -1
- package/local-docs-search.mjs +68 -52
- package/local-docs-search.mjs.map +1 -1
- package/package.json +2 -2
- package/src/local-docs-search.ts +68 -52
package/local-docs-search.js
CHANGED
|
@@ -54,7 +54,7 @@ const EMBEDDED_METHODS = [
|
|
|
54
54
|
params: [
|
|
55
55
|
'from_number: string;',
|
|
56
56
|
'to_number: string;',
|
|
57
|
-
"agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number;
|
|
57
|
+
"agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; };",
|
|
58
58
|
'custom_sip_headers?: object;',
|
|
59
59
|
'ignore_e164_validation?: boolean;',
|
|
60
60
|
'metadata?: object;',
|
|
@@ -63,7 +63,7 @@ const EMBEDDED_METHODS = [
|
|
|
63
63
|
'retell_llm_dynamic_variables?: object;',
|
|
64
64
|
],
|
|
65
65
|
response: 'object',
|
|
66
|
-
markdown: "## create-phone-call\n\n`client.call.createPhoneCall(from_number: string, to_number: string, agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: object; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; ivr_option?: object; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: object | object | object; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: object; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }, custom_sip_headers?: object, ignore_e164_validation?: boolean, metadata?: object, override_agent_id?: string, override_agent_version?: number | string, retell_llm_dynamic_variables?: object): { 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 | object | object[]; start_timestamp?: number; telephony_identifier?: object; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n**post** `/v2/create-phone-call`\n\nCreate a new outbound phone call\n\n### Parameters\n\n- `from_number: string`\n The number you own in E.164 format. Must be a number purchased from Retell or imported to Retell.\n\n- `to_number: string`\n The number you want to call, in E.164 format. If using a number purchased from Retell, only US numbers are supported as destination.\n\n- `agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }`\n For this particular call, override agent configuration with these settings. This allows you to customize agent behavior for individual calls without modifying the base agent.\n - `agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n Override agent configuration settings. Any properties specified here will override the base agent configuration for this call.\n - `conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override conversation flow configuration settings. Only applicable when using conversation flow as the response engine. Supported attributes - model_choice, model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms.\n - `retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override Retell LLM configuration settings. Only applicable when using Retell LLM as the response engine. Supported attributes - model, s2s_model, model_temperature, model_high_priority, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms, begin_message.\n\n- `custom_sip_headers?: object`\n Add optional custom SIP headers to the call.\n\n- `ignore_e164_validation?: boolean`\n If true, the e.164 validation will be ignored for the from_number. This can be useful when you want to dial to internal pseudo numbers. This only applies when you are using custom telephony and does not apply when you are using Retell Telephony. If omitted, the default value is false.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object.\n\n- `override_agent_id?: string`\n For this particular call, override the agent used with this agent id. This does not bind the agent to this number, this is for one time override.\n\n- `override_agent_version?: number | string`\n For this particular call, override the agent version used with this version. This does not bind the agent version to this number, this is for one time override.\n\n- `retell_llm_dynamic_variables?: object`\n Add optional dynamic variables in key value pairs of string that injects into your Response Engine prompt and tool description. Only applicable for Response Engine.\n\n### Returns\n\n- `{ 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n - `agent_id: string`\n - `agent_version: number`\n - `call_id: string`\n - `call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'`\n - `call_type: 'phone_call'`\n - `direction: 'inbound' | 'outbound'`\n - `from_number: string`\n - `to_number: string`\n - `agent_name?: string`\n - `call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `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; }`\n - `collected_dynamic_variables?: object`\n - `custom_sip_headers?: object`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `disconnection_reason?: string`\n - `duration_ms?: number`\n - `end_timestamp?: number`\n - `knowledge_base_retrieved_contents_url?: string`\n - `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[]; }; }`\n - `llm_token_usage?: { average: number; num_requests: number; values: number[]; }`\n - `metadata?: object`\n - `opt_in_signed_url?: boolean`\n - `public_log_url?: string`\n - `recording_multi_channel_url?: string`\n - `recording_url?: string`\n - `retell_llm_dynamic_variables?: object`\n - `scrubbed_recording_multi_channel_url?: string`\n - `scrubbed_recording_url?: string`\n - `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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]`\n - `start_timestamp?: number`\n - `telephony_identifier?: { twilio_call_sid?: string; }`\n - `transcript?: string`\n - `transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]`\n - `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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]`\n - `transfer_destination?: string`\n - `transfer_end_timestamp?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneCallResponse = await client.call.createPhoneCall({ from_number: '+14157774444', to_number: '+12137774445' });\n\nconsole.log(phoneCallResponse);\n```",
|
|
66
|
+
markdown: "## create-phone-call\n\n`client.call.createPhoneCall(from_number: string, to_number: string, agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: object; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; ivr_option?: object; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: object | object | object; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: object; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }, custom_sip_headers?: object, ignore_e164_validation?: boolean, metadata?: object, override_agent_id?: string, override_agent_version?: number | string, retell_llm_dynamic_variables?: object): { 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; agent_tag?: 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 | object | object[]; start_timestamp?: number; telephony_identifier?: object; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n**post** `/v2/create-phone-call`\n\nCreate a new outbound phone call\n\n### Parameters\n\n- `from_number: string`\n The number you own in E.164 format. Must be a number purchased from Retell or imported to Retell.\n\n- `to_number: string`\n The number you want to call, in E.164 format. If using a number purchased from Retell, only US numbers are supported as destination.\n\n- `agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }`\n For this particular call, override agent configuration with these settings. This allows you to customize agent behavior for individual calls without modifying the base agent.\n - `agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n Override agent configuration settings. Any properties specified here will override the base agent configuration for this call.\n - `conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override conversation flow configuration settings. Only applicable when using conversation flow as the response engine. Supported attributes - model_choice, model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms.\n - `retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override Retell LLM configuration settings. Only applicable when using Retell LLM as the response engine. Supported attributes - model, s2s_model, model_temperature, model_high_priority, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms, begin_message.\n\n- `custom_sip_headers?: object`\n Add optional custom SIP headers to the call.\n\n- `ignore_e164_validation?: boolean`\n If true, the e.164 validation will be ignored for the from_number. This can be useful when you want to dial to internal pseudo numbers. This only applies when you are using custom telephony and does not apply when you are using Retell Telephony. If omitted, the default value is false.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object.\n\n- `override_agent_id?: string`\n For this particular call, override the agent used with this agent id. This does not bind the agent to this number, this is for one time override.\n\n- `override_agent_version?: number | string`\n For this particular call, override the agent version used with this version. This does not bind the agent version to this number, this is for one time override.\n\n- `retell_llm_dynamic_variables?: object`\n Add optional dynamic variables in key value pairs of string that injects into your Response Engine prompt and tool description. Only applicable for Response Engine.\n\n### Returns\n\n- `{ 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; agent_tag?: 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n - `agent_id: string`\n - `agent_version: number`\n - `call_id: string`\n - `call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'`\n - `call_type: 'phone_call'`\n - `direction: 'inbound' | 'outbound'`\n - `from_number: string`\n - `to_number: string`\n - `agent_name?: string`\n - `agent_tag?: string`\n - `call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `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; }`\n - `collected_dynamic_variables?: object`\n - `custom_sip_headers?: object`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `disconnection_reason?: string`\n - `duration_ms?: number`\n - `end_timestamp?: number`\n - `knowledge_base_retrieved_contents_url?: string`\n - `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[]; }; }`\n - `llm_token_usage?: { average: number; num_requests: number; values: number[]; }`\n - `metadata?: object`\n - `opt_in_signed_url?: boolean`\n - `public_log_url?: string`\n - `recording_multi_channel_url?: string`\n - `recording_url?: string`\n - `retell_llm_dynamic_variables?: object`\n - `scrubbed_recording_multi_channel_url?: string`\n - `scrubbed_recording_url?: string`\n - `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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]`\n - `start_timestamp?: number`\n - `telephony_identifier?: { twilio_call_sid?: string; }`\n - `transcript?: string`\n - `transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]`\n - `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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]`\n - `transfer_destination?: string`\n - `transfer_end_timestamp?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneCallResponse = await client.call.createPhoneCall({ from_number: '+14157774444', to_number: '+12137774445' });\n\nconsole.log(phoneCallResponse);\n```",
|
|
67
67
|
perLanguage: {
|
|
68
68
|
typescript: {
|
|
69
69
|
method: 'client.call.createPhoneCall',
|
|
@@ -88,7 +88,7 @@ const EMBEDDED_METHODS = [
|
|
|
88
88
|
qualified: 'client.call.registerPhoneCall',
|
|
89
89
|
params: [
|
|
90
90
|
'agent_id: string;',
|
|
91
|
-
"agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number;
|
|
91
|
+
"agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; };",
|
|
92
92
|
'agent_version?: number | string;',
|
|
93
93
|
"direction?: 'inbound' | 'outbound';",
|
|
94
94
|
'from_number?: string;',
|
|
@@ -97,7 +97,7 @@ const EMBEDDED_METHODS = [
|
|
|
97
97
|
'to_number?: string;',
|
|
98
98
|
],
|
|
99
99
|
response: 'object',
|
|
100
|
-
markdown: "## register-phone-call\n\n`client.call.registerPhoneCall(agent_id: string, agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: object; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; ivr_option?: object; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: object | object | object; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: object; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }, agent_version?: number | string, direction?: 'inbound' | 'outbound', from_number?: string, metadata?: object, retell_llm_dynamic_variables?: object, to_number?: string): { 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 | object | object[]; start_timestamp?: number; telephony_identifier?: object; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n**post** `/v2/register-phone-call`\n\nRegister a new phone call for custom telephony\n\n### Parameters\n\n- `agent_id: string`\n The agent to use for the call.\n\n- `agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }`\n For this particular call, override agent configuration with these settings. This allows you to customize agent behavior for individual calls without modifying the base agent.\n - `agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n Override agent configuration settings. Any properties specified here will override the base agent configuration for this call.\n - `conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override conversation flow configuration settings. Only applicable when using conversation flow as the response engine. Supported attributes - model_choice, model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms.\n - `retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override Retell LLM configuration settings. Only applicable when using Retell LLM as the response engine. Supported attributes - model, s2s_model, model_temperature, model_high_priority, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms, begin_message.\n\n- `agent_version?: number | string`\n The version of the agent to use for the call.\n\n- `direction?: 'inbound' | 'outbound'`\n Direction of the phone call. Stored for tracking purpose.\n\n- `from_number?: string`\n The number you own in E.164 format. Stored for tracking purpose.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object.\n\n- `retell_llm_dynamic_variables?: object`\n Add optional dynamic variables in key value pairs of string that injects into your Response Engine prompt and tool description. Only applicable for Response Engine.\n\n- `to_number?: string`\n The number you want to call, in E.164 format. Stored for tracking purpose.\n\n### Returns\n\n- `{ 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n - `agent_id: string`\n - `agent_version: number`\n - `call_id: string`\n - `call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'`\n - `call_type: 'phone_call'`\n - `direction: 'inbound' | 'outbound'`\n - `from_number: string`\n - `to_number: string`\n - `agent_name?: string`\n - `call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `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; }`\n - `collected_dynamic_variables?: object`\n - `custom_sip_headers?: object`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `disconnection_reason?: string`\n - `duration_ms?: number`\n - `end_timestamp?: number`\n - `knowledge_base_retrieved_contents_url?: string`\n - `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[]; }; }`\n - `llm_token_usage?: { average: number; num_requests: number; values: number[]; }`\n - `metadata?: object`\n - `opt_in_signed_url?: boolean`\n - `public_log_url?: string`\n - `recording_multi_channel_url?: string`\n - `recording_url?: string`\n - `retell_llm_dynamic_variables?: object`\n - `scrubbed_recording_multi_channel_url?: string`\n - `scrubbed_recording_url?: string`\n - `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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]`\n - `start_timestamp?: number`\n - `telephony_identifier?: { twilio_call_sid?: string; }`\n - `transcript?: string`\n - `transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]`\n - `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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]`\n - `transfer_destination?: string`\n - `transfer_end_timestamp?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneCallResponse = await client.call.registerPhoneCall({ agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD' });\n\nconsole.log(phoneCallResponse);\n```",
|
|
100
|
+
markdown: "## register-phone-call\n\n`client.call.registerPhoneCall(agent_id: string, agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: object; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; ivr_option?: object; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: object | object | object; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: object; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }, agent_version?: number | string, direction?: 'inbound' | 'outbound', from_number?: string, metadata?: object, retell_llm_dynamic_variables?: object, to_number?: string): { 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; agent_tag?: 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 | object | object[]; start_timestamp?: number; telephony_identifier?: object; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n**post** `/v2/register-phone-call`\n\nRegister a new phone call for custom telephony\n\n### Parameters\n\n- `agent_id: string`\n The agent to use for the call.\n\n- `agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }`\n For this particular call, override agent configuration with these settings. This allows you to customize agent behavior for individual calls without modifying the base agent.\n - `agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n Override agent configuration settings. Any properties specified here will override the base agent configuration for this call.\n - `conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override conversation flow configuration settings. Only applicable when using conversation flow as the response engine. Supported attributes - model_choice, model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms.\n - `retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override Retell LLM configuration settings. Only applicable when using Retell LLM as the response engine. Supported attributes - model, s2s_model, model_temperature, model_high_priority, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms, begin_message.\n\n- `agent_version?: number | string`\n The version of the agent to use for the call.\n\n- `direction?: 'inbound' | 'outbound'`\n Direction of the phone call. Stored for tracking purpose.\n\n- `from_number?: string`\n The number you own in E.164 format. Stored for tracking purpose.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object.\n\n- `retell_llm_dynamic_variables?: object`\n Add optional dynamic variables in key value pairs of string that injects into your Response Engine prompt and tool description. Only applicable for Response Engine.\n\n- `to_number?: string`\n The number you want to call, in E.164 format. Stored for tracking purpose.\n\n### Returns\n\n- `{ 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; agent_tag?: 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n - `agent_id: string`\n - `agent_version: number`\n - `call_id: string`\n - `call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'`\n - `call_type: 'phone_call'`\n - `direction: 'inbound' | 'outbound'`\n - `from_number: string`\n - `to_number: string`\n - `agent_name?: string`\n - `agent_tag?: string`\n - `call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `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; }`\n - `collected_dynamic_variables?: object`\n - `custom_sip_headers?: object`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `disconnection_reason?: string`\n - `duration_ms?: number`\n - `end_timestamp?: number`\n - `knowledge_base_retrieved_contents_url?: string`\n - `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[]; }; }`\n - `llm_token_usage?: { average: number; num_requests: number; values: number[]; }`\n - `metadata?: object`\n - `opt_in_signed_url?: boolean`\n - `public_log_url?: string`\n - `recording_multi_channel_url?: string`\n - `recording_url?: string`\n - `retell_llm_dynamic_variables?: object`\n - `scrubbed_recording_multi_channel_url?: string`\n - `scrubbed_recording_url?: string`\n - `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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]`\n - `start_timestamp?: number`\n - `telephony_identifier?: { twilio_call_sid?: string; }`\n - `transcript?: string`\n - `transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]`\n - `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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]`\n - `transfer_destination?: string`\n - `transfer_end_timestamp?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst phoneCallResponse = await client.call.registerPhoneCall({ agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD' });\n\nconsole.log(phoneCallResponse);\n```",
|
|
101
101
|
perLanguage: {
|
|
102
102
|
typescript: {
|
|
103
103
|
method: 'client.call.registerPhoneCall',
|
|
@@ -122,15 +122,15 @@ const EMBEDDED_METHODS = [
|
|
|
122
122
|
qualified: 'client.call.createWebCall',
|
|
123
123
|
params: [
|
|
124
124
|
'agent_id: string;',
|
|
125
|
-
"agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number;
|
|
125
|
+
"agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; };",
|
|
126
126
|
'agent_version?: number | string;',
|
|
127
127
|
'current_node_id?: string;',
|
|
128
128
|
'current_state?: string;',
|
|
129
129
|
'metadata?: object;',
|
|
130
130
|
'retell_llm_dynamic_variables?: object;',
|
|
131
131
|
],
|
|
132
|
-
response: "{ 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 | object | object[]; start_timestamp?: number; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }",
|
|
133
|
-
markdown: "## create-web-call\n\n`client.call.createWebCall(agent_id: string, agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: object; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; ivr_option?: object; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: object | object | object; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: object; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }, agent_version?: number | string, current_node_id?: string, current_state?: string, metadata?: object, retell_llm_dynamic_variables?: object): { 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 | object | object[]; start_timestamp?: number; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n**post** `/v2/create-web-call`\n\nCreate a new web call\n\n### Parameters\n\n- `agent_id: string`\n Unique id of agent used for the call. Your agent would contain the LLM Websocket url used for this call.\n\n- `agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }`\n For this particular call, override agent configuration with these settings. This allows you to customize agent behavior for individual calls without modifying the base agent.\n - `agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n Override agent configuration settings. Any properties specified here will override the base agent configuration for this call.\n - `conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override conversation flow configuration settings. Only applicable when using conversation flow as the response engine. Supported attributes - model_choice, model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms.\n - `retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override Retell LLM configuration settings. Only applicable when using Retell LLM as the response engine. Supported attributes - model, s2s_model, model_temperature, model_high_priority, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms, begin_message.\n\n- `agent_version?: number | string`\n The version of the agent to use for the call.\n\n- `current_node_id?: string`\n Start the call at this conversation flow node (stage). Must be a valid node id in the agent's conversation flow. Only applicable when the agent uses conversation flow as the response engine. Ignored for retell-llm agents.\n\n- `current_state?: string`\n Start the conversation in this state (stage). Must be a valid state name in the agent's Retell LLM. Only applicable when the agent uses Retell LLM with states. Ignored for conversation-flow agents.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object.\n\n- `retell_llm_dynamic_variables?: object`\n Add optional dynamic variables in key value pairs of string that injects into your Response Engine prompt and tool description. Only applicable for Response Engine.\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?: { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n - `access_token: string`\n - `agent_id: string`\n - `agent_version: number`\n - `call_id: string`\n - `call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'`\n - `call_type: 'web_call'`\n - `agent_name?: string`\n - `call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `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; }`\n - `collected_dynamic_variables?: object`\n - `custom_sip_headers?: object`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `disconnection_reason?: string`\n - `duration_ms?: number`\n - `end_timestamp?: number`\n - `knowledge_base_retrieved_contents_url?: string`\n - `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[]; }; }`\n - `llm_token_usage?: { average: number; num_requests: number; values: number[]; }`\n - `metadata?: object`\n - `opt_in_signed_url?: boolean`\n - `public_log_url?: string`\n - `recording_multi_channel_url?: string`\n - `recording_url?: string`\n - `retell_llm_dynamic_variables?: object`\n - `scrubbed_recording_multi_channel_url?: string`\n - `scrubbed_recording_url?: string`\n - `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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]`\n - `start_timestamp?: number`\n - `transcript?: string`\n - `transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]`\n - `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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]`\n - `transfer_destination?: string`\n - `transfer_end_timestamp?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst webCallResponse = await client.call.createWebCall({ agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD' });\n\nconsole.log(webCallResponse);\n```",
|
|
132
|
+
response: "{ 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; agent_tag?: 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 | object | object[]; start_timestamp?: number; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }",
|
|
133
|
+
markdown: "## create-web-call\n\n`client.call.createWebCall(agent_id: string, agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: object; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; ivr_option?: object; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; response_engine?: object | object | object; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: object; knowledge_base_ids?: string[]; model_choice?: object; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: object; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }, agent_version?: number | string, current_node_id?: string, current_state?: string, metadata?: object, retell_llm_dynamic_variables?: object): { 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; agent_tag?: 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 | object | object[]; start_timestamp?: number; transcript?: string; transcript_object?: object[]; transcript_with_tool_calls?: object | object | object | object | object | object | object[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n**post** `/v2/create-web-call`\n\nCreate a new web call\n\n### Parameters\n\n- `agent_id: string`\n Unique id of agent used for the call. Your agent would contain the LLM Websocket url used for this call.\n\n- `agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }`\n For this particular call, override agent configuration with these settings. This allows you to customize agent behavior for individual calls without modifying the base agent.\n - `agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n Override agent configuration settings. Any properties specified here will override the base agent configuration for this call.\n - `conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override conversation flow configuration settings. Only applicable when using conversation flow as the response engine. Supported attributes - model_choice, model_temperature, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms.\n - `retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }`\n Override Retell LLM configuration settings. Only applicable when using Retell LLM as the response engine. Supported attributes - model, s2s_model, model_temperature, model_high_priority, tool_call_strict_mode, knowledge_base_ids, kb_config, start_speaker, begin_after_user_silence_ms, begin_message.\n\n- `agent_version?: number | string`\n The version of the agent to use for the call.\n\n- `current_node_id?: string`\n Start the call at this conversation flow node (stage). Must be a valid node id in the agent's conversation flow. Only applicable when the agent uses conversation flow as the response engine. Ignored for retell-llm agents.\n\n- `current_state?: string`\n Start the conversation in this state (stage). Must be a valid state name in the agent's Retell LLM. Only applicable when the agent uses Retell LLM with states. Ignored for conversation-flow agents.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object.\n\n- `retell_llm_dynamic_variables?: object`\n Add optional dynamic variables in key value pairs of string that injects into your Response Engine prompt and tool description. Only applicable for Response Engine.\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; agent_tag?: 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]; transfer_destination?: string; transfer_end_timestamp?: number; }`\n\n - `access_token: string`\n - `agent_id: string`\n - `agent_version: number`\n - `call_id: string`\n - `call_status: 'registered' | 'not_connected' | 'ongoing' | 'ended' | 'error'`\n - `call_type: 'web_call'`\n - `agent_name?: string`\n - `agent_tag?: string`\n - `call_analysis?: { call_successful?: boolean; call_summary?: string; custom_analysis_data?: object; in_voicemail?: boolean; user_sentiment?: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'; }`\n - `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; }`\n - `collected_dynamic_variables?: object`\n - `custom_sip_headers?: object`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `disconnection_reason?: string`\n - `duration_ms?: number`\n - `end_timestamp?: number`\n - `knowledge_base_retrieved_contents_url?: string`\n - `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[]; }; }`\n - `llm_token_usage?: { average: number; num_requests: number; values: number[]; }`\n - `metadata?: object`\n - `opt_in_signed_url?: boolean`\n - `public_log_url?: string`\n - `recording_multi_channel_url?: string`\n - `recording_url?: string`\n - `retell_llm_dynamic_variables?: object`\n - `scrubbed_recording_multi_channel_url?: string`\n - `scrubbed_recording_url?: string`\n - `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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]`\n - `start_timestamp?: number`\n - `transcript?: string`\n - `transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: { end?: number; start?: number; word?: string; }[]; }[]`\n - `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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: { url: string; summary?: string; }[]; } | { content: string; role: 'injected'; time_sec: number; }[]`\n - `transfer_destination?: string`\n - `transfer_end_timestamp?: number`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst webCallResponse = await client.call.createWebCall({ agent_id: 'oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD' });\n\nconsole.log(webCallResponse);\n```",
|
|
134
134
|
perLanguage: {
|
|
135
135
|
typescript: {
|
|
136
136
|
method: 'client.call.createWebCall',
|
|
@@ -155,7 +155,7 @@ const EMBEDDED_METHODS = [
|
|
|
155
155
|
qualified: 'client.call.retrieve',
|
|
156
156
|
params: ['call_id: string;'],
|
|
157
157
|
response: 'object | object',
|
|
158
|
-
markdown: "## retrieve\n\n`client.call.retrieve(call_id: string): object | object`\n\n**get** `/v2/get-call/{call_id}`\n\nRetrieve details of a specific call\n\n### Parameters\n\n- `call_id: string`\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?: { 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: object[]; 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?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; 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: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; start_timestamp?: number; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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: object[]; 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?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; 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: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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 callResponse = await client.call.retrieve('119c3f8e47135a29e65947eeb34cf12d');\n\nconsole.log(callResponse);\n```",
|
|
158
|
+
markdown: "## retrieve\n\n`client.call.retrieve(call_id: string): object | object`\n\n**get** `/v2/get-call/{call_id}`\n\nRetrieve details of a specific call\n\n### Parameters\n\n- `call_id: string`\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; agent_tag?: 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: object[]; 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?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; 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: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; start_timestamp?: number; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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; agent_tag?: 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: object[]; 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?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; 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: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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 callResponse = await client.call.retrieve('119c3f8e47135a29e65947eeb34cf12d');\n\nconsole.log(callResponse);\n```",
|
|
159
159
|
perLanguage: {
|
|
160
160
|
typescript: {
|
|
161
161
|
method: 'client.call.retrieve',
|
|
@@ -179,7 +179,7 @@ const EMBEDDED_METHODS = [
|
|
|
179
179
|
stainlessPath: '(resource) call > (method) list',
|
|
180
180
|
qualified: 'client.call.list',
|
|
181
181
|
params: [
|
|
182
|
-
"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; } | { op: 'in'; type: 'enum'; 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?: {
|
|
182
|
+
"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; } | { op: 'in'; type: 'enum'; 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?: { latency_ms?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; name?: string; success?: { op: 'eq'; type: 'boolean'; value: boolean; }; type?: string; }[]; user_sentiment?: { op: 'in'; type: 'enum'; value: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]; }; };",
|
|
183
183
|
'include_total?: boolean;',
|
|
184
184
|
'limit?: number;',
|
|
185
185
|
'pagination_key?: string;',
|
|
@@ -187,7 +187,7 @@ const EMBEDDED_METHODS = [
|
|
|
187
187
|
"sort_order?: 'ascending' | 'descending';",
|
|
188
188
|
],
|
|
189
189
|
response: '{ has_more?: boolean; items?: object | object[]; pagination_key?: string; total?: number; }',
|
|
190
|
-
markdown: "## 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; } | { op: 'in'; type: 'enum'; 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'[]; }; }, include_total?: boolean, limit?: number, pagination_key?: string, skip?: number, sort_order?: 'ascending' | 'descending'): { has_more?: boolean; items?: object | object[]; pagination_key?: string; total?: number; }`\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; } | { op: 'in'; type: 'enum'; 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; } | { op: 'in'; type: 'enum'; 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- `include_total?: boolean`\n Whether to include `total` (count of all calls matching `filter_criteria`, ignoring `limit`/`skip`/`pagination_key`) in the response. Defaults to false. Each enabled request triggers an additional aggregate query, so opt in only when the total is needed.\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?: { 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: object[]; 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?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; 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; start_timestamp?: number; 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: object[]; 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?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; 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; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transfer_destination?: string; transfer_end_timestamp?: number; }[]; pagination_key?: string; total?: number; }`\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; start_timestamp?: number; 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; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transfer_destination?: string; transfer_end_timestamp?: number; }[]`\n - `pagination_key?: string`\n - `total?: number`\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```",
|
|
190
|
+
markdown: "## 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; } | { op: 'in'; type: 'enum'; 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?: { latency_ms?: object | object; name?: string; success?: object; type?: string; }[]; user_sentiment?: { op: 'in'; type: 'enum'; value: 'Negative' | 'Positive' | 'Neutral' | 'Unknown'[]; }; }, include_total?: boolean, limit?: number, pagination_key?: string, skip?: number, sort_order?: 'ascending' | 'descending'): { has_more?: boolean; items?: object | object[]; pagination_key?: string; total?: number; }`\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; } | { op: 'in'; type: 'enum'; 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?: { latency_ms?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; name?: string; success?: { op: 'eq'; type: 'boolean'; value: boolean; }; type?: string; }[]; 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; } | { op: 'in'; type: 'enum'; 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?: { latency_ms?: { op: 'eq' | 'ne' | 'gt' | 'ge' | 'lt' | 'le'; type: 'number'; value: number; } | { op: 'bt'; type: 'range'; value: number[]; }; name?: string; success?: { op: 'eq'; type: 'boolean'; value: boolean; }; type?: string; }[]`\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- `include_total?: boolean`\n Whether to include `total` (count of all calls matching `filter_criteria`, ignoring `limit`/`skip`/`pagination_key`) in the response. Defaults to false. Each enabled request triggers an additional aggregate query, so opt in only when the total is needed.\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; agent_tag?: 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: object[]; 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?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; 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; start_timestamp?: number; 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; agent_tag?: 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: object[]; 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?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; 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; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transfer_destination?: string; transfer_end_timestamp?: number; }[]; pagination_key?: string; total?: number; }`\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; agent_tag?: 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; start_timestamp?: number; 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; agent_tag?: 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; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transfer_destination?: string; transfer_end_timestamp?: number; }[]`\n - `pagination_key?: string`\n - `total?: number`\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```",
|
|
191
191
|
perLanguage: {
|
|
192
192
|
typescript: {
|
|
193
193
|
method: 'client.call.list',
|
|
@@ -218,7 +218,7 @@ const EMBEDDED_METHODS = [
|
|
|
218
218
|
'override_dynamic_variables?: object;',
|
|
219
219
|
],
|
|
220
220
|
response: 'object | object',
|
|
221
|
-
markdown: "## update\n\n`client.call.update(call_id: string, custom_attributes?: object, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', metadata?: object, override_dynamic_variables?: object): object | object`\n\n**patch** `/v2/update-call/{call_id}`\n\nUpdate metadata and sensitive data storage settings for an existing call.\n\n### Parameters\n\n- `call_id: string`\n\n- `custom_attributes?: object`\n Custom attributes for the call\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Data storage setting for this call. Overrides the agent's default setting. \"everything\" stores all data, \"everything_except_pii\" excludes PII when possible, \"basic_attributes_only\" stores only metadata. Cannot be downgraded from more restrictive to less restrictive settings.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object. Size limited to 50kB max.\n\n- `override_dynamic_variables?: object`\n Deprecated. Use the /v2/update-live-call/{call_id} endpoint to override dynamic variables on an ongoing call. Override dynamic variables represented as key-value pairs of strings. Setting this will override or add the dynamic variables set in the agent during the call. Only need to set the delta where you want to override, no need to set the entire dynamic variables object. Setting this to null will remove any existing override.\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?: { 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: object[]; 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?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; 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: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; start_timestamp?: number; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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: object[]; 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?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; 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: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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 callResponse = await client.call.update('call_a4441234567890777c4a4a123e6');\n\nconsole.log(callResponse);\n```",
|
|
221
|
+
markdown: "## update\n\n`client.call.update(call_id: string, custom_attributes?: object, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', metadata?: object, override_dynamic_variables?: object): object | object`\n\n**patch** `/v2/update-call/{call_id}`\n\nUpdate metadata and sensitive data storage settings for an existing call.\n\n### Parameters\n\n- `call_id: string`\n\n- `custom_attributes?: object`\n Custom attributes for the call\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Data storage setting for this call. Overrides the agent's default setting. \"everything\" stores all data, \"everything_except_pii\" excludes PII when possible, \"basic_attributes_only\" stores only metadata. Cannot be downgraded from more restrictive to less restrictive settings.\n\n- `metadata?: object`\n An arbitrary object for storage purpose only. You can put anything here like your internal customer id associated with the call. Not used for processing. You can later get this field from the call object. Size limited to 50kB max.\n\n- `override_dynamic_variables?: object`\n Deprecated. Use the /v2/update-live-call/{call_id} endpoint to override dynamic variables on an ongoing call. Override dynamic variables represented as key-value pairs of strings. Setting this will override or add the dynamic variables set in the agent during the call. Only need to set the delta where you want to override, no need to set the entire dynamic variables object. Setting this to null will remove any existing override.\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; agent_tag?: 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: object[]; 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?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; 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: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; start_timestamp?: number; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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; agent_tag?: 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: object[]; 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?: object; e2e?: object; knowledge_base?: object; llm?: object; llm_websocket_network_rtt?: object; s2s?: object; tts?: object; }; 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: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; start_timestamp?: number; telephony_identifier?: { twilio_call_sid?: string; }; transcript?: string; transcript_object?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; }[]; transcript_with_tool_calls?: { content: string; role: 'agent' | 'user' | 'transfer_target'; words: object[]; } | { 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'; } | { content: string; role: 'sms'; time_sec: number; multimedia?: object[]; } | { content: string; role: 'injected'; time_sec: number; }[]; 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 callResponse = await client.call.update('call_a4441234567890777c4a4a123e6');\n\nconsole.log(callResponse);\n```",
|
|
222
222
|
perLanguage: {
|
|
223
223
|
typescript: {
|
|
224
224
|
method: 'client.call.update',
|
|
@@ -720,17 +720,20 @@ const EMBEDDED_METHODS = [
|
|
|
720
720
|
'begin_message_delay_ms?: number;',
|
|
721
721
|
'boosted_keywords?: string[];',
|
|
722
722
|
'call_screening_option?: { agent_identity: string; call_purpose: string; };',
|
|
723
|
-
"custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; };",
|
|
723
|
+
"custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; };",
|
|
724
724
|
'data_storage_retention_days?: number;',
|
|
725
725
|
"data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only';",
|
|
726
726
|
"denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation';",
|
|
727
727
|
'enable_backchannel?: boolean;',
|
|
728
728
|
'enable_dynamic_responsiveness?: boolean;',
|
|
729
729
|
'enable_dynamic_voice_speed?: boolean;',
|
|
730
|
+
'enable_expressive_mode?: boolean;',
|
|
730
731
|
'end_call_after_silence_ms?: number;',
|
|
732
|
+
'expressive_emotion_tags?: string[];',
|
|
733
|
+
'expressive_mode_prompt?: string;',
|
|
731
734
|
'fallback_voice_ids?: string[];',
|
|
732
735
|
"guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; };",
|
|
733
|
-
'handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; };',
|
|
736
|
+
'handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; };',
|
|
734
737
|
'interruption_sensitivity?: number;',
|
|
735
738
|
"ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; };",
|
|
736
739
|
'language?: string | string[];',
|
|
@@ -749,13 +752,12 @@ const EMBEDDED_METHODS = [
|
|
|
749
752
|
'timezone?: string;',
|
|
750
753
|
'user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; };',
|
|
751
754
|
'version_description?: string;',
|
|
755
|
+
'version_title?: string;',
|
|
752
756
|
"vocab_specialization?: 'general' | 'medical';",
|
|
753
757
|
"voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised';",
|
|
754
758
|
'voice_model?: string;',
|
|
755
759
|
'voice_speed?: number;',
|
|
756
760
|
'voice_temperature?: number;',
|
|
757
|
-
'voicemail_detection_timeout_ms?: number;',
|
|
758
|
-
'voicemail_message?: string;',
|
|
759
761
|
"voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; };",
|
|
760
762
|
'volume?: number;',
|
|
761
763
|
'webhook_events?: string[];',
|
|
@@ -763,14 +765,14 @@ const EMBEDDED_METHODS = [
|
|
|
763
765
|
'webhook_url?: string;',
|
|
764
766
|
],
|
|
765
767
|
response: 'object',
|
|
766
|
-
markdown: "## create\n\n`client.agent.create(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; }, voice_id: string, agent_name?: string, allow_dtmf_interruption?: boolean, allow_user_dtmf?: boolean, ambient_sound?: string, ambient_sound_volume?: number, analysis_successful_prompt?: string, analysis_summary_prompt?: string, analysis_user_sentiment_prompt?: string, backchannel_frequency?: number, backchannel_words?: string[], begin_message_delay_ms?: number, boosted_keywords?: string[], call_screening_option?: { agent_identity: string; call_purpose: string; }, custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }, data_storage_retention_days?: number, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation', enable_backchannel?: boolean, enable_dynamic_responsiveness?: boolean, enable_dynamic_voice_speed?: boolean, end_call_after_silence_ms?: number, fallback_voice_ids?: string[], guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }, handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }, interruption_sensitivity?: number, ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }, language?: string | string[], max_call_duration_ms?: number, opt_in_signed_url?: boolean, pii_config?: { categories: string[]; mode: 'post_call'; }, post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[], post_call_analysis_model?: string, pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[], reminder_max_count?: number, reminder_trigger_ms?: number, responsiveness?: number, ring_duration_ms?: number, signed_url_expiration_ms?: number, stt_mode?: 'fast' | 'accurate' | 'custom', timezone?: string, user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }, version_description?: string, vocab_specialization?: 'general' | 'medical', voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised', voice_model?: string, voice_speed?: number, voice_temperature?: number, voicemail_detection_timeout_ms?: number, voicemail_message?: string, voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }, volume?: number, webhook_events?: string[], webhook_timeout_ms?: number, webhook_url?: string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: object; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: object; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**post** `/create-agent`\n\nCreate a new agent\n\n### Parameters\n\n- `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; }`\n The Response Engine to attach to the agent. It is used to generate responses for the agent. You need to create a Response Engine first before attaching it to an agent.\n\n- `voice_id: string`\n Unique voice id used for the agent. Find list of available voices and their preview in Dashboard.\n\n- `agent_name?: string`\n The name of the agent. Only used for your own reference.\n\n- `allow_dtmf_interruption?: boolean`\n If set to true, DTMF input will interrupt the agent even when interruption_sensitivity is 0. Can be overridden per conversation or subagent node. Default to false.\n\n- `allow_user_dtmf?: boolean`\n If set to true, DTMF input will be accepted and processed. If false, any DTMF input will be ignored. Default to true.\n\n- `ambient_sound?: string`\n If set, will add ambient environment sound to the call to make experience more realistic. Currently supports the following options:\n\n- `coffee-shop`: Coffee shop ambience with people chatting in background. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/coffee-shop.wav)\n- `convention-hall`: Convention hall ambience, with some echo and people chatting in background. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/convention-hall.wav)\n- `summer-outdoor`: Summer outdoor ambience with cicada chirping. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/summer-outdoor.wav)\n- `mountain-outdoor`: Mountain outdoor ambience with birds singing. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/mountain-outdoor.wav)\n- `static-noise`: Constant static noise. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/static-noise.wav)\n- `call-center`: Call center work noise. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/call-center.wav)\nSet to `null` to remove ambient sound from this agent.\n\n\n- `ambient_sound_volume?: number`\n If set, will control the volume of the ambient sound. Value ranging from [0,2]. Lower value means quieter ambient sound, while higher value means louder ambient sound. If unset, default value 1 will apply.\n\n- `analysis_successful_prompt?: string`\n Prompt to determine whether the post call or chat analysis should mark the interaction as successful. Set to null to use the default prompt.\n\n- `analysis_summary_prompt?: string`\n Prompt to guide how the post call or chat analysis summary should be generated. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `analysis_user_sentiment_prompt?: string`\n Prompt to guide how the post call or chat analysis should evaluate user sentiment. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `backchannel_frequency?: number`\n Only applicable when enable_backchannel is true. Controls how often the agent would backchannel when a backchannel is possible. Value ranging from [0,1]. Lower value means less frequent backchannel, while higher value means more frequent backchannel. If unset, default value 0.8 will apply.\n\n- `backchannel_words?: string[]`\n Only applicable when enable_backchannel is true. A list of words that the agent would use as backchannel. If not set, default backchannel words will apply. Check out [backchannel default words](/agent/interaction-configuration#backchannel) for more details. Note that certain voices do not work too well with certain words, so it's recommended to experiment before adding any words.\n\n- `begin_message_delay_ms?: number`\n If set, will delay the first message by the specified amount of milliseconds, so that it gives user more time to prepare to take the call. Valid range is [0, 5000]. If not set or set to 0, agent will speak immediately. Only applicable when agent speaks first.\n\n- `boosted_keywords?: string[]`\n Provide a customized list of keywords to bias the transcriber model, so that these words are more likely to get transcribed. Commonly used for names, brands, street, etc. Entries may reference dynamic variables with `{{variable}}` syntax.\n\n- `call_screening_option?: { agent_identity: string; call_purpose: string; }`\n If this option is set, the agent prompt will include call screen handling instructions for identity and call purpose questions. Set this to null to disable call screen prompt instructions.\n - `agent_identity: string`\n Identity the agent should provide when a call screen asks who is calling. Dynamic variables are supported.\n - `call_purpose: string`\n Purpose the agent should provide when a call screen asks why it is calling. Dynamic variables are supported.\n\n- `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }`\n Custom STT configuration. Only used when stt_mode is set to custom.\n - `endpointing_ms: number`\n Endpointing timeout in milliseconds. Minimum is 100 for Azure, 10 for Deepgram, 500 for Soniox\n - `provider: 'azure' | 'deepgram' | 'soniox'`\n ASR provider name.\n\n- `data_storage_retention_days?: number`\n Number of days to retain call/chat data before automatic deletion. Must be between 1 and 730 days. If not set, data is retained forever (no automatic deletion).\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Granular setting to manage how Retell stores sensitive data (transcripts, recordings, logs, etc.).\nThis replaces the deprecated `opt_out_sensitive_data_storage` field.\n- `everything`: Store all data including transcripts, recordings, and logs.\n- `everything_except_pii`: Store data without PII when PII is detected.\n- `basic_attributes_only`: Store only basic attributes; no transcripts/recordings/logs.\nIf not set, default value of \"everything\" will apply.\n\n\n- `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n If set, determines what denoising mode to use. Use \"no-denoise\" to bypass all audio denoising. Default to noise-cancellation.\n\n- `enable_backchannel?: boolean`\n Controls whether the agent would backchannel (agent interjects the speaker with phrases like \"yeah\", \"uh-huh\" to signify interest and engagement). Backchannel when enabled tends to show up more in longer user utterances. If not set, agent will not backchannel.\n\n- `enable_dynamic_responsiveness?: boolean`\n If set to true, the agent will dynamically adjust how quickly it responds based on the user's speech rate and past turn-taking behavior in the call. If unset, default value false will apply.\n\n- `enable_dynamic_voice_speed?: boolean`\n If set to true, will enable dynamic voice speed adjustment based on the user's speech rate and conversation context. If unset, default value false will apply.\n\n- `end_call_after_silence_ms?: number`\n If users stay silent for a period after agent speech, end the call. The minimum value allowed is 10,000 ms (10 s). By default, this is set to 600000 (10 min).\n\n- `fallback_voice_ids?: string[]`\n When TTS provider for the selected voice is experiencing outages, we would use fallback voices listed here for the agent. Voice id and the fallback voice ids must be from different TTS providers. The system would go through the list in order, if the first one in the list is also having outage, it would use the next one. Set to null to remove voice fallback for the agent.\n\n- `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n Configuration for guardrail checks to detect and prevent prohibited topics in agent output and user input.\n - `input_topics?: 'platform_integrity_jailbreaking'[]`\n Selected prohibited user topic categories to check. When user messages contain these topics, the agent will respond with a placeholder message instead of processing the request.\n - `output_topics?: string[]`\n Selected prohibited agent topic categories to check. When agent messages contain these topics, they will be replaced with a placeholder message.\n\n- `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n Toggle behavior presets on/off to influence agent response style and behaviors.\n - `ai_disclosure?: boolean`\n When asked, acknowledge being a virtual assistant.\n - `default_personality?: boolean`\n Professional call center rep baseline.\n - `echo_verification?: boolean`\n Repeat back and confirm important details (voice only).\n - `high_empathy?: boolean`\n Warm acknowledgment of caller concerns.\n - `nato_phonetic_alphabet?: boolean`\n Spell using NATO phonetic alphabet style (voice only).\n - `natural_filler_words?: boolean`\n Sprinkle natural speech fillers like \"um\", \"you know\" for a more human, conversational tone.\n - `scope_boundaries?: boolean`\n Stay within prompt/context scope, don't invent details.\n - `smart_matching?: boolean`\n Treat near-match similar words as same entity to reduce impact of transcription error (voice only).\n - `speech_normalization?: boolean`\n Convert numbers/dates/currency to spoken forms (voice only).\n\n- `interruption_sensitivity?: number`\n Controls how sensitive the agent is to user interruptions. Value ranging from [0,1]. Lower value means it will take longer / more words for user to interrupt agent, while higher value means it's easier for user to interrupt agent. If unset, default value 1 will apply. When this is set to 0, agent would never be interrupted.\n\n- `ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }`\n If this option is set, the call will try to detect IVR in the first 3 minutes of the call. Actions defined will be applied when the IVR is detected. Set this to null to disable IVR detection.\n - `action: { type: 'hangup'; }`\n - `detection_prompt?: string`\n Optionally describe what should be treated as an IVR. Leave as null to use the default definition.\n\n- `language?: string | string[]`\n Specifies what language(s) the agent will operate in. Accepts either a single scalar locale (e.g. `en-US`), the legacy scalar value `multi` for multilingual support, or an array of concrete locale codes for explicit multi-locale selection (e.g. `[\"en-US\",\"es-ES\"]`). The array form must contain concrete locale codes only — the `multi` value is valid only as the scalar legacy form and must not appear inside an array. Single-element arrays are normalized to the equivalent scalar on output. If unset, defaults to `en-US`.\n\n- `max_call_duration_ms?: number`\n Maximum allowed length for the call, will force end the call if reached. The minimum value allowed is 60,000 ms (1 min), and maximum value allowed is 7,200,000 (2 hours). By default, this is set to 3,600,000 (1 hour).\n\n- `opt_in_signed_url?: boolean`\n Whether this agent opts in for signed URLs for public logs and recordings. When enabled, the generated URLs will include security signatures that restrict access and automatically expire after 24 hours.\n\n- `pii_config?: { categories: string[]; mode: 'post_call'; }`\n Configuration for PII scrubbing from transcripts and recordings.\n - `categories: string[]`\n List of PII categories to scrub from transcripts and recordings. PII redaction is only active when this list is non-empty; an empty array means no PII scrubbing is performed.\n - `mode: 'post_call'`\n The processing mode for PII scrubbing. Currently only post-call is supported.\n\n- `post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n Post call analysis data to extract from the call. This data will augment the pre-defined variables extracted in the call analysis. This will be available after the call ends.\n\n- `post_call_analysis_model?: string`\n The model to use for post call analysis. Default to gpt-4.1.\n\n- `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n A list of words / phrases and their pronunciation to be used to guide the audio synthesize for consistent pronunciation. Check the dashboard to see what provider supports this feature. Set to null to remove pronunciation dictionary from this agent.\n\n- `reminder_max_count?: number`\n If set, controls how many times agent would remind user when user is unresponsive. Must be a non negative integer. If unset, default value of 1 will apply (remind once). Set to 0 to disable agent from reminding.\n\n- `reminder_trigger_ms?: number`\n If set (in milliseconds), will trigger a reminder to the agent to speak if the user has been silent for the specified duration after some agent speech. Must be a positive number. If unset, default value of 10000 ms (10 s) will apply.\n\n- `responsiveness?: number`\n Controls how responsive is the agent. Value ranging from [0,1]. Lower value means less responsive agent (wait more, respond slower), while higher value means faster exchanges (respond when it can). If unset, default value 1 will apply.\n\n- `ring_duration_ms?: number`\n If set, the phone ringing will last for the specified amount of milliseconds. This applies for both outbound call ringtime, and call transfer ringtime. Default to 30000 (30 s). Valid range is [5000, 300000].\n\n- `signed_url_expiration_ms?: number`\n The expiration time for the signed url in milliseconds. Only applicable when opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will apply.\n\n- `stt_mode?: 'fast' | 'accurate' | 'custom'`\n If set, determines whether speech to text should focus on latency or accuracy. Default to fast mode. When set to custom, custom_stt_config must be provided.\n\n- `timezone?: string`\n IANA timezone for the agent (e.g. America/New_York). Defaults to America/Los_Angeles if not set.\n\n- `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `digit_limit?: number`\n The maximum number of digits allowed in the user's DTMF (Dual-Tone Multi-Frequency) input per turn. Once this limit is reached, the input is considered complete and a response will be generated immediately.\n - `termination_key?: string`\n A single key that signals the end of DTMF input. Acceptable values include any digit (0-9), the pound/hash symbol (#), or the asterisk (*).\n - `timeout_ms?: number`\n The time (in milliseconds) to wait for user DTMF input before timing out. The timer resets with each digit received.\n\n- `version_description?: string`\n Optional description of the agent version. Used for your own reference and documentation.\n\n- `vocab_specialization?: 'general' | 'medical'`\n If set, determines the vocabulary set to use for transcription. This setting only applies for English agents, for non English agent, this setting is a no-op. Default to general.\n\n- `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n Controls the emotional tone of the agent's voice. Currently supported for Cartesia and Minimax TTS providers. If unset, no emotion will be used.\n\n\n- `voice_model?: string`\n Select the voice model used for the selected voice. Each provider has a set of available voice models. Set to null to remove voice model selection, and default ones will apply. Check out dashboard for more details of each voice model.\n\n- `voice_speed?: number`\n Controls speed of voice. Value ranging from [0.5,2]. Lower value means slower speech, while higher value means faster speech rate. If unset, default value 1 will apply.\n\n- `voice_temperature?: number`\n Controls how stable the voice is. Value ranging from [0,2]. Lower value means more stable, and higher value means more variant speech generation. Check the dashboard to see what provider supports this feature. If unset, default value 1 will apply.\n\n- `voicemail_detection_timeout_ms?: number`\n Configures when to stop running voicemail detection, as it becomes unlikely to hit voicemail after a couple minutes, and keep running it will only have negative impact. The minimum value allowed is 5,000 ms (5 s), and maximum value allowed is 180,000 (3 minutes). By default, this is set to 30,000 (30 s).\n\n- `voicemail_message?: string`\n The message to be played when the call enters a voicemail. Note that this feature is only available for phone calls. If you want to hangup after hitting voicemail, set this to empty string.\n\n- `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }`\n If this option is set, the call will try to detect voicemail in the first 3 minutes of the call. Actions defined (hangup, or leave a message) will be applied when the voicemail is detected. Set this to null to disable voicemail detection.\n - `action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }`\n - `detection_prompt?: string`\n Optionally describe what should be treated as voicemail. Leave as null to use the default definition.\n\n- `volume?: number`\n If set, will control the volume of the agent. Value ranging from [0,2]. Lower value means quieter agent speech, while higher value means louder agent speech. If unset, default value 1 will apply.\n\n- `webhook_events?: string[]`\n Which webhook events this agent should receive. If not set, defaults to call_started, call_ended, call_analyzed.\n\n- `webhook_timeout_ms?: number`\n The timeout for the webhook in milliseconds. If not set, default value of 10000 will apply.\n\n- `webhook_url?: string`\n The webhook for agent to listen to call events. See what events it would get at [webhook doc](/features/webhook). If set, will binds webhook events for this agent to the specified url, and will ignore the account level webhook for this agent. Set to `null` to remove webhook url from this agent.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `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; }`\n - `version: number`\n - `voice_id: string`\n - `agent_name?: string`\n - `allow_dtmf_interruption?: boolean`\n - `allow_user_dtmf?: boolean`\n - `ambient_sound?: string`\n - `ambient_sound_volume?: number`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `assigned_tags?: string[]`\n - `backchannel_frequency?: number`\n - `backchannel_words?: string[]`\n - `base_version?: number`\n - `begin_message_delay_ms?: number`\n - `boosted_keywords?: string[]`\n - `call_screening_option?: { agent_identity: string; call_purpose: string; }`\n - `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n - `enable_backchannel?: boolean`\n - `enable_dynamic_responsiveness?: boolean`\n - `enable_dynamic_voice_speed?: boolean`\n - `end_call_after_silence_ms?: number`\n - `fallback_voice_ids?: string[]`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n - `interruption_sensitivity?: number`\n - `is_published?: boolean`\n - `ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }`\n - `language?: string | string[]`\n - `max_call_duration_ms?: number`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_call_analysis_model?: string`\n - `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n - `reminder_max_count?: number`\n - `reminder_trigger_ms?: number`\n - `responsiveness?: number`\n - `ring_duration_ms?: number`\n - `signed_url_expiration_ms?: number`\n - `stt_mode?: 'fast' | 'accurate' | 'custom'`\n - `timezone?: string`\n - `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `version_description?: string`\n - `vocab_specialization?: 'general' | 'medical'`\n - `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n - `voice_model?: string`\n - `voice_speed?: number`\n - `voice_temperature?: number`\n - `voicemail_detection_timeout_ms?: number`\n - `voicemail_message?: string`\n - `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }`\n - `volume?: number`\n - `webhook_events?: string[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponse = await client.agent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n});\n\nconsole.log(agentResponse);\n```",
|
|
768
|
+
markdown: "## create\n\n`client.agent.create(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; }, voice_id: string, agent_name?: string, allow_dtmf_interruption?: boolean, allow_user_dtmf?: boolean, ambient_sound?: string, ambient_sound_volume?: number, analysis_successful_prompt?: string, analysis_summary_prompt?: string, analysis_user_sentiment_prompt?: string, backchannel_frequency?: number, backchannel_words?: string[], begin_message_delay_ms?: number, boosted_keywords?: string[], call_screening_option?: { agent_identity: string; call_purpose: string; }, custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }, data_storage_retention_days?: number, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation', enable_backchannel?: boolean, enable_dynamic_responsiveness?: boolean, enable_dynamic_voice_speed?: boolean, enable_expressive_mode?: boolean, end_call_after_silence_ms?: number, expressive_emotion_tags?: string[], expressive_mode_prompt?: string, fallback_voice_ids?: string[], guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }, handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }, interruption_sensitivity?: number, ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }, language?: string | string[], max_call_duration_ms?: number, opt_in_signed_url?: boolean, pii_config?: { categories: string[]; mode: 'post_call'; }, post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[], post_call_analysis_model?: string, pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[], reminder_max_count?: number, reminder_trigger_ms?: number, responsiveness?: number, ring_duration_ms?: number, signed_url_expiration_ms?: number, stt_mode?: 'fast' | 'accurate' | 'custom', timezone?: string, user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }, version_description?: string, version_title?: string, vocab_specialization?: 'general' | 'medical', voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised', voice_model?: string, voice_speed?: number, voice_temperature?: number, voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }, volume?: number, webhook_events?: string[], webhook_timeout_ms?: number, webhook_url?: string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: object; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: object; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**post** `/create-agent`\n\nCreate a new agent\n\n### Parameters\n\n- `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; }`\n The Response Engine to attach to the agent. It is used to generate responses for the agent. You need to create a Response Engine first before attaching it to an agent.\n\n- `voice_id: string`\n Unique voice id used for the agent. Find list of available voices and their preview in Dashboard.\n\n- `agent_name?: string`\n The name of the agent. Only used for your own reference.\n\n- `allow_dtmf_interruption?: boolean`\n If set to true, DTMF input will interrupt the agent even when interruption_sensitivity is 0. Can be overridden per conversation or subagent node. Default to false.\n\n- `allow_user_dtmf?: boolean`\n If set to true, DTMF input will be accepted and processed. If false, any DTMF input will be ignored. Default to true.\n\n- `ambient_sound?: string`\n If set, will add ambient environment sound to the call to make experience more realistic. Currently supports the following options:\n\n- `coffee-shop`: Coffee shop ambience with people chatting in background. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/coffee-shop.wav)\n- `convention-hall`: Convention hall ambience, with some echo and people chatting in background. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/convention-hall.wav)\n- `summer-outdoor`: Summer outdoor ambience with cicada chirping. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/summer-outdoor.wav)\n- `mountain-outdoor`: Mountain outdoor ambience with birds singing. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/mountain-outdoor.wav)\n- `static-noise`: Constant static noise. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/static-noise.wav)\n- `call-center`: Call center work noise. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/call-center.wav)\nSet to `null` to remove ambient sound from this agent.\n\n\n- `ambient_sound_volume?: number`\n If set, will control the volume of the ambient sound. Value ranging from [0,2]. Lower value means quieter ambient sound, while higher value means louder ambient sound. If unset, default value 1 will apply.\n\n- `analysis_successful_prompt?: string`\n Prompt to determine whether the post call or chat analysis should mark the interaction as successful. Set to null to use the default prompt.\n\n- `analysis_summary_prompt?: string`\n Prompt to guide how the post call or chat analysis summary should be generated. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `analysis_user_sentiment_prompt?: string`\n Prompt to guide how the post call or chat analysis should evaluate user sentiment. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `backchannel_frequency?: number`\n Only applicable when enable_backchannel is true. Controls how often the agent would backchannel when a backchannel is possible. Value ranging from [0,1]. Lower value means less frequent backchannel, while higher value means more frequent backchannel. If unset, default value 0.8 will apply.\n\n- `backchannel_words?: string[]`\n Only applicable when enable_backchannel is true. A list of words that the agent would use as backchannel. If not set, default backchannel words will apply. Check out [backchannel default words](/agent/interaction-configuration#backchannel) for more details. Note that certain voices do not work too well with certain words, so it's recommended to experiment before adding any words.\n\n- `begin_message_delay_ms?: number`\n If set, will delay the first message by the specified amount of milliseconds, so that it gives user more time to prepare to take the call. Valid range is [0, 5000]. If not set or set to 0, agent will speak immediately. Only applicable when agent speaks first.\n\n- `boosted_keywords?: string[]`\n Provide a customized list of keywords to bias the transcriber model, so that these words are more likely to get transcribed. Commonly used for names, brands, street, etc. Entries may reference dynamic variables with `{{variable}}` syntax.\n\n- `call_screening_option?: { agent_identity: string; call_purpose: string; }`\n If this option is set, the agent prompt will include call screen handling instructions for identity and call purpose questions. Set this to null to disable call screen prompt instructions.\n - `agent_identity: string`\n Identity the agent should provide when a call screen asks who is calling. Dynamic variables are supported.\n - `call_purpose: string`\n Purpose the agent should provide when a call screen asks why it is calling. Dynamic variables are supported.\n\n- `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }`\n Custom STT configuration. Only used when stt_mode is set to custom.\n - `endpointing_ms: number`\n Endpointing timeout in milliseconds. Minimum is 100 for Azure, 10 for Deepgram, 500 for Soniox, 100 for AssemblyAI.\n - `provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'`\n ASR provider name.\n\n- `data_storage_retention_days?: number`\n Number of days to retain call/chat data before automatic deletion. Must be between 1 and 730 days. If not set, data is retained forever (no automatic deletion).\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Granular setting to manage how Retell stores sensitive data (transcripts, recordings, logs, etc.).\nThis replaces the deprecated `opt_out_sensitive_data_storage` field.\n- `everything`: Store all data including transcripts, recordings, and logs.\n- `everything_except_pii`: Store data without PII when PII is detected.\n- `basic_attributes_only`: Store only basic attributes; no transcripts/recordings/logs.\nIf not set, default value of \"everything\" will apply.\n\n\n- `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n If set, determines what denoising mode to use. Use \"no-denoise\" to bypass all audio denoising. Default to noise-cancellation.\n\n- `enable_backchannel?: boolean`\n Controls whether the agent would backchannel (agent interjects the speaker with phrases like \"yeah\", \"uh-huh\" to signify interest and engagement). Backchannel when enabled tends to show up more in longer user utterances. If not set, agent will not backchannel.\n\n- `enable_dynamic_responsiveness?: boolean`\n If set to true, the agent will dynamically adjust how quickly it responds based on the user's speech rate and past turn-taking behavior in the call. If unset, default value false will apply.\n\n- `enable_dynamic_voice_speed?: boolean`\n If set to true, will enable dynamic voice speed adjustment based on the user's speech rate and conversation context. If unset, default value false will apply.\n\n- `enable_expressive_mode?: boolean`\n Master toggle for expressive mode. When true, the agent may add expressive voice tags to the audio it generates. Only applicable for platform voices. If unset, defaults to false.\n\n- `end_call_after_silence_ms?: number`\n If users stay silent for a period after agent speech, end the call. The minimum value allowed is 10,000 ms (10 s). By default, this is set to 600000 (10 min).\n\n- `expressive_emotion_tags?: string[]`\n The expressive voice tags Retell pre-teaches the model to use when enable_expressive_mode is true. Custom tags defined in the system prompt are still allowed. If empty, the agent follows general expressive guidance without a fixed tag set.\n\n- `expressive_mode_prompt?: string`\n Custom expressive voice guidance to use instead of the default Retell expressive prompt when enable_expressive_mode is true. If omitted or blank, the default expressive prompt will be used.\n\n- `fallback_voice_ids?: string[]`\n When TTS provider for the selected voice is experiencing outages, we would use fallback voices listed here for the agent. Voice id and the fallback voice ids must be from different TTS providers. The system would go through the list in order, if the first one in the list is also having outage, it would use the next one. Set to null to remove voice fallback for the agent.\n\n- `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n Configuration for guardrail checks to detect and prevent prohibited topics in agent output and user input.\n - `input_topics?: 'platform_integrity_jailbreaking'[]`\n Selected prohibited user topic categories to check. When user messages contain these topics, the agent will respond with a placeholder message instead of processing the request.\n - `output_topics?: string[]`\n Selected prohibited agent topic categories to check. When agent messages contain these topics, they will be replaced with a placeholder message.\n\n- `handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n Toggle behavior presets on/off to influence agent response style and behaviors.\n - `ai_disclosure?: boolean`\n When asked, acknowledge being a virtual assistant.\n - `conversational_personality?: boolean`\n Enables Conversational Personality. When true, the agent uses the Conversational Personality handbook preset, skips Professional Rep Personality during prompt assembly, and enables internal colloquial rewrite behavior.\n - `default_personality?: boolean`\n Professional call center rep baseline.\n - `echo_verification?: boolean`\n Repeat back and confirm important details (voice only).\n - `high_empathy?: boolean`\n Warm acknowledgment of caller concerns.\n - `nato_phonetic_alphabet?: boolean`\n Spell using NATO phonetic alphabet style (voice only).\n - `natural_filler_words?: boolean`\n Sprinkle natural speech fillers like \"um\", \"you know\" for a more human, conversational tone.\n - `scope_boundaries?: boolean`\n Stay within prompt/context scope, don't invent details.\n - `smart_matching?: boolean`\n Treat near-match similar words as same entity to reduce impact of transcription error (voice only).\n - `speech_normalization?: boolean`\n Convert numbers/dates/currency to spoken forms (voice only).\n\n- `interruption_sensitivity?: number`\n Controls how sensitive the agent is to user interruptions. Value ranging from [0,1]. Lower value means it will take longer / more words for user to interrupt agent, while higher value means it's easier for user to interrupt agent. If unset, default value 1 will apply. When this is set to 0, agent would never be interrupted.\n\n- `ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }`\n If this option is set, the call will try to detect IVR in the first 3 minutes of the call. Actions defined will be applied when the IVR is detected. Set this to null to disable IVR detection.\n - `action: { type: 'hangup'; }`\n - `detection_prompt?: string`\n Optionally describe what should be treated as an IVR. Leave as null to use the default definition.\n\n- `language?: string | string[]`\n Specifies what language(s) the agent will operate in. Accepts either a single scalar locale (e.g. `en-US`), the legacy scalar value `multi` for multilingual support, or an array of concrete locale codes for explicit multi-locale selection (e.g. `[\"en-US\",\"es-ES\"]`). The array form must contain concrete locale codes only — the `multi` value is valid only as the scalar legacy form and must not appear inside an array. Single-element arrays are normalized to the equivalent scalar on output. If unset, defaults to `en-US`.\n\n- `max_call_duration_ms?: number`\n Maximum allowed length for the call, will force end the call if reached. The minimum value allowed is 60,000 ms (1 min), and maximum value allowed is 7,200,000 (2 hours). By default, this is set to 3,600,000 (1 hour).\n\n- `opt_in_signed_url?: boolean`\n Whether this agent opts in for signed URLs for public logs and recordings. When enabled, the generated URLs will include security signatures that restrict access and automatically expire after 24 hours.\n\n- `pii_config?: { categories: string[]; mode: 'post_call'; }`\n Configuration for PII scrubbing from transcripts and recordings.\n - `categories: string[]`\n List of PII categories to scrub from transcripts and recordings. PII redaction is only active when this list is non-empty; an empty array means no PII scrubbing is performed.\n - `mode: 'post_call'`\n The processing mode for PII scrubbing. Currently only post-call is supported.\n\n- `post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n Post call analysis data to extract from the call. This data will augment the pre-defined variables extracted in the call analysis. This will be available after the call ends.\n\n- `post_call_analysis_model?: string`\n The model to use for post call analysis. Default to gpt-4.1.\n\n- `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n A list of words / phrases and their pronunciation to be used to guide the audio synthesize for consistent pronunciation. Check the dashboard to see what provider supports this feature. Set to null to remove pronunciation dictionary from this agent.\n\n- `reminder_max_count?: number`\n If set, controls how many times agent would remind user when user is unresponsive. Must be a non negative integer. If unset, default value of 1 will apply (remind once). Set to 0 to disable agent from reminding.\n\n- `reminder_trigger_ms?: number`\n If set (in milliseconds), will trigger a reminder to the agent to speak if the user has been silent for the specified duration after some agent speech. Must be a positive number. If unset, default value of 10000 ms (10 s) will apply.\n\n- `responsiveness?: number`\n Controls how responsive is the agent. Value ranging from [0,1]. Lower value means less responsive agent (wait more, respond slower), while higher value means faster exchanges (respond when it can). If unset, default value 1 will apply.\n\n- `ring_duration_ms?: number`\n If set, the phone ringing will last for the specified amount of milliseconds. This applies for both outbound call ringtime, and call transfer ringtime. Default to 30000 (30 s). Valid range is [5000, 300000].\n\n- `signed_url_expiration_ms?: number`\n The expiration time for the signed url in milliseconds. Only applicable when opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will apply.\n\n- `stt_mode?: 'fast' | 'accurate' | 'custom'`\n If set, determines whether speech to text should focus on latency or accuracy. Default to fast mode. When set to custom, custom_stt_config must be provided.\n\n- `timezone?: string`\n IANA timezone for the agent (e.g. America/New_York). Defaults to America/Los_Angeles if not set.\n\n- `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `digit_limit?: number`\n The maximum number of digits allowed in the user's DTMF (Dual-Tone Multi-Frequency) input per turn. Once this limit is reached, the input is considered complete and a response will be generated immediately.\n - `termination_key?: string`\n A single key that signals the end of DTMF input. Acceptable values include any digit (0-9), the pound/hash symbol (#), or the asterisk (*).\n - `timeout_ms?: number`\n The time (in milliseconds) to wait for user DTMF input before timing out. The timer resets with each digit received.\n\n- `version_description?: string`\n Optional description of the agent version. Used for your own reference and documentation.\n\n- `version_title?: string`\n Optional title of the agent version. Used for your own reference.\n\n- `vocab_specialization?: 'general' | 'medical'`\n If set, determines the vocabulary set to use for transcription. This setting only applies for English agents, for non English agent, this setting is a no-op. Default to general.\n\n- `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n Controls the emotional tone of the agent's voice. Currently supported for Cartesia and Minimax TTS providers. If unset, no emotion will be used.\n\n\n- `voice_model?: string`\n Select the voice model used for the selected voice. Each provider has a set of available voice models. Set to null to remove voice model selection, and default ones will apply. Check out dashboard for more details of each voice model.\n\n- `voice_speed?: number`\n Controls speed of voice. Value ranging from [0.5,2]. Lower value means slower speech, while higher value means faster speech rate. If unset, default value 1 will apply.\n\n- `voice_temperature?: number`\n Controls how stable the voice is. Value ranging from [0,2]. Lower value means more stable, and higher value means more variant speech generation. Check the dashboard to see what provider supports this feature. If unset, default value 1 will apply.\n\n- `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }`\n If this option is set, the call will try to detect voicemail in the first 3 minutes of the call. Actions defined (hangup, or leave a message) will be applied when the voicemail is detected. Set this to null to disable voicemail detection.\n - `action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }`\n - `detection_prompt?: string`\n Optionally describe what should be treated as voicemail. Leave as null to use the default definition.\n\n- `volume?: number`\n If set, will control the volume of the agent. Value ranging from [0,2]. Lower value means quieter agent speech, while higher value means louder agent speech. If unset, default value 1 will apply.\n\n- `webhook_events?: string[]`\n Which webhook events this agent should receive. If not set, defaults to call_started, call_ended, call_analyzed.\n\n- `webhook_timeout_ms?: number`\n The timeout for the webhook in milliseconds. If not set, default value of 10000 will apply.\n\n- `webhook_url?: string`\n The webhook for agent to listen to call events. See what events it would get at [webhook doc](/features/webhook). If set, will binds webhook events for this agent to the specified url, and will ignore the account level webhook for this agent. Set to `null` to remove webhook url from this agent.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `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; }`\n - `version: number`\n - `voice_id: string`\n - `agent_name?: string`\n - `allow_dtmf_interruption?: boolean`\n - `allow_user_dtmf?: boolean`\n - `ambient_sound?: string`\n - `ambient_sound_volume?: number`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `assigned_tags?: string[]`\n - `backchannel_frequency?: number`\n - `backchannel_words?: string[]`\n - `base_version?: number`\n - `begin_message_delay_ms?: number`\n - `boosted_keywords?: string[]`\n - `call_screening_option?: { agent_identity: string; call_purpose: string; }`\n - `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n - `enable_backchannel?: boolean`\n - `enable_dynamic_responsiveness?: boolean`\n - `enable_dynamic_voice_speed?: boolean`\n - `enable_expressive_mode?: boolean`\n - `end_call_after_silence_ms?: number`\n - `expressive_emotion_tags?: string[]`\n - `expressive_mode_prompt?: string`\n - `fallback_voice_ids?: string[]`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n - `interruption_sensitivity?: number`\n - `is_published?: boolean`\n - `ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }`\n - `language?: string | string[]`\n - `max_call_duration_ms?: number`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_call_analysis_model?: string`\n - `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n - `reminder_max_count?: number`\n - `reminder_trigger_ms?: number`\n - `responsiveness?: number`\n - `ring_duration_ms?: number`\n - `signed_url_expiration_ms?: number`\n - `stt_mode?: 'fast' | 'accurate' | 'custom'`\n - `timezone?: string`\n - `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `version_description?: string`\n - `version_title?: string`\n - `vocab_specialization?: 'general' | 'medical'`\n - `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n - `voice_model?: string`\n - `voice_speed?: number`\n - `voice_temperature?: number`\n - `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }`\n - `volume?: number`\n - `webhook_events?: string[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponse = await client.agent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n});\n\nconsole.log(agentResponse);\n```",
|
|
767
769
|
perLanguage: {
|
|
768
770
|
typescript: {
|
|
769
771
|
method: 'client.agent.create',
|
|
770
772
|
example: "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 agentResponse = await client.agent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n voice_id: 'retell-Cimo',\n});\n\nconsole.log(agentResponse.agent_id);",
|
|
771
773
|
},
|
|
772
774
|
http: {
|
|
773
|
-
example: 'curl https://api.retellai.com/create-agent \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d "{\n \\"response_engine\\": {\n \\"llm_id\\": \\"llm_234sdertfsdsfsdf\\",\n \\"type\\": \\"retell-llm\\",\n \\"version\\": 0\n },\n \\"voice_id\\": \\"retell-Cimo\\",\n \\"agent_name\\": \\"Jarvis\\",\n \\"allow_dtmf_interruption\\": false,\n \\"allow_user_dtmf\\": true,\n \\"ambient_sound_volume\\": 1,\n \\"analysis_successful_prompt\\": \\"The agent finished the task and the call was complete without being cutoff.\\",\n \\"analysis_summary_prompt\\": \\"Summarize the outcome of the conversation in two sentences.\\",\n \\"analysis_user_sentiment_prompt\\": \\"Evaluate the user\'s sentiment based on their tone and satisfaction level.\\",\n \\"backchannel_frequency\\": 0.9,\n \\"backchannel_words\\": [\n \\"yeah\\",\n \\"uh-huh\\"\n ],\n \\"begin_message_delay_ms\\": 1000,\n \\"boosted_keywords\\": [\n \\"retell\\",\n \\"kroger\\"\n ],\n \\"data_storage_retention_days\\": 30,\n \\"data_storage_setting\\": \\"everything\\",\n \\"denoising_mode\\": \\"noise-cancellation\\",\n \\"enable_backchannel\\": true,\n \\"enable_dynamic_responsiveness\\": true,\n \\"enable_dynamic_voice_speed\\": true,\n \\"end_call_after_silence_ms\\": 600000,\n \\"fallback_voice_ids\\": [\n \\"cartesia-Cimo\\",\n \\"minimax-Cimo\\"\n ],\n \\"interruption_sensitivity\\": 1,\n \\"ivr_option\\": {\n \\"action\\": {\n \\"type\\": \\"hangup\\"\n }\n },\n \\"max_call_duration_ms\\": 3600000,\n \\"opt_in_signed_url\\": true,\n \\"post_call_analysis_model\\": \\"gpt-4.1-mini\\",\n \\"reminder_max_count\\": 2,\n \\"reminder_trigger_ms\\": 10000,\n \\"responsiveness\\": 1,\n \\"ring_duration_ms\\": 30000,\n \\"signed_url_expiration_ms\\": 86400000,\n \\"stt_mode\\": \\"fast\\",\n \\"timezone\\": \\"America/New_York\\",\n \\"version_description\\": \\"Customer support agent for handling product inquiries\\",\n \\"
|
|
775
|
+
example: 'curl https://api.retellai.com/create-agent \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d "{\n \\"response_engine\\": {\n \\"llm_id\\": \\"llm_234sdertfsdsfsdf\\",\n \\"type\\": \\"retell-llm\\",\n \\"version\\": 0\n },\n \\"voice_id\\": \\"retell-Cimo\\",\n \\"agent_name\\": \\"Jarvis\\",\n \\"allow_dtmf_interruption\\": false,\n \\"allow_user_dtmf\\": true,\n \\"ambient_sound_volume\\": 1,\n \\"analysis_successful_prompt\\": \\"The agent finished the task and the call was complete without being cutoff.\\",\n \\"analysis_summary_prompt\\": \\"Summarize the outcome of the conversation in two sentences.\\",\n \\"analysis_user_sentiment_prompt\\": \\"Evaluate the user\'s sentiment based on their tone and satisfaction level.\\",\n \\"backchannel_frequency\\": 0.9,\n \\"backchannel_words\\": [\n \\"yeah\\",\n \\"uh-huh\\"\n ],\n \\"begin_message_delay_ms\\": 1000,\n \\"boosted_keywords\\": [\n \\"retell\\",\n \\"kroger\\"\n ],\n \\"data_storage_retention_days\\": 30,\n \\"data_storage_setting\\": \\"everything\\",\n \\"denoising_mode\\": \\"noise-cancellation\\",\n \\"enable_backchannel\\": true,\n \\"enable_dynamic_responsiveness\\": true,\n \\"enable_dynamic_voice_speed\\": true,\n \\"enable_expressive_mode\\": true,\n \\"end_call_after_silence_ms\\": 600000,\n \\"expressive_emotion_tags\\": [\n \\"empathetic\\",\n \\"excited\\",\n \\"sigh\\",\n \\"clear throat\\",\n \\"emphasis\\"\n ],\n \\"expressive_mode_prompt\\": \\"Use [sigh] for thoughtful pauses and [excited] for good news.\\",\n \\"fallback_voice_ids\\": [\n \\"cartesia-Cimo\\",\n \\"minimax-Cimo\\"\n ],\n \\"interruption_sensitivity\\": 1,\n \\"ivr_option\\": {\n \\"action\\": {\n \\"type\\": \\"hangup\\"\n }\n },\n \\"max_call_duration_ms\\": 3600000,\n \\"opt_in_signed_url\\": true,\n \\"post_call_analysis_model\\": \\"gpt-4.1-mini\\",\n \\"reminder_max_count\\": 2,\n \\"reminder_trigger_ms\\": 10000,\n \\"responsiveness\\": 1,\n \\"ring_duration_ms\\": 30000,\n \\"signed_url_expiration_ms\\": 86400000,\n \\"stt_mode\\": \\"fast\\",\n \\"timezone\\": \\"America/New_York\\",\n \\"version_description\\": \\"Customer support agent for handling product inquiries\\",\n \\"version_title\\": \\"Production hotfix\\",\n \\"vocab_specialization\\": \\"general\\",\n \\"voice_emotion\\": \\"calm\\",\n \\"voice_speed\\": 1,\n \\"voice_temperature\\": 1,\n \\"voicemail_option\\": {\n \\"action\\": {\n \\"text\\": \\"Please give us a callback tomorrow at 10am.\\",\n \\"type\\": \\"static_text\\"\n }\n },\n \\"volume\\": 1,\n \\"webhook_timeout_ms\\": 10000,\n \\"webhook_url\\": \\"https://webhook-url-here\\"\n }"',
|
|
774
776
|
},
|
|
775
777
|
python: {
|
|
776
778
|
method: 'agent.create',
|
|
@@ -788,7 +790,7 @@ const EMBEDDED_METHODS = [
|
|
|
788
790
|
qualified: 'client.agent.retrieve',
|
|
789
791
|
params: ['agent_id: string;', 'version?: number | string;'],
|
|
790
792
|
response: 'object',
|
|
791
|
-
markdown: "## retrieve\n\n`client.agent.retrieve(agent_id: string, version?: number | string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: object; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: object; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**get** `/get-agent/{agent_id}`\n\nRetrieve details of a specific agent\n\n### Parameters\n\n- `agent_id: string`\n\n- `version?: number | string`\n Optional version of the API to use for this request. If not provided, will default to latest version.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `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; }`\n - `version: number`\n - `voice_id: string`\n - `agent_name?: string`\n - `allow_dtmf_interruption?: boolean`\n - `allow_user_dtmf?: boolean`\n - `ambient_sound?: string`\n - `ambient_sound_volume?: number`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `assigned_tags?: string[]`\n - `backchannel_frequency?: number`\n - `backchannel_words?: string[]`\n - `base_version?: number`\n - `begin_message_delay_ms?: number`\n - `boosted_keywords?: string[]`\n - `call_screening_option?: { agent_identity: string; call_purpose: string; }`\n - `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n - `enable_backchannel?: boolean`\n - `enable_dynamic_responsiveness?: boolean`\n - `enable_dynamic_voice_speed?: boolean`\n - `end_call_after_silence_ms?: number`\n - `fallback_voice_ids?: string[]`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n - `interruption_sensitivity?: number`\n - `is_published?: boolean`\n - `ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }`\n - `language?: string | string[]`\n - `max_call_duration_ms?: number`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_call_analysis_model?: string`\n - `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n - `reminder_max_count?: number`\n - `reminder_trigger_ms?: number`\n - `responsiveness?: number`\n - `ring_duration_ms?: number`\n - `signed_url_expiration_ms?: number`\n - `stt_mode?: 'fast' | 'accurate' | 'custom'`\n - `timezone?: string`\n - `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `version_description?: string`\n - `vocab_specialization?: 'general' | 'medical'`\n - `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n - `voice_model?: string`\n - `voice_speed?: number`\n - `voice_temperature?: number`\n - `voicemail_detection_timeout_ms?: number`\n - `voicemail_message?: string`\n - `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }`\n - `volume?: number`\n - `webhook_events?: string[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponse = await client.agent.retrieve('16b980523634a6dc504898cda492e939');\n\nconsole.log(agentResponse);\n```",
|
|
793
|
+
markdown: "## retrieve\n\n`client.agent.retrieve(agent_id: string, version?: number | string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: object; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: object; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**get** `/get-agent/{agent_id}`\n\nRetrieve details of a specific agent\n\n### Parameters\n\n- `agent_id: string`\n\n- `version?: number | string`\n Optional version of the API to use for this request. If not provided, will default to latest version.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `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; }`\n - `version: number`\n - `voice_id: string`\n - `agent_name?: string`\n - `allow_dtmf_interruption?: boolean`\n - `allow_user_dtmf?: boolean`\n - `ambient_sound?: string`\n - `ambient_sound_volume?: number`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `assigned_tags?: string[]`\n - `backchannel_frequency?: number`\n - `backchannel_words?: string[]`\n - `base_version?: number`\n - `begin_message_delay_ms?: number`\n - `boosted_keywords?: string[]`\n - `call_screening_option?: { agent_identity: string; call_purpose: string; }`\n - `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n - `enable_backchannel?: boolean`\n - `enable_dynamic_responsiveness?: boolean`\n - `enable_dynamic_voice_speed?: boolean`\n - `enable_expressive_mode?: boolean`\n - `end_call_after_silence_ms?: number`\n - `expressive_emotion_tags?: string[]`\n - `expressive_mode_prompt?: string`\n - `fallback_voice_ids?: string[]`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n - `interruption_sensitivity?: number`\n - `is_published?: boolean`\n - `ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }`\n - `language?: string | string[]`\n - `max_call_duration_ms?: number`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_call_analysis_model?: string`\n - `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n - `reminder_max_count?: number`\n - `reminder_trigger_ms?: number`\n - `responsiveness?: number`\n - `ring_duration_ms?: number`\n - `signed_url_expiration_ms?: number`\n - `stt_mode?: 'fast' | 'accurate' | 'custom'`\n - `timezone?: string`\n - `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `version_description?: string`\n - `version_title?: string`\n - `vocab_specialization?: 'general' | 'medical'`\n - `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n - `voice_model?: string`\n - `voice_speed?: number`\n - `voice_temperature?: number`\n - `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }`\n - `volume?: number`\n - `webhook_events?: string[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponse = await client.agent.retrieve('16b980523634a6dc504898cda492e939');\n\nconsole.log(agentResponse);\n```",
|
|
792
794
|
perLanguage: {
|
|
793
795
|
typescript: {
|
|
794
796
|
method: 'client.agent.retrieve',
|
|
@@ -818,7 +820,7 @@ const EMBEDDED_METHODS = [
|
|
|
818
820
|
'pagination_key_version?: number;',
|
|
819
821
|
],
|
|
820
822
|
response: 'object[]',
|
|
821
|
-
markdown: "## list\n\n`client.agent.list(is_latest?: boolean, limit?: number, pagination_key?: string, pagination_key_version?: number): object[]`\n\n**get** `/list-agents`\n\nList all agents\n\n### Parameters\n\n- `is_latest?: boolean`\n If true, only return the latest version of each agent.\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 agents. Pagination key is represented by a agent 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 agent 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- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: object; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number;
|
|
823
|
+
markdown: "## list\n\n`client.agent.list(is_latest?: boolean, limit?: number, pagination_key?: string, pagination_key_version?: number): object[]`\n\n**get** `/list-agents`\n\nList all agents\n\n### Parameters\n\n- `is_latest?: boolean`\n If true, only return the latest version of each agent.\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 agents. Pagination key is represented by a agent 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 agent 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- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: object; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: object | object | object | object; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponses = await client.agent.list();\n\nconsole.log(agentResponses);\n```",
|
|
822
824
|
perLanguage: {
|
|
823
825
|
typescript: {
|
|
824
826
|
method: 'client.agent.list',
|
|
@@ -857,17 +859,20 @@ const EMBEDDED_METHODS = [
|
|
|
857
859
|
'begin_message_delay_ms?: number;',
|
|
858
860
|
'boosted_keywords?: string[];',
|
|
859
861
|
'call_screening_option?: { agent_identity: string; call_purpose: string; };',
|
|
860
|
-
"custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; };",
|
|
862
|
+
"custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; };",
|
|
861
863
|
'data_storage_retention_days?: number;',
|
|
862
864
|
"data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only';",
|
|
863
865
|
"denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation';",
|
|
864
866
|
'enable_backchannel?: boolean;',
|
|
865
867
|
'enable_dynamic_responsiveness?: boolean;',
|
|
866
868
|
'enable_dynamic_voice_speed?: boolean;',
|
|
869
|
+
'enable_expressive_mode?: boolean;',
|
|
867
870
|
'end_call_after_silence_ms?: number;',
|
|
871
|
+
'expressive_emotion_tags?: string[];',
|
|
872
|
+
'expressive_mode_prompt?: string;',
|
|
868
873
|
'fallback_voice_ids?: string[];',
|
|
869
874
|
"guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; };",
|
|
870
|
-
'handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; };',
|
|
875
|
+
'handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; };',
|
|
871
876
|
'interruption_sensitivity?: number;',
|
|
872
877
|
"ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; };",
|
|
873
878
|
'language?: string | string[];',
|
|
@@ -887,14 +892,13 @@ const EMBEDDED_METHODS = [
|
|
|
887
892
|
'timezone?: string;',
|
|
888
893
|
'user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; };',
|
|
889
894
|
'version_description?: string;',
|
|
895
|
+
'version_title?: string;',
|
|
890
896
|
"vocab_specialization?: 'general' | 'medical';",
|
|
891
897
|
"voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised';",
|
|
892
898
|
'voice_id?: string;',
|
|
893
899
|
'voice_model?: string;',
|
|
894
900
|
'voice_speed?: number;',
|
|
895
901
|
'voice_temperature?: number;',
|
|
896
|
-
'voicemail_detection_timeout_ms?: number;',
|
|
897
|
-
'voicemail_message?: string;',
|
|
898
902
|
"voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; };",
|
|
899
903
|
'volume?: number;',
|
|
900
904
|
'webhook_events?: string[];',
|
|
@@ -902,14 +906,14 @@ const EMBEDDED_METHODS = [
|
|
|
902
906
|
'webhook_url?: string;',
|
|
903
907
|
],
|
|
904
908
|
response: 'object',
|
|
905
|
-
markdown: "## update\n\n`client.agent.update(agent_id: string, version?: number | string, agent_name?: string, allow_dtmf_interruption?: boolean, allow_user_dtmf?: boolean, ambient_sound?: string, ambient_sound_volume?: number, analysis_successful_prompt?: string, analysis_summary_prompt?: string, analysis_user_sentiment_prompt?: string, backchannel_frequency?: number, backchannel_words?: string[], begin_message_delay_ms?: number, boosted_keywords?: string[], call_screening_option?: { agent_identity: string; call_purpose: string; }, custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }, data_storage_retention_days?: number, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation', enable_backchannel?: boolean, enable_dynamic_responsiveness?: boolean, enable_dynamic_voice_speed?: boolean, end_call_after_silence_ms?: number, fallback_voice_ids?: string[], guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }, handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }, interruption_sensitivity?: number, ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }, language?: string | string[], max_call_duration_ms?: number, opt_in_signed_url?: boolean, pii_config?: { categories: string[]; mode: 'post_call'; }, post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[], post_call_analysis_model?: string, pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[], reminder_max_count?: number, reminder_trigger_ms?: 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; }, responsiveness?: number, ring_duration_ms?: number, signed_url_expiration_ms?: number, stt_mode?: 'fast' | 'accurate' | 'custom', timezone?: string, user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }, version_description?: string, vocab_specialization?: 'general' | 'medical', voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised', voice_id?: string, voice_model?: string, voice_speed?: number, voice_temperature?: number, voicemail_detection_timeout_ms?: number, voicemail_message?: string, voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }, volume?: number, webhook_events?: string[], webhook_timeout_ms?: number, webhook_url?: string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: object; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: object; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**patch** `/update-agent/{agent_id}`\n\nUpdate an existing agent's latest draft version\n\n### Parameters\n\n- `agent_id: string`\n\n- `version?: number | string`\n Optional version of the API to use for this request. Default to latest version.\n\n- `agent_name?: string`\n The name of the agent. Only used for your own reference.\n\n- `allow_dtmf_interruption?: boolean`\n If set to true, DTMF input will interrupt the agent even when interruption_sensitivity is 0. Can be overridden per conversation or subagent node. Default to false.\n\n- `allow_user_dtmf?: boolean`\n If set to true, DTMF input will be accepted and processed. If false, any DTMF input will be ignored. Default to true.\n\n- `ambient_sound?: string`\n If set, will add ambient environment sound to the call to make experience more realistic. Currently supports the following options:\n\n- `coffee-shop`: Coffee shop ambience with people chatting in background. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/coffee-shop.wav)\n- `convention-hall`: Convention hall ambience, with some echo and people chatting in background. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/convention-hall.wav)\n- `summer-outdoor`: Summer outdoor ambience with cicada chirping. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/summer-outdoor.wav)\n- `mountain-outdoor`: Mountain outdoor ambience with birds singing. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/mountain-outdoor.wav)\n- `static-noise`: Constant static noise. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/static-noise.wav)\n- `call-center`: Call center work noise. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/call-center.wav)\nSet to `null` to remove ambient sound from this agent.\n\n\n- `ambient_sound_volume?: number`\n If set, will control the volume of the ambient sound. Value ranging from [0,2]. Lower value means quieter ambient sound, while higher value means louder ambient sound. If unset, default value 1 will apply.\n\n- `analysis_successful_prompt?: string`\n Prompt to determine whether the post call or chat analysis should mark the interaction as successful. Set to null to use the default prompt.\n\n- `analysis_summary_prompt?: string`\n Prompt to guide how the post call or chat analysis summary should be generated. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `analysis_user_sentiment_prompt?: string`\n Prompt to guide how the post call or chat analysis should evaluate user sentiment. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `backchannel_frequency?: number`\n Only applicable when enable_backchannel is true. Controls how often the agent would backchannel when a backchannel is possible. Value ranging from [0,1]. Lower value means less frequent backchannel, while higher value means more frequent backchannel. If unset, default value 0.8 will apply.\n\n- `backchannel_words?: string[]`\n Only applicable when enable_backchannel is true. A list of words that the agent would use as backchannel. If not set, default backchannel words will apply. Check out [backchannel default words](/agent/interaction-configuration#backchannel) for more details. Note that certain voices do not work too well with certain words, so it's recommended to experiment before adding any words.\n\n- `begin_message_delay_ms?: number`\n If set, will delay the first message by the specified amount of milliseconds, so that it gives user more time to prepare to take the call. Valid range is [0, 5000]. If not set or set to 0, agent will speak immediately. Only applicable when agent speaks first.\n\n- `boosted_keywords?: string[]`\n Provide a customized list of keywords to bias the transcriber model, so that these words are more likely to get transcribed. Commonly used for names, brands, street, etc. Entries may reference dynamic variables with `{{variable}}` syntax.\n\n- `call_screening_option?: { agent_identity: string; call_purpose: string; }`\n If this option is set, the agent prompt will include call screen handling instructions for identity and call purpose questions. Set this to null to disable call screen prompt instructions.\n - `agent_identity: string`\n Identity the agent should provide when a call screen asks who is calling. Dynamic variables are supported.\n - `call_purpose: string`\n Purpose the agent should provide when a call screen asks why it is calling. Dynamic variables are supported.\n\n- `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }`\n Custom STT configuration. Only used when stt_mode is set to custom.\n - `endpointing_ms: number`\n Endpointing timeout in milliseconds. Minimum is 100 for Azure, 10 for Deepgram, 500 for Soniox\n - `provider: 'azure' | 'deepgram' | 'soniox'`\n ASR provider name.\n\n- `data_storage_retention_days?: number`\n Number of days to retain call/chat data before automatic deletion. Must be between 1 and 730 days. If not set, data is retained forever (no automatic deletion).\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Granular setting to manage how Retell stores sensitive data (transcripts, recordings, logs, etc.).\nThis replaces the deprecated `opt_out_sensitive_data_storage` field.\n- `everything`: Store all data including transcripts, recordings, and logs.\n- `everything_except_pii`: Store data without PII when PII is detected.\n- `basic_attributes_only`: Store only basic attributes; no transcripts/recordings/logs.\nIf not set, default value of \"everything\" will apply.\n\n\n- `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n If set, determines what denoising mode to use. Use \"no-denoise\" to bypass all audio denoising. Default to noise-cancellation.\n\n- `enable_backchannel?: boolean`\n Controls whether the agent would backchannel (agent interjects the speaker with phrases like \"yeah\", \"uh-huh\" to signify interest and engagement). Backchannel when enabled tends to show up more in longer user utterances. If not set, agent will not backchannel.\n\n- `enable_dynamic_responsiveness?: boolean`\n If set to true, the agent will dynamically adjust how quickly it responds based on the user's speech rate and past turn-taking behavior in the call. If unset, default value false will apply.\n\n- `enable_dynamic_voice_speed?: boolean`\n If set to true, will enable dynamic voice speed adjustment based on the user's speech rate and conversation context. If unset, default value false will apply.\n\n- `end_call_after_silence_ms?: number`\n If users stay silent for a period after agent speech, end the call. The minimum value allowed is 10,000 ms (10 s). By default, this is set to 600000 (10 min).\n\n- `fallback_voice_ids?: string[]`\n When TTS provider for the selected voice is experiencing outages, we would use fallback voices listed here for the agent. Voice id and the fallback voice ids must be from different TTS providers. The system would go through the list in order, if the first one in the list is also having outage, it would use the next one. Set to null to remove voice fallback for the agent.\n\n- `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n Configuration for guardrail checks to detect and prevent prohibited topics in agent output and user input.\n - `input_topics?: 'platform_integrity_jailbreaking'[]`\n Selected prohibited user topic categories to check. When user messages contain these topics, the agent will respond with a placeholder message instead of processing the request.\n - `output_topics?: string[]`\n Selected prohibited agent topic categories to check. When agent messages contain these topics, they will be replaced with a placeholder message.\n\n- `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n Toggle behavior presets on/off to influence agent response style and behaviors.\n - `ai_disclosure?: boolean`\n When asked, acknowledge being a virtual assistant.\n - `default_personality?: boolean`\n Professional call center rep baseline.\n - `echo_verification?: boolean`\n Repeat back and confirm important details (voice only).\n - `high_empathy?: boolean`\n Warm acknowledgment of caller concerns.\n - `nato_phonetic_alphabet?: boolean`\n Spell using NATO phonetic alphabet style (voice only).\n - `natural_filler_words?: boolean`\n Sprinkle natural speech fillers like \"um\", \"you know\" for a more human, conversational tone.\n - `scope_boundaries?: boolean`\n Stay within prompt/context scope, don't invent details.\n - `smart_matching?: boolean`\n Treat near-match similar words as same entity to reduce impact of transcription error (voice only).\n - `speech_normalization?: boolean`\n Convert numbers/dates/currency to spoken forms (voice only).\n\n- `interruption_sensitivity?: number`\n Controls how sensitive the agent is to user interruptions. Value ranging from [0,1]. Lower value means it will take longer / more words for user to interrupt agent, while higher value means it's easier for user to interrupt agent. If unset, default value 1 will apply. When this is set to 0, agent would never be interrupted.\n\n- `ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }`\n If this option is set, the call will try to detect IVR in the first 3 minutes of the call. Actions defined will be applied when the IVR is detected. Set this to null to disable IVR detection.\n - `action: { type: 'hangup'; }`\n - `detection_prompt?: string`\n Optionally describe what should be treated as an IVR. Leave as null to use the default definition.\n\n- `language?: string | string[]`\n Specifies what language(s) the agent will operate in. Accepts either a single scalar locale (e.g. `en-US`), the legacy scalar value `multi` for multilingual support, or an array of concrete locale codes for explicit multi-locale selection (e.g. `[\"en-US\",\"es-ES\"]`). The array form must contain concrete locale codes only — the `multi` value is valid only as the scalar legacy form and must not appear inside an array. Single-element arrays are normalized to the equivalent scalar on output. If unset, defaults to `en-US`.\n\n- `max_call_duration_ms?: number`\n Maximum allowed length for the call, will force end the call if reached. The minimum value allowed is 60,000 ms (1 min), and maximum value allowed is 7,200,000 (2 hours). By default, this is set to 3,600,000 (1 hour).\n\n- `opt_in_signed_url?: boolean`\n Whether this agent opts in for signed URLs for public logs and recordings. When enabled, the generated URLs will include security signatures that restrict access and automatically expire after 24 hours.\n\n- `pii_config?: { categories: string[]; mode: 'post_call'; }`\n Configuration for PII scrubbing from transcripts and recordings.\n - `categories: string[]`\n List of PII categories to scrub from transcripts and recordings. PII redaction is only active when this list is non-empty; an empty array means no PII scrubbing is performed.\n - `mode: 'post_call'`\n The processing mode for PII scrubbing. Currently only post-call is supported.\n\n- `post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n Post call analysis data to extract from the call. This data will augment the pre-defined variables extracted in the call analysis. This will be available after the call ends.\n\n- `post_call_analysis_model?: string`\n The model to use for post call analysis. Default to gpt-4.1.\n\n- `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n A list of words / phrases and their pronunciation to be used to guide the audio synthesize for consistent pronunciation. Check the dashboard to see what provider supports this feature. Set to null to remove pronunciation dictionary from this agent.\n\n- `reminder_max_count?: number`\n If set, controls how many times agent would remind user when user is unresponsive. Must be a non negative integer. If unset, default value of 1 will apply (remind once). Set to 0 to disable agent from reminding.\n\n- `reminder_trigger_ms?: number`\n If set (in milliseconds), will trigger a reminder to the agent to speak if the user has been silent for the specified duration after some agent speech. Must be a positive number. If unset, default value of 10000 ms (10 s) will apply.\n\n- `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; }`\n The Response Engine to attach to the agent. It is used to generate responses for the agent. You need to create a Response Engine first before attaching it to an agent.\n\n- `responsiveness?: number`\n Controls how responsive is the agent. Value ranging from [0,1]. Lower value means less responsive agent (wait more, respond slower), while higher value means faster exchanges (respond when it can). If unset, default value 1 will apply.\n\n- `ring_duration_ms?: number`\n If set, the phone ringing will last for the specified amount of milliseconds. This applies for both outbound call ringtime, and call transfer ringtime. Default to 30000 (30 s). Valid range is [5000, 300000].\n\n- `signed_url_expiration_ms?: number`\n The expiration time for the signed url in milliseconds. Only applicable when opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will apply.\n\n- `stt_mode?: 'fast' | 'accurate' | 'custom'`\n If set, determines whether speech to text should focus on latency or accuracy. Default to fast mode. When set to custom, custom_stt_config must be provided.\n\n- `timezone?: string`\n IANA timezone for the agent (e.g. America/New_York). Defaults to America/Los_Angeles if not set.\n\n- `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `digit_limit?: number`\n The maximum number of digits allowed in the user's DTMF (Dual-Tone Multi-Frequency) input per turn. Once this limit is reached, the input is considered complete and a response will be generated immediately.\n - `termination_key?: string`\n A single key that signals the end of DTMF input. Acceptable values include any digit (0-9), the pound/hash symbol (#), or the asterisk (*).\n - `timeout_ms?: number`\n The time (in milliseconds) to wait for user DTMF input before timing out. The timer resets with each digit received.\n\n- `version_description?: string`\n Optional description of the agent version. Used for your own reference and documentation.\n\n- `vocab_specialization?: 'general' | 'medical'`\n If set, determines the vocabulary set to use for transcription. This setting only applies for English agents, for non English agent, this setting is a no-op. Default to general.\n\n- `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n Controls the emotional tone of the agent's voice. Currently supported for Cartesia and Minimax TTS providers. If unset, no emotion will be used.\n\n\n- `voice_id?: string`\n Unique voice id used for the agent. Find list of available voices and their preview in Dashboard.\n\n- `voice_model?: string`\n Select the voice model used for the selected voice. Each provider has a set of available voice models. Set to null to remove voice model selection, and default ones will apply. Check out dashboard for more details of each voice model.\n\n- `voice_speed?: number`\n Controls speed of voice. Value ranging from [0.5,2]. Lower value means slower speech, while higher value means faster speech rate. If unset, default value 1 will apply.\n\n- `voice_temperature?: number`\n Controls how stable the voice is. Value ranging from [0,2]. Lower value means more stable, and higher value means more variant speech generation. Check the dashboard to see what provider supports this feature. If unset, default value 1 will apply.\n\n- `voicemail_detection_timeout_ms?: number`\n Configures when to stop running voicemail detection, as it becomes unlikely to hit voicemail after a couple minutes, and keep running it will only have negative impact. The minimum value allowed is 5,000 ms (5 s), and maximum value allowed is 180,000 (3 minutes). By default, this is set to 30,000 (30 s).\n\n- `voicemail_message?: string`\n The message to be played when the call enters a voicemail. Note that this feature is only available for phone calls. If you want to hangup after hitting voicemail, set this to empty string.\n\n- `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }`\n If this option is set, the call will try to detect voicemail in the first 3 minutes of the call. Actions defined (hangup, or leave a message) will be applied when the voicemail is detected. Set this to null to disable voicemail detection.\n - `action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }`\n - `detection_prompt?: string`\n Optionally describe what should be treated as voicemail. Leave as null to use the default definition.\n\n- `volume?: number`\n If set, will control the volume of the agent. Value ranging from [0,2]. Lower value means quieter agent speech, while higher value means louder agent speech. If unset, default value 1 will apply.\n\n- `webhook_events?: string[]`\n Which webhook events this agent should receive. If not set, defaults to call_started, call_ended, call_analyzed.\n\n- `webhook_timeout_ms?: number`\n The timeout for the webhook in milliseconds. If not set, default value of 10000 will apply.\n\n- `webhook_url?: string`\n The webhook for agent to listen to call events. See what events it would get at [webhook doc](/features/webhook). If set, will binds webhook events for this agent to the specified url, and will ignore the account level webhook for this agent. Set to `null` to remove webhook url from this agent.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_detection_timeout_ms?: number; voicemail_message?: string; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `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; }`\n - `version: number`\n - `voice_id: string`\n - `agent_name?: string`\n - `allow_dtmf_interruption?: boolean`\n - `allow_user_dtmf?: boolean`\n - `ambient_sound?: string`\n - `ambient_sound_volume?: number`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `assigned_tags?: string[]`\n - `backchannel_frequency?: number`\n - `backchannel_words?: string[]`\n - `base_version?: number`\n - `begin_message_delay_ms?: number`\n - `boosted_keywords?: string[]`\n - `call_screening_option?: { agent_identity: string; call_purpose: string; }`\n - `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n - `enable_backchannel?: boolean`\n - `enable_dynamic_responsiveness?: boolean`\n - `enable_dynamic_voice_speed?: boolean`\n - `end_call_after_silence_ms?: number`\n - `fallback_voice_ids?: string[]`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n - `interruption_sensitivity?: number`\n - `is_published?: boolean`\n - `ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }`\n - `language?: string | string[]`\n - `max_call_duration_ms?: number`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_call_analysis_model?: string`\n - `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n - `reminder_max_count?: number`\n - `reminder_trigger_ms?: number`\n - `responsiveness?: number`\n - `ring_duration_ms?: number`\n - `signed_url_expiration_ms?: number`\n - `stt_mode?: 'fast' | 'accurate' | 'custom'`\n - `timezone?: string`\n - `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `version_description?: string`\n - `vocab_specialization?: 'general' | 'medical'`\n - `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n - `voice_model?: string`\n - `voice_speed?: number`\n - `voice_temperature?: number`\n - `voicemail_detection_timeout_ms?: number`\n - `voicemail_message?: string`\n - `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }`\n - `volume?: number`\n - `webhook_events?: string[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponse = await client.agent.update('16b980523634a6dc504898cda492e939');\n\nconsole.log(agentResponse);\n```",
|
|
909
|
+
markdown: "## update\n\n`client.agent.update(agent_id: string, version?: number | string, agent_name?: string, allow_dtmf_interruption?: boolean, allow_user_dtmf?: boolean, ambient_sound?: string, ambient_sound_volume?: number, analysis_successful_prompt?: string, analysis_summary_prompt?: string, analysis_user_sentiment_prompt?: string, backchannel_frequency?: number, backchannel_words?: string[], begin_message_delay_ms?: number, boosted_keywords?: string[], call_screening_option?: { agent_identity: string; call_purpose: string; }, custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }, data_storage_retention_days?: number, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation', enable_backchannel?: boolean, enable_dynamic_responsiveness?: boolean, enable_dynamic_voice_speed?: boolean, enable_expressive_mode?: boolean, end_call_after_silence_ms?: number, expressive_emotion_tags?: string[], expressive_mode_prompt?: string, fallback_voice_ids?: string[], guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }, handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }, interruption_sensitivity?: number, ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }, language?: string | string[], max_call_duration_ms?: number, opt_in_signed_url?: boolean, pii_config?: { categories: string[]; mode: 'post_call'; }, post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[], post_call_analysis_model?: string, pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[], reminder_max_count?: number, reminder_trigger_ms?: 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; }, responsiveness?: number, ring_duration_ms?: number, signed_url_expiration_ms?: number, stt_mode?: 'fast' | 'accurate' | 'custom', timezone?: string, user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }, version_description?: string, version_title?: string, vocab_specialization?: 'general' | 'medical', voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised', voice_id?: string, voice_model?: string, voice_speed?: number, voice_temperature?: number, voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }, volume?: number, webhook_events?: string[], webhook_timeout_ms?: number, webhook_url?: string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: object; custom_stt_config?: object; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: object; handbook_config?: object; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: object; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: object; post_call_analysis_data?: object | object | object | object | object[]; post_call_analysis_model?: string; pronunciation_dictionary?: object[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: object; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: object; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**patch** `/update-agent/{agent_id}`\n\nUpdate an existing agent's latest draft version\n\n### Parameters\n\n- `agent_id: string`\n\n- `version?: number | string`\n Optional version of the API to use for this request. Default to latest version.\n\n- `agent_name?: string`\n The name of the agent. Only used for your own reference.\n\n- `allow_dtmf_interruption?: boolean`\n If set to true, DTMF input will interrupt the agent even when interruption_sensitivity is 0. Can be overridden per conversation or subagent node. Default to false.\n\n- `allow_user_dtmf?: boolean`\n If set to true, DTMF input will be accepted and processed. If false, any DTMF input will be ignored. Default to true.\n\n- `ambient_sound?: string`\n If set, will add ambient environment sound to the call to make experience more realistic. Currently supports the following options:\n\n- `coffee-shop`: Coffee shop ambience with people chatting in background. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/coffee-shop.wav)\n- `convention-hall`: Convention hall ambience, with some echo and people chatting in background. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/convention-hall.wav)\n- `summer-outdoor`: Summer outdoor ambience with cicada chirping. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/summer-outdoor.wav)\n- `mountain-outdoor`: Mountain outdoor ambience with birds singing. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/mountain-outdoor.wav)\n- `static-noise`: Constant static noise. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/static-noise.wav)\n- `call-center`: Call center work noise. [Listen to Ambience](https://retell-utils-public.s3.us-west-2.amazonaws.com/call-center.wav)\nSet to `null` to remove ambient sound from this agent.\n\n\n- `ambient_sound_volume?: number`\n If set, will control the volume of the ambient sound. Value ranging from [0,2]. Lower value means quieter ambient sound, while higher value means louder ambient sound. If unset, default value 1 will apply.\n\n- `analysis_successful_prompt?: string`\n Prompt to determine whether the post call or chat analysis should mark the interaction as successful. Set to null to use the default prompt.\n\n- `analysis_summary_prompt?: string`\n Prompt to guide how the post call or chat analysis summary should be generated. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `analysis_user_sentiment_prompt?: string`\n Prompt to guide how the post call or chat analysis should evaluate user sentiment. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `backchannel_frequency?: number`\n Only applicable when enable_backchannel is true. Controls how often the agent would backchannel when a backchannel is possible. Value ranging from [0,1]. Lower value means less frequent backchannel, while higher value means more frequent backchannel. If unset, default value 0.8 will apply.\n\n- `backchannel_words?: string[]`\n Only applicable when enable_backchannel is true. A list of words that the agent would use as backchannel. If not set, default backchannel words will apply. Check out [backchannel default words](/agent/interaction-configuration#backchannel) for more details. Note that certain voices do not work too well with certain words, so it's recommended to experiment before adding any words.\n\n- `begin_message_delay_ms?: number`\n If set, will delay the first message by the specified amount of milliseconds, so that it gives user more time to prepare to take the call. Valid range is [0, 5000]. If not set or set to 0, agent will speak immediately. Only applicable when agent speaks first.\n\n- `boosted_keywords?: string[]`\n Provide a customized list of keywords to bias the transcriber model, so that these words are more likely to get transcribed. Commonly used for names, brands, street, etc. Entries may reference dynamic variables with `{{variable}}` syntax.\n\n- `call_screening_option?: { agent_identity: string; call_purpose: string; }`\n If this option is set, the agent prompt will include call screen handling instructions for identity and call purpose questions. Set this to null to disable call screen prompt instructions.\n - `agent_identity: string`\n Identity the agent should provide when a call screen asks who is calling. Dynamic variables are supported.\n - `call_purpose: string`\n Purpose the agent should provide when a call screen asks why it is calling. Dynamic variables are supported.\n\n- `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }`\n Custom STT configuration. Only used when stt_mode is set to custom.\n - `endpointing_ms: number`\n Endpointing timeout in milliseconds. Minimum is 100 for Azure, 10 for Deepgram, 500 for Soniox, 100 for AssemblyAI.\n - `provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'`\n ASR provider name.\n\n- `data_storage_retention_days?: number`\n Number of days to retain call/chat data before automatic deletion. Must be between 1 and 730 days. If not set, data is retained forever (no automatic deletion).\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Granular setting to manage how Retell stores sensitive data (transcripts, recordings, logs, etc.).\nThis replaces the deprecated `opt_out_sensitive_data_storage` field.\n- `everything`: Store all data including transcripts, recordings, and logs.\n- `everything_except_pii`: Store data without PII when PII is detected.\n- `basic_attributes_only`: Store only basic attributes; no transcripts/recordings/logs.\nIf not set, default value of \"everything\" will apply.\n\n\n- `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n If set, determines what denoising mode to use. Use \"no-denoise\" to bypass all audio denoising. Default to noise-cancellation.\n\n- `enable_backchannel?: boolean`\n Controls whether the agent would backchannel (agent interjects the speaker with phrases like \"yeah\", \"uh-huh\" to signify interest and engagement). Backchannel when enabled tends to show up more in longer user utterances. If not set, agent will not backchannel.\n\n- `enable_dynamic_responsiveness?: boolean`\n If set to true, the agent will dynamically adjust how quickly it responds based on the user's speech rate and past turn-taking behavior in the call. If unset, default value false will apply.\n\n- `enable_dynamic_voice_speed?: boolean`\n If set to true, will enable dynamic voice speed adjustment based on the user's speech rate and conversation context. If unset, default value false will apply.\n\n- `enable_expressive_mode?: boolean`\n Master toggle for expressive mode. When true, the agent may add expressive voice tags to the audio it generates. Only applicable for platform voices. If unset, defaults to false.\n\n- `end_call_after_silence_ms?: number`\n If users stay silent for a period after agent speech, end the call. The minimum value allowed is 10,000 ms (10 s). By default, this is set to 600000 (10 min).\n\n- `expressive_emotion_tags?: string[]`\n The expressive voice tags Retell pre-teaches the model to use when enable_expressive_mode is true. Custom tags defined in the system prompt are still allowed. If empty, the agent follows general expressive guidance without a fixed tag set.\n\n- `expressive_mode_prompt?: string`\n Custom expressive voice guidance to use instead of the default Retell expressive prompt when enable_expressive_mode is true. If omitted or blank, the default expressive prompt will be used.\n\n- `fallback_voice_ids?: string[]`\n When TTS provider for the selected voice is experiencing outages, we would use fallback voices listed here for the agent. Voice id and the fallback voice ids must be from different TTS providers. The system would go through the list in order, if the first one in the list is also having outage, it would use the next one. Set to null to remove voice fallback for the agent.\n\n- `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n Configuration for guardrail checks to detect and prevent prohibited topics in agent output and user input.\n - `input_topics?: 'platform_integrity_jailbreaking'[]`\n Selected prohibited user topic categories to check. When user messages contain these topics, the agent will respond with a placeholder message instead of processing the request.\n - `output_topics?: string[]`\n Selected prohibited agent topic categories to check. When agent messages contain these topics, they will be replaced with a placeholder message.\n\n- `handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n Toggle behavior presets on/off to influence agent response style and behaviors.\n - `ai_disclosure?: boolean`\n When asked, acknowledge being a virtual assistant.\n - `conversational_personality?: boolean`\n Enables Conversational Personality. When true, the agent uses the Conversational Personality handbook preset, skips Professional Rep Personality during prompt assembly, and enables internal colloquial rewrite behavior.\n - `default_personality?: boolean`\n Professional call center rep baseline.\n - `echo_verification?: boolean`\n Repeat back and confirm important details (voice only).\n - `high_empathy?: boolean`\n Warm acknowledgment of caller concerns.\n - `nato_phonetic_alphabet?: boolean`\n Spell using NATO phonetic alphabet style (voice only).\n - `natural_filler_words?: boolean`\n Sprinkle natural speech fillers like \"um\", \"you know\" for a more human, conversational tone.\n - `scope_boundaries?: boolean`\n Stay within prompt/context scope, don't invent details.\n - `smart_matching?: boolean`\n Treat near-match similar words as same entity to reduce impact of transcription error (voice only).\n - `speech_normalization?: boolean`\n Convert numbers/dates/currency to spoken forms (voice only).\n\n- `interruption_sensitivity?: number`\n Controls how sensitive the agent is to user interruptions. Value ranging from [0,1]. Lower value means it will take longer / more words for user to interrupt agent, while higher value means it's easier for user to interrupt agent. If unset, default value 1 will apply. When this is set to 0, agent would never be interrupted.\n\n- `ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }`\n If this option is set, the call will try to detect IVR in the first 3 minutes of the call. Actions defined will be applied when the IVR is detected. Set this to null to disable IVR detection.\n - `action: { type: 'hangup'; }`\n - `detection_prompt?: string`\n Optionally describe what should be treated as an IVR. Leave as null to use the default definition.\n\n- `language?: string | string[]`\n Specifies what language(s) the agent will operate in. Accepts either a single scalar locale (e.g. `en-US`), the legacy scalar value `multi` for multilingual support, or an array of concrete locale codes for explicit multi-locale selection (e.g. `[\"en-US\",\"es-ES\"]`). The array form must contain concrete locale codes only — the `multi` value is valid only as the scalar legacy form and must not appear inside an array. Single-element arrays are normalized to the equivalent scalar on output. If unset, defaults to `en-US`.\n\n- `max_call_duration_ms?: number`\n Maximum allowed length for the call, will force end the call if reached. The minimum value allowed is 60,000 ms (1 min), and maximum value allowed is 7,200,000 (2 hours). By default, this is set to 3,600,000 (1 hour).\n\n- `opt_in_signed_url?: boolean`\n Whether this agent opts in for signed URLs for public logs and recordings. When enabled, the generated URLs will include security signatures that restrict access and automatically expire after 24 hours.\n\n- `pii_config?: { categories: string[]; mode: 'post_call'; }`\n Configuration for PII scrubbing from transcripts and recordings.\n - `categories: string[]`\n List of PII categories to scrub from transcripts and recordings. PII redaction is only active when this list is non-empty; an empty array means no PII scrubbing is performed.\n - `mode: 'post_call'`\n The processing mode for PII scrubbing. Currently only post-call is supported.\n\n- `post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n Post call analysis data to extract from the call. This data will augment the pre-defined variables extracted in the call analysis. This will be available after the call ends.\n\n- `post_call_analysis_model?: string`\n The model to use for post call analysis. Default to gpt-4.1.\n\n- `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n A list of words / phrases and their pronunciation to be used to guide the audio synthesize for consistent pronunciation. Check the dashboard to see what provider supports this feature. Set to null to remove pronunciation dictionary from this agent.\n\n- `reminder_max_count?: number`\n If set, controls how many times agent would remind user when user is unresponsive. Must be a non negative integer. If unset, default value of 1 will apply (remind once). Set to 0 to disable agent from reminding.\n\n- `reminder_trigger_ms?: number`\n If set (in milliseconds), will trigger a reminder to the agent to speak if the user has been silent for the specified duration after some agent speech. Must be a positive number. If unset, default value of 10000 ms (10 s) will apply.\n\n- `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; }`\n The Response Engine to attach to the agent. It is used to generate responses for the agent. You need to create a Response Engine first before attaching it to an agent.\n\n- `responsiveness?: number`\n Controls how responsive is the agent. Value ranging from [0,1]. Lower value means less responsive agent (wait more, respond slower), while higher value means faster exchanges (respond when it can). If unset, default value 1 will apply.\n\n- `ring_duration_ms?: number`\n If set, the phone ringing will last for the specified amount of milliseconds. This applies for both outbound call ringtime, and call transfer ringtime. Default to 30000 (30 s). Valid range is [5000, 300000].\n\n- `signed_url_expiration_ms?: number`\n The expiration time for the signed url in milliseconds. Only applicable when opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will apply.\n\n- `stt_mode?: 'fast' | 'accurate' | 'custom'`\n If set, determines whether speech to text should focus on latency or accuracy. Default to fast mode. When set to custom, custom_stt_config must be provided.\n\n- `timezone?: string`\n IANA timezone for the agent (e.g. America/New_York). Defaults to America/Los_Angeles if not set.\n\n- `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `digit_limit?: number`\n The maximum number of digits allowed in the user's DTMF (Dual-Tone Multi-Frequency) input per turn. Once this limit is reached, the input is considered complete and a response will be generated immediately.\n - `termination_key?: string`\n A single key that signals the end of DTMF input. Acceptable values include any digit (0-9), the pound/hash symbol (#), or the asterisk (*).\n - `timeout_ms?: number`\n The time (in milliseconds) to wait for user DTMF input before timing out. The timer resets with each digit received.\n\n- `version_description?: string`\n Optional description of the agent version. Used for your own reference and documentation.\n\n- `version_title?: string`\n Optional title of the agent version. Used for your own reference.\n\n- `vocab_specialization?: 'general' | 'medical'`\n If set, determines the vocabulary set to use for transcription. This setting only applies for English agents, for non English agent, this setting is a no-op. Default to general.\n\n- `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n Controls the emotional tone of the agent's voice. Currently supported for Cartesia and Minimax TTS providers. If unset, no emotion will be used.\n\n\n- `voice_id?: string`\n Unique voice id used for the agent. Find list of available voices and their preview in Dashboard.\n\n- `voice_model?: string`\n Select the voice model used for the selected voice. Each provider has a set of available voice models. Set to null to remove voice model selection, and default ones will apply. Check out dashboard for more details of each voice model.\n\n- `voice_speed?: number`\n Controls speed of voice. Value ranging from [0.5,2]. Lower value means slower speech, while higher value means faster speech rate. If unset, default value 1 will apply.\n\n- `voice_temperature?: number`\n Controls how stable the voice is. Value ranging from [0,2]. Lower value means more stable, and higher value means more variant speech generation. Check the dashboard to see what provider supports this feature. If unset, default value 1 will apply.\n\n- `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }`\n If this option is set, the call will try to detect voicemail in the first 3 minutes of the call. Actions defined (hangup, or leave a message) will be applied when the voicemail is detected. Set this to null to disable voicemail detection.\n - `action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }`\n - `detection_prompt?: string`\n Optionally describe what should be treated as voicemail. Leave as null to use the default definition.\n\n- `volume?: number`\n If set, will control the volume of the agent. Value ranging from [0,2]. Lower value means quieter agent speech, while higher value means louder agent speech. If unset, default value 1 will apply.\n\n- `webhook_events?: string[]`\n Which webhook events this agent should receive. If not set, defaults to call_started, call_ended, call_analyzed.\n\n- `webhook_timeout_ms?: number`\n The timeout for the webhook in milliseconds. If not set, default value of 10000 will apply.\n\n- `webhook_url?: string`\n The webhook for agent to listen to call events. See what events it would get at [webhook doc](/features/webhook). If set, will binds webhook events for this agent to the specified url, and will ignore the account level webhook for this agent. Set to `null` to remove webhook url from this agent.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `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; }`\n - `version: number`\n - `voice_id: string`\n - `agent_name?: string`\n - `allow_dtmf_interruption?: boolean`\n - `allow_user_dtmf?: boolean`\n - `ambient_sound?: string`\n - `ambient_sound_volume?: number`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `assigned_tags?: string[]`\n - `backchannel_frequency?: number`\n - `backchannel_words?: string[]`\n - `base_version?: number`\n - `begin_message_delay_ms?: number`\n - `boosted_keywords?: string[]`\n - `call_screening_option?: { agent_identity: string; call_purpose: string; }`\n - `custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'`\n - `enable_backchannel?: boolean`\n - `enable_dynamic_responsiveness?: boolean`\n - `enable_dynamic_voice_speed?: boolean`\n - `enable_expressive_mode?: boolean`\n - `end_call_after_silence_ms?: number`\n - `expressive_emotion_tags?: string[]`\n - `expressive_mode_prompt?: string`\n - `fallback_voice_ids?: string[]`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }`\n - `interruption_sensitivity?: number`\n - `is_published?: boolean`\n - `ivr_option?: { action: { type: 'hangup'; }; detection_prompt?: string; }`\n - `language?: string | string[]`\n - `max_call_duration_ms?: number`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_call_analysis_model?: string`\n - `pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]`\n - `reminder_max_count?: number`\n - `reminder_trigger_ms?: number`\n - `responsiveness?: number`\n - `ring_duration_ms?: number`\n - `signed_url_expiration_ms?: number`\n - `stt_mode?: 'fast' | 'accurate' | 'custom'`\n - `timezone?: string`\n - `user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }`\n - `version_description?: string`\n - `version_title?: string`\n - `vocab_specialization?: 'general' | 'medical'`\n - `voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'`\n - `voice_model?: string`\n - `voice_speed?: number`\n - `voice_temperature?: number`\n - `voicemail_option?: { action: { text: string; type: 'prompt'; } | { text: string; type: 'static_text'; } | { type: 'hangup'; } | { type: 'bridge_transfer'; }; detection_prompt?: string; }`\n - `volume?: number`\n - `webhook_events?: string[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponse = await client.agent.update('16b980523634a6dc504898cda492e939');\n\nconsole.log(agentResponse);\n```",
|
|
906
910
|
perLanguage: {
|
|
907
911
|
typescript: {
|
|
908
912
|
method: 'client.agent.update',
|
|
909
913
|
example: "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 agentResponse = await client.agent.update('16b980523634a6dc504898cda492e939', {\n agent_name: 'Jarvis',\n});\n\nconsole.log(agentResponse.agent_id);",
|
|
910
914
|
},
|
|
911
915
|
http: {
|
|
912
|
-
example: 'curl https://api.retellai.com/update-agent/$AGENT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d "{\n \\"agent_name\\": \\"Jarvis\\",\n \\"allow_dtmf_interruption\\": false,\n \\"allow_user_dtmf\\": true,\n \\"ambient_sound_volume\\": 1,\n \\"analysis_successful_prompt\\": \\"The agent finished the task and the call was complete without being cutoff.\\",\n \\"analysis_summary_prompt\\": \\"Summarize the outcome of the conversation in two sentences.\\",\n \\"analysis_user_sentiment_prompt\\": \\"Evaluate the user\'s sentiment based on their tone and satisfaction level.\\",\n \\"backchannel_frequency\\": 0.9,\n \\"backchannel_words\\": [\n \\"yeah\\",\n \\"uh-huh\\"\n ],\n \\"begin_message_delay_ms\\": 1000,\n \\"boosted_keywords\\": [\n \\"retell\\",\n \\"kroger\\"\n ],\n \\"data_storage_retention_days\\": 30,\n \\"data_storage_setting\\": \\"everything\\",\n \\"denoising_mode\\": \\"noise-cancellation\\",\n \\"enable_backchannel\\": true,\n \\"enable_dynamic_responsiveness\\": true,\n \\"enable_dynamic_voice_speed\\": true,\n \\"end_call_after_silence_ms\\": 600000,\n \\"fallback_voice_ids\\": [\n \\"cartesia-Cimo\\",\n \\"minimax-Cimo\\"\n ],\n \\"interruption_sensitivity\\": 1,\n \\"ivr_option\\": {\n \\"action\\": {\n \\"type\\": \\"hangup\\"\n }\n },\n \\"max_call_duration_ms\\": 3600000,\n \\"opt_in_signed_url\\": true,\n \\"post_call_analysis_model\\": \\"gpt-4.1-mini\\",\n \\"reminder_max_count\\": 2,\n \\"reminder_trigger_ms\\": 10000,\n \\"response_engine\\": {\n \\"llm_id\\": \\"llm_234sdertfsdsfsdf\\",\n \\"type\\": \\"retell-llm\\",\n \\"version\\": 0\n },\n \\"responsiveness\\": 1,\n \\"ring_duration_ms\\": 30000,\n \\"signed_url_expiration_ms\\": 86400000,\n \\"stt_mode\\": \\"fast\\",\n \\"timezone\\": \\"America/New_York\\",\n \\"version_description\\": \\"Customer support agent for handling product inquiries\\",\n \\"
|
|
916
|
+
example: 'curl https://api.retellai.com/update-agent/$AGENT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d "{\n \\"agent_name\\": \\"Jarvis\\",\n \\"allow_dtmf_interruption\\": false,\n \\"allow_user_dtmf\\": true,\n \\"ambient_sound_volume\\": 1,\n \\"analysis_successful_prompt\\": \\"The agent finished the task and the call was complete without being cutoff.\\",\n \\"analysis_summary_prompt\\": \\"Summarize the outcome of the conversation in two sentences.\\",\n \\"analysis_user_sentiment_prompt\\": \\"Evaluate the user\'s sentiment based on their tone and satisfaction level.\\",\n \\"backchannel_frequency\\": 0.9,\n \\"backchannel_words\\": [\n \\"yeah\\",\n \\"uh-huh\\"\n ],\n \\"begin_message_delay_ms\\": 1000,\n \\"boosted_keywords\\": [\n \\"retell\\",\n \\"kroger\\"\n ],\n \\"data_storage_retention_days\\": 30,\n \\"data_storage_setting\\": \\"everything\\",\n \\"denoising_mode\\": \\"noise-cancellation\\",\n \\"enable_backchannel\\": true,\n \\"enable_dynamic_responsiveness\\": true,\n \\"enable_dynamic_voice_speed\\": true,\n \\"enable_expressive_mode\\": true,\n \\"end_call_after_silence_ms\\": 600000,\n \\"expressive_emotion_tags\\": [\n \\"empathetic\\",\n \\"excited\\",\n \\"sigh\\",\n \\"clear throat\\",\n \\"emphasis\\"\n ],\n \\"expressive_mode_prompt\\": \\"Use [sigh] for thoughtful pauses and [excited] for good news.\\",\n \\"fallback_voice_ids\\": [\n \\"cartesia-Cimo\\",\n \\"minimax-Cimo\\"\n ],\n \\"interruption_sensitivity\\": 1,\n \\"ivr_option\\": {\n \\"action\\": {\n \\"type\\": \\"hangup\\"\n }\n },\n \\"max_call_duration_ms\\": 3600000,\n \\"opt_in_signed_url\\": true,\n \\"post_call_analysis_model\\": \\"gpt-4.1-mini\\",\n \\"reminder_max_count\\": 2,\n \\"reminder_trigger_ms\\": 10000,\n \\"response_engine\\": {\n \\"llm_id\\": \\"llm_234sdertfsdsfsdf\\",\n \\"type\\": \\"retell-llm\\",\n \\"version\\": 0\n },\n \\"responsiveness\\": 1,\n \\"ring_duration_ms\\": 30000,\n \\"signed_url_expiration_ms\\": 86400000,\n \\"stt_mode\\": \\"fast\\",\n \\"timezone\\": \\"America/New_York\\",\n \\"version_description\\": \\"Customer support agent for handling product inquiries\\",\n \\"version_title\\": \\"Production hotfix\\",\n \\"vocab_specialization\\": \\"general\\",\n \\"voice_emotion\\": \\"calm\\",\n \\"voice_id\\": \\"retell-Cimo\\",\n \\"voice_speed\\": 1,\n \\"voice_temperature\\": 1,\n \\"voicemail_option\\": {\n \\"action\\": {\n \\"text\\": \\"Please give us a callback tomorrow at 10am.\\",\n \\"type\\": \\"static_text\\"\n }\n },\n \\"volume\\": 1,\n \\"webhook_timeout_ms\\": 10000,\n \\"webhook_url\\": \\"https://webhook-url-here\\"\n }"',
|
|
913
917
|
},
|
|
914
918
|
python: {
|
|
915
919
|
method: 'agent.update',
|
|
@@ -949,15 +953,20 @@ const EMBEDDED_METHODS = [
|
|
|
949
953
|
description: 'Publish an existing draft version in place.',
|
|
950
954
|
stainlessPath: '(resource) agent > (method) publish',
|
|
951
955
|
qualified: 'client.agent.publish',
|
|
952
|
-
params: [
|
|
953
|
-
|
|
956
|
+
params: [
|
|
957
|
+
'agent_id: string;',
|
|
958
|
+
'version: number;',
|
|
959
|
+
'version_description?: string;',
|
|
960
|
+
'version_title?: string;',
|
|
961
|
+
],
|
|
962
|
+
markdown: "## publish\n\n`client.agent.publish(agent_id: string, version: number, version_description?: string, version_title?: 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- `version_title?: string`\n Optional title of the agent version. Used for your own reference.\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```",
|
|
954
963
|
perLanguage: {
|
|
955
964
|
typescript: {
|
|
956
965
|
method: 'client.agent.publish',
|
|
957
966
|
example: "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 });",
|
|
958
967
|
},
|
|
959
968
|
http: {
|
|
960
|
-
example: '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 }\'',
|
|
969
|
+
example: '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 "version_title": "Hotfix"\n }\'',
|
|
961
970
|
},
|
|
962
971
|
python: {
|
|
963
972
|
method: 'agent.publish',
|
|
@@ -975,7 +984,7 @@ const EMBEDDED_METHODS = [
|
|
|
975
984
|
qualified: 'client.agent.createVersion',
|
|
976
985
|
params: ['agent_id: string;', 'base_version: number;'],
|
|
977
986
|
response: 'object | object',
|
|
978
|
-
markdown: "## create-version\n\n`client.agent.createVersion(agent_id: string, base_version: number): object | object`\n\n**post** `/create-agent-version/{agent_id}`\n\nCreate a new draft agent version from a base version.\n\n### Parameters\n\n- `agent_id: string`\n\n- `base_version: number`\n Existing version used as the base when creating a new draft.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: object; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number;
|
|
987
|
+
markdown: "## create-version\n\n`client.agent.createVersion(agent_id: string, base_version: number): object | object`\n\n**post** `/create-agent-version/{agent_id}`\n\nCreate a new draft agent version from a base version.\n\n### Parameters\n\n- `agent_id: string`\n\n- `base_version: number`\n Existing version used as the base when creating a new draft.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: object; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: object | object | object | object; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; } | { agent_id: string; last_modification_timestamp: 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; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst response = await client.agent.createVersion('agent_xxx', { base_version: 12 });\n\nconsole.log(response);\n```",
|
|
979
988
|
perLanguage: {
|
|
980
989
|
typescript: {
|
|
981
990
|
method: 'client.agent.createVersion',
|
|
@@ -1024,7 +1033,7 @@ const EMBEDDED_METHODS = [
|
|
|
1024
1033
|
qualified: 'client.agent.getVersions',
|
|
1025
1034
|
params: ['agent_id: string;'],
|
|
1026
1035
|
response: 'object[]',
|
|
1027
|
-
markdown: "## get-versions\n\n`client.agent.getVersions(agent_id: string): object[]`\n\n**get** `/get-agent-versions/{agent_id}`\n\nGet all versions of an agent\n\n### Parameters\n\n- `agent_id: string`\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: object; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number;
|
|
1036
|
+
markdown: "## get-versions\n\n`client.agent.getVersions(agent_id: string): object[]`\n\n**get** `/get-agent-versions/{agent_id}`\n\nGet all versions of an agent\n\n### Parameters\n\n- `agent_id: string`\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: object; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: object | object | object | object; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst agentResponses = await client.agent.getVersions('16b980523634a6dc504898cda492e939');\n\nconsole.log(agentResponses);\n```",
|
|
1028
1037
|
perLanguage: {
|
|
1029
1038
|
typescript: {
|
|
1030
1039
|
method: 'client.agent.getVersions',
|
|
@@ -1066,19 +1075,20 @@ const EMBEDDED_METHODS = [
|
|
|
1066
1075
|
'post_chat_analysis_model?: string;',
|
|
1067
1076
|
'signed_url_expiration_ms?: number;',
|
|
1068
1077
|
'timezone?: string;',
|
|
1078
|
+
'version_title?: string;',
|
|
1069
1079
|
"webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[];",
|
|
1070
1080
|
'webhook_timeout_ms?: number;',
|
|
1071
1081
|
'webhook_url?: string;',
|
|
1072
1082
|
],
|
|
1073
|
-
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }",
|
|
1074
|
-
markdown: "## create\n\n`client.chatAgent.create(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; }, agent_name?: string, analysis_successful_prompt?: string, analysis_summary_prompt?: string, analysis_user_sentiment_prompt?: string, auto_close_message?: string, data_storage_retention_days?: number, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', end_chat_after_silence_ms?: number, guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }, handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }, language?: string | string[], opt_in_signed_url?: boolean, pii_config?: { categories: string[]; mode: 'post_call'; }, post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[], post_chat_analysis_model?: string, signed_url_expiration_ms?: number, timezone?: string, webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[], webhook_timeout_ms?: number, webhook_url?: string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**post** `/create-chat-agent`\n\nCreate a new chat agent\n\n### Parameters\n\n- `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; }`\n The Response Engine to attach to the agent. It is used to generate responses for the agent. You need to create a Response Engine first before attaching it to an agent.\n\n- `agent_name?: string`\n The name of the chat agent. Only used for your own reference.\n\n- `analysis_successful_prompt?: string`\n The prompt to use for post call analysis to evaluate whether the call is successful. Set to null to use the default prompt.\n\n- `analysis_summary_prompt?: string`\n The prompt to use for post call analysis to summarize the call. Set to null to use the default prompt.\n\n- `analysis_user_sentiment_prompt?: string`\n Prompt to guide how the post chat analysis should evaluate user sentiment. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `auto_close_message?: string`\n Message to display when the chat is automatically closed.\n\n- `data_storage_retention_days?: number`\n Number of days to retain call/chat data before automatic deletion. Must be between 1 and 730 days. If not set, data is retained forever (no automatic deletion).\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Controls what data is stored for this agent. \"everything\" stores all data including transcripts and recordings. \"everything_except_pii\" stores data but excludes PII when possible based on PII configuration. \"basic_attributes_only\" stores only basic metadata. If not set, defaults to \"everything\".\n\n- `end_chat_after_silence_ms?: number`\n If users stay silent for a period after agent speech, end the chat. The minimum value allowed is 120,000 ms (2 minutes). The maximum value allowed is 259,200,000 ms (72 hours). By default, this is set to 3,600,000 (1 hour).\n\n- `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n Configuration for guardrail checks to detect and prevent prohibited topics in agent output and user input.\n - `input_topics?: 'platform_integrity_jailbreaking'[]`\n Selected prohibited user topic categories to check. When user messages contain these topics, the agent will respond with a placeholder message instead of processing the request.\n - `output_topics?: string[]`\n Selected prohibited agent topic categories to check. When agent messages contain these topics, they will be replaced with a placeholder message.\n\n- `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n Toggle behavior presets on/off to influence agent response style and behaviors. Voice-only presets are not available for chat agents.\n - `ai_disclosure?: boolean`\n When asked, acknowledge being a virtual assistant.\n - `default_personality?: boolean`\n Professional call center rep baseline.\n - `high_empathy?: boolean`\n Warm acknowledgment of caller concerns.\n - `scope_boundaries?: boolean`\n Stay within prompt/context scope, don't invent details.\n\n- `language?: string | string[]`\n Specifies what language(s) the agent will operate in. Accepts either a single scalar locale (e.g. `en-US`), the legacy scalar value `multi` for multilingual support, or an array of concrete locale codes for explicit multi-locale selection (e.g. `[\"en-US\",\"es-ES\"]`). The array form must contain concrete locale codes only — the `multi` value is valid only as the scalar legacy form and must not appear inside an array. Single-element arrays are normalized to the equivalent scalar on output. If unset, defaults to `en-US`.\n\n- `opt_in_signed_url?: boolean`\n Whether this agent opts in to signed url for public log. If not set, default value of false will apply.\n\n- `pii_config?: { categories: string[]; mode: 'post_call'; }`\n Configuration for PII scrubbing from transcripts and recordings.\n - `categories: string[]`\n List of PII categories to scrub from transcripts and recordings. PII redaction is only active when this list is non-empty; an empty array means no PII scrubbing is performed.\n - `mode: 'post_call'`\n The processing mode for PII scrubbing. Currently only post-call is supported.\n\n- `post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n Post chat analysis data to extract from the chat. This data will augment the pre-defined variables extracted in the chat analysis. This will be available after the chat ends.\n\n- `post_chat_analysis_model?: string`\n The model to use for post chat analysis. Default to gpt-4.1.\n\n- `signed_url_expiration_ms?: number`\n The expiration time for the signed url in milliseconds. Only applicable when opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will apply.\n\n- `timezone?: string`\n IANA timezone for the agent (e.g. America/New_York). Defaults to America/Los_Angeles if not set.\n\n- `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]`\n Which webhook events this agent should receive. If not set, defaults to chat_started, chat_ended, chat_analyzed.\n\n- `webhook_timeout_ms?: number`\n The timeout for the webhook in milliseconds. If not set, default value of 10000 will apply.\n\n- `webhook_url?: string`\n The webhook for agent to listen to chat events. See what events it would get at [webhook doc](/features/webhook). If set, will binds webhook events for this agent to the specified url, and will ignore the account level webhook for this agent. Set to `null` to remove webhook url from this agent.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `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; }`\n - `agent_name?: string`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `assigned_tags?: string[]`\n - `auto_close_message?: string`\n - `base_version?: number`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `end_chat_after_silence_ms?: number`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n - `is_published?: boolean`\n - `language?: string | string[]`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_chat_analysis_model?: string`\n - `signed_url_expiration_ms?: number`\n - `timezone?: string`\n - `version?: number`\n - `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponse = await client.chatAgent.create({ response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' } });\n\nconsole.log(chatAgentResponse);\n```",
|
|
1083
|
+
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }",
|
|
1084
|
+
markdown: "## create\n\n`client.chatAgent.create(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; }, agent_name?: string, analysis_successful_prompt?: string, analysis_summary_prompt?: string, analysis_user_sentiment_prompt?: string, auto_close_message?: string, data_storage_retention_days?: number, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', end_chat_after_silence_ms?: number, guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }, handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }, language?: string | string[], opt_in_signed_url?: boolean, pii_config?: { categories: string[]; mode: 'post_call'; }, post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[], post_chat_analysis_model?: string, signed_url_expiration_ms?: number, timezone?: string, version_title?: string, webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[], webhook_timeout_ms?: number, webhook_url?: string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**post** `/create-chat-agent`\n\nCreate a new chat agent\n\n### Parameters\n\n- `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; }`\n The Response Engine to attach to the agent. It is used to generate responses for the agent. You need to create a Response Engine first before attaching it to an agent.\n\n- `agent_name?: string`\n The name of the chat agent. Only used for your own reference.\n\n- `analysis_successful_prompt?: string`\n The prompt to use for post call analysis to evaluate whether the call is successful. Set to null to use the default prompt.\n\n- `analysis_summary_prompt?: string`\n The prompt to use for post call analysis to summarize the call. Set to null to use the default prompt.\n\n- `analysis_user_sentiment_prompt?: string`\n Prompt to guide how the post chat analysis should evaluate user sentiment. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `auto_close_message?: string`\n Message to display when the chat is automatically closed.\n\n- `data_storage_retention_days?: number`\n Number of days to retain call/chat data before automatic deletion. Must be between 1 and 730 days. If not set, data is retained forever (no automatic deletion).\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Controls what data is stored for this agent. \"everything\" stores all data including transcripts and recordings. \"everything_except_pii\" stores data but excludes PII when possible based on PII configuration. \"basic_attributes_only\" stores only basic metadata. If not set, defaults to \"everything\".\n\n- `end_chat_after_silence_ms?: number`\n If users stay silent for a period after agent speech, end the chat. The minimum value allowed is 120,000 ms (2 minutes). The maximum value allowed is 259,200,000 ms (72 hours). By default, this is set to 3,600,000 (1 hour).\n\n- `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n Configuration for guardrail checks to detect and prevent prohibited topics in agent output and user input.\n - `input_topics?: 'platform_integrity_jailbreaking'[]`\n Selected prohibited user topic categories to check. When user messages contain these topics, the agent will respond with a placeholder message instead of processing the request.\n - `output_topics?: string[]`\n Selected prohibited agent topic categories to check. When agent messages contain these topics, they will be replaced with a placeholder message.\n\n- `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n Toggle behavior presets on/off to influence agent response style and behaviors. Voice-only presets are not available for chat agents.\n - `ai_disclosure?: boolean`\n When asked, acknowledge being a virtual assistant.\n - `default_personality?: boolean`\n Professional call center rep baseline.\n - `high_empathy?: boolean`\n Warm acknowledgment of caller concerns.\n - `scope_boundaries?: boolean`\n Stay within prompt/context scope, don't invent details.\n\n- `language?: string | string[]`\n Specifies what language(s) the agent will operate in. Accepts either a single scalar locale (e.g. `en-US`), the legacy scalar value `multi` for multilingual support, or an array of concrete locale codes for explicit multi-locale selection (e.g. `[\"en-US\",\"es-ES\"]`). The array form must contain concrete locale codes only — the `multi` value is valid only as the scalar legacy form and must not appear inside an array. Single-element arrays are normalized to the equivalent scalar on output. If unset, defaults to `en-US`.\n\n- `opt_in_signed_url?: boolean`\n Whether this agent opts in to signed url for public log. If not set, default value of false will apply.\n\n- `pii_config?: { categories: string[]; mode: 'post_call'; }`\n Configuration for PII scrubbing from transcripts and recordings.\n - `categories: string[]`\n List of PII categories to scrub from transcripts and recordings. PII redaction is only active when this list is non-empty; an empty array means no PII scrubbing is performed.\n - `mode: 'post_call'`\n The processing mode for PII scrubbing. Currently only post-call is supported.\n\n- `post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n Post chat analysis data to extract from the chat. This data will augment the pre-defined variables extracted in the chat analysis. This will be available after the chat ends.\n\n- `post_chat_analysis_model?: string`\n The model to use for post chat analysis. Default to gpt-4.1.\n\n- `signed_url_expiration_ms?: number`\n The expiration time for the signed url in milliseconds. Only applicable when opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will apply.\n\n- `timezone?: string`\n IANA timezone for the agent (e.g. America/New_York). Defaults to America/Los_Angeles if not set.\n\n- `version_title?: string`\n Optional title of the chat agent version. Used for your own reference.\n\n- `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]`\n Which webhook events this agent should receive. If not set, defaults to chat_started, chat_ended, chat_analyzed.\n\n- `webhook_timeout_ms?: number`\n The timeout for the webhook in milliseconds. If not set, default value of 10000 will apply.\n\n- `webhook_url?: string`\n The webhook for agent to listen to chat events. See what events it would get at [webhook doc](/features/webhook). If set, will binds webhook events for this agent to the specified url, and will ignore the account level webhook for this agent. Set to `null` to remove webhook url from this agent.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `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; }`\n - `agent_name?: string`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `assigned_tags?: string[]`\n - `auto_close_message?: string`\n - `base_version?: number`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `end_chat_after_silence_ms?: number`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n - `is_published?: boolean`\n - `language?: string | string[]`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_chat_analysis_model?: string`\n - `signed_url_expiration_ms?: number`\n - `timezone?: string`\n - `version?: number`\n - `version_title?: string`\n - `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponse = await client.chatAgent.create({ response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' } });\n\nconsole.log(chatAgentResponse);\n```",
|
|
1075
1085
|
perLanguage: {
|
|
1076
1086
|
typescript: {
|
|
1077
1087
|
method: 'client.chatAgent.create',
|
|
1078
1088
|
example: "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 chatAgentResponse = await client.chatAgent.create({\n response_engine: { llm_id: 'llm_234sdertfsdsfsdf', type: 'retell-llm' },\n});\n\nconsole.log(chatAgentResponse.agent_id);",
|
|
1079
1089
|
},
|
|
1080
1090
|
http: {
|
|
1081
|
-
example: 'curl https://api.retellai.com/create-chat-agent \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d "{\n \\"response_engine\\": {\n \\"llm_id\\": \\"llm_234sdertfsdsfsdf\\",\n \\"type\\": \\"retell-llm\\",\n \\"version\\": 0\n },\n \\"agent_name\\": \\"Jarvis\\",\n \\"analysis_successful_prompt\\": \\"The agent finished the task and the call was complete without being cutoff.\\",\n \\"analysis_summary_prompt\\": \\"Summarize the call in a few sentences.\\",\n \\"analysis_user_sentiment_prompt\\": \\"Evaluate the user\'s sentiment based on their tone and satisfaction level.\\",\n \\"auto_close_message\\": \\"Thank you for chatting. The conversation has ended.\\",\n \\"data_storage_retention_days\\": 30,\n \\"data_storage_setting\\": \\"everything\\",\n \\"end_chat_after_silence_ms\\": 3600000,\n \\"opt_in_signed_url\\": true,\n \\"post_chat_analysis_model\\": \\"gpt-4.1-mini\\",\n \\"signed_url_expiration_ms\\": 86400000,\n \\"timezone\\": \\"America/New_York\\",\n \\"webhook_timeout_ms\\": 10000,\n \\"webhook_url\\": \\"https://webhook-url-here\\"\n }"',
|
|
1091
|
+
example: 'curl https://api.retellai.com/create-chat-agent \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d "{\n \\"response_engine\\": {\n \\"llm_id\\": \\"llm_234sdertfsdsfsdf\\",\n \\"type\\": \\"retell-llm\\",\n \\"version\\": 0\n },\n \\"agent_name\\": \\"Jarvis\\",\n \\"analysis_successful_prompt\\": \\"The agent finished the task and the call was complete without being cutoff.\\",\n \\"analysis_summary_prompt\\": \\"Summarize the call in a few sentences.\\",\n \\"analysis_user_sentiment_prompt\\": \\"Evaluate the user\'s sentiment based on their tone and satisfaction level.\\",\n \\"auto_close_message\\": \\"Thank you for chatting. The conversation has ended.\\",\n \\"data_storage_retention_days\\": 30,\n \\"data_storage_setting\\": \\"everything\\",\n \\"end_chat_after_silence_ms\\": 3600000,\n \\"opt_in_signed_url\\": true,\n \\"post_chat_analysis_model\\": \\"gpt-4.1-mini\\",\n \\"signed_url_expiration_ms\\": 86400000,\n \\"timezone\\": \\"America/New_York\\",\n \\"version_title\\": \\"Production hotfix\\",\n \\"webhook_timeout_ms\\": 10000,\n \\"webhook_url\\": \\"https://webhook-url-here\\"\n }"',
|
|
1082
1092
|
},
|
|
1083
1093
|
python: {
|
|
1084
1094
|
method: 'chat_agent.create',
|
|
@@ -1095,8 +1105,8 @@ const EMBEDDED_METHODS = [
|
|
|
1095
1105
|
stainlessPath: '(resource) chat_agent > (method) retrieve',
|
|
1096
1106
|
qualified: 'client.chatAgent.retrieve',
|
|
1097
1107
|
params: ['agent_id: string;', 'version?: number | string;'],
|
|
1098
|
-
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }",
|
|
1099
|
-
markdown: "## retrieve\n\n`client.chatAgent.retrieve(agent_id: string, version?: number | string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**get** `/get-chat-agent/{agent_id}`\n\nRetrieve details of a specific chat agent\n\n### Parameters\n\n- `agent_id: string`\n\n- `version?: number | string`\n Optional version of the API to use for this request. If not provided, will default to latest version.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `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; }`\n - `agent_name?: string`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `assigned_tags?: string[]`\n - `auto_close_message?: string`\n - `base_version?: number`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `end_chat_after_silence_ms?: number`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n - `is_published?: boolean`\n - `language?: string | string[]`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_chat_analysis_model?: string`\n - `signed_url_expiration_ms?: number`\n - `timezone?: string`\n - `version?: number`\n - `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponse = await client.chatAgent.retrieve('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponse);\n```",
|
|
1108
|
+
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }",
|
|
1109
|
+
markdown: "## retrieve\n\n`client.chatAgent.retrieve(agent_id: string, version?: number | string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**get** `/get-chat-agent/{agent_id}`\n\nRetrieve details of a specific chat agent\n\n### Parameters\n\n- `agent_id: string`\n\n- `version?: number | string`\n Optional version of the API to use for this request. If not provided, will default to latest version.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `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; }`\n - `agent_name?: string`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `assigned_tags?: string[]`\n - `auto_close_message?: string`\n - `base_version?: number`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `end_chat_after_silence_ms?: number`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n - `is_published?: boolean`\n - `language?: string | string[]`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_chat_analysis_model?: string`\n - `signed_url_expiration_ms?: number`\n - `timezone?: string`\n - `version?: number`\n - `version_title?: string`\n - `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponse = await client.chatAgent.retrieve('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponse);\n```",
|
|
1100
1110
|
perLanguage: {
|
|
1101
1111
|
typescript: {
|
|
1102
1112
|
method: 'client.chatAgent.retrieve',
|
|
@@ -1125,8 +1135,8 @@ const EMBEDDED_METHODS = [
|
|
|
1125
1135
|
'pagination_key?: string;',
|
|
1126
1136
|
'pagination_key_version?: number;',
|
|
1127
1137
|
],
|
|
1128
|
-
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }[]",
|
|
1129
|
-
markdown: "## list\n\n`client.chatAgent.list(is_latest?: boolean, limit?: number, pagination_key?: string, pagination_key_version?: number): object[]`\n\n**get** `/list-chat-agents`\n\nList all chat agents\n\n### Parameters\n\n- `is_latest?: boolean`\n If true, only return the latest version of each chat agent.\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 agents. Pagination key is represented by a agent 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 agent 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- `{ agent_id: string; last_modification_timestamp: 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; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponses = await client.chatAgent.list();\n\nconsole.log(chatAgentResponses);\n```",
|
|
1138
|
+
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }[]",
|
|
1139
|
+
markdown: "## list\n\n`client.chatAgent.list(is_latest?: boolean, limit?: number, pagination_key?: string, pagination_key_version?: number): object[]`\n\n**get** `/list-chat-agents`\n\nList all chat agents\n\n### Parameters\n\n- `is_latest?: boolean`\n If true, only return the latest version of each chat agent.\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 agents. Pagination key is represented by a agent 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 agent 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- `{ agent_id: string; last_modification_timestamp: 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; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponses = await client.chatAgent.list();\n\nconsole.log(chatAgentResponses);\n```",
|
|
1130
1140
|
perLanguage: {
|
|
1131
1141
|
typescript: {
|
|
1132
1142
|
method: 'client.chatAgent.list',
|
|
@@ -1170,19 +1180,20 @@ const EMBEDDED_METHODS = [
|
|
|
1170
1180
|
"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; };",
|
|
1171
1181
|
'signed_url_expiration_ms?: number;',
|
|
1172
1182
|
'timezone?: string;',
|
|
1183
|
+
'version_title?: string;',
|
|
1173
1184
|
"webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[];",
|
|
1174
1185
|
'webhook_timeout_ms?: number;',
|
|
1175
1186
|
'webhook_url?: string;',
|
|
1176
1187
|
],
|
|
1177
|
-
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }",
|
|
1178
|
-
markdown: "## update\n\n`client.chatAgent.update(agent_id: string, version?: number | string, agent_name?: string, analysis_successful_prompt?: string, analysis_summary_prompt?: string, analysis_user_sentiment_prompt?: string, auto_close_message?: string, data_storage_retention_days?: number, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', end_chat_after_silence_ms?: number, guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }, handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }, language?: string | string[], opt_in_signed_url?: boolean, pii_config?: { categories: string[]; mode: 'post_call'; }, post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[], post_chat_analysis_model?: string, 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; }, signed_url_expiration_ms?: number, timezone?: string, webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[], webhook_timeout_ms?: number, webhook_url?: string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**patch** `/update-chat-agent/{agent_id}`\n\nUpdate an existing chat agent\n\n### Parameters\n\n- `agent_id: string`\n\n- `version?: number | string`\n Optional version of the API to use for this request. Default to latest version.\n\n- `agent_name?: string`\n The name of the chat agent. Only used for your own reference.\n\n- `analysis_successful_prompt?: string`\n The prompt to use for post call analysis to evaluate whether the call is successful. Set to null to use the default prompt.\n\n- `analysis_summary_prompt?: string`\n The prompt to use for post call analysis to summarize the call. Set to null to use the default prompt.\n\n- `analysis_user_sentiment_prompt?: string`\n Prompt to guide how the post chat analysis should evaluate user sentiment. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `auto_close_message?: string`\n Message to display when the chat is automatically closed.\n\n- `data_storage_retention_days?: number`\n Number of days to retain call/chat data before automatic deletion. Must be between 1 and 730 days. If not set, data is retained forever (no automatic deletion).\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Controls what data is stored for this agent. \"everything\" stores all data including transcripts and recordings. \"everything_except_pii\" stores data but excludes PII when possible based on PII configuration. \"basic_attributes_only\" stores only basic metadata. If not set, defaults to \"everything\".\n\n- `end_chat_after_silence_ms?: number`\n If users stay silent for a period after agent speech, end the chat. The minimum value allowed is 120,000 ms (2 minutes). The maximum value allowed is 259,200,000 ms (72 hours). By default, this is set to 3,600,000 (1 hour).\n\n- `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n Configuration for guardrail checks to detect and prevent prohibited topics in agent output and user input.\n - `input_topics?: 'platform_integrity_jailbreaking'[]`\n Selected prohibited user topic categories to check. When user messages contain these topics, the agent will respond with a placeholder message instead of processing the request.\n - `output_topics?: string[]`\n Selected prohibited agent topic categories to check. When agent messages contain these topics, they will be replaced with a placeholder message.\n\n- `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n Toggle behavior presets on/off to influence agent response style and behaviors. Voice-only presets are not available for chat agents.\n - `ai_disclosure?: boolean`\n When asked, acknowledge being a virtual assistant.\n - `default_personality?: boolean`\n Professional call center rep baseline.\n - `high_empathy?: boolean`\n Warm acknowledgment of caller concerns.\n - `scope_boundaries?: boolean`\n Stay within prompt/context scope, don't invent details.\n\n- `language?: string | string[]`\n Specifies what language(s) the agent will operate in. Accepts either a single scalar locale (e.g. `en-US`), the legacy scalar value `multi` for multilingual support, or an array of concrete locale codes for explicit multi-locale selection (e.g. `[\"en-US\",\"es-ES\"]`). The array form must contain concrete locale codes only — the `multi` value is valid only as the scalar legacy form and must not appear inside an array. Single-element arrays are normalized to the equivalent scalar on output. If unset, defaults to `en-US`.\n\n- `opt_in_signed_url?: boolean`\n Whether this agent opts in to signed url for public log. If not set, default value of false will apply.\n\n- `pii_config?: { categories: string[]; mode: 'post_call'; }`\n Configuration for PII scrubbing from transcripts and recordings.\n - `categories: string[]`\n List of PII categories to scrub from transcripts and recordings. PII redaction is only active when this list is non-empty; an empty array means no PII scrubbing is performed.\n - `mode: 'post_call'`\n The processing mode for PII scrubbing. Currently only post-call is supported.\n\n- `post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n Post chat analysis data to extract from the chat. This data will augment the pre-defined variables extracted in the chat analysis. This will be available after the chat ends.\n\n- `post_chat_analysis_model?: string`\n The model to use for post chat analysis. Default to gpt-4.1.\n\n- `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; }`\n The Response Engine to attach to the agent. It is used to generate responses for the agent. You need to create a Response Engine first before attaching it to an agent.\n\n- `signed_url_expiration_ms?: number`\n The expiration time for the signed url in milliseconds. Only applicable when opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will apply.\n\n- `timezone?: string`\n IANA timezone for the agent (e.g. America/New_York). Defaults to America/Los_Angeles if not set.\n\n- `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]`\n Which webhook events this agent should receive. If not set, defaults to chat_started, chat_ended, chat_analyzed.\n\n- `webhook_timeout_ms?: number`\n The timeout for the webhook in milliseconds. If not set, default value of 10000 will apply.\n\n- `webhook_url?: string`\n The webhook for agent to listen to chat events. See what events it would get at [webhook doc](/features/webhook). If set, will binds webhook events for this agent to the specified url, and will ignore the account level webhook for this agent. Set to `null` to remove webhook url from this agent.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `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; }`\n - `agent_name?: string`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `assigned_tags?: string[]`\n - `auto_close_message?: string`\n - `base_version?: number`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `end_chat_after_silence_ms?: number`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n - `is_published?: boolean`\n - `language?: string | string[]`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_chat_analysis_model?: string`\n - `signed_url_expiration_ms?: number`\n - `timezone?: string`\n - `version?: number`\n - `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponse = await client.chatAgent.update('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponse);\n```",
|
|
1188
|
+
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }",
|
|
1189
|
+
markdown: "## update\n\n`client.chatAgent.update(agent_id: string, version?: number | string, agent_name?: string, analysis_successful_prompt?: string, analysis_summary_prompt?: string, analysis_user_sentiment_prompt?: string, auto_close_message?: string, data_storage_retention_days?: number, data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only', end_chat_after_silence_ms?: number, guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }, handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }, language?: string | string[], opt_in_signed_url?: boolean, pii_config?: { categories: string[]; mode: 'post_call'; }, post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[], post_chat_analysis_model?: string, 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; }, signed_url_expiration_ms?: number, timezone?: string, version_title?: string, webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[], webhook_timeout_ms?: number, webhook_url?: string): { agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n**patch** `/update-chat-agent/{agent_id}`\n\nUpdate an existing chat agent\n\n### Parameters\n\n- `agent_id: string`\n\n- `version?: number | string`\n Optional version of the API to use for this request. Default to latest version.\n\n- `agent_name?: string`\n The name of the chat agent. Only used for your own reference.\n\n- `analysis_successful_prompt?: string`\n The prompt to use for post call analysis to evaluate whether the call is successful. Set to null to use the default prompt.\n\n- `analysis_summary_prompt?: string`\n The prompt to use for post call analysis to summarize the call. Set to null to use the default prompt.\n\n- `analysis_user_sentiment_prompt?: string`\n Prompt to guide how the post chat analysis should evaluate user sentiment. When unset, the default system prompt is used. Set to null to use the default prompt.\n\n- `auto_close_message?: string`\n Message to display when the chat is automatically closed.\n\n- `data_storage_retention_days?: number`\n Number of days to retain call/chat data before automatic deletion. Must be between 1 and 730 days. If not set, data is retained forever (no automatic deletion).\n\n- `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n Controls what data is stored for this agent. \"everything\" stores all data including transcripts and recordings. \"everything_except_pii\" stores data but excludes PII when possible based on PII configuration. \"basic_attributes_only\" stores only basic metadata. If not set, defaults to \"everything\".\n\n- `end_chat_after_silence_ms?: number`\n If users stay silent for a period after agent speech, end the chat. The minimum value allowed is 120,000 ms (2 minutes). The maximum value allowed is 259,200,000 ms (72 hours). By default, this is set to 3,600,000 (1 hour).\n\n- `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n Configuration for guardrail checks to detect and prevent prohibited topics in agent output and user input.\n - `input_topics?: 'platform_integrity_jailbreaking'[]`\n Selected prohibited user topic categories to check. When user messages contain these topics, the agent will respond with a placeholder message instead of processing the request.\n - `output_topics?: string[]`\n Selected prohibited agent topic categories to check. When agent messages contain these topics, they will be replaced with a placeholder message.\n\n- `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n Toggle behavior presets on/off to influence agent response style and behaviors. Voice-only presets are not available for chat agents.\n - `ai_disclosure?: boolean`\n When asked, acknowledge being a virtual assistant.\n - `default_personality?: boolean`\n Professional call center rep baseline.\n - `high_empathy?: boolean`\n Warm acknowledgment of caller concerns.\n - `scope_boundaries?: boolean`\n Stay within prompt/context scope, don't invent details.\n\n- `language?: string | string[]`\n Specifies what language(s) the agent will operate in. Accepts either a single scalar locale (e.g. `en-US`), the legacy scalar value `multi` for multilingual support, or an array of concrete locale codes for explicit multi-locale selection (e.g. `[\"en-US\",\"es-ES\"]`). The array form must contain concrete locale codes only — the `multi` value is valid only as the scalar legacy form and must not appear inside an array. Single-element arrays are normalized to the equivalent scalar on output. If unset, defaults to `en-US`.\n\n- `opt_in_signed_url?: boolean`\n Whether this agent opts in to signed url for public log. If not set, default value of false will apply.\n\n- `pii_config?: { categories: string[]; mode: 'post_call'; }`\n Configuration for PII scrubbing from transcripts and recordings.\n - `categories: string[]`\n List of PII categories to scrub from transcripts and recordings. PII redaction is only active when this list is non-empty; an empty array means no PII scrubbing is performed.\n - `mode: 'post_call'`\n The processing mode for PII scrubbing. Currently only post-call is supported.\n\n- `post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n Post chat analysis data to extract from the chat. This data will augment the pre-defined variables extracted in the chat analysis. This will be available after the chat ends.\n\n- `post_chat_analysis_model?: string`\n The model to use for post chat analysis. Default to gpt-4.1.\n\n- `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; }`\n The Response Engine to attach to the agent. It is used to generate responses for the agent. You need to create a Response Engine first before attaching it to an agent.\n\n- `signed_url_expiration_ms?: number`\n The expiration time for the signed url in milliseconds. Only applicable when opt_in_signed_url is true. If not set, default value of 86400000 (24 hours) will apply.\n\n- `timezone?: string`\n IANA timezone for the agent (e.g. America/New_York). Defaults to America/Los_Angeles if not set.\n\n- `version_title?: string`\n Optional title of the chat agent version. Used for your own reference.\n\n- `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]`\n Which webhook events this agent should receive. If not set, defaults to chat_started, chat_ended, chat_analyzed.\n\n- `webhook_timeout_ms?: number`\n The timeout for the webhook in milliseconds. If not set, default value of 10000 will apply.\n\n- `webhook_url?: string`\n The webhook for agent to listen to chat events. See what events it would get at [webhook doc](/features/webhook). If set, will binds webhook events for this agent to the specified url, and will ignore the account level webhook for this agent. Set to `null` to remove webhook url from this agent.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n - `agent_id: string`\n - `last_modification_timestamp: number`\n - `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; }`\n - `agent_name?: string`\n - `analysis_successful_prompt?: string`\n - `analysis_summary_prompt?: string`\n - `analysis_user_sentiment_prompt?: string`\n - `assigned_tags?: string[]`\n - `auto_close_message?: string`\n - `base_version?: number`\n - `data_storage_retention_days?: number`\n - `data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'`\n - `end_chat_after_silence_ms?: number`\n - `guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }`\n - `handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }`\n - `is_published?: boolean`\n - `language?: string | string[]`\n - `opt_in_signed_url?: boolean`\n - `pii_config?: { categories: string[]; mode: 'post_call'; }`\n - `post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]`\n - `post_chat_analysis_model?: string`\n - `signed_url_expiration_ms?: number`\n - `timezone?: string`\n - `version?: number`\n - `version_title?: string`\n - `webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]`\n - `webhook_timeout_ms?: number`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponse = await client.chatAgent.update('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponse);\n```",
|
|
1179
1190
|
perLanguage: {
|
|
1180
1191
|
typescript: {
|
|
1181
1192
|
method: 'client.chatAgent.update',
|
|
1182
1193
|
example: "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 chatAgentResponse = await client.chatAgent.update('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponse.agent_id);",
|
|
1183
1194
|
},
|
|
1184
1195
|
http: {
|
|
1185
|
-
example: 'curl https://api.retellai.com/update-chat-agent/$AGENT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d "{\n \\"agent_name\\": \\"Jarvis\\",\n \\"analysis_successful_prompt\\": \\"The agent finished the task and the call was complete without being cutoff.\\",\n \\"analysis_summary_prompt\\": \\"Summarize the call in a few sentences.\\",\n \\"analysis_user_sentiment_prompt\\": \\"Evaluate the user\'s sentiment based on their tone and satisfaction level.\\",\n \\"auto_close_message\\": \\"Thank you for chatting. The conversation has ended.\\",\n \\"data_storage_retention_days\\": 30,\n \\"data_storage_setting\\": \\"everything\\",\n \\"end_chat_after_silence_ms\\": 3600000,\n \\"opt_in_signed_url\\": true,\n \\"post_chat_analysis_model\\": \\"gpt-4.1-mini\\",\n \\"response_engine\\": {\n \\"llm_id\\": \\"llm_234sdertfsdsfsdf\\",\n \\"type\\": \\"retell-llm\\",\n \\"version\\": 0\n },\n \\"signed_url_expiration_ms\\": 86400000,\n \\"timezone\\": \\"America/New_York\\",\n \\"webhook_timeout_ms\\": 10000,\n \\"webhook_url\\": \\"https://webhook-url-here\\"\n }"',
|
|
1196
|
+
example: 'curl https://api.retellai.com/update-chat-agent/$AGENT_ID \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d "{\n \\"agent_name\\": \\"Jarvis\\",\n \\"analysis_successful_prompt\\": \\"The agent finished the task and the call was complete without being cutoff.\\",\n \\"analysis_summary_prompt\\": \\"Summarize the call in a few sentences.\\",\n \\"analysis_user_sentiment_prompt\\": \\"Evaluate the user\'s sentiment based on their tone and satisfaction level.\\",\n \\"auto_close_message\\": \\"Thank you for chatting. The conversation has ended.\\",\n \\"data_storage_retention_days\\": 30,\n \\"data_storage_setting\\": \\"everything\\",\n \\"end_chat_after_silence_ms\\": 3600000,\n \\"opt_in_signed_url\\": true,\n \\"post_chat_analysis_model\\": \\"gpt-4.1-mini\\",\n \\"response_engine\\": {\n \\"llm_id\\": \\"llm_234sdertfsdsfsdf\\",\n \\"type\\": \\"retell-llm\\",\n \\"version\\": 0\n },\n \\"signed_url_expiration_ms\\": 86400000,\n \\"timezone\\": \\"America/New_York\\",\n \\"version_title\\": \\"Production hotfix\\",\n \\"webhook_timeout_ms\\": 10000,\n \\"webhook_url\\": \\"https://webhook-url-here\\"\n }"',
|
|
1186
1197
|
},
|
|
1187
1198
|
python: {
|
|
1188
1199
|
method: 'chat_agent.update',
|
|
@@ -1222,15 +1233,20 @@ const EMBEDDED_METHODS = [
|
|
|
1222
1233
|
description: 'Publish an existing draft version in place.',
|
|
1223
1234
|
stainlessPath: '(resource) chat_agent > (method) publish',
|
|
1224
1235
|
qualified: 'client.chatAgent.publish',
|
|
1225
|
-
params: [
|
|
1226
|
-
|
|
1236
|
+
params: [
|
|
1237
|
+
'agent_id: string;',
|
|
1238
|
+
'version: number;',
|
|
1239
|
+
'version_description?: string;',
|
|
1240
|
+
'version_title?: string;',
|
|
1241
|
+
],
|
|
1242
|
+
markdown: "## publish\n\n`client.chatAgent.publish(agent_id: string, version: number, version_description?: string, version_title?: 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- `version_title?: string`\n Optional title of the agent version. Used for your own reference.\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```",
|
|
1227
1243
|
perLanguage: {
|
|
1228
1244
|
typescript: {
|
|
1229
1245
|
method: 'client.chatAgent.publish',
|
|
1230
1246
|
example: "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 });",
|
|
1231
1247
|
},
|
|
1232
1248
|
http: {
|
|
1233
|
-
example: '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 }\'',
|
|
1249
|
+
example: '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 "version_title": "Hotfix"\n }\'',
|
|
1234
1250
|
},
|
|
1235
1251
|
python: {
|
|
1236
1252
|
method: 'chat_agent.publish',
|
|
@@ -1248,7 +1264,7 @@ const EMBEDDED_METHODS = [
|
|
|
1248
1264
|
qualified: 'client.chatAgent.createVersion',
|
|
1249
1265
|
params: ['agent_id: string;', 'base_version: number;'],
|
|
1250
1266
|
response: 'object | object',
|
|
1251
|
-
markdown: "## create-version\n\n`client.chatAgent.createVersion(agent_id: string, base_version: number): object | object`\n\n**post** `/create-agent-version/{agent_id}`\n\nCreate a new draft agent version from a base version.\n\n### Parameters\n\n- `agent_id: string`\n\n- `base_version: number`\n Existing version used as the base when creating a new draft.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: object; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number;
|
|
1267
|
+
markdown: "## create-version\n\n`client.chatAgent.createVersion(agent_id: string, base_version: number): object | object`\n\n**post** `/create-agent-version/{agent_id}`\n\nCreate a new draft agent version from a base version.\n\n### Parameters\n\n- `agent_id: string`\n\n- `base_version: number`\n Existing version used as the base when creating a new draft.\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; version: number; voice_id: string; agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; backchannel_frequency?: number; backchannel_words?: string[]; base_version?: number; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; is_published?: boolean; ivr_option?: { action: object; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: number; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: object | object | object | object; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; } | { agent_id: string; last_modification_timestamp: 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; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst response = await client.chatAgent.createVersion('agent_xxx', { base_version: 12 });\n\nconsole.log(response);\n```",
|
|
1252
1268
|
perLanguage: {
|
|
1253
1269
|
typescript: {
|
|
1254
1270
|
method: 'client.chatAgent.createVersion',
|
|
@@ -1296,8 +1312,8 @@ const EMBEDDED_METHODS = [
|
|
|
1296
1312
|
stainlessPath: '(resource) chat_agent > (method) get-versions',
|
|
1297
1313
|
qualified: 'client.chatAgent.getVersions',
|
|
1298
1314
|
params: ['agent_id: string;'],
|
|
1299
|
-
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }[]",
|
|
1300
|
-
markdown: "## get-versions\n\n`client.chatAgent.getVersions(agent_id: string): object[]`\n\n**get** `/get-chat-agent-versions/{agent_id}`\n\nGet all versions of a chat agent\n\n### Parameters\n\n- `agent_id: string`\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponses = await client.chatAgent.getVersions('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponses);\n```",
|
|
1315
|
+
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: object; handbook_config?: object; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: object; post_chat_analysis_data?: object | object | object | object | object[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }[]",
|
|
1316
|
+
markdown: "## get-versions\n\n`client.chatAgent.getVersions(agent_id: string): object[]`\n\n**get** `/get-chat-agent-versions/{agent_id}`\n\nGet all versions of a chat agent\n\n### Parameters\n\n- `agent_id: string`\n\n### Returns\n\n- `{ agent_id: string; last_modification_timestamp: 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; }; agent_name?: string; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; assigned_tags?: string[]; auto_close_message?: string; base_version?: number; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; end_chat_after_silence_ms?: number; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; high_empathy?: boolean; scope_boundaries?: boolean; }; is_published?: boolean; language?: string | string[]; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_chat_analysis_data?: { 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: 'chat_summary' | 'chat_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_chat_analysis_model?: string; signed_url_expiration_ms?: number; timezone?: string; version?: number; version_title?: string; webhook_events?: 'chat_started' | 'chat_ended' | 'chat_analyzed' | 'transcript_updated'[]; webhook_timeout_ms?: number; webhook_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst chatAgentResponses = await client.chatAgent.getVersions('16b980523634a6dc504898cda492e939');\n\nconsole.log(chatAgentResponses);\n```",
|
|
1301
1317
|
perLanguage: {
|
|
1302
1318
|
typescript: {
|
|
1303
1319
|
method: 'client.chatAgent.getVersions',
|
|
@@ -2135,14 +2151,14 @@ const EMBEDDED_METHODS = [
|
|
|
2135
2151
|
qualified: 'client.batchCall.createBatchCall',
|
|
2136
2152
|
params: [
|
|
2137
2153
|
'from_number: string;',
|
|
2138
|
-
"tasks: { to_number: string; agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: object; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number;
|
|
2154
|
+
"tasks: { to_number: string; agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: object; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: object | object | object | object; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }; custom_sip_headers?: object; ignore_e164_validation?: boolean; metadata?: object; override_agent_id?: string; override_agent_version?: number | string; retell_llm_dynamic_variables?: object; }[];",
|
|
2139
2155
|
"call_time_window?: { windows: { end: number; start: number; }[]; day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]; timezone?: string; };",
|
|
2140
2156
|
'name?: string;',
|
|
2141
2157
|
'reserved_concurrency?: number;',
|
|
2142
2158
|
'trigger_timestamp?: number;',
|
|
2143
2159
|
],
|
|
2144
2160
|
response: "{ batch_call_id: string; from_number: string; name: string; scheduled_timestamp: number; total_task_count: number; call_time_window?: { windows: { end: number; start: number; }[]; day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]; timezone?: string; }; }",
|
|
2145
|
-
markdown: "## create-batch-call\n\n`client.batchCall.createBatchCall(from_number: string, tasks: { to_number: string; agent_override?: { agent?: object; conversation_flow?: object; retell_llm?: object; }; custom_sip_headers?: object; ignore_e164_validation?: boolean; metadata?: object; override_agent_id?: string; override_agent_version?: number | string; retell_llm_dynamic_variables?: object; }[], call_time_window?: { windows: { end: number; start: number; }[]; day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]; timezone?: string; }, name?: string, reserved_concurrency?: number, trigger_timestamp?: number): { batch_call_id: string; from_number: string; name: string; scheduled_timestamp: number; total_task_count: number; call_time_window?: object; }`\n\n**post** `/create-batch-call`\n\nCreate a batch call\n\n### Parameters\n\n- `from_number: string`\n The number you own in E.164 format. Must be a number purchased from Retell or imported to Retell.\n\n- `tasks: { to_number: string; agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; end_call_after_silence_ms?: number; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: object; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number;
|
|
2161
|
+
markdown: "## create-batch-call\n\n`client.batchCall.createBatchCall(from_number: string, tasks: { to_number: string; agent_override?: { agent?: object; conversation_flow?: object; retell_llm?: object; }; custom_sip_headers?: object; ignore_e164_validation?: boolean; metadata?: object; override_agent_id?: string; override_agent_version?: number | string; retell_llm_dynamic_variables?: object; }[], call_time_window?: { windows: { end: number; start: number; }[]; day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]; timezone?: string; }, name?: string, reserved_concurrency?: number, trigger_timestamp?: number): { batch_call_id: string; from_number: string; name: string; scheduled_timestamp: number; total_task_count: number; call_time_window?: object; }`\n\n**post** `/create-batch-call`\n\nCreate a batch call\n\n### Parameters\n\n- `from_number: string`\n The number you own in E.164 format. Must be a number purchased from Retell or imported to Retell.\n\n- `tasks: { to_number: string; agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; analysis_successful_prompt?: string; analysis_summary_prompt?: string; analysis_user_sentiment_prompt?: string; backchannel_frequency?: number; backchannel_words?: string[]; begin_message_delay_ms?: number; boosted_keywords?: string[]; call_screening_option?: { agent_identity: string; call_purpose: string; }; custom_stt_config?: { endpointing_ms: number; provider: 'azure' | 'deepgram' | 'soniox' | 'assemblyai'; }; data_storage_retention_days?: number; data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only'; denoising_mode?: 'no-denoise' | 'noise-cancellation' | 'noise-and-background-speech-cancellation'; enable_backchannel?: boolean; enable_dynamic_responsiveness?: boolean; enable_dynamic_voice_speed?: boolean; enable_expressive_mode?: boolean; end_call_after_silence_ms?: number; expressive_emotion_tags?: string[]; expressive_mode_prompt?: string; fallback_voice_ids?: string[]; guardrail_config?: { input_topics?: 'platform_integrity_jailbreaking'[]; output_topics?: string[]; }; handbook_config?: { ai_disclosure?: boolean; conversational_personality?: boolean; default_personality?: boolean; echo_verification?: boolean; high_empathy?: boolean; nato_phonetic_alphabet?: boolean; natural_filler_words?: boolean; scope_boundaries?: boolean; smart_matching?: boolean; speech_normalization?: boolean; }; interruption_sensitivity?: number; ivr_option?: { action: object; detection_prompt?: string; }; language?: string | string[]; max_call_duration_ms?: number; opt_in_signed_url?: boolean; pii_config?: { categories: string[]; mode: 'post_call'; }; post_call_analysis_data?: { 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: 'call_summary' | 'call_successful' | 'user_sentiment'; type: 'system-presets'; conditional_prompt?: string; description?: string; required?: boolean; }[]; post_call_analysis_model?: string; pronunciation_dictionary?: { alphabet: 'ipa' | 'cmu'; phoneme: string; word: string; }[]; reminder_max_count?: number; reminder_trigger_ms?: 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; }; responsiveness?: number; ring_duration_ms?: number; signed_url_expiration_ms?: number; stt_mode?: 'fast' | 'accurate' | 'custom'; timezone?: string; user_dtmf_options?: { digit_limit?: number; termination_key?: string; timeout_ms?: number; }; version_description?: string; version_title?: string; vocab_specialization?: 'general' | 'medical'; voice_emotion?: 'calm' | 'sympathetic' | 'happy' | 'sad' | 'angry' | 'fearful' | 'surprised'; voice_id?: string; voice_model?: string; voice_speed?: number; voice_temperature?: number; voicemail_option?: { action: object | object | object | object; detection_prompt?: string; }; volume?: number; webhook_events?: string[]; webhook_timeout_ms?: number; webhook_url?: string; }; conversation_flow?: { begin_after_user_silence_ms?: number; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model_choice?: { model: string; type: 'cascading'; high_priority?: boolean; }; model_temperature?: number; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; retell_llm?: { begin_after_user_silence_ms?: number; begin_message?: string; kb_config?: { filter_score?: number; top_k?: number; }; knowledge_base_ids?: string[]; model?: string; model_high_priority?: boolean; model_temperature?: number; s2s_model?: 'gpt-realtime-2' | 'gpt-realtime-1.5' | 'gpt-realtime' | 'gpt-realtime-mini'; start_speaker?: 'user' | 'agent'; tool_call_strict_mode?: boolean; }; }; custom_sip_headers?: object; ignore_e164_validation?: boolean; metadata?: object; override_agent_id?: string; override_agent_version?: number | string; retell_llm_dynamic_variables?: object; }[]`\n A list of individual call tasks to be executed as part of the batch call. Each task represents a single outbound call and includes details such as the recipient's phone number and optional dynamic variables to personalize the call content.\n\n- `call_time_window?: { windows: { end: number; start: number; }[]; day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]; timezone?: string; }`\n Allowed calling windows in a specific timezone. Each window is a half-open interval [startMin, endMin) in minutes since 00:00 local time. Cross-midnight windows are NOT allowed (must satisfy startMin < endMin). `endMin = 1440` (24:00) is valid.\n - `windows: { end: number; start: number; }[]`\n List of TimeWindow (start/end in minutes since local midnight).\n - `day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]`\n Optional list of days to which the windows apply. If omitted or empty, windows apply to every day.\n - `timezone?: string`\n IANA timezone (e.g. America/Los_Angeles). Defaults to America/Los_Angeles if omitted.\n\n- `name?: string`\n The name of the batch call. Only used for your own reference.\n\n- `reserved_concurrency?: number`\n Number of concurrency reserved for all other calls that are not triggered by batch calls, such as inbound calls.\n\n- `trigger_timestamp?: number`\n The scheduled time for sending the batch call, represented as a Unix timestamp in milliseconds. If omitted, the call will be sent immediately.\n\n### Returns\n\n- `{ batch_call_id: string; from_number: string; name: string; scheduled_timestamp: number; total_task_count: number; call_time_window?: { windows: { end: number; start: number; }[]; day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]; timezone?: string; }; }`\n\n - `batch_call_id: string`\n - `from_number: string`\n - `name: string`\n - `scheduled_timestamp: number`\n - `total_task_count: number`\n - `call_time_window?: { windows: { end: number; start: number; }[]; day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]; timezone?: string; }`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst batchCallResponse = await client.batchCall.createBatchCall({ from_number: '+14157774444', tasks: [{ to_number: '+12137774445' }] });\n\nconsole.log(batchCallResponse);\n```",
|
|
2146
2162
|
perLanguage: {
|
|
2147
2163
|
typescript: {
|
|
2148
2164
|
method: 'client.batchCall.createBatchCall',
|
|
@@ -2398,8 +2414,8 @@ const EMBEDDED_METHODS = [
|
|
|
2398
2414
|
stainlessPath: '(resource) tests > (method) get-test-run',
|
|
2399
2415
|
qualified: 'client.tests.getTestRun',
|
|
2400
2416
|
params: ['test_case_job_id: string;'],
|
|
2401
|
-
response: "{ 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; }",
|
|
2402
|
-
markdown: "## get-test-run\n\n`client.tests.getTestRun(test_case_job_id: string): { 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; }`\n\n**get** `/get-test-run/{test_case_job_id}`\n\nGet a test case job (test run) by ID\n\n### Parameters\n\n- `test_case_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: { 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\n - `creation_timestamp: number`\n - `status: 'in_progress' | 'pass' | 'fail' | 'error'`\n - `test_case_definition_id: string`\n - `test_case_definition_snapshot: { 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 - `test_case_job_id: string`\n - `user_modified_timestamp: number`\n - `result_explanation?: string`\n - `transcript_snapshot?: object`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst testCaseJobResponse = await client.tests.getTestRun('test_case_job_id');\n\nconsole.log(testCaseJobResponse);\n```",
|
|
2417
|
+
response: "{ creation_timestamp: number; status: 'pending' | '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; }",
|
|
2418
|
+
markdown: "## get-test-run\n\n`client.tests.getTestRun(test_case_job_id: string): { creation_timestamp: number; status: 'pending' | '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; }`\n\n**get** `/get-test-run/{test_case_job_id}`\n\nGet a test case job (test run) by ID\n\n### Parameters\n\n- `test_case_job_id: string`\n\n### Returns\n\n- `{ creation_timestamp: number; status: 'pending' | '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\n - `creation_timestamp: number`\n - `status: 'pending' | 'in_progress' | 'pass' | 'fail' | 'error'`\n - `test_case_definition_id: string`\n - `test_case_definition_snapshot: { 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 - `test_case_job_id: string`\n - `user_modified_timestamp: number`\n - `result_explanation?: string`\n - `transcript_snapshot?: object`\n\n### Example\n\n```typescript\nimport Retell from 'retell-sdk';\n\nconst client = new Retell();\n\nconst testCaseJobResponse = await client.tests.getTestRun('test_case_job_id');\n\nconsole.log(testCaseJobResponse);\n```",
|
|
2403
2419
|
perLanguage: {
|
|
2404
2420
|
typescript: {
|
|
2405
2421
|
method: 'client.tests.getTestRun',
|
|
@@ -2423,8 +2439,8 @@ const EMBEDDED_METHODS = [
|
|
|
2423
2439
|
stainlessPath: '(resource) tests > (method) list-test-runs',
|
|
2424
2440
|
qualified: 'client.tests.listTestRuns',
|
|
2425
2441
|
params: ['test_case_batch_job_id: string;', 'limit?: number;', 'pagination_key?: string;'],
|
|
2426
|
-
response: "{ 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; }",
|
|
2427
|
-
markdown: "## 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```",
|
|
2442
|
+
response: "{ has_more?: boolean; items?: { creation_timestamp: number; status: 'pending' | '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; }",
|
|
2443
|
+
markdown: "## 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: 'pending' | '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: 'pending' | '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```",
|
|
2428
2444
|
perLanguage: {
|
|
2429
2445
|
typescript: {
|
|
2430
2446
|
method: 'client.tests.listTestRuns',
|