@retell-ai/mcp-server 5.37.0 → 5.38.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 +29 -41
- package/local-docs-search.js.map +1 -1
- package/local-docs-search.mjs +29 -41
- package/local-docs-search.mjs.map +1 -1
- package/package.json +2 -2
- package/src/local-docs-search.ts +29 -41
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;
|
|
57
|
+
"agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; 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; 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```",
|
|
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; 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; 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; 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;
|
|
91
|
+
"agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; 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; 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```",
|
|
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; 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; 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; 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,7 +122,7 @@ 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;
|
|
125
|
+
"agent_override?: { agent?: { agent_name?: string; allow_dtmf_interruption?: boolean; allow_user_dtmf?: boolean; ambient_sound?: string; ambient_sound_volume?: number; 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;',
|
|
@@ -130,7 +130,7 @@ const EMBEDDED_METHODS = [
|
|
|
130
130
|
'retell_llm_dynamic_variables?: object;',
|
|
131
131
|
],
|
|
132
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```",
|
|
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; 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; 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; 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',
|
|
@@ -712,9 +712,6 @@ const EMBEDDED_METHODS = [
|
|
|
712
712
|
'allow_user_dtmf?: boolean;',
|
|
713
713
|
'ambient_sound?: string;',
|
|
714
714
|
'ambient_sound_volume?: number;',
|
|
715
|
-
'analysis_successful_prompt?: string;',
|
|
716
|
-
'analysis_summary_prompt?: string;',
|
|
717
|
-
'analysis_user_sentiment_prompt?: string;',
|
|
718
715
|
'backchannel_frequency?: number;',
|
|
719
716
|
'backchannel_words?: string[];',
|
|
720
717
|
'begin_message_delay_ms?: number;',
|
|
@@ -765,14 +762,14 @@ const EMBEDDED_METHODS = [
|
|
|
765
762
|
'webhook_url?: string;',
|
|
766
763
|
],
|
|
767
764
|
response: 'object',
|
|
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```",
|
|
765
|
+
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, 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; 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- `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; 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 - `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```",
|
|
769
766
|
perLanguage: {
|
|
770
767
|
typescript: {
|
|
771
768
|
method: 'client.agent.create',
|
|
772
769
|
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);",
|
|
773
770
|
},
|
|
774
771
|
http: {
|
|
775
|
-
example: 'curl https://api.retellai.com/create-agent \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $RETELL_API_KEY" \\\n -d
|
|
772
|
+
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 "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 }\'',
|
|
776
773
|
},
|
|
777
774
|
python: {
|
|
778
775
|
method: 'agent.create',
|
|
@@ -790,7 +787,7 @@ const EMBEDDED_METHODS = [
|
|
|
790
787
|
qualified: 'client.agent.retrieve',
|
|
791
788
|
params: ['agent_id: string;', 'version?: number | string;'],
|
|
792
789
|
response: 'object',
|
|
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```",
|
|
790
|
+
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; 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; 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 - `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```",
|
|
794
791
|
perLanguage: {
|
|
795
792
|
typescript: {
|
|
796
793
|
method: 'client.agent.retrieve',
|
|
@@ -820,7 +817,7 @@ const EMBEDDED_METHODS = [
|
|
|
820
817
|
'pagination_key_version?: number;',
|
|
821
818
|
],
|
|
822
819
|
response: 'object[]',
|
|
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;
|
|
820
|
+
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; 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```",
|
|
824
821
|
perLanguage: {
|
|
825
822
|
typescript: {
|
|
826
823
|
method: 'client.agent.list',
|
|
@@ -851,9 +848,6 @@ const EMBEDDED_METHODS = [
|
|
|
851
848
|
'allow_user_dtmf?: boolean;',
|
|
852
849
|
'ambient_sound?: string;',
|
|
853
850
|
'ambient_sound_volume?: number;',
|
|
854
|
-
'analysis_successful_prompt?: string;',
|
|
855
|
-
'analysis_summary_prompt?: string;',
|
|
856
|
-
'analysis_user_sentiment_prompt?: string;',
|
|
857
851
|
'backchannel_frequency?: number;',
|
|
858
852
|
'backchannel_words?: string[];',
|
|
859
853
|
'begin_message_delay_ms?: number;',
|
|
@@ -906,14 +900,14 @@ const EMBEDDED_METHODS = [
|
|
|
906
900
|
'webhook_url?: string;',
|
|
907
901
|
],
|
|
908
902
|
response: 'object',
|
|
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```",
|
|
903
|
+
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, 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; 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- `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; 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 - `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```",
|
|
910
904
|
perLanguage: {
|
|
911
905
|
typescript: {
|
|
912
906
|
method: 'client.agent.update',
|
|
913
907
|
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);",
|
|
914
908
|
},
|
|
915
909
|
http: {
|
|
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
|
|
910
|
+
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 "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 }\'',
|
|
917
911
|
},
|
|
918
912
|
python: {
|
|
919
913
|
method: 'agent.update',
|
|
@@ -984,7 +978,7 @@ const EMBEDDED_METHODS = [
|
|
|
984
978
|
qualified: 'client.agent.createVersion',
|
|
985
979
|
params: ['agent_id: string;', 'base_version: number;'],
|
|
986
980
|
response: 'object | object',
|
|
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;
|
|
981
|
+
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; 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; 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```",
|
|
988
982
|
perLanguage: {
|
|
989
983
|
typescript: {
|
|
990
984
|
method: 'client.agent.createVersion',
|
|
@@ -1033,7 +1027,7 @@ const EMBEDDED_METHODS = [
|
|
|
1033
1027
|
qualified: 'client.agent.getVersions',
|
|
1034
1028
|
params: ['agent_id: string;'],
|
|
1035
1029
|
response: 'object[]',
|
|
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;
|
|
1030
|
+
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; 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```",
|
|
1037
1031
|
perLanguage: {
|
|
1038
1032
|
typescript: {
|
|
1039
1033
|
method: 'client.agent.getVersions',
|
|
@@ -1059,9 +1053,6 @@ const EMBEDDED_METHODS = [
|
|
|
1059
1053
|
params: [
|
|
1060
1054
|
"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; };",
|
|
1061
1055
|
'agent_name?: string;',
|
|
1062
|
-
'analysis_successful_prompt?: string;',
|
|
1063
|
-
'analysis_summary_prompt?: string;',
|
|
1064
|
-
'analysis_user_sentiment_prompt?: string;',
|
|
1065
1056
|
'auto_close_message?: string;',
|
|
1066
1057
|
'data_storage_retention_days?: number;',
|
|
1067
1058
|
"data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only';",
|
|
@@ -1080,15 +1071,15 @@ const EMBEDDED_METHODS = [
|
|
|
1080
1071
|
'webhook_timeout_ms?: number;',
|
|
1081
1072
|
'webhook_url?: string;',
|
|
1082
1073
|
],
|
|
1083
|
-
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: 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```",
|
|
1074
|
+
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: 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; }",
|
|
1075
|
+
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, 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; 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- `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; 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 - `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```",
|
|
1085
1076
|
perLanguage: {
|
|
1086
1077
|
typescript: {
|
|
1087
1078
|
method: 'client.chatAgent.create',
|
|
1088
1079
|
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);",
|
|
1089
1080
|
},
|
|
1090
1081
|
http: {
|
|
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
|
|
1082
|
+
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 "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 }\'',
|
|
1092
1083
|
},
|
|
1093
1084
|
python: {
|
|
1094
1085
|
method: 'chat_agent.create',
|
|
@@ -1105,8 +1096,8 @@ const EMBEDDED_METHODS = [
|
|
|
1105
1096
|
stainlessPath: '(resource) chat_agent > (method) retrieve',
|
|
1106
1097
|
qualified: 'client.chatAgent.retrieve',
|
|
1107
1098
|
params: ['agent_id: string;', 'version?: number | string;'],
|
|
1108
|
-
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: 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;
|
|
1099
|
+
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: 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; }",
|
|
1100
|
+
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; 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; 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 - `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```",
|
|
1110
1101
|
perLanguage: {
|
|
1111
1102
|
typescript: {
|
|
1112
1103
|
method: 'client.chatAgent.retrieve',
|
|
@@ -1135,8 +1126,8 @@ const EMBEDDED_METHODS = [
|
|
|
1135
1126
|
'pagination_key?: string;',
|
|
1136
1127
|
'pagination_key_version?: number;',
|
|
1137
1128
|
],
|
|
1138
|
-
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: 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;
|
|
1129
|
+
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: 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; }[]",
|
|
1130
|
+
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; 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```",
|
|
1140
1131
|
perLanguage: {
|
|
1141
1132
|
typescript: {
|
|
1142
1133
|
method: 'client.chatAgent.list',
|
|
@@ -1163,9 +1154,6 @@ const EMBEDDED_METHODS = [
|
|
|
1163
1154
|
'agent_id: string;',
|
|
1164
1155
|
'version?: number | string;',
|
|
1165
1156
|
'agent_name?: string;',
|
|
1166
|
-
'analysis_successful_prompt?: string;',
|
|
1167
|
-
'analysis_summary_prompt?: string;',
|
|
1168
|
-
'analysis_user_sentiment_prompt?: string;',
|
|
1169
1157
|
'auto_close_message?: string;',
|
|
1170
1158
|
'data_storage_retention_days?: number;',
|
|
1171
1159
|
"data_storage_setting?: 'everything' | 'everything_except_pii' | 'basic_attributes_only';",
|
|
@@ -1185,15 +1173,15 @@ const EMBEDDED_METHODS = [
|
|
|
1185
1173
|
'webhook_timeout_ms?: number;',
|
|
1186
1174
|
'webhook_url?: string;',
|
|
1187
1175
|
],
|
|
1188
|
-
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: 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```",
|
|
1176
|
+
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: 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; }",
|
|
1177
|
+
markdown: "## update\n\n`client.chatAgent.update(agent_id: string, version?: number | string, agent_name?: 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; 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- `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; 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 - `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```",
|
|
1190
1178
|
perLanguage: {
|
|
1191
1179
|
typescript: {
|
|
1192
1180
|
method: 'client.chatAgent.update',
|
|
1193
1181
|
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);",
|
|
1194
1182
|
},
|
|
1195
1183
|
http: {
|
|
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
|
|
1184
|
+
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 "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 }\'',
|
|
1197
1185
|
},
|
|
1198
1186
|
python: {
|
|
1199
1187
|
method: 'chat_agent.update',
|
|
@@ -1264,7 +1252,7 @@ const EMBEDDED_METHODS = [
|
|
|
1264
1252
|
qualified: 'client.chatAgent.createVersion',
|
|
1265
1253
|
params: ['agent_id: string;', 'base_version: number;'],
|
|
1266
1254
|
response: 'object | object',
|
|
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;
|
|
1255
|
+
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; 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; 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```",
|
|
1268
1256
|
perLanguage: {
|
|
1269
1257
|
typescript: {
|
|
1270
1258
|
method: 'client.chatAgent.createVersion',
|
|
@@ -1312,8 +1300,8 @@ const EMBEDDED_METHODS = [
|
|
|
1312
1300
|
stainlessPath: '(resource) chat_agent > (method) get-versions',
|
|
1313
1301
|
qualified: 'client.chatAgent.getVersions',
|
|
1314
1302
|
params: ['agent_id: string;'],
|
|
1315
|
-
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: 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;
|
|
1303
|
+
response: "{ agent_id: string; last_modification_timestamp: number; response_engine: object | object | object; agent_name?: 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; }[]",
|
|
1304
|
+
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; 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```",
|
|
1317
1305
|
perLanguage: {
|
|
1318
1306
|
typescript: {
|
|
1319
1307
|
method: 'client.chatAgent.getVersions',
|
|
@@ -2151,14 +2139,14 @@ const EMBEDDED_METHODS = [
|
|
|
2151
2139
|
qualified: 'client.batchCall.createBatchCall',
|
|
2152
2140
|
params: [
|
|
2153
2141
|
'from_number: string;',
|
|
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;
|
|
2142
|
+
"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; 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; }[];",
|
|
2155
2143
|
"call_time_window?: { windows: { end: number; start: number; }[]; day?: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday'[]; timezone?: string; };",
|
|
2156
2144
|
'name?: string;',
|
|
2157
2145
|
'reserved_concurrency?: number;',
|
|
2158
2146
|
'trigger_timestamp?: number;',
|
|
2159
2147
|
],
|
|
2160
2148
|
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; }; }",
|
|
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;
|
|
2149
|
+
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; 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```",
|
|
2162
2150
|
perLanguage: {
|
|
2163
2151
|
typescript: {
|
|
2164
2152
|
method: 'client.batchCall.createBatchCall',
|