telnyx-mcp 6.68.0 → 6.69.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.
@@ -3185,7 +3185,7 @@ const EMBEDDED_METHODS = [
3185
3185
  'post_conversation_settings?: { enabled?: boolean; };',
3186
3186
  'privacy_settings?: { data_retention?: boolean; };',
3187
3187
  'tags?: string[];',
3188
- "telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; };",
3188
+ "telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; };",
3189
3189
  'tool_ids?: string[];',
3190
3190
  "tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[];",
3191
3191
  'transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; };',
@@ -3193,7 +3193,7 @@ const EMBEDDED_METHODS = [
3193
3193
  "widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; };",
3194
3194
  ],
3195
3195
  response: "{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: object; fallback_config?: object; greeting?: string; import_metadata?: object; insight_settings?: object; integrations?: object[]; interruption_settings?: object; llm_api_key_ref?: string; mcp_servers?: object[]; messaging_settings?: object; observability_settings?: object; post_conversation_settings?: object; privacy_settings?: object; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: object; tools?: inference_embedding_webhook_tool_params | retrieval_tool | object | hangup_tool | object | object | object | object | object | object[]; transcription?: object; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: object; widget_settings?: object; }",
3196
- markdown: "## create\n\n`client.ai.assistants.create(instructions: string, name: string, description?: string, dynamic_variables?: object, dynamic_variables_webhook_timeout_ms?: number, dynamic_variables_webhook_url?: string, enabled_features?: 'telephony' | 'messaging'[], external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }, fallback_config?: { external_llm?: external_llm_req; llm_api_key_ref?: string; model?: string; }, greeting?: string, insight_settings?: { insight_group_id?: string; }, integrations?: { integration_id: string; allowed_list?: string[]; }[], interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }, llm_api_key_ref?: string, mcp_servers?: { id: string; allowed_tools?: string[]; }[], messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }, model?: string, observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }, post_conversation_settings?: { enabled?: boolean; }, privacy_settings?: { data_retention?: boolean; }, tags?: string[], telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }, tool_ids?: string[], tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[], transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }, voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }, widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**post** `/ai/assistants`\n\nCreate a new AI Assistant.\n\n### Parameters\n\n- `instructions: string`\n System instructions for the assistant. These may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)\n\n- `name: string`\n\n- `description?: string`\n\n- `dynamic_variables?: object`\n Map of dynamic variables and their default values\n\n- `dynamic_variables_webhook_timeout_ms?: number`\n Timeout in milliseconds for the dynamic variables webhook. Must be between 1 and 10000 ms. If the webhook does not respond within this timeout, the call proceeds with default values. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables).\n\n- `dynamic_variables_webhook_url?: string`\n If `dynamic_variables_webhook_url` is set, Telnyx sends a POST request to this URL at the start of the conversation to resolve dynamic variables. **Gotcha:** the webhook response must wrap variables under a top-level `dynamic_variables` object, e.g. `{\"dynamic_variables\": {\"customer_name\": \"Jane\"}}`. Returning a flat object will be ignored and variables will fall back to their defaults. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) for the full request/response format and timeout behavior.\n\n- `enabled_features?: 'telephony' | 'messaging'[]`\n\n- `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `base_url: string`\n Base URL for the external LLM endpoint.\n - `model: string`\n Model identifier to use with the external LLM endpoint.\n - `authentication_method?: 'token' | 'certificate'`\n Authentication method used when connecting to the external LLM endpoint.\n - `certificate_ref?: string`\n Integration secret identifier for the client certificate used with certificate authentication.\n - `forward_metadata?: boolean`\n When `true`, Telnyx forwards the assistant's dynamic variables to the external LLM endpoint as a top-level `extra_metadata` object on the chat completion request body. Defaults to `false`. Example payload sent to the external endpoint: `{\"extra_metadata\": {\"customer_name\": \"Jane\", \"account_id\": \"acct_789\", \"telnyx_agent_target\": \"+13125550100\", \"telnyx_end_user_target\": \"+13125550123\"}}`. Distinct from OpenAI's native `metadata` field, which has its own size and type limits.\n - `llm_api_key_ref?: string`\n Integration secret identifier for the external LLM API key.\n - `token_retrieval_url?: string`\n URL used to retrieve an access token when certificate authentication is enabled.\n\n- `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `llm_api_key_ref?: string`\n Integration secret identifier for the fallback model API key.\n - `model?: string`\n Fallback Telnyx-hosted model to use when the primary LLM provider is unavailable.\n\n- `greeting?: string`\n Text that the assistant will use to start the conversation. This may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables). Use an empty string to have the assistant wait for the user to speak first. Use the special value `<assistant-speaks-first-with-model-generated-message>` to have the assistant generate the greeting based on the system instructions.\n\n- `insight_settings?: { insight_group_id?: string; }`\n - `insight_group_id?: string`\n Reference to an Insight Group. Insights in this group will be run automatically for all the assistant's conversations.\n\n- `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n Connected integrations attached to the assistant. The catalog of available integrations is at `/ai/integrations`; the user's connected integrations are at `/ai/integrations/connections`. Each item references a catalog integration by `integration_id`.\n\n- `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n Settings for interruptions and how the assistant decides the user has finished speaking. These timings are most relevant when using non turn-taking transcription models. For turn-taking models like `deepgram/flux`, end-of-turn behavior is controlled by the transcription end-of-turn settings under `transcription.settings` (`eot_threshold`, `eot_timeout_ms`, `eager_eot_threshold`).\n - `disable_greeting_interruption?: boolean`\n When true, disables user interruptions while the assistant greeting is playing.\n - `enable?: boolean`\n Whether users can interrupt the assistant while it is speaking.\n - `start_speaking_plan?: { transcription_endpointing_plan?: { on_no_punctuation_seconds?: number; on_number_seconds?: number; on_punctuation_seconds?: number; }; wait_seconds?: number; }`\n Controls when the assistant starts speaking after the user stops. These thresholds primarily apply to non turn-taking transcription models. For turn-taking models like `deepgram/flux`, end-of-turn detection is driven by the transcription end-of-turn settings under `transcription.settings` instead.\n\n- `llm_api_key_ref?: string`\n This is only needed when using third-party inference providers selected by `model`. The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your LLM provider's API key. For bring-your-own endpoint authentication, use `external_llm.llm_api_key_ref` instead. Warning: Free plans are unlikely to work with this integration.\n\n- `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n MCP servers attached to the assistant. Create MCP servers with `/ai/mcp_servers`, then reference them by `id` here.\n\n- `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `conversation_inactivity_minutes?: number`\n If more than this many minutes have passed since the last message, the assistant will start a new conversation instead of continuing the existing one.\n - `default_messaging_profile_id?: string`\n Default Messaging Profile used for messaging exchanges with your assistant. This will be created automatically on assistant creation.\n - `delivery_status_webhook_url?: string`\n The URL where webhooks related to delivery statused for assistant messages will be sent.\n\n- `model?: string`\n ID of the model to use when `external_llm` is not set. You can use the [Get models API](https://developers.telnyx.com/api-reference/openai-chat/get-available-models-openai-compatible) to see available models. If `external_llm` is provided, the assistant uses `external_llm` instead of this field. If neither `model` nor `external_llm` is provided, Telnyx applies the default model.\n\n- `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `host?: string`\n - `prompt_label?: string`\n - `prompt_name?: string`\n - `prompt_sync?: 'enabled' | 'disabled'`\n Whether to auto-publish the assistant's instructions as a Langfuse prompt.\n\nWhen ENABLED + prompt_name set, every assistant create/update pushes\n`instructions` to Langfuse via create_prompt and stores the returned\nversion in prompt_version.\n - `prompt_version?: number`\n - `public_key_ref?: string`\n - `secret_key_ref?: string`\n - `status?: 'enabled' | 'disabled'`\n\n- `post_conversation_settings?: { enabled?: boolean; }`\n Configuration for post-conversation processing. When enabled, the assistant receives one additional LLM turn after the conversation ends, allowing it to execute tool calls such as logging to a CRM or sending a summary. The assistant can execute multiple parallel or sequential tools during this phase. Telephony-control tools (e.g. hangup, transfer) are unavailable post-conversation. Beta feature.\n - `enabled?: boolean`\n Whether post-conversation processing is enabled. When true, the assistant will be invoked after the conversation ends to perform any final tool calls. Defaults to false.\n\n- `privacy_settings?: { data_retention?: boolean; }`\n - `data_retention?: boolean`\n If true, conversation history and insights will be stored. If false, they will not be stored. This in‑tool toggle governs solely the retention of conversation history and insights via the AI assistant. It has no effect on any separate recording, transcription, or storage configuration that you have set at the account, number, or application level. All such external settings remain in force regardless of your selection here.\n\n- `tags?: string[]`\n Tags associated with the assistant. Tags can also be managed with the assistant tag endpoints.\n\n- `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `default_texml_app_id?: string`\n Default Texml App used for voice calls with your assistant. This will be created automatically on assistant creation.\n - `noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'`\n The noise suppression engine to use. Use 'disabled' to turn off noise suppression.\n - `noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }`\n Configuration for noise suppression. Only applicable when noise_suppression is 'deepfilternet'.\n - `recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }`\n Configuration for call recording format and channel settings.\n - `supports_unauthenticated_web_calls?: boolean`\n When enabled, allows users to interact with your AI assistant directly from your website without requiring authentication. This is required for FE widgets that work with assistants that have telephony enabled.\n - `time_limit_secs?: number`\n Maximum duration in seconds for the AI assistant to participate on the call. When this limit is reached the assistant will be stopped. This limit does not apply to portions of a call without an active assistant (for instance, a call transferred to a human representative).\n - `user_idle_reply_secs?: number`\n Duration in seconds of end user silence before the assistant checks in on the user. When this limit is reached the assistant will prompt the user to respond. This is distinct from user_idle_timeout_secs which stops the assistant entirely.\n - `user_idle_timeout_secs?: number`\n Maximum duration in seconds of end user silence on the call. When this limit is reached the assistant will be stopped. This limit does not apply to portions of a call without an active assistant (for instance, a call transferred to a human representative).\n - `voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: { message?: string; prompt?: string; type?: 'prompt' | 'message'; }; }; }`\n Configuration for voicemail detection (AMD - Answering Machine Detection) on outgoing calls. These settings only apply if AMD is enabled on the Dial command. See [TeXML Dial documentation](https://developers.telnyx.com/api-reference/texml-rest-commands/initiate-an-outbound-call) for enabling AMD. Recommended settings: MachineDetection=Enable, AsyncAmd=true, DetectionMode=Premium.\n\n- `tool_ids?: string[]`\n IDs of shared tools to attach to the assistant. New integrations should prefer `tool_ids` over inline `tools`.\n\n- `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n Deprecated for new integrations. Inline tool definitions available to the assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools endpoints.\n\n- `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `api_key_ref?: string`\n Integration secret identifier for the transcription provider API key. Currently used for Azure transcription regions that require a customer-provided API key.\n - `language?: string`\n The language of the audio to be transcribed. If not set, or if set to `auto`, supported models will automatically detect the language. For `deepgram/flux`, supported values are: `auto` (Telnyx language detection controls the language hint), `multi` (no language hint), and language-specific hints `en`, `es`, `fr`, `de`, `hi`, `ru`, `pt`, `ja`, `it`, and `nl`. For `soniox/stt-rt-v4`, `auto` omits the language hint and lets Soniox auto-detect; ISO 639-1 codes (e.g. `en`, `es`) bias detection toward that language.\n - `model?: string`\n The speech to text model to be used by the voice assistant. All Deepgram models are run on-premise.\n\n- `deepgram/flux` is optimized for turn-taking with multilingual language hints.\n- `deepgram/nova-3` is multilingual with automatic language detection.\n- `deepgram/nova-2` is Deepgram's previous-generation multilingual model.\n- `azure/fast` is a multilingual Azure transcription model.\n- `assemblyai/universal-streaming` is a multilingual streaming model with configurable turn detection.\n- `xai/grok-stt` is a multilingual Grok STT model.\n- `soniox/stt-rt-v4` is a multilingual streaming model with automatic language detection and configurable endpointing.\n - `region?: string`\n Region on third party cloud providers (currently Azure) if using one of their models. Some regions require `api_key_ref`.\n - `settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }`\n\n- `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `voice: string`\n The voice to be used by the voice assistant. Check the full list of [available voices](https://developers.telnyx.com/docs/tts-stt/tts-available-voices) via our voices API.\nTo use ElevenLabs, you must reference your ElevenLabs API key as an integration secret under the `api_key_ref` field. See [integration secrets documentation](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) for details. For Telnyx voices, use `Telnyx.<model_id>.<voice_id>` (e.g. Telnyx.KokoroTTS.af_heart).\nThe voice portion of the identifier supports [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) using mustache syntax (e.g. `Telnyx.Ultra.{{voice_id}}`). The variable is resolved at call time from your dynamic variables webhook, allowing you to select the voice dynamically per call.\n - `api_key_ref?: string`\n The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your ElevenLabs API key. Warning: Free plans are unlikely to work with this integration.\n - `background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }`\n Optional background audio to play on the call. Use a predefined media bed, or supply a looped MP3 URL. If a media URL is chosen in the portal, customers can preview it before saving.\n - `expressive_mode?: boolean`\n Enables emotionally expressive speech using SSML emotion tags. When enabled, the assistant uses audio tags like angry, excited, content, and sad to add emotional nuance. Only supported for Telnyx Ultra voices.\n - `language_boost?: string`\n Enhances recognition for specific languages and dialects during MiniMax TTS synthesis. Default is null (no boost). Set to 'auto' for automatic language detection. Only applicable when using MiniMax voices.\n - `similarity_boost?: number`\n Determines how closely the AI should adhere to the original voice when attempting to replicate it. Only applicable when using ElevenLabs.\n - `speed?: number`\n Adjusts speech velocity. 1.0 is default speed; values less than 1.0 slow speech; values greater than 1.0 accelerate it. Only applicable when using ElevenLabs.\n - `style?: number`\n Determines the style exaggeration of the voice. Amplifies speaker style but consumes additional resources when set above 0. Only applicable when using ElevenLabs.\n - `temperature?: number`\n Determines how stable the voice is and the randomness between each generation. Lower values create a broader emotional range; higher values produce more consistent, monotonous output. Only applicable when using ElevenLabs.\n - `use_speaker_boost?: boolean`\n Amplifies similarity to the original speaker voice. Increases computational load and latency slightly. Only applicable when using ElevenLabs.\n - `voice_speed?: number`\n The speed of the voice in the range [0.25, 2.0]. 1.0 is deafult speed. Larger numbers make the voice faster, smaller numbers make it slower. This is only applicable for Telnyx Natural voices.\n\n- `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n Configuration settings for the assistant's web widget.\n - `agent_thinking_text?: string`\n Text displayed while the agent is processing.\n - `audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }`\n - `default_state?: 'expanded' | 'collapsed'`\n The default state of the widget.\n - `give_feedback_url?: string`\n URL for users to give feedback.\n - `logo_icon_url?: string`\n URL to a custom logo icon for the widget.\n - `position?: 'fixed' | 'static'`\n The positioning style for the widget.\n - `report_issue_url?: string`\n URL for users to report issues.\n - `speak_to_interrupt_text?: string`\n Text prompting users to speak to interrupt.\n - `start_call_text?: string`\n Custom text displayed on the start call button.\n - `theme?: 'light' | 'dark'`\n The visual theme for the widget.\n - `view_history_url?: string`\n URL to view conversation history.\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.create({ instructions: 'instructions', name: 'name' });\n\nconsole.log(inferenceEmbedding);\n```",
3196
+ markdown: "## create\n\n`client.ai.assistants.create(instructions: string, name: string, description?: string, dynamic_variables?: object, dynamic_variables_webhook_timeout_ms?: number, dynamic_variables_webhook_url?: string, enabled_features?: 'telephony' | 'messaging'[], external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }, fallback_config?: { external_llm?: external_llm_req; llm_api_key_ref?: string; model?: string; }, greeting?: string, insight_settings?: { insight_group_id?: string; }, integrations?: { integration_id: string; allowed_list?: string[]; }[], interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }, llm_api_key_ref?: string, mcp_servers?: { id: string; allowed_tools?: string[]; }[], messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }, model?: string, observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }, post_conversation_settings?: { enabled?: boolean; }, privacy_settings?: { data_retention?: boolean; }, tags?: string[], telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }, tool_ids?: string[], tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[], transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }, voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }, widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**post** `/ai/assistants`\n\nCreate a new AI Assistant.\n\n### Parameters\n\n- `instructions: string`\n System instructions for the assistant. These may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)\n\n- `name: string`\n\n- `description?: string`\n\n- `dynamic_variables?: object`\n Map of dynamic variables and their default values\n\n- `dynamic_variables_webhook_timeout_ms?: number`\n Timeout in milliseconds for the dynamic variables webhook. Must be between 1 and 10000 ms. If the webhook does not respond within this timeout, the call proceeds with default values. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables).\n\n- `dynamic_variables_webhook_url?: string`\n If `dynamic_variables_webhook_url` is set, Telnyx sends a POST request to this URL at the start of the conversation to resolve dynamic variables. **Gotcha:** the webhook response must wrap variables under a top-level `dynamic_variables` object, e.g. `{\"dynamic_variables\": {\"customer_name\": \"Jane\"}}`. Returning a flat object will be ignored and variables will fall back to their defaults. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) for the full request/response format and timeout behavior.\n\n- `enabled_features?: 'telephony' | 'messaging'[]`\n\n- `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `base_url: string`\n Base URL for the external LLM endpoint.\n - `model: string`\n Model identifier to use with the external LLM endpoint.\n - `authentication_method?: 'token' | 'certificate'`\n Authentication method used when connecting to the external LLM endpoint.\n - `certificate_ref?: string`\n Integration secret identifier for the client certificate used with certificate authentication.\n - `forward_metadata?: boolean`\n When `true`, Telnyx forwards the assistant's dynamic variables to the external LLM endpoint as a top-level `extra_metadata` object on the chat completion request body. Defaults to `false`. Example payload sent to the external endpoint: `{\"extra_metadata\": {\"customer_name\": \"Jane\", \"account_id\": \"acct_789\", \"telnyx_agent_target\": \"+13125550100\", \"telnyx_end_user_target\": \"+13125550123\"}}`. Distinct from OpenAI's native `metadata` field, which has its own size and type limits.\n - `llm_api_key_ref?: string`\n Integration secret identifier for the external LLM API key.\n - `token_retrieval_url?: string`\n URL used to retrieve an access token when certificate authentication is enabled.\n\n- `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `llm_api_key_ref?: string`\n Integration secret identifier for the fallback model API key.\n - `model?: string`\n Fallback Telnyx-hosted model to use when the primary LLM provider is unavailable.\n\n- `greeting?: string`\n Text that the assistant will use to start the conversation. This may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables). Use an empty string to have the assistant wait for the user to speak first. Use the special value `<assistant-speaks-first-with-model-generated-message>` to have the assistant generate the greeting based on the system instructions.\n\n- `insight_settings?: { insight_group_id?: string; }`\n - `insight_group_id?: string`\n Reference to an Insight Group. Insights in this group will be run automatically for all the assistant's conversations.\n\n- `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n Connected integrations attached to the assistant. The catalog of available integrations is at `/ai/integrations`; the user's connected integrations are at `/ai/integrations/connections`. Each item references a catalog integration by `integration_id`.\n\n- `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n Settings for interruptions and how the assistant decides the user has finished speaking. These timings are most relevant when using non turn-taking transcription models. For turn-taking models like `deepgram/flux`, end-of-turn behavior is controlled by the transcription end-of-turn settings under `transcription.settings` (`eot_threshold`, `eot_timeout_ms`, `eager_eot_threshold`).\n - `disable_greeting_interruption?: boolean`\n When true, disables user interruptions while the assistant greeting is playing.\n - `enable?: boolean`\n Whether users can interrupt the assistant while it is speaking.\n - `start_speaking_plan?: { transcription_endpointing_plan?: { on_no_punctuation_seconds?: number; on_number_seconds?: number; on_punctuation_seconds?: number; }; wait_seconds?: number; }`\n Controls when the assistant starts speaking after the user stops. These thresholds primarily apply to non turn-taking transcription models. For turn-taking models like `deepgram/flux`, end-of-turn detection is driven by the transcription end-of-turn settings under `transcription.settings` instead.\n\n- `llm_api_key_ref?: string`\n This is only needed when using third-party inference providers selected by `model`. The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your LLM provider's API key. For bring-your-own endpoint authentication, use `external_llm.llm_api_key_ref` instead. Warning: Free plans are unlikely to work with this integration.\n\n- `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n MCP servers attached to the assistant. Create MCP servers with `/ai/mcp_servers`, then reference them by `id` here.\n\n- `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `conversation_inactivity_minutes?: number`\n If more than this many minutes have passed since the last message, the assistant will start a new conversation instead of continuing the existing one.\n - `default_messaging_profile_id?: string`\n Default Messaging Profile used for messaging exchanges with your assistant. This will be created automatically on assistant creation.\n - `delivery_status_webhook_url?: string`\n The URL where webhooks related to delivery statused for assistant messages will be sent.\n\n- `model?: string`\n ID of the model to use when `external_llm` is not set. You can use the [Get models API](https://developers.telnyx.com/api-reference/openai-chat/get-available-models-openai-compatible) to see available models. If `external_llm` is provided, the assistant uses `external_llm` instead of this field. If neither `model` nor `external_llm` is provided, Telnyx applies the default model.\n\n- `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `host?: string`\n - `prompt_label?: string`\n - `prompt_name?: string`\n - `prompt_sync?: 'enabled' | 'disabled'`\n Whether to auto-publish the assistant's instructions as a Langfuse prompt.\n\nWhen ENABLED + prompt_name set, every assistant create/update pushes\n`instructions` to Langfuse via create_prompt and stores the returned\nversion in prompt_version.\n - `prompt_version?: number`\n - `public_key_ref?: string`\n - `secret_key_ref?: string`\n - `status?: 'enabled' | 'disabled'`\n\n- `post_conversation_settings?: { enabled?: boolean; }`\n Configuration for post-conversation processing. When enabled, the assistant receives one additional LLM turn after the conversation ends, allowing it to execute tool calls such as logging to a CRM or sending a summary. The assistant can execute multiple parallel or sequential tools during this phase. Telephony-control tools (e.g. hangup, transfer) are unavailable post-conversation. Beta feature.\n - `enabled?: boolean`\n Whether post-conversation processing is enabled. When true, the assistant will be invoked after the conversation ends to perform any final tool calls. Defaults to false.\n\n- `privacy_settings?: { data_retention?: boolean; }`\n - `data_retention?: boolean`\n If true, conversation history and insights will be stored. If false, they will not be stored. This in‑tool toggle governs solely the retention of conversation history and insights via the AI assistant. It has no effect on any separate recording, transcription, or storage configuration that you have set at the account, number, or application level. All such external settings remain in force regardless of your selection here.\n\n- `tags?: string[]`\n Tags associated with the assistant. Tags can also be managed with the assistant tag endpoints.\n\n- `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `default_texml_app_id?: string`\n Default Texml App used for voice calls with your assistant. This will be created automatically on assistant creation.\n - `noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'`\n The noise suppression engine to use. Use 'disabled' to turn off noise suppression.\n - `noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }`\n Configuration for noise suppression. Only applicable when noise_suppression is 'deepfilternet'.\n - `recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }`\n Configuration for call recording format and channel settings.\n - `supports_unauthenticated_web_calls?: boolean`\n When enabled, allows users to interact with your AI assistant directly from your website without requiring authentication. This is required for FE widgets that work with assistants that have telephony enabled.\n - `time_limit_secs?: number`\n Maximum duration in seconds for the AI assistant to participate on the call. When this limit is reached the assistant will be stopped. This limit does not apply to portions of a call without an active assistant (for instance, a call transferred to a human representative).\n - `user_idle_reply_secs?: number`\n Duration in seconds of end user silence before the assistant checks in on the user. When this limit is reached the assistant will prompt the user to respond. This is distinct from user_idle_timeout_secs which stops the assistant entirely.\n - `user_idle_timeout_secs?: number`\n Maximum duration in seconds of end user silence on the call. When this limit is reached the assistant will be stopped. This limit does not apply to portions of a call without an active assistant (for instance, a call transferred to a human representative).\n - `voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: { message?: string; prompt?: string; type?: 'prompt' | 'message'; }; }; }`\n Configuration for voicemail detection (AMD - Answering Machine Detection) on outgoing calls. These settings only apply if AMD is enabled on the Dial command. See [TeXML Dial documentation](https://developers.telnyx.com/api-reference/texml-rest-commands/initiate-an-outbound-call) for enabling AMD. Recommended settings: MachineDetection=Enable, AsyncAmd=true, DetectionMode=Premium.\n\n- `tool_ids?: string[]`\n IDs of shared tools to attach to the assistant. New integrations should prefer `tool_ids` over inline `tools`.\n\n- `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n Deprecated for new integrations. Inline tool definitions available to the assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools endpoints.\n\n- `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `api_key_ref?: string`\n Integration secret identifier for the transcription provider API key. Currently used for Azure transcription regions that require a customer-provided API key.\n - `language?: string`\n The language of the audio to be transcribed. If not set, or if set to `auto`, supported models will automatically detect the language. For `deepgram/flux`, supported values are: `auto` (Telnyx language detection controls the language hint), `multi` (no language hint), and language-specific hints `en`, `es`, `fr`, `de`, `hi`, `ru`, `pt`, `ja`, `it`, and `nl`. For `soniox/stt-rt-v4`, `auto` omits the language hint and lets Soniox auto-detect; ISO 639-1 codes (e.g. `en`, `es`) bias detection toward that language.\n - `model?: string`\n The speech to text model to be used by the voice assistant. All Deepgram models are run on-premise.\n\n- `deepgram/flux` is optimized for turn-taking with multilingual language hints.\n- `deepgram/nova-3` is multilingual with automatic language detection.\n- `deepgram/nova-2` is Deepgram's previous-generation multilingual model.\n- `azure/fast` is a multilingual Azure transcription model.\n- `assemblyai/universal-streaming` is a multilingual streaming model with configurable turn detection.\n- `xai/grok-stt` is a multilingual Grok STT model.\n- `soniox/stt-rt-v4` is a multilingual streaming model with automatic language detection and configurable endpointing.\n - `region?: string`\n Region on third party cloud providers (currently Azure) if using one of their models. Some regions require `api_key_ref`.\n - `settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }`\n\n- `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `voice: string`\n The voice to be used by the voice assistant. Check the full list of [available voices](https://developers.telnyx.com/docs/tts-stt/tts-available-voices) via our voices API.\nTo use ElevenLabs, you must reference your ElevenLabs API key as an integration secret under the `api_key_ref` field. See [integration secrets documentation](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) for details. For Telnyx voices, use `Telnyx.<model_id>.<voice_id>` (e.g. Telnyx.KokoroTTS.af_heart).\nThe voice portion of the identifier supports [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) using mustache syntax (e.g. `Telnyx.Ultra.{{voice_id}}`). The variable is resolved at call time from your dynamic variables webhook, allowing you to select the voice dynamically per call.\n - `api_key_ref?: string`\n The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your ElevenLabs API key. Warning: Free plans are unlikely to work with this integration.\n - `background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }`\n Optional background audio to play on the call. Use a predefined media bed, or supply a looped MP3 URL. If a media URL is chosen in the portal, customers can preview it before saving.\n - `expressive_mode?: boolean`\n Enables emotionally expressive speech using SSML emotion tags. When enabled, the assistant uses audio tags like angry, excited, content, and sad to add emotional nuance. Only supported for Telnyx Ultra voices.\n - `language_boost?: string`\n Enhances recognition for specific languages and dialects during MiniMax TTS synthesis. Default is null (no boost). Set to 'auto' for automatic language detection. Only applicable when using MiniMax voices.\n - `similarity_boost?: number`\n Determines how closely the AI should adhere to the original voice when attempting to replicate it. Only applicable when using ElevenLabs.\n - `speed?: number`\n Adjusts speech velocity. 1.0 is default speed; values less than 1.0 slow speech; values greater than 1.0 accelerate it. Only applicable when using ElevenLabs.\n - `style?: number`\n Determines the style exaggeration of the voice. Amplifies speaker style but consumes additional resources when set above 0. Only applicable when using ElevenLabs.\n - `temperature?: number`\n Determines how stable the voice is and the randomness between each generation. Lower values create a broader emotional range; higher values produce more consistent, monotonous output. Only applicable when using ElevenLabs.\n - `use_speaker_boost?: boolean`\n Amplifies similarity to the original speaker voice. Increases computational load and latency slightly. Only applicable when using ElevenLabs.\n - `voice_speed?: number`\n The speed of the voice in the range [0.25, 2.0]. 1.0 is deafult speed. Larger numbers make the voice faster, smaller numbers make it slower. This is only applicable for Telnyx Natural voices.\n\n- `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n Configuration settings for the assistant's web widget.\n - `agent_thinking_text?: string`\n Text displayed while the agent is processing.\n - `audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }`\n - `default_state?: 'expanded' | 'collapsed'`\n The default state of the widget.\n - `give_feedback_url?: string`\n URL for users to give feedback.\n - `logo_icon_url?: string`\n URL to a custom logo icon for the widget.\n - `position?: 'fixed' | 'static'`\n The positioning style for the widget.\n - `report_issue_url?: string`\n URL for users to report issues.\n - `speak_to_interrupt_text?: string`\n Text prompting users to speak to interrupt.\n - `start_call_text?: string`\n Custom text displayed on the start call button.\n - `theme?: 'light' | 'dark'`\n The visual theme for the widget.\n - `view_history_url?: string`\n URL to view conversation history.\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.create({ instructions: 'instructions', name: 'name' });\n\nconsole.log(inferenceEmbedding);\n```",
3197
3197
  perLanguage: {
3198
3198
  typescript: {
3199
3199
  method: 'client.ai.assistants.create',
@@ -3221,7 +3221,7 @@ const EMBEDDED_METHODS = [
3221
3221
  },
3222
3222
  php: {
3223
3223
  method: 'ai->assistants->create',
3224
- example: "<?php\n\nrequire_once dirname(__DIR__) . '/vendor/autoload.php';\n\n$client = new Client(apiKey: 'My API Key');\n\n$inferenceEmbedding = $client->ai->assistants->create(\n instructions: 'instructions',\n name: 'name',\n description: 'description',\n dynamicVariables: ['foo' => 'bar'],\n dynamicVariablesWebhookTimeoutMs: 1,\n dynamicVariablesWebhookURL: 'dynamic_variables_webhook_url',\n enabledFeatures: [EnabledFeatures::TELEPHONY],\n externalLlm: [\n 'baseURL' => 'base_url',\n 'model' => 'model',\n 'authenticationMethod' => 'token',\n 'certificateRef' => 'certificate_ref',\n 'forwardMetadata' => true,\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'tokenRetrievalURL' => 'token_retrieval_url',\n ],\n fallbackConfig: [\n 'externalLlm' => [\n 'baseURL' => 'base_url',\n 'model' => 'model',\n 'authenticationMethod' => 'token',\n 'certificateRef' => 'certificate_ref',\n 'forwardMetadata' => true,\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'tokenRetrievalURL' => 'token_retrieval_url',\n ],\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'model' => 'model',\n ],\n greeting: 'greeting',\n insightSettings: ['insightGroupID' => 'insight_group_id'],\n integrations: [\n ['integrationID' => 'integration_id', 'allowedList' => ['string']]\n ],\n interruptionSettings: [\n 'disableGreetingInterruption' => true,\n 'enable' => true,\n 'startSpeakingPlan' => [\n 'transcriptionEndpointingPlan' => [\n 'onNoPunctuationSeconds' => 0,\n 'onNumberSeconds' => 0,\n 'onPunctuationSeconds' => 0,\n ],\n 'waitSeconds' => 0,\n ],\n ],\n llmAPIKeyRef: 'llm_api_key_ref',\n mcpServers: [['id' => 'id', 'allowedTools' => ['string']]],\n messagingSettings: [\n 'conversationInactivityMinutes' => 1,\n 'defaultMessagingProfileID' => 'default_messaging_profile_id',\n 'deliveryStatusWebhookURL' => 'delivery_status_webhook_url',\n ],\n model: 'model',\n observabilitySettings: [\n 'host' => 'host',\n 'promptLabel' => 'prompt_label',\n 'promptName' => 'prompt_name',\n 'promptSync' => 'enabled',\n 'promptVersion' => 1,\n 'publicKeyRef' => 'public_key_ref',\n 'secretKeyRef' => 'secret_key_ref',\n 'status' => 'enabled',\n ],\n postConversationSettings: ['enabled' => true],\n privacySettings: ['dataRetention' => true],\n tags: ['string'],\n telephonySettings: [\n 'defaultTexmlAppID' => 'default_texml_app_id',\n 'noiseSuppression' => 'krisp',\n 'noiseSuppressionConfig' => ['attenuationLimit' => 0, 'mode' => 'advanced'],\n 'recordingSettings' => [\n 'channels' => 'single', 'enabled' => true, 'format' => 'wav'\n ],\n 'supportsUnauthenticatedWebCalls' => true,\n 'timeLimitSecs' => 30,\n 'userIdleReplySecs' => 0,\n 'userIdleTimeoutSecs' => 10,\n 'voicemailDetection' => [\n 'onVoicemailDetected' => [\n 'action' => 'stop_assistant',\n 'voicemailMessage' => [\n 'message' => 'message', 'prompt' => 'prompt', 'type' => 'prompt'\n ],\n ],\n ],\n ],\n toolIDs: ['string'],\n tools: [\n [\n 'type' => 'webhook',\n 'webhook' => [\n 'description' => 'description',\n 'name' => 'name',\n 'url' => 'https://example.com/api/v1/function',\n 'async' => true,\n 'asyncTimeoutMs' => 1,\n 'bodyParameters' => [\n 'properties' => ['age' => 'bar', 'location' => 'bar'],\n 'required' => ['age', 'location'],\n 'type' => 'object',\n ],\n 'headers' => [['name' => 'name', 'value' => 'value']],\n 'method' => 'GET',\n 'pathParameters' => [\n 'properties' => ['id' => 'bar'],\n 'required' => ['id'],\n 'type' => 'object',\n ],\n 'queryParameters' => [\n 'properties' => ['page' => 'bar'],\n 'required' => ['page'],\n 'type' => 'object',\n ],\n 'storeFieldsAsVariables' => [['name' => 'x', 'valuePath' => 'x']],\n 'timeoutMs' => 500,\n ],\n ],\n ],\n transcription: [\n 'apiKeyRef' => 'api_key_ref',\n 'language' => 'language',\n 'model' => 'deepgram/flux',\n 'region' => 'region',\n 'settings' => [\n 'eagerEotThreshold' => 0.3,\n 'enableEndpointDetection' => true,\n 'endOfTurnConfidenceThreshold' => 0,\n 'eotThreshold' => 0.5,\n 'eotTimeoutMs' => 500,\n 'interimResults' => true,\n 'keyterm' => 'keyterm',\n 'maxEndpointDelayMs' => 500,\n 'maxTurnSilence' => 100,\n 'minTurnSilence' => 100,\n 'numerals' => true,\n 'smartFormat' => true,\n ],\n ],\n voiceSettings: [\n 'voice' => 'voice',\n 'apiKeyRef' => 'api_key_ref',\n 'backgroundAudio' => [\n 'type' => 'predefined_media', 'value' => 'silence', 'volume' => 0.1\n ],\n 'expressiveMode' => true,\n 'languageBoost' => 'auto',\n 'similarityBoost' => 0,\n 'speed' => 0,\n 'style' => 0,\n 'temperature' => 0,\n 'useSpeakerBoost' => true,\n 'voiceSpeed' => 0,\n ],\n widgetSettings: [\n 'agentThinkingText' => 'agent_thinking_text',\n 'audioVisualizerConfig' => ['color' => 'verdant', 'preset' => 'preset'],\n 'defaultState' => 'expanded',\n 'giveFeedbackURL' => 'give_feedback_url',\n 'logoIconURL' => 'logo_icon_url',\n 'position' => 'fixed',\n 'reportIssueURL' => 'report_issue_url',\n 'speakToInterruptText' => 'speak_to_interrupt_text',\n 'startCallText' => 'start_call_text',\n 'theme' => 'light',\n 'viewHistoryURL' => 'view_history_url',\n ],\n);\n\nvar_dump($inferenceEmbedding);",
3224
+ example: "<?php\n\nrequire_once dirname(__DIR__) . '/vendor/autoload.php';\n\n$client = new Client(apiKey: 'My API Key');\n\n$inferenceEmbedding = $client->ai->assistants->create(\n instructions: 'instructions',\n name: 'name',\n description: 'description',\n dynamicVariables: ['foo' => 'bar'],\n dynamicVariablesWebhookTimeoutMs: 1,\n dynamicVariablesWebhookURL: 'dynamic_variables_webhook_url',\n enabledFeatures: [EnabledFeatures::TELEPHONY],\n externalLlm: [\n 'baseURL' => 'base_url',\n 'model' => 'model',\n 'authenticationMethod' => 'token',\n 'certificateRef' => 'certificate_ref',\n 'forwardMetadata' => true,\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'tokenRetrievalURL' => 'token_retrieval_url',\n ],\n fallbackConfig: [\n 'externalLlm' => [\n 'baseURL' => 'base_url',\n 'model' => 'model',\n 'authenticationMethod' => 'token',\n 'certificateRef' => 'certificate_ref',\n 'forwardMetadata' => true,\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'tokenRetrievalURL' => 'token_retrieval_url',\n ],\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'model' => 'model',\n ],\n greeting: 'greeting',\n insightSettings: ['insightGroupID' => 'insight_group_id'],\n integrations: [\n ['integrationID' => 'integration_id', 'allowedList' => ['string']]\n ],\n interruptionSettings: [\n 'disableGreetingInterruption' => true,\n 'enable' => true,\n 'startSpeakingPlan' => [\n 'transcriptionEndpointingPlan' => [\n 'onNoPunctuationSeconds' => 0,\n 'onNumberSeconds' => 0,\n 'onPunctuationSeconds' => 0,\n ],\n 'waitSeconds' => 0,\n ],\n ],\n llmAPIKeyRef: 'llm_api_key_ref',\n mcpServers: [['id' => 'id', 'allowedTools' => ['string']]],\n messagingSettings: [\n 'conversationInactivityMinutes' => 1,\n 'defaultMessagingProfileID' => 'default_messaging_profile_id',\n 'deliveryStatusWebhookURL' => 'delivery_status_webhook_url',\n ],\n model: 'model',\n observabilitySettings: [\n 'host' => 'host',\n 'promptLabel' => 'prompt_label',\n 'promptName' => 'prompt_name',\n 'promptSync' => 'enabled',\n 'promptVersion' => 1,\n 'publicKeyRef' => 'public_key_ref',\n 'secretKeyRef' => 'secret_key_ref',\n 'status' => 'enabled',\n ],\n postConversationSettings: ['enabled' => true],\n privacySettings: ['dataRetention' => true],\n tags: ['string'],\n telephonySettings: [\n 'defaultTexmlAppID' => 'default_texml_app_id',\n 'noiseSuppression' => 'krisp',\n 'noiseSuppressionConfig' => ['attenuationLimit' => 0, 'mode' => 'advanced'],\n 'recordingSettings' => [\n 'channels' => 'single',\n 'enabled' => true,\n 'format' => 'wav',\n 'stopOnConversationEnd' => true,\n ],\n 'supportsUnauthenticatedWebCalls' => true,\n 'timeLimitSecs' => 30,\n 'userIdleReplySecs' => 0,\n 'userIdleTimeoutSecs' => 10,\n 'voicemailDetection' => [\n 'onVoicemailDetected' => [\n 'action' => 'stop_assistant',\n 'voicemailMessage' => [\n 'message' => 'message', 'prompt' => 'prompt', 'type' => 'prompt'\n ],\n ],\n ],\n ],\n toolIDs: ['string'],\n tools: [\n [\n 'type' => 'webhook',\n 'webhook' => [\n 'description' => 'description',\n 'name' => 'name',\n 'url' => 'https://example.com/api/v1/function',\n 'async' => true,\n 'asyncTimeoutMs' => 1,\n 'bodyParameters' => [\n 'properties' => ['age' => 'bar', 'location' => 'bar'],\n 'required' => ['age', 'location'],\n 'type' => 'object',\n ],\n 'headers' => [['name' => 'name', 'value' => 'value']],\n 'method' => 'GET',\n 'pathParameters' => [\n 'properties' => ['id' => 'bar'],\n 'required' => ['id'],\n 'type' => 'object',\n ],\n 'queryParameters' => [\n 'properties' => ['page' => 'bar'],\n 'required' => ['page'],\n 'type' => 'object',\n ],\n 'storeFieldsAsVariables' => [['name' => 'x', 'valuePath' => 'x']],\n 'timeoutMs' => 500,\n ],\n ],\n ],\n transcription: [\n 'apiKeyRef' => 'api_key_ref',\n 'language' => 'language',\n 'model' => 'deepgram/flux',\n 'region' => 'region',\n 'settings' => [\n 'eagerEotThreshold' => 0.3,\n 'enableEndpointDetection' => true,\n 'endOfTurnConfidenceThreshold' => 0,\n 'eotThreshold' => 0.5,\n 'eotTimeoutMs' => 500,\n 'interimResults' => true,\n 'keyterm' => 'keyterm',\n 'maxEndpointDelayMs' => 500,\n 'maxTurnSilence' => 100,\n 'minTurnSilence' => 100,\n 'numerals' => true,\n 'smartFormat' => true,\n ],\n ],\n voiceSettings: [\n 'voice' => 'voice',\n 'apiKeyRef' => 'api_key_ref',\n 'backgroundAudio' => [\n 'type' => 'predefined_media', 'value' => 'silence', 'volume' => 0.1\n ],\n 'expressiveMode' => true,\n 'languageBoost' => 'auto',\n 'similarityBoost' => 0,\n 'speed' => 0,\n 'style' => 0,\n 'temperature' => 0,\n 'useSpeakerBoost' => true,\n 'voiceSpeed' => 0,\n ],\n widgetSettings: [\n 'agentThinkingText' => 'agent_thinking_text',\n 'audioVisualizerConfig' => ['color' => 'verdant', 'preset' => 'preset'],\n 'defaultState' => 'expanded',\n 'giveFeedbackURL' => 'give_feedback_url',\n 'logoIconURL' => 'logo_icon_url',\n 'position' => 'fixed',\n 'reportIssueURL' => 'report_issue_url',\n 'speakToInterruptText' => 'speak_to_interrupt_text',\n 'startCallText' => 'start_call_text',\n 'theme' => 'light',\n 'viewHistoryURL' => 'view_history_url',\n ],\n);\n\nvar_dump($inferenceEmbedding);",
3225
3225
  },
3226
3226
  http: {
3227
3227
  example: 'curl https://api.telnyx.com/v2/ai/assistants \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $TELNYX_API_KEY" \\\n -d \'{\n "instructions": "instructions",\n "name": "name"\n }\'',
@@ -3334,7 +3334,7 @@ const EMBEDDED_METHODS = [
3334
3334
  'to?: string;',
3335
3335
  ],
3336
3336
  response: "{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: object; fallback_config?: object; greeting?: string; import_metadata?: object; insight_settings?: object; integrations?: object[]; interruption_settings?: object; llm_api_key_ref?: string; mcp_servers?: object[]; messaging_settings?: object; observability_settings?: object; post_conversation_settings?: object; privacy_settings?: object; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: object; tools?: inference_embedding_webhook_tool_params | retrieval_tool | object | hangup_tool | object | object | object | object | object | object[]; transcription?: object; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: object; widget_settings?: object; }",
3337
- markdown: "## retrieve\n\n`client.ai.assistants.retrieve(assistant_id: string, call_control_id?: string, fetch_dynamic_variables_from_webhook?: boolean, from?: string, to?: string): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**get** `/ai/assistants/{assistant_id}`\n\nRetrieve an AI Assistant configuration by `assistant_id`.\n\n### Parameters\n\n- `assistant_id: string`\n\n- `call_control_id?: string`\n\n- `fetch_dynamic_variables_from_webhook?: boolean`\n\n- `from?: string`\n\n- `to?: string`\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.retrieve('assistant_id');\n\nconsole.log(inferenceEmbedding);\n```",
3337
+ markdown: "## retrieve\n\n`client.ai.assistants.retrieve(assistant_id: string, call_control_id?: string, fetch_dynamic_variables_from_webhook?: boolean, from?: string, to?: string): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**get** `/ai/assistants/{assistant_id}`\n\nRetrieve an AI Assistant configuration by `assistant_id`.\n\n### Parameters\n\n- `assistant_id: string`\n\n- `call_control_id?: string`\n\n- `fetch_dynamic_variables_from_webhook?: boolean`\n\n- `from?: string`\n\n- `to?: string`\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.retrieve('assistant_id');\n\nconsole.log(inferenceEmbedding);\n```",
3338
3338
  perLanguage: {
3339
3339
  typescript: {
3340
3340
  method: 'client.ai.assistants.retrieve',
@@ -3401,7 +3401,7 @@ const EMBEDDED_METHODS = [
3401
3401
  'privacy_settings?: { data_retention?: boolean; };',
3402
3402
  'promote_to_main?: boolean;',
3403
3403
  'tags?: string[];',
3404
- "telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; };",
3404
+ "telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; };",
3405
3405
  'tool_ids?: string[];',
3406
3406
  "tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[];",
3407
3407
  'transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; };',
@@ -3410,7 +3410,7 @@ const EMBEDDED_METHODS = [
3410
3410
  "widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; };",
3411
3411
  ],
3412
3412
  response: "{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: object; fallback_config?: object; greeting?: string; import_metadata?: object; insight_settings?: object; integrations?: object[]; interruption_settings?: object; llm_api_key_ref?: string; mcp_servers?: object[]; messaging_settings?: object; observability_settings?: object; post_conversation_settings?: object; privacy_settings?: object; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: object; tools?: inference_embedding_webhook_tool_params | retrieval_tool | object | hangup_tool | object | object | object | object | object | object[]; transcription?: object; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: object; widget_settings?: object; }",
3413
- markdown: "## update\n\n`client.ai.assistants.update(assistant_id: string, description?: string, dynamic_variables?: object, dynamic_variables_webhook_timeout_ms?: number, dynamic_variables_webhook_url?: string, enabled_features?: 'telephony' | 'messaging'[], external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }, fallback_config?: { external_llm?: external_llm_req; llm_api_key_ref?: string; model?: string; }, greeting?: string, insight_settings?: { insight_group_id?: string; }, instructions?: string, integrations?: { integration_id: string; allowed_list?: string[]; }[], interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }, llm_api_key_ref?: string, mcp_servers?: { id: string; allowed_tools?: string[]; }[], messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }, model?: string, name?: string, observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }, post_conversation_settings?: { enabled?: boolean; }, privacy_settings?: { data_retention?: boolean; }, promote_to_main?: boolean, tags?: string[], telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }, tool_ids?: string[], tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[], transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }, version_name?: string, voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }, widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**post** `/ai/assistants/{assistant_id}`\n\nUpdate an AI Assistant's attributes.\n\n### Parameters\n\n- `assistant_id: string`\n\n- `description?: string`\n\n- `dynamic_variables?: object`\n Map of dynamic variables and their default values\n\n- `dynamic_variables_webhook_timeout_ms?: number`\n Timeout in milliseconds for the dynamic variables webhook. Must be between 1 and 10000 ms. If the webhook does not respond within this timeout, the call proceeds with default values. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables).\n\n- `dynamic_variables_webhook_url?: string`\n If `dynamic_variables_webhook_url` is set, Telnyx sends a POST request to this URL at the start of the conversation to resolve dynamic variables. **Gotcha:** the webhook response must wrap variables under a top-level `dynamic_variables` object, e.g. `{\"dynamic_variables\": {\"customer_name\": \"Jane\"}}`. Returning a flat object will be ignored and variables will fall back to their defaults. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) for the full request/response format and timeout behavior.\n\n- `enabled_features?: 'telephony' | 'messaging'[]`\n\n- `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `base_url: string`\n Base URL for the external LLM endpoint.\n - `model: string`\n Model identifier to use with the external LLM endpoint.\n - `authentication_method?: 'token' | 'certificate'`\n Authentication method used when connecting to the external LLM endpoint.\n - `certificate_ref?: string`\n Integration secret identifier for the client certificate used with certificate authentication.\n - `forward_metadata?: boolean`\n When `true`, Telnyx forwards the assistant's dynamic variables to the external LLM endpoint as a top-level `extra_metadata` object on the chat completion request body. Defaults to `false`. Example payload sent to the external endpoint: `{\"extra_metadata\": {\"customer_name\": \"Jane\", \"account_id\": \"acct_789\", \"telnyx_agent_target\": \"+13125550100\", \"telnyx_end_user_target\": \"+13125550123\"}}`. Distinct from OpenAI's native `metadata` field, which has its own size and type limits.\n - `llm_api_key_ref?: string`\n Integration secret identifier for the external LLM API key.\n - `token_retrieval_url?: string`\n URL used to retrieve an access token when certificate authentication is enabled.\n\n- `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `llm_api_key_ref?: string`\n Integration secret identifier for the fallback model API key.\n - `model?: string`\n Fallback Telnyx-hosted model to use when the primary LLM provider is unavailable.\n\n- `greeting?: string`\n Text that the assistant will use to start the conversation. This may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables). Use an empty string to have the assistant wait for the user to speak first. Use the special value `<assistant-speaks-first-with-model-generated-message>` to have the assistant generate the greeting based on the system instructions.\n\n- `insight_settings?: { insight_group_id?: string; }`\n - `insight_group_id?: string`\n Reference to an Insight Group. Insights in this group will be run automatically for all the assistant's conversations.\n\n- `instructions?: string`\n System instructions for the assistant. These may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)\n\n- `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n Connected integrations attached to the assistant. The catalog of available integrations is at `/ai/integrations`; the user's connected integrations are at `/ai/integrations/connections`. Each item references a catalog integration by `integration_id`.\n\n- `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n Settings for interruptions and how the assistant decides the user has finished speaking. These timings are most relevant when using non turn-taking transcription models. For turn-taking models like `deepgram/flux`, end-of-turn behavior is controlled by the transcription end-of-turn settings under `transcription.settings` (`eot_threshold`, `eot_timeout_ms`, `eager_eot_threshold`).\n - `disable_greeting_interruption?: boolean`\n When true, disables user interruptions while the assistant greeting is playing.\n - `enable?: boolean`\n Whether users can interrupt the assistant while it is speaking.\n - `start_speaking_plan?: { transcription_endpointing_plan?: { on_no_punctuation_seconds?: number; on_number_seconds?: number; on_punctuation_seconds?: number; }; wait_seconds?: number; }`\n Controls when the assistant starts speaking after the user stops. These thresholds primarily apply to non turn-taking transcription models. For turn-taking models like `deepgram/flux`, end-of-turn detection is driven by the transcription end-of-turn settings under `transcription.settings` instead.\n\n- `llm_api_key_ref?: string`\n This is only needed when using third-party inference providers selected by `model`. The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your LLM provider's API key. For bring-your-own endpoint authentication, use `external_llm.llm_api_key_ref` instead. Warning: Free plans are unlikely to work with this integration.\n\n- `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n MCP servers attached to the assistant. Create MCP servers with `/ai/mcp_servers`, then reference them by `id` here.\n\n- `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `conversation_inactivity_minutes?: number`\n If more than this many minutes have passed since the last message, the assistant will start a new conversation instead of continuing the existing one.\n - `default_messaging_profile_id?: string`\n Default Messaging Profile used for messaging exchanges with your assistant. This will be created automatically on assistant creation.\n - `delivery_status_webhook_url?: string`\n The URL where webhooks related to delivery statused for assistant messages will be sent.\n\n- `model?: string`\n ID of the model to use when `external_llm` is not set. You can use the [Get models API](https://developers.telnyx.com/api-reference/openai-chat/get-available-models-openai-compatible) to see available models. If `external_llm` is provided, the assistant uses `external_llm` instead of this field. If neither `model` nor `external_llm` is provided, Telnyx applies the default model.\n\n- `name?: string`\n\n- `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `host?: string`\n - `prompt_label?: string`\n - `prompt_name?: string`\n - `prompt_sync?: 'enabled' | 'disabled'`\n Whether to auto-publish the assistant's instructions as a Langfuse prompt.\n\nWhen ENABLED + prompt_name set, every assistant create/update pushes\n`instructions` to Langfuse via create_prompt and stores the returned\nversion in prompt_version.\n - `prompt_version?: number`\n - `public_key_ref?: string`\n - `secret_key_ref?: string`\n - `status?: 'enabled' | 'disabled'`\n\n- `post_conversation_settings?: { enabled?: boolean; }`\n Configuration for post-conversation processing. When enabled, the assistant receives one additional LLM turn after the conversation ends, allowing it to execute tool calls such as logging to a CRM or sending a summary. The assistant can execute multiple parallel or sequential tools during this phase. Telephony-control tools (e.g. hangup, transfer) are unavailable post-conversation. Beta feature.\n - `enabled?: boolean`\n Whether post-conversation processing is enabled. When true, the assistant will be invoked after the conversation ends to perform any final tool calls. Defaults to false.\n\n- `privacy_settings?: { data_retention?: boolean; }`\n - `data_retention?: boolean`\n If true, conversation history and insights will be stored. If false, they will not be stored. This in‑tool toggle governs solely the retention of conversation history and insights via the AI assistant. It has no effect on any separate recording, transcription, or storage configuration that you have set at the account, number, or application level. All such external settings remain in force regardless of your selection here.\n\n- `promote_to_main?: boolean`\n Indicates whether the assistant should be promoted to the main version. Defaults to true.\n\n- `tags?: string[]`\n Tags associated with the assistant. Tags can also be managed with the assistant tag endpoints.\n\n- `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `default_texml_app_id?: string`\n Default Texml App used for voice calls with your assistant. This will be created automatically on assistant creation.\n - `noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'`\n The noise suppression engine to use. Use 'disabled' to turn off noise suppression.\n - `noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }`\n Configuration for noise suppression. Only applicable when noise_suppression is 'deepfilternet'.\n - `recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }`\n Configuration for call recording format and channel settings.\n - `supports_unauthenticated_web_calls?: boolean`\n When enabled, allows users to interact with your AI assistant directly from your website without requiring authentication. This is required for FE widgets that work with assistants that have telephony enabled.\n - `time_limit_secs?: number`\n Maximum duration in seconds for the AI assistant to participate on the call. When this limit is reached the assistant will be stopped. This limit does not apply to portions of a call without an active assistant (for instance, a call transferred to a human representative).\n - `user_idle_reply_secs?: number`\n Duration in seconds of end user silence before the assistant checks in on the user. When this limit is reached the assistant will prompt the user to respond. This is distinct from user_idle_timeout_secs which stops the assistant entirely.\n - `user_idle_timeout_secs?: number`\n Maximum duration in seconds of end user silence on the call. When this limit is reached the assistant will be stopped. This limit does not apply to portions of a call without an active assistant (for instance, a call transferred to a human representative).\n - `voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: { message?: string; prompt?: string; type?: 'prompt' | 'message'; }; }; }`\n Configuration for voicemail detection (AMD - Answering Machine Detection) on outgoing calls. These settings only apply if AMD is enabled on the Dial command. See [TeXML Dial documentation](https://developers.telnyx.com/api-reference/texml-rest-commands/initiate-an-outbound-call) for enabling AMD. Recommended settings: MachineDetection=Enable, AsyncAmd=true, DetectionMode=Premium.\n\n- `tool_ids?: string[]`\n IDs of shared tools to attach to the assistant. New integrations should prefer `tool_ids` over inline `tools`.\n\n- `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n Deprecated for new integrations. Inline tool definitions available to the assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools endpoints.\n\n- `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `api_key_ref?: string`\n Integration secret identifier for the transcription provider API key. Currently used for Azure transcription regions that require a customer-provided API key.\n - `language?: string`\n The language of the audio to be transcribed. If not set, or if set to `auto`, supported models will automatically detect the language. For `deepgram/flux`, supported values are: `auto` (Telnyx language detection controls the language hint), `multi` (no language hint), and language-specific hints `en`, `es`, `fr`, `de`, `hi`, `ru`, `pt`, `ja`, `it`, and `nl`. For `soniox/stt-rt-v4`, `auto` omits the language hint and lets Soniox auto-detect; ISO 639-1 codes (e.g. `en`, `es`) bias detection toward that language.\n - `model?: string`\n The speech to text model to be used by the voice assistant. All Deepgram models are run on-premise.\n\n- `deepgram/flux` is optimized for turn-taking with multilingual language hints.\n- `deepgram/nova-3` is multilingual with automatic language detection.\n- `deepgram/nova-2` is Deepgram's previous-generation multilingual model.\n- `azure/fast` is a multilingual Azure transcription model.\n- `assemblyai/universal-streaming` is a multilingual streaming model with configurable turn detection.\n- `xai/grok-stt` is a multilingual Grok STT model.\n- `soniox/stt-rt-v4` is a multilingual streaming model with automatic language detection and configurable endpointing.\n - `region?: string`\n Region on third party cloud providers (currently Azure) if using one of their models. Some regions require `api_key_ref`.\n - `settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }`\n\n- `version_name?: string`\n Human-readable name for the assistant version.\n\n- `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `voice: string`\n The voice to be used by the voice assistant. Check the full list of [available voices](https://developers.telnyx.com/docs/tts-stt/tts-available-voices) via our voices API.\nTo use ElevenLabs, you must reference your ElevenLabs API key as an integration secret under the `api_key_ref` field. See [integration secrets documentation](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) for details. For Telnyx voices, use `Telnyx.<model_id>.<voice_id>` (e.g. Telnyx.KokoroTTS.af_heart).\nThe voice portion of the identifier supports [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) using mustache syntax (e.g. `Telnyx.Ultra.{{voice_id}}`). The variable is resolved at call time from your dynamic variables webhook, allowing you to select the voice dynamically per call.\n - `api_key_ref?: string`\n The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your ElevenLabs API key. Warning: Free plans are unlikely to work with this integration.\n - `background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }`\n Optional background audio to play on the call. Use a predefined media bed, or supply a looped MP3 URL. If a media URL is chosen in the portal, customers can preview it before saving.\n - `expressive_mode?: boolean`\n Enables emotionally expressive speech using SSML emotion tags. When enabled, the assistant uses audio tags like angry, excited, content, and sad to add emotional nuance. Only supported for Telnyx Ultra voices.\n - `language_boost?: string`\n Enhances recognition for specific languages and dialects during MiniMax TTS synthesis. Default is null (no boost). Set to 'auto' for automatic language detection. Only applicable when using MiniMax voices.\n - `similarity_boost?: number`\n Determines how closely the AI should adhere to the original voice when attempting to replicate it. Only applicable when using ElevenLabs.\n - `speed?: number`\n Adjusts speech velocity. 1.0 is default speed; values less than 1.0 slow speech; values greater than 1.0 accelerate it. Only applicable when using ElevenLabs.\n - `style?: number`\n Determines the style exaggeration of the voice. Amplifies speaker style but consumes additional resources when set above 0. Only applicable when using ElevenLabs.\n - `temperature?: number`\n Determines how stable the voice is and the randomness between each generation. Lower values create a broader emotional range; higher values produce more consistent, monotonous output. Only applicable when using ElevenLabs.\n - `use_speaker_boost?: boolean`\n Amplifies similarity to the original speaker voice. Increases computational load and latency slightly. Only applicable when using ElevenLabs.\n - `voice_speed?: number`\n The speed of the voice in the range [0.25, 2.0]. 1.0 is deafult speed. Larger numbers make the voice faster, smaller numbers make it slower. This is only applicable for Telnyx Natural voices.\n\n- `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n Configuration settings for the assistant's web widget.\n - `agent_thinking_text?: string`\n Text displayed while the agent is processing.\n - `audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }`\n - `default_state?: 'expanded' | 'collapsed'`\n The default state of the widget.\n - `give_feedback_url?: string`\n URL for users to give feedback.\n - `logo_icon_url?: string`\n URL to a custom logo icon for the widget.\n - `position?: 'fixed' | 'static'`\n The positioning style for the widget.\n - `report_issue_url?: string`\n URL for users to report issues.\n - `speak_to_interrupt_text?: string`\n Text prompting users to speak to interrupt.\n - `start_call_text?: string`\n Custom text displayed on the start call button.\n - `theme?: 'light' | 'dark'`\n The visual theme for the widget.\n - `view_history_url?: string`\n URL to view conversation history.\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.update('assistant_id');\n\nconsole.log(inferenceEmbedding);\n```",
3413
+ markdown: "## update\n\n`client.ai.assistants.update(assistant_id: string, description?: string, dynamic_variables?: object, dynamic_variables_webhook_timeout_ms?: number, dynamic_variables_webhook_url?: string, enabled_features?: 'telephony' | 'messaging'[], external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }, fallback_config?: { external_llm?: external_llm_req; llm_api_key_ref?: string; model?: string; }, greeting?: string, insight_settings?: { insight_group_id?: string; }, instructions?: string, integrations?: { integration_id: string; allowed_list?: string[]; }[], interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }, llm_api_key_ref?: string, mcp_servers?: { id: string; allowed_tools?: string[]; }[], messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }, model?: string, name?: string, observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }, post_conversation_settings?: { enabled?: boolean; }, privacy_settings?: { data_retention?: boolean; }, promote_to_main?: boolean, tags?: string[], telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }, tool_ids?: string[], tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[], transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }, version_name?: string, voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }, widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**post** `/ai/assistants/{assistant_id}`\n\nUpdate an AI Assistant's attributes.\n\n### Parameters\n\n- `assistant_id: string`\n\n- `description?: string`\n\n- `dynamic_variables?: object`\n Map of dynamic variables and their default values\n\n- `dynamic_variables_webhook_timeout_ms?: number`\n Timeout in milliseconds for the dynamic variables webhook. Must be between 1 and 10000 ms. If the webhook does not respond within this timeout, the call proceeds with default values. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables).\n\n- `dynamic_variables_webhook_url?: string`\n If `dynamic_variables_webhook_url` is set, Telnyx sends a POST request to this URL at the start of the conversation to resolve dynamic variables. **Gotcha:** the webhook response must wrap variables under a top-level `dynamic_variables` object, e.g. `{\"dynamic_variables\": {\"customer_name\": \"Jane\"}}`. Returning a flat object will be ignored and variables will fall back to their defaults. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) for the full request/response format and timeout behavior.\n\n- `enabled_features?: 'telephony' | 'messaging'[]`\n\n- `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `base_url: string`\n Base URL for the external LLM endpoint.\n - `model: string`\n Model identifier to use with the external LLM endpoint.\n - `authentication_method?: 'token' | 'certificate'`\n Authentication method used when connecting to the external LLM endpoint.\n - `certificate_ref?: string`\n Integration secret identifier for the client certificate used with certificate authentication.\n - `forward_metadata?: boolean`\n When `true`, Telnyx forwards the assistant's dynamic variables to the external LLM endpoint as a top-level `extra_metadata` object on the chat completion request body. Defaults to `false`. Example payload sent to the external endpoint: `{\"extra_metadata\": {\"customer_name\": \"Jane\", \"account_id\": \"acct_789\", \"telnyx_agent_target\": \"+13125550100\", \"telnyx_end_user_target\": \"+13125550123\"}}`. Distinct from OpenAI's native `metadata` field, which has its own size and type limits.\n - `llm_api_key_ref?: string`\n Integration secret identifier for the external LLM API key.\n - `token_retrieval_url?: string`\n URL used to retrieve an access token when certificate authentication is enabled.\n\n- `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `llm_api_key_ref?: string`\n Integration secret identifier for the fallback model API key.\n - `model?: string`\n Fallback Telnyx-hosted model to use when the primary LLM provider is unavailable.\n\n- `greeting?: string`\n Text that the assistant will use to start the conversation. This may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables). Use an empty string to have the assistant wait for the user to speak first. Use the special value `<assistant-speaks-first-with-model-generated-message>` to have the assistant generate the greeting based on the system instructions.\n\n- `insight_settings?: { insight_group_id?: string; }`\n - `insight_group_id?: string`\n Reference to an Insight Group. Insights in this group will be run automatically for all the assistant's conversations.\n\n- `instructions?: string`\n System instructions for the assistant. These may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)\n\n- `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n Connected integrations attached to the assistant. The catalog of available integrations is at `/ai/integrations`; the user's connected integrations are at `/ai/integrations/connections`. Each item references a catalog integration by `integration_id`.\n\n- `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n Settings for interruptions and how the assistant decides the user has finished speaking. These timings are most relevant when using non turn-taking transcription models. For turn-taking models like `deepgram/flux`, end-of-turn behavior is controlled by the transcription end-of-turn settings under `transcription.settings` (`eot_threshold`, `eot_timeout_ms`, `eager_eot_threshold`).\n - `disable_greeting_interruption?: boolean`\n When true, disables user interruptions while the assistant greeting is playing.\n - `enable?: boolean`\n Whether users can interrupt the assistant while it is speaking.\n - `start_speaking_plan?: { transcription_endpointing_plan?: { on_no_punctuation_seconds?: number; on_number_seconds?: number; on_punctuation_seconds?: number; }; wait_seconds?: number; }`\n Controls when the assistant starts speaking after the user stops. These thresholds primarily apply to non turn-taking transcription models. For turn-taking models like `deepgram/flux`, end-of-turn detection is driven by the transcription end-of-turn settings under `transcription.settings` instead.\n\n- `llm_api_key_ref?: string`\n This is only needed when using third-party inference providers selected by `model`. The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your LLM provider's API key. For bring-your-own endpoint authentication, use `external_llm.llm_api_key_ref` instead. Warning: Free plans are unlikely to work with this integration.\n\n- `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n MCP servers attached to the assistant. Create MCP servers with `/ai/mcp_servers`, then reference them by `id` here.\n\n- `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `conversation_inactivity_minutes?: number`\n If more than this many minutes have passed since the last message, the assistant will start a new conversation instead of continuing the existing one.\n - `default_messaging_profile_id?: string`\n Default Messaging Profile used for messaging exchanges with your assistant. This will be created automatically on assistant creation.\n - `delivery_status_webhook_url?: string`\n The URL where webhooks related to delivery statused for assistant messages will be sent.\n\n- `model?: string`\n ID of the model to use when `external_llm` is not set. You can use the [Get models API](https://developers.telnyx.com/api-reference/openai-chat/get-available-models-openai-compatible) to see available models. If `external_llm` is provided, the assistant uses `external_llm` instead of this field. If neither `model` nor `external_llm` is provided, Telnyx applies the default model.\n\n- `name?: string`\n\n- `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `host?: string`\n - `prompt_label?: string`\n - `prompt_name?: string`\n - `prompt_sync?: 'enabled' | 'disabled'`\n Whether to auto-publish the assistant's instructions as a Langfuse prompt.\n\nWhen ENABLED + prompt_name set, every assistant create/update pushes\n`instructions` to Langfuse via create_prompt and stores the returned\nversion in prompt_version.\n - `prompt_version?: number`\n - `public_key_ref?: string`\n - `secret_key_ref?: string`\n - `status?: 'enabled' | 'disabled'`\n\n- `post_conversation_settings?: { enabled?: boolean; }`\n Configuration for post-conversation processing. When enabled, the assistant receives one additional LLM turn after the conversation ends, allowing it to execute tool calls such as logging to a CRM or sending a summary. The assistant can execute multiple parallel or sequential tools during this phase. Telephony-control tools (e.g. hangup, transfer) are unavailable post-conversation. Beta feature.\n - `enabled?: boolean`\n Whether post-conversation processing is enabled. When true, the assistant will be invoked after the conversation ends to perform any final tool calls. Defaults to false.\n\n- `privacy_settings?: { data_retention?: boolean; }`\n - `data_retention?: boolean`\n If true, conversation history and insights will be stored. If false, they will not be stored. This in‑tool toggle governs solely the retention of conversation history and insights via the AI assistant. It has no effect on any separate recording, transcription, or storage configuration that you have set at the account, number, or application level. All such external settings remain in force regardless of your selection here.\n\n- `promote_to_main?: boolean`\n Indicates whether the assistant should be promoted to the main version. Defaults to true.\n\n- `tags?: string[]`\n Tags associated with the assistant. Tags can also be managed with the assistant tag endpoints.\n\n- `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `default_texml_app_id?: string`\n Default Texml App used for voice calls with your assistant. This will be created automatically on assistant creation.\n - `noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'`\n The noise suppression engine to use. Use 'disabled' to turn off noise suppression.\n - `noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }`\n Configuration for noise suppression. Only applicable when noise_suppression is 'deepfilternet'.\n - `recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }`\n Configuration for call recording format and channel settings.\n - `supports_unauthenticated_web_calls?: boolean`\n When enabled, allows users to interact with your AI assistant directly from your website without requiring authentication. This is required for FE widgets that work with assistants that have telephony enabled.\n - `time_limit_secs?: number`\n Maximum duration in seconds for the AI assistant to participate on the call. When this limit is reached the assistant will be stopped. This limit does not apply to portions of a call without an active assistant (for instance, a call transferred to a human representative).\n - `user_idle_reply_secs?: number`\n Duration in seconds of end user silence before the assistant checks in on the user. When this limit is reached the assistant will prompt the user to respond. This is distinct from user_idle_timeout_secs which stops the assistant entirely.\n - `user_idle_timeout_secs?: number`\n Maximum duration in seconds of end user silence on the call. When this limit is reached the assistant will be stopped. This limit does not apply to portions of a call without an active assistant (for instance, a call transferred to a human representative).\n - `voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: { message?: string; prompt?: string; type?: 'prompt' | 'message'; }; }; }`\n Configuration for voicemail detection (AMD - Answering Machine Detection) on outgoing calls. These settings only apply if AMD is enabled on the Dial command. See [TeXML Dial documentation](https://developers.telnyx.com/api-reference/texml-rest-commands/initiate-an-outbound-call) for enabling AMD. Recommended settings: MachineDetection=Enable, AsyncAmd=true, DetectionMode=Premium.\n\n- `tool_ids?: string[]`\n IDs of shared tools to attach to the assistant. New integrations should prefer `tool_ids` over inline `tools`.\n\n- `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n Deprecated for new integrations. Inline tool definitions available to the assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools endpoints.\n\n- `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `api_key_ref?: string`\n Integration secret identifier for the transcription provider API key. Currently used for Azure transcription regions that require a customer-provided API key.\n - `language?: string`\n The language of the audio to be transcribed. If not set, or if set to `auto`, supported models will automatically detect the language. For `deepgram/flux`, supported values are: `auto` (Telnyx language detection controls the language hint), `multi` (no language hint), and language-specific hints `en`, `es`, `fr`, `de`, `hi`, `ru`, `pt`, `ja`, `it`, and `nl`. For `soniox/stt-rt-v4`, `auto` omits the language hint and lets Soniox auto-detect; ISO 639-1 codes (e.g. `en`, `es`) bias detection toward that language.\n - `model?: string`\n The speech to text model to be used by the voice assistant. All Deepgram models are run on-premise.\n\n- `deepgram/flux` is optimized for turn-taking with multilingual language hints.\n- `deepgram/nova-3` is multilingual with automatic language detection.\n- `deepgram/nova-2` is Deepgram's previous-generation multilingual model.\n- `azure/fast` is a multilingual Azure transcription model.\n- `assemblyai/universal-streaming` is a multilingual streaming model with configurable turn detection.\n- `xai/grok-stt` is a multilingual Grok STT model.\n- `soniox/stt-rt-v4` is a multilingual streaming model with automatic language detection and configurable endpointing.\n - `region?: string`\n Region on third party cloud providers (currently Azure) if using one of their models. Some regions require `api_key_ref`.\n - `settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }`\n\n- `version_name?: string`\n Human-readable name for the assistant version.\n\n- `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `voice: string`\n The voice to be used by the voice assistant. Check the full list of [available voices](https://developers.telnyx.com/docs/tts-stt/tts-available-voices) via our voices API.\nTo use ElevenLabs, you must reference your ElevenLabs API key as an integration secret under the `api_key_ref` field. See [integration secrets documentation](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) for details. For Telnyx voices, use `Telnyx.<model_id>.<voice_id>` (e.g. Telnyx.KokoroTTS.af_heart).\nThe voice portion of the identifier supports [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) using mustache syntax (e.g. `Telnyx.Ultra.{{voice_id}}`). The variable is resolved at call time from your dynamic variables webhook, allowing you to select the voice dynamically per call.\n - `api_key_ref?: string`\n The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your ElevenLabs API key. Warning: Free plans are unlikely to work with this integration.\n - `background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }`\n Optional background audio to play on the call. Use a predefined media bed, or supply a looped MP3 URL. If a media URL is chosen in the portal, customers can preview it before saving.\n - `expressive_mode?: boolean`\n Enables emotionally expressive speech using SSML emotion tags. When enabled, the assistant uses audio tags like angry, excited, content, and sad to add emotional nuance. Only supported for Telnyx Ultra voices.\n - `language_boost?: string`\n Enhances recognition for specific languages and dialects during MiniMax TTS synthesis. Default is null (no boost). Set to 'auto' for automatic language detection. Only applicable when using MiniMax voices.\n - `similarity_boost?: number`\n Determines how closely the AI should adhere to the original voice when attempting to replicate it. Only applicable when using ElevenLabs.\n - `speed?: number`\n Adjusts speech velocity. 1.0 is default speed; values less than 1.0 slow speech; values greater than 1.0 accelerate it. Only applicable when using ElevenLabs.\n - `style?: number`\n Determines the style exaggeration of the voice. Amplifies speaker style but consumes additional resources when set above 0. Only applicable when using ElevenLabs.\n - `temperature?: number`\n Determines how stable the voice is and the randomness between each generation. Lower values create a broader emotional range; higher values produce more consistent, monotonous output. Only applicable when using ElevenLabs.\n - `use_speaker_boost?: boolean`\n Amplifies similarity to the original speaker voice. Increases computational load and latency slightly. Only applicable when using ElevenLabs.\n - `voice_speed?: number`\n The speed of the voice in the range [0.25, 2.0]. 1.0 is deafult speed. Larger numbers make the voice faster, smaller numbers make it slower. This is only applicable for Telnyx Natural voices.\n\n- `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n Configuration settings for the assistant's web widget.\n - `agent_thinking_text?: string`\n Text displayed while the agent is processing.\n - `audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }`\n - `default_state?: 'expanded' | 'collapsed'`\n The default state of the widget.\n - `give_feedback_url?: string`\n URL for users to give feedback.\n - `logo_icon_url?: string`\n URL to a custom logo icon for the widget.\n - `position?: 'fixed' | 'static'`\n The positioning style for the widget.\n - `report_issue_url?: string`\n URL for users to report issues.\n - `speak_to_interrupt_text?: string`\n Text prompting users to speak to interrupt.\n - `start_call_text?: string`\n Custom text displayed on the start call button.\n - `theme?: 'light' | 'dark'`\n The visual theme for the widget.\n - `view_history_url?: string`\n URL to view conversation history.\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.update('assistant_id');\n\nconsole.log(inferenceEmbedding);\n```",
3414
3414
  perLanguage: {
3415
3415
  typescript: {
3416
3416
  method: 'client.ai.assistants.update',
@@ -3438,7 +3438,7 @@ const EMBEDDED_METHODS = [
3438
3438
  },
3439
3439
  php: {
3440
3440
  method: 'ai->assistants->update',
3441
- example: "<?php\n\nrequire_once dirname(__DIR__) . '/vendor/autoload.php';\n\n$client = new Client(apiKey: 'My API Key');\n\n$inferenceEmbedding = $client->ai->assistants->update(\n 'assistant_id',\n description: 'description',\n dynamicVariables: ['foo' => 'bar'],\n dynamicVariablesWebhookTimeoutMs: 1,\n dynamicVariablesWebhookURL: 'dynamic_variables_webhook_url',\n enabledFeatures: [EnabledFeatures::TELEPHONY],\n externalLlm: [\n 'baseURL' => 'base_url',\n 'model' => 'model',\n 'authenticationMethod' => 'token',\n 'certificateRef' => 'certificate_ref',\n 'forwardMetadata' => true,\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'tokenRetrievalURL' => 'token_retrieval_url',\n ],\n fallbackConfig: [\n 'externalLlm' => [\n 'baseURL' => 'base_url',\n 'model' => 'model',\n 'authenticationMethod' => 'token',\n 'certificateRef' => 'certificate_ref',\n 'forwardMetadata' => true,\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'tokenRetrievalURL' => 'token_retrieval_url',\n ],\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'model' => 'model',\n ],\n greeting: 'greeting',\n insightSettings: ['insightGroupID' => 'insight_group_id'],\n instructions: 'instructions',\n integrations: [\n ['integrationID' => 'integration_id', 'allowedList' => ['string']]\n ],\n interruptionSettings: [\n 'disableGreetingInterruption' => true,\n 'enable' => true,\n 'startSpeakingPlan' => [\n 'transcriptionEndpointingPlan' => [\n 'onNoPunctuationSeconds' => 0,\n 'onNumberSeconds' => 0,\n 'onPunctuationSeconds' => 0,\n ],\n 'waitSeconds' => 0,\n ],\n ],\n llmAPIKeyRef: 'llm_api_key_ref',\n mcpServers: [['id' => 'id', 'allowedTools' => ['string']]],\n messagingSettings: [\n 'conversationInactivityMinutes' => 1,\n 'defaultMessagingProfileID' => 'default_messaging_profile_id',\n 'deliveryStatusWebhookURL' => 'delivery_status_webhook_url',\n ],\n model: 'model',\n name: 'name',\n observabilitySettings: [\n 'host' => 'host',\n 'promptLabel' => 'prompt_label',\n 'promptName' => 'prompt_name',\n 'promptSync' => 'enabled',\n 'promptVersion' => 1,\n 'publicKeyRef' => 'public_key_ref',\n 'secretKeyRef' => 'secret_key_ref',\n 'status' => 'enabled',\n ],\n postConversationSettings: ['enabled' => true],\n privacySettings: ['dataRetention' => true],\n promoteToMain: true,\n tags: ['string'],\n telephonySettings: [\n 'defaultTexmlAppID' => 'default_texml_app_id',\n 'noiseSuppression' => 'krisp',\n 'noiseSuppressionConfig' => ['attenuationLimit' => 0, 'mode' => 'advanced'],\n 'recordingSettings' => [\n 'channels' => 'single', 'enabled' => true, 'format' => 'wav'\n ],\n 'supportsUnauthenticatedWebCalls' => true,\n 'timeLimitSecs' => 30,\n 'userIdleReplySecs' => 0,\n 'userIdleTimeoutSecs' => 10,\n 'voicemailDetection' => [\n 'onVoicemailDetected' => [\n 'action' => 'stop_assistant',\n 'voicemailMessage' => [\n 'message' => 'message', 'prompt' => 'prompt', 'type' => 'prompt'\n ],\n ],\n ],\n ],\n toolIDs: ['string'],\n tools: [\n [\n 'type' => 'webhook',\n 'webhook' => [\n 'description' => 'description',\n 'name' => 'name',\n 'url' => 'https://example.com/api/v1/function',\n 'async' => true,\n 'asyncTimeoutMs' => 1,\n 'bodyParameters' => [\n 'properties' => ['age' => 'bar', 'location' => 'bar'],\n 'required' => ['age', 'location'],\n 'type' => 'object',\n ],\n 'headers' => [['name' => 'name', 'value' => 'value']],\n 'method' => 'GET',\n 'pathParameters' => [\n 'properties' => ['id' => 'bar'],\n 'required' => ['id'],\n 'type' => 'object',\n ],\n 'queryParameters' => [\n 'properties' => ['page' => 'bar'],\n 'required' => ['page'],\n 'type' => 'object',\n ],\n 'storeFieldsAsVariables' => [['name' => 'x', 'valuePath' => 'x']],\n 'timeoutMs' => 500,\n ],\n ],\n ],\n transcription: [\n 'apiKeyRef' => 'api_key_ref',\n 'language' => 'language',\n 'model' => 'deepgram/flux',\n 'region' => 'region',\n 'settings' => [\n 'eagerEotThreshold' => 0.3,\n 'enableEndpointDetection' => true,\n 'endOfTurnConfidenceThreshold' => 0,\n 'eotThreshold' => 0.5,\n 'eotTimeoutMs' => 500,\n 'interimResults' => true,\n 'keyterm' => 'keyterm',\n 'maxEndpointDelayMs' => 500,\n 'maxTurnSilence' => 100,\n 'minTurnSilence' => 100,\n 'numerals' => true,\n 'smartFormat' => true,\n ],\n ],\n versionName: 'version_name',\n voiceSettings: [\n 'voice' => 'voice',\n 'apiKeyRef' => 'api_key_ref',\n 'backgroundAudio' => [\n 'type' => 'predefined_media', 'value' => 'silence', 'volume' => 0.1\n ],\n 'expressiveMode' => true,\n 'languageBoost' => 'auto',\n 'similarityBoost' => 0,\n 'speed' => 0,\n 'style' => 0,\n 'temperature' => 0,\n 'useSpeakerBoost' => true,\n 'voiceSpeed' => 0,\n ],\n widgetSettings: [\n 'agentThinkingText' => 'agent_thinking_text',\n 'audioVisualizerConfig' => ['color' => 'verdant', 'preset' => 'preset'],\n 'defaultState' => 'expanded',\n 'giveFeedbackURL' => 'give_feedback_url',\n 'logoIconURL' => 'logo_icon_url',\n 'position' => 'fixed',\n 'reportIssueURL' => 'report_issue_url',\n 'speakToInterruptText' => 'speak_to_interrupt_text',\n 'startCallText' => 'start_call_text',\n 'theme' => 'light',\n 'viewHistoryURL' => 'view_history_url',\n ],\n);\n\nvar_dump($inferenceEmbedding);",
3441
+ example: "<?php\n\nrequire_once dirname(__DIR__) . '/vendor/autoload.php';\n\n$client = new Client(apiKey: 'My API Key');\n\n$inferenceEmbedding = $client->ai->assistants->update(\n 'assistant_id',\n description: 'description',\n dynamicVariables: ['foo' => 'bar'],\n dynamicVariablesWebhookTimeoutMs: 1,\n dynamicVariablesWebhookURL: 'dynamic_variables_webhook_url',\n enabledFeatures: [EnabledFeatures::TELEPHONY],\n externalLlm: [\n 'baseURL' => 'base_url',\n 'model' => 'model',\n 'authenticationMethod' => 'token',\n 'certificateRef' => 'certificate_ref',\n 'forwardMetadata' => true,\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'tokenRetrievalURL' => 'token_retrieval_url',\n ],\n fallbackConfig: [\n 'externalLlm' => [\n 'baseURL' => 'base_url',\n 'model' => 'model',\n 'authenticationMethod' => 'token',\n 'certificateRef' => 'certificate_ref',\n 'forwardMetadata' => true,\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'tokenRetrievalURL' => 'token_retrieval_url',\n ],\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'model' => 'model',\n ],\n greeting: 'greeting',\n insightSettings: ['insightGroupID' => 'insight_group_id'],\n instructions: 'instructions',\n integrations: [\n ['integrationID' => 'integration_id', 'allowedList' => ['string']]\n ],\n interruptionSettings: [\n 'disableGreetingInterruption' => true,\n 'enable' => true,\n 'startSpeakingPlan' => [\n 'transcriptionEndpointingPlan' => [\n 'onNoPunctuationSeconds' => 0,\n 'onNumberSeconds' => 0,\n 'onPunctuationSeconds' => 0,\n ],\n 'waitSeconds' => 0,\n ],\n ],\n llmAPIKeyRef: 'llm_api_key_ref',\n mcpServers: [['id' => 'id', 'allowedTools' => ['string']]],\n messagingSettings: [\n 'conversationInactivityMinutes' => 1,\n 'defaultMessagingProfileID' => 'default_messaging_profile_id',\n 'deliveryStatusWebhookURL' => 'delivery_status_webhook_url',\n ],\n model: 'model',\n name: 'name',\n observabilitySettings: [\n 'host' => 'host',\n 'promptLabel' => 'prompt_label',\n 'promptName' => 'prompt_name',\n 'promptSync' => 'enabled',\n 'promptVersion' => 1,\n 'publicKeyRef' => 'public_key_ref',\n 'secretKeyRef' => 'secret_key_ref',\n 'status' => 'enabled',\n ],\n postConversationSettings: ['enabled' => true],\n privacySettings: ['dataRetention' => true],\n promoteToMain: true,\n tags: ['string'],\n telephonySettings: [\n 'defaultTexmlAppID' => 'default_texml_app_id',\n 'noiseSuppression' => 'krisp',\n 'noiseSuppressionConfig' => ['attenuationLimit' => 0, 'mode' => 'advanced'],\n 'recordingSettings' => [\n 'channels' => 'single',\n 'enabled' => true,\n 'format' => 'wav',\n 'stopOnConversationEnd' => true,\n ],\n 'supportsUnauthenticatedWebCalls' => true,\n 'timeLimitSecs' => 30,\n 'userIdleReplySecs' => 0,\n 'userIdleTimeoutSecs' => 10,\n 'voicemailDetection' => [\n 'onVoicemailDetected' => [\n 'action' => 'stop_assistant',\n 'voicemailMessage' => [\n 'message' => 'message', 'prompt' => 'prompt', 'type' => 'prompt'\n ],\n ],\n ],\n ],\n toolIDs: ['string'],\n tools: [\n [\n 'type' => 'webhook',\n 'webhook' => [\n 'description' => 'description',\n 'name' => 'name',\n 'url' => 'https://example.com/api/v1/function',\n 'async' => true,\n 'asyncTimeoutMs' => 1,\n 'bodyParameters' => [\n 'properties' => ['age' => 'bar', 'location' => 'bar'],\n 'required' => ['age', 'location'],\n 'type' => 'object',\n ],\n 'headers' => [['name' => 'name', 'value' => 'value']],\n 'method' => 'GET',\n 'pathParameters' => [\n 'properties' => ['id' => 'bar'],\n 'required' => ['id'],\n 'type' => 'object',\n ],\n 'queryParameters' => [\n 'properties' => ['page' => 'bar'],\n 'required' => ['page'],\n 'type' => 'object',\n ],\n 'storeFieldsAsVariables' => [['name' => 'x', 'valuePath' => 'x']],\n 'timeoutMs' => 500,\n ],\n ],\n ],\n transcription: [\n 'apiKeyRef' => 'api_key_ref',\n 'language' => 'language',\n 'model' => 'deepgram/flux',\n 'region' => 'region',\n 'settings' => [\n 'eagerEotThreshold' => 0.3,\n 'enableEndpointDetection' => true,\n 'endOfTurnConfidenceThreshold' => 0,\n 'eotThreshold' => 0.5,\n 'eotTimeoutMs' => 500,\n 'interimResults' => true,\n 'keyterm' => 'keyterm',\n 'maxEndpointDelayMs' => 500,\n 'maxTurnSilence' => 100,\n 'minTurnSilence' => 100,\n 'numerals' => true,\n 'smartFormat' => true,\n ],\n ],\n versionName: 'version_name',\n voiceSettings: [\n 'voice' => 'voice',\n 'apiKeyRef' => 'api_key_ref',\n 'backgroundAudio' => [\n 'type' => 'predefined_media', 'value' => 'silence', 'volume' => 0.1\n ],\n 'expressiveMode' => true,\n 'languageBoost' => 'auto',\n 'similarityBoost' => 0,\n 'speed' => 0,\n 'style' => 0,\n 'temperature' => 0,\n 'useSpeakerBoost' => true,\n 'voiceSpeed' => 0,\n ],\n widgetSettings: [\n 'agentThinkingText' => 'agent_thinking_text',\n 'audioVisualizerConfig' => ['color' => 'verdant', 'preset' => 'preset'],\n 'defaultState' => 'expanded',\n 'giveFeedbackURL' => 'give_feedback_url',\n 'logoIconURL' => 'logo_icon_url',\n 'position' => 'fixed',\n 'reportIssueURL' => 'report_issue_url',\n 'speakToInterruptText' => 'speak_to_interrupt_text',\n 'startCallText' => 'start_call_text',\n 'theme' => 'light',\n 'viewHistoryURL' => 'view_history_url',\n ],\n);\n\nvar_dump($inferenceEmbedding);",
3442
3442
  },
3443
3443
  http: {
3444
3444
  example: "curl https://api.telnyx.com/v2/ai/assistants/$ASSISTANT_ID \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n -d '{}'",
@@ -3500,7 +3500,7 @@ const EMBEDDED_METHODS = [
3500
3500
  qualified: 'client.ai.assistants.clone',
3501
3501
  params: ['assistant_id: string;'],
3502
3502
  response: "{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: object; fallback_config?: object; greeting?: string; import_metadata?: object; insight_settings?: object; integrations?: object[]; interruption_settings?: object; llm_api_key_ref?: string; mcp_servers?: object[]; messaging_settings?: object; observability_settings?: object; post_conversation_settings?: object; privacy_settings?: object; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: object; tools?: inference_embedding_webhook_tool_params | retrieval_tool | object | hangup_tool | object | object | object | object | object | object[]; transcription?: object; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: object; widget_settings?: object; }",
3503
- markdown: "## clone\n\n`client.ai.assistants.clone(assistant_id: string): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**post** `/ai/assistants/{assistant_id}/clone`\n\nClone an existing assistant, excluding telephony and messaging settings.\n\n### Parameters\n\n- `assistant_id: string`\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.clone('assistant_id');\n\nconsole.log(inferenceEmbedding);\n```",
3503
+ markdown: "## clone\n\n`client.ai.assistants.clone(assistant_id: string): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**post** `/ai/assistants/{assistant_id}/clone`\n\nClone an existing assistant, excluding telephony and messaging settings.\n\n### Parameters\n\n- `assistant_id: string`\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.clone('assistant_id');\n\nconsole.log(inferenceEmbedding);\n```",
3504
3504
  perLanguage: {
3505
3505
  typescript: {
3506
3506
  method: 'client.ai.assistants.clone',
@@ -4777,7 +4777,7 @@ const EMBEDDED_METHODS = [
4777
4777
  qualified: 'client.ai.assistants.versions.retrieve',
4778
4778
  params: ['assistant_id: string;', 'version_id: string;', 'include_mcp_servers?: boolean;'],
4779
4779
  response: "{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: object; fallback_config?: object; greeting?: string; import_metadata?: object; insight_settings?: object; integrations?: object[]; interruption_settings?: object; llm_api_key_ref?: string; mcp_servers?: object[]; messaging_settings?: object; observability_settings?: object; post_conversation_settings?: object; privacy_settings?: object; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: object; tools?: inference_embedding_webhook_tool_params | retrieval_tool | object | hangup_tool | object | object | object | object | object | object[]; transcription?: object; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: object; widget_settings?: object; }",
4780
- markdown: "## retrieve\n\n`client.ai.assistants.versions.retrieve(assistant_id: string, version_id: string, include_mcp_servers?: boolean): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**get** `/ai/assistants/{assistant_id}/versions/{version_id}`\n\nRetrieves a specific version of an assistant by assistant_id and version_id\n\n### Parameters\n\n- `assistant_id: string`\n\n- `version_id: string`\n\n- `include_mcp_servers?: boolean`\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.versions.retrieve('version_id', { assistant_id: 'assistant_id' });\n\nconsole.log(inferenceEmbedding);\n```",
4780
+ markdown: "## retrieve\n\n`client.ai.assistants.versions.retrieve(assistant_id: string, version_id: string, include_mcp_servers?: boolean): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**get** `/ai/assistants/{assistant_id}/versions/{version_id}`\n\nRetrieves a specific version of an assistant by assistant_id and version_id\n\n### Parameters\n\n- `assistant_id: string`\n\n- `version_id: string`\n\n- `include_mcp_servers?: boolean`\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.versions.retrieve('version_id', { assistant_id: 'assistant_id' });\n\nconsole.log(inferenceEmbedding);\n```",
4781
4781
  perLanguage: {
4782
4782
  typescript: {
4783
4783
  method: 'client.ai.assistants.versions.retrieve',
@@ -4844,7 +4844,7 @@ const EMBEDDED_METHODS = [
4844
4844
  'post_conversation_settings?: { enabled?: boolean; };',
4845
4845
  'privacy_settings?: { data_retention?: boolean; };',
4846
4846
  'tags?: string[];',
4847
- "telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; };",
4847
+ "telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; };",
4848
4848
  'tool_ids?: string[];',
4849
4849
  "tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[];",
4850
4850
  'transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; };',
@@ -4853,7 +4853,7 @@ const EMBEDDED_METHODS = [
4853
4853
  "widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; };",
4854
4854
  ],
4855
4855
  response: "{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: object; fallback_config?: object; greeting?: string; import_metadata?: object; insight_settings?: object; integrations?: object[]; interruption_settings?: object; llm_api_key_ref?: string; mcp_servers?: object[]; messaging_settings?: object; observability_settings?: object; post_conversation_settings?: object; privacy_settings?: object; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: object; tools?: inference_embedding_webhook_tool_params | retrieval_tool | object | hangup_tool | object | object | object | object | object | object[]; transcription?: object; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: object; widget_settings?: object; }",
4856
- markdown: "## update\n\n`client.ai.assistants.versions.update(assistant_id: string, version_id: string, description?: string, dynamic_variables?: object, dynamic_variables_webhook_timeout_ms?: number, dynamic_variables_webhook_url?: string, enabled_features?: 'telephony' | 'messaging'[], external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }, fallback_config?: { external_llm?: external_llm_req; llm_api_key_ref?: string; model?: string; }, greeting?: string, insight_settings?: { insight_group_id?: string; }, instructions?: string, integrations?: { integration_id: string; allowed_list?: string[]; }[], interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }, llm_api_key_ref?: string, mcp_servers?: { id: string; allowed_tools?: string[]; }[], messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }, model?: string, name?: string, observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }, post_conversation_settings?: { enabled?: boolean; }, privacy_settings?: { data_retention?: boolean; }, tags?: string[], telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }, tool_ids?: string[], tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[], transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }, version_name?: string, voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }, widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**post** `/ai/assistants/{assistant_id}/versions/{version_id}`\n\nUpdates the configuration of a specific assistant version. Can not update main version\n\n### Parameters\n\n- `assistant_id: string`\n\n- `version_id: string`\n\n- `description?: string`\n\n- `dynamic_variables?: object`\n Map of dynamic variables and their default values\n\n- `dynamic_variables_webhook_timeout_ms?: number`\n Timeout in milliseconds for the dynamic variables webhook. Must be between 1 and 10000 ms. If the webhook does not respond within this timeout, the call proceeds with default values. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables).\n\n- `dynamic_variables_webhook_url?: string`\n If `dynamic_variables_webhook_url` is set, Telnyx sends a POST request to this URL at the start of the conversation to resolve dynamic variables. **Gotcha:** the webhook response must wrap variables under a top-level `dynamic_variables` object, e.g. `{\"dynamic_variables\": {\"customer_name\": \"Jane\"}}`. Returning a flat object will be ignored and variables will fall back to their defaults. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) for the full request/response format and timeout behavior.\n\n- `enabled_features?: 'telephony' | 'messaging'[]`\n\n- `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `base_url: string`\n Base URL for the external LLM endpoint.\n - `model: string`\n Model identifier to use with the external LLM endpoint.\n - `authentication_method?: 'token' | 'certificate'`\n Authentication method used when connecting to the external LLM endpoint.\n - `certificate_ref?: string`\n Integration secret identifier for the client certificate used with certificate authentication.\n - `forward_metadata?: boolean`\n When `true`, Telnyx forwards the assistant's dynamic variables to the external LLM endpoint as a top-level `extra_metadata` object on the chat completion request body. Defaults to `false`. Example payload sent to the external endpoint: `{\"extra_metadata\": {\"customer_name\": \"Jane\", \"account_id\": \"acct_789\", \"telnyx_agent_target\": \"+13125550100\", \"telnyx_end_user_target\": \"+13125550123\"}}`. Distinct from OpenAI's native `metadata` field, which has its own size and type limits.\n - `llm_api_key_ref?: string`\n Integration secret identifier for the external LLM API key.\n - `token_retrieval_url?: string`\n URL used to retrieve an access token when certificate authentication is enabled.\n\n- `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `llm_api_key_ref?: string`\n Integration secret identifier for the fallback model API key.\n - `model?: string`\n Fallback Telnyx-hosted model to use when the primary LLM provider is unavailable.\n\n- `greeting?: string`\n Text that the assistant will use to start the conversation. This may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables). Use an empty string to have the assistant wait for the user to speak first. Use the special value `<assistant-speaks-first-with-model-generated-message>` to have the assistant generate the greeting based on the system instructions.\n\n- `insight_settings?: { insight_group_id?: string; }`\n - `insight_group_id?: string`\n Reference to an Insight Group. Insights in this group will be run automatically for all the assistant's conversations.\n\n- `instructions?: string`\n System instructions for the assistant. These may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)\n\n- `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n Connected integrations attached to the assistant. The catalog of available integrations is at `/ai/integrations`; the user's connected integrations are at `/ai/integrations/connections`. Each item references a catalog integration by `integration_id`.\n\n- `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n Settings for interruptions and how the assistant decides the user has finished speaking. These timings are most relevant when using non turn-taking transcription models. For turn-taking models like `deepgram/flux`, end-of-turn behavior is controlled by the transcription end-of-turn settings under `transcription.settings` (`eot_threshold`, `eot_timeout_ms`, `eager_eot_threshold`).\n - `disable_greeting_interruption?: boolean`\n When true, disables user interruptions while the assistant greeting is playing.\n - `enable?: boolean`\n Whether users can interrupt the assistant while it is speaking.\n - `start_speaking_plan?: { transcription_endpointing_plan?: { on_no_punctuation_seconds?: number; on_number_seconds?: number; on_punctuation_seconds?: number; }; wait_seconds?: number; }`\n Controls when the assistant starts speaking after the user stops. These thresholds primarily apply to non turn-taking transcription models. For turn-taking models like `deepgram/flux`, end-of-turn detection is driven by the transcription end-of-turn settings under `transcription.settings` instead.\n\n- `llm_api_key_ref?: string`\n This is only needed when using third-party inference providers selected by `model`. The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your LLM provider's API key. For bring-your-own endpoint authentication, use `external_llm.llm_api_key_ref` instead. Warning: Free plans are unlikely to work with this integration.\n\n- `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n MCP servers attached to the assistant. Create MCP servers with `/ai/mcp_servers`, then reference them by `id` here.\n\n- `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `conversation_inactivity_minutes?: number`\n If more than this many minutes have passed since the last message, the assistant will start a new conversation instead of continuing the existing one.\n - `default_messaging_profile_id?: string`\n Default Messaging Profile used for messaging exchanges with your assistant. This will be created automatically on assistant creation.\n - `delivery_status_webhook_url?: string`\n The URL where webhooks related to delivery statused for assistant messages will be sent.\n\n- `model?: string`\n ID of the model to use when `external_llm` is not set. You can use the [Get models API](https://developers.telnyx.com/api-reference/openai-chat/get-available-models-openai-compatible) to see available models. If `external_llm` is provided, the assistant uses `external_llm` instead of this field. If neither `model` nor `external_llm` is provided, Telnyx applies the default model.\n\n- `name?: string`\n\n- `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `host?: string`\n - `prompt_label?: string`\n - `prompt_name?: string`\n - `prompt_sync?: 'enabled' | 'disabled'`\n Whether to auto-publish the assistant's instructions as a Langfuse prompt.\n\nWhen ENABLED + prompt_name set, every assistant create/update pushes\n`instructions` to Langfuse via create_prompt and stores the returned\nversion in prompt_version.\n - `prompt_version?: number`\n - `public_key_ref?: string`\n - `secret_key_ref?: string`\n - `status?: 'enabled' | 'disabled'`\n\n- `post_conversation_settings?: { enabled?: boolean; }`\n Configuration for post-conversation processing. When enabled, the assistant receives one additional LLM turn after the conversation ends, allowing it to execute tool calls such as logging to a CRM or sending a summary. The assistant can execute multiple parallel or sequential tools during this phase. Telephony-control tools (e.g. hangup, transfer) are unavailable post-conversation. Beta feature.\n - `enabled?: boolean`\n Whether post-conversation processing is enabled. When true, the assistant will be invoked after the conversation ends to perform any final tool calls. Defaults to false.\n\n- `privacy_settings?: { data_retention?: boolean; }`\n - `data_retention?: boolean`\n If true, conversation history and insights will be stored. If false, they will not be stored. This in‑tool toggle governs solely the retention of conversation history and insights via the AI assistant. It has no effect on any separate recording, transcription, or storage configuration that you have set at the account, number, or application level. All such external settings remain in force regardless of your selection here.\n\n- `tags?: string[]`\n Tags associated with the assistant. Tags can also be managed with the assistant tag endpoints.\n\n- `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `default_texml_app_id?: string`\n Default Texml App used for voice calls with your assistant. This will be created automatically on assistant creation.\n - `noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'`\n The noise suppression engine to use. Use 'disabled' to turn off noise suppression.\n - `noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }`\n Configuration for noise suppression. Only applicable when noise_suppression is 'deepfilternet'.\n - `recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }`\n Configuration for call recording format and channel settings.\n - `supports_unauthenticated_web_calls?: boolean`\n When enabled, allows users to interact with your AI assistant directly from your website without requiring authentication. This is required for FE widgets that work with assistants that have telephony enabled.\n - `time_limit_secs?: number`\n Maximum duration in seconds for the AI assistant to participate on the call. When this limit is reached the assistant will be stopped. This limit does not apply to portions of a call without an active assistant (for instance, a call transferred to a human representative).\n - `user_idle_reply_secs?: number`\n Duration in seconds of end user silence before the assistant checks in on the user. When this limit is reached the assistant will prompt the user to respond. This is distinct from user_idle_timeout_secs which stops the assistant entirely.\n - `user_idle_timeout_secs?: number`\n Maximum duration in seconds of end user silence on the call. When this limit is reached the assistant will be stopped. This limit does not apply to portions of a call without an active assistant (for instance, a call transferred to a human representative).\n - `voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: { message?: string; prompt?: string; type?: 'prompt' | 'message'; }; }; }`\n Configuration for voicemail detection (AMD - Answering Machine Detection) on outgoing calls. These settings only apply if AMD is enabled on the Dial command. See [TeXML Dial documentation](https://developers.telnyx.com/api-reference/texml-rest-commands/initiate-an-outbound-call) for enabling AMD. Recommended settings: MachineDetection=Enable, AsyncAmd=true, DetectionMode=Premium.\n\n- `tool_ids?: string[]`\n IDs of shared tools to attach to the assistant. New integrations should prefer `tool_ids` over inline `tools`.\n\n- `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n Deprecated for new integrations. Inline tool definitions available to the assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools endpoints.\n\n- `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `api_key_ref?: string`\n Integration secret identifier for the transcription provider API key. Currently used for Azure transcription regions that require a customer-provided API key.\n - `language?: string`\n The language of the audio to be transcribed. If not set, or if set to `auto`, supported models will automatically detect the language. For `deepgram/flux`, supported values are: `auto` (Telnyx language detection controls the language hint), `multi` (no language hint), and language-specific hints `en`, `es`, `fr`, `de`, `hi`, `ru`, `pt`, `ja`, `it`, and `nl`. For `soniox/stt-rt-v4`, `auto` omits the language hint and lets Soniox auto-detect; ISO 639-1 codes (e.g. `en`, `es`) bias detection toward that language.\n - `model?: string`\n The speech to text model to be used by the voice assistant. All Deepgram models are run on-premise.\n\n- `deepgram/flux` is optimized for turn-taking with multilingual language hints.\n- `deepgram/nova-3` is multilingual with automatic language detection.\n- `deepgram/nova-2` is Deepgram's previous-generation multilingual model.\n- `azure/fast` is a multilingual Azure transcription model.\n- `assemblyai/universal-streaming` is a multilingual streaming model with configurable turn detection.\n- `xai/grok-stt` is a multilingual Grok STT model.\n- `soniox/stt-rt-v4` is a multilingual streaming model with automatic language detection and configurable endpointing.\n - `region?: string`\n Region on third party cloud providers (currently Azure) if using one of their models. Some regions require `api_key_ref`.\n - `settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }`\n\n- `version_name?: string`\n Human-readable name for the assistant version.\n\n- `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `voice: string`\n The voice to be used by the voice assistant. Check the full list of [available voices](https://developers.telnyx.com/docs/tts-stt/tts-available-voices) via our voices API.\nTo use ElevenLabs, you must reference your ElevenLabs API key as an integration secret under the `api_key_ref` field. See [integration secrets documentation](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) for details. For Telnyx voices, use `Telnyx.<model_id>.<voice_id>` (e.g. Telnyx.KokoroTTS.af_heart).\nThe voice portion of the identifier supports [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) using mustache syntax (e.g. `Telnyx.Ultra.{{voice_id}}`). The variable is resolved at call time from your dynamic variables webhook, allowing you to select the voice dynamically per call.\n - `api_key_ref?: string`\n The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your ElevenLabs API key. Warning: Free plans are unlikely to work with this integration.\n - `background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }`\n Optional background audio to play on the call. Use a predefined media bed, or supply a looped MP3 URL. If a media URL is chosen in the portal, customers can preview it before saving.\n - `expressive_mode?: boolean`\n Enables emotionally expressive speech using SSML emotion tags. When enabled, the assistant uses audio tags like angry, excited, content, and sad to add emotional nuance. Only supported for Telnyx Ultra voices.\n - `language_boost?: string`\n Enhances recognition for specific languages and dialects during MiniMax TTS synthesis. Default is null (no boost). Set to 'auto' for automatic language detection. Only applicable when using MiniMax voices.\n - `similarity_boost?: number`\n Determines how closely the AI should adhere to the original voice when attempting to replicate it. Only applicable when using ElevenLabs.\n - `speed?: number`\n Adjusts speech velocity. 1.0 is default speed; values less than 1.0 slow speech; values greater than 1.0 accelerate it. Only applicable when using ElevenLabs.\n - `style?: number`\n Determines the style exaggeration of the voice. Amplifies speaker style but consumes additional resources when set above 0. Only applicable when using ElevenLabs.\n - `temperature?: number`\n Determines how stable the voice is and the randomness between each generation. Lower values create a broader emotional range; higher values produce more consistent, monotonous output. Only applicable when using ElevenLabs.\n - `use_speaker_boost?: boolean`\n Amplifies similarity to the original speaker voice. Increases computational load and latency slightly. Only applicable when using ElevenLabs.\n - `voice_speed?: number`\n The speed of the voice in the range [0.25, 2.0]. 1.0 is deafult speed. Larger numbers make the voice faster, smaller numbers make it slower. This is only applicable for Telnyx Natural voices.\n\n- `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n Configuration settings for the assistant's web widget.\n - `agent_thinking_text?: string`\n Text displayed while the agent is processing.\n - `audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }`\n - `default_state?: 'expanded' | 'collapsed'`\n The default state of the widget.\n - `give_feedback_url?: string`\n URL for users to give feedback.\n - `logo_icon_url?: string`\n URL to a custom logo icon for the widget.\n - `position?: 'fixed' | 'static'`\n The positioning style for the widget.\n - `report_issue_url?: string`\n URL for users to report issues.\n - `speak_to_interrupt_text?: string`\n Text prompting users to speak to interrupt.\n - `start_call_text?: string`\n Custom text displayed on the start call button.\n - `theme?: 'light' | 'dark'`\n The visual theme for the widget.\n - `view_history_url?: string`\n URL to view conversation history.\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.versions.update('version_id', { assistant_id: 'assistant_id' });\n\nconsole.log(inferenceEmbedding);\n```",
4856
+ markdown: "## update\n\n`client.ai.assistants.versions.update(assistant_id: string, version_id: string, description?: string, dynamic_variables?: object, dynamic_variables_webhook_timeout_ms?: number, dynamic_variables_webhook_url?: string, enabled_features?: 'telephony' | 'messaging'[], external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }, fallback_config?: { external_llm?: external_llm_req; llm_api_key_ref?: string; model?: string; }, greeting?: string, insight_settings?: { insight_group_id?: string; }, instructions?: string, integrations?: { integration_id: string; allowed_list?: string[]; }[], interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }, llm_api_key_ref?: string, mcp_servers?: { id: string; allowed_tools?: string[]; }[], messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }, model?: string, name?: string, observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }, post_conversation_settings?: { enabled?: boolean; }, privacy_settings?: { data_retention?: boolean; }, tags?: string[], telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }, tool_ids?: string[], tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[], transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }, version_name?: string, voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }, widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**post** `/ai/assistants/{assistant_id}/versions/{version_id}`\n\nUpdates the configuration of a specific assistant version. Can not update main version\n\n### Parameters\n\n- `assistant_id: string`\n\n- `version_id: string`\n\n- `description?: string`\n\n- `dynamic_variables?: object`\n Map of dynamic variables and their default values\n\n- `dynamic_variables_webhook_timeout_ms?: number`\n Timeout in milliseconds for the dynamic variables webhook. Must be between 1 and 10000 ms. If the webhook does not respond within this timeout, the call proceeds with default values. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables).\n\n- `dynamic_variables_webhook_url?: string`\n If `dynamic_variables_webhook_url` is set, Telnyx sends a POST request to this URL at the start of the conversation to resolve dynamic variables. **Gotcha:** the webhook response must wrap variables under a top-level `dynamic_variables` object, e.g. `{\"dynamic_variables\": {\"customer_name\": \"Jane\"}}`. Returning a flat object will be ignored and variables will fall back to their defaults. See the [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) for the full request/response format and timeout behavior.\n\n- `enabled_features?: 'telephony' | 'messaging'[]`\n\n- `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `base_url: string`\n Base URL for the external LLM endpoint.\n - `model: string`\n Model identifier to use with the external LLM endpoint.\n - `authentication_method?: 'token' | 'certificate'`\n Authentication method used when connecting to the external LLM endpoint.\n - `certificate_ref?: string`\n Integration secret identifier for the client certificate used with certificate authentication.\n - `forward_metadata?: boolean`\n When `true`, Telnyx forwards the assistant's dynamic variables to the external LLM endpoint as a top-level `extra_metadata` object on the chat completion request body. Defaults to `false`. Example payload sent to the external endpoint: `{\"extra_metadata\": {\"customer_name\": \"Jane\", \"account_id\": \"acct_789\", \"telnyx_agent_target\": \"+13125550100\", \"telnyx_end_user_target\": \"+13125550123\"}}`. Distinct from OpenAI's native `metadata` field, which has its own size and type limits.\n - `llm_api_key_ref?: string`\n Integration secret identifier for the external LLM API key.\n - `token_retrieval_url?: string`\n URL used to retrieve an access token when certificate authentication is enabled.\n\n- `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `llm_api_key_ref?: string`\n Integration secret identifier for the fallback model API key.\n - `model?: string`\n Fallback Telnyx-hosted model to use when the primary LLM provider is unavailable.\n\n- `greeting?: string`\n Text that the assistant will use to start the conversation. This may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables). Use an empty string to have the assistant wait for the user to speak first. Use the special value `<assistant-speaks-first-with-model-generated-message>` to have the assistant generate the greeting based on the system instructions.\n\n- `insight_settings?: { insight_group_id?: string; }`\n - `insight_group_id?: string`\n Reference to an Insight Group. Insights in this group will be run automatically for all the assistant's conversations.\n\n- `instructions?: string`\n System instructions for the assistant. These may be templated with [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)\n\n- `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n Connected integrations attached to the assistant. The catalog of available integrations is at `/ai/integrations`; the user's connected integrations are at `/ai/integrations/connections`. Each item references a catalog integration by `integration_id`.\n\n- `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n Settings for interruptions and how the assistant decides the user has finished speaking. These timings are most relevant when using non turn-taking transcription models. For turn-taking models like `deepgram/flux`, end-of-turn behavior is controlled by the transcription end-of-turn settings under `transcription.settings` (`eot_threshold`, `eot_timeout_ms`, `eager_eot_threshold`).\n - `disable_greeting_interruption?: boolean`\n When true, disables user interruptions while the assistant greeting is playing.\n - `enable?: boolean`\n Whether users can interrupt the assistant while it is speaking.\n - `start_speaking_plan?: { transcription_endpointing_plan?: { on_no_punctuation_seconds?: number; on_number_seconds?: number; on_punctuation_seconds?: number; }; wait_seconds?: number; }`\n Controls when the assistant starts speaking after the user stops. These thresholds primarily apply to non turn-taking transcription models. For turn-taking models like `deepgram/flux`, end-of-turn detection is driven by the transcription end-of-turn settings under `transcription.settings` instead.\n\n- `llm_api_key_ref?: string`\n This is only needed when using third-party inference providers selected by `model`. The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your LLM provider's API key. For bring-your-own endpoint authentication, use `external_llm.llm_api_key_ref` instead. Warning: Free plans are unlikely to work with this integration.\n\n- `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n MCP servers attached to the assistant. Create MCP servers with `/ai/mcp_servers`, then reference them by `id` here.\n\n- `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `conversation_inactivity_minutes?: number`\n If more than this many minutes have passed since the last message, the assistant will start a new conversation instead of continuing the existing one.\n - `default_messaging_profile_id?: string`\n Default Messaging Profile used for messaging exchanges with your assistant. This will be created automatically on assistant creation.\n - `delivery_status_webhook_url?: string`\n The URL where webhooks related to delivery statused for assistant messages will be sent.\n\n- `model?: string`\n ID of the model to use when `external_llm` is not set. You can use the [Get models API](https://developers.telnyx.com/api-reference/openai-chat/get-available-models-openai-compatible) to see available models. If `external_llm` is provided, the assistant uses `external_llm` instead of this field. If neither `model` nor `external_llm` is provided, Telnyx applies the default model.\n\n- `name?: string`\n\n- `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `host?: string`\n - `prompt_label?: string`\n - `prompt_name?: string`\n - `prompt_sync?: 'enabled' | 'disabled'`\n Whether to auto-publish the assistant's instructions as a Langfuse prompt.\n\nWhen ENABLED + prompt_name set, every assistant create/update pushes\n`instructions` to Langfuse via create_prompt and stores the returned\nversion in prompt_version.\n - `prompt_version?: number`\n - `public_key_ref?: string`\n - `secret_key_ref?: string`\n - `status?: 'enabled' | 'disabled'`\n\n- `post_conversation_settings?: { enabled?: boolean; }`\n Configuration for post-conversation processing. When enabled, the assistant receives one additional LLM turn after the conversation ends, allowing it to execute tool calls such as logging to a CRM or sending a summary. The assistant can execute multiple parallel or sequential tools during this phase. Telephony-control tools (e.g. hangup, transfer) are unavailable post-conversation. Beta feature.\n - `enabled?: boolean`\n Whether post-conversation processing is enabled. When true, the assistant will be invoked after the conversation ends to perform any final tool calls. Defaults to false.\n\n- `privacy_settings?: { data_retention?: boolean; }`\n - `data_retention?: boolean`\n If true, conversation history and insights will be stored. If false, they will not be stored. This in‑tool toggle governs solely the retention of conversation history and insights via the AI assistant. It has no effect on any separate recording, transcription, or storage configuration that you have set at the account, number, or application level. All such external settings remain in force regardless of your selection here.\n\n- `tags?: string[]`\n Tags associated with the assistant. Tags can also be managed with the assistant tag endpoints.\n\n- `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `default_texml_app_id?: string`\n Default Texml App used for voice calls with your assistant. This will be created automatically on assistant creation.\n - `noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'`\n The noise suppression engine to use. Use 'disabled' to turn off noise suppression.\n - `noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }`\n Configuration for noise suppression. Only applicable when noise_suppression is 'deepfilternet'.\n - `recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }`\n Configuration for call recording format and channel settings.\n - `supports_unauthenticated_web_calls?: boolean`\n When enabled, allows users to interact with your AI assistant directly from your website without requiring authentication. This is required for FE widgets that work with assistants that have telephony enabled.\n - `time_limit_secs?: number`\n Maximum duration in seconds for the AI assistant to participate on the call. When this limit is reached the assistant will be stopped. This limit does not apply to portions of a call without an active assistant (for instance, a call transferred to a human representative).\n - `user_idle_reply_secs?: number`\n Duration in seconds of end user silence before the assistant checks in on the user. When this limit is reached the assistant will prompt the user to respond. This is distinct from user_idle_timeout_secs which stops the assistant entirely.\n - `user_idle_timeout_secs?: number`\n Maximum duration in seconds of end user silence on the call. When this limit is reached the assistant will be stopped. This limit does not apply to portions of a call without an active assistant (for instance, a call transferred to a human representative).\n - `voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: { message?: string; prompt?: string; type?: 'prompt' | 'message'; }; }; }`\n Configuration for voicemail detection (AMD - Answering Machine Detection) on outgoing calls. These settings only apply if AMD is enabled on the Dial command. See [TeXML Dial documentation](https://developers.telnyx.com/api-reference/texml-rest-commands/initiate-an-outbound-call) for enabling AMD. Recommended settings: MachineDetection=Enable, AsyncAmd=true, DetectionMode=Premium.\n\n- `tool_ids?: string[]`\n IDs of shared tools to attach to the assistant. New integrations should prefer `tool_ids` over inline `tools`.\n\n- `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n Deprecated for new integrations. Inline tool definitions available to the assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools endpoints.\n\n- `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `api_key_ref?: string`\n Integration secret identifier for the transcription provider API key. Currently used for Azure transcription regions that require a customer-provided API key.\n - `language?: string`\n The language of the audio to be transcribed. If not set, or if set to `auto`, supported models will automatically detect the language. For `deepgram/flux`, supported values are: `auto` (Telnyx language detection controls the language hint), `multi` (no language hint), and language-specific hints `en`, `es`, `fr`, `de`, `hi`, `ru`, `pt`, `ja`, `it`, and `nl`. For `soniox/stt-rt-v4`, `auto` omits the language hint and lets Soniox auto-detect; ISO 639-1 codes (e.g. `en`, `es`) bias detection toward that language.\n - `model?: string`\n The speech to text model to be used by the voice assistant. All Deepgram models are run on-premise.\n\n- `deepgram/flux` is optimized for turn-taking with multilingual language hints.\n- `deepgram/nova-3` is multilingual with automatic language detection.\n- `deepgram/nova-2` is Deepgram's previous-generation multilingual model.\n- `azure/fast` is a multilingual Azure transcription model.\n- `assemblyai/universal-streaming` is a multilingual streaming model with configurable turn detection.\n- `xai/grok-stt` is a multilingual Grok STT model.\n- `soniox/stt-rt-v4` is a multilingual streaming model with automatic language detection and configurable endpointing.\n - `region?: string`\n Region on third party cloud providers (currently Azure) if using one of their models. Some regions require `api_key_ref`.\n - `settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }`\n\n- `version_name?: string`\n Human-readable name for the assistant version.\n\n- `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `voice: string`\n The voice to be used by the voice assistant. Check the full list of [available voices](https://developers.telnyx.com/docs/tts-stt/tts-available-voices) via our voices API.\nTo use ElevenLabs, you must reference your ElevenLabs API key as an integration secret under the `api_key_ref` field. See [integration secrets documentation](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) for details. For Telnyx voices, use `Telnyx.<model_id>.<voice_id>` (e.g. Telnyx.KokoroTTS.af_heart).\nThe voice portion of the identifier supports [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables) using mustache syntax (e.g. `Telnyx.Ultra.{{voice_id}}`). The variable is resolved at call time from your dynamic variables webhook, allowing you to select the voice dynamically per call.\n - `api_key_ref?: string`\n The `identifier` for an integration secret [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret) that refers to your ElevenLabs API key. Warning: Free plans are unlikely to work with this integration.\n - `background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }`\n Optional background audio to play on the call. Use a predefined media bed, or supply a looped MP3 URL. If a media URL is chosen in the portal, customers can preview it before saving.\n - `expressive_mode?: boolean`\n Enables emotionally expressive speech using SSML emotion tags. When enabled, the assistant uses audio tags like angry, excited, content, and sad to add emotional nuance. Only supported for Telnyx Ultra voices.\n - `language_boost?: string`\n Enhances recognition for specific languages and dialects during MiniMax TTS synthesis. Default is null (no boost). Set to 'auto' for automatic language detection. Only applicable when using MiniMax voices.\n - `similarity_boost?: number`\n Determines how closely the AI should adhere to the original voice when attempting to replicate it. Only applicable when using ElevenLabs.\n - `speed?: number`\n Adjusts speech velocity. 1.0 is default speed; values less than 1.0 slow speech; values greater than 1.0 accelerate it. Only applicable when using ElevenLabs.\n - `style?: number`\n Determines the style exaggeration of the voice. Amplifies speaker style but consumes additional resources when set above 0. Only applicable when using ElevenLabs.\n - `temperature?: number`\n Determines how stable the voice is and the randomness between each generation. Lower values create a broader emotional range; higher values produce more consistent, monotonous output. Only applicable when using ElevenLabs.\n - `use_speaker_boost?: boolean`\n Amplifies similarity to the original speaker voice. Increases computational load and latency slightly. Only applicable when using ElevenLabs.\n - `voice_speed?: number`\n The speed of the voice in the range [0.25, 2.0]. 1.0 is deafult speed. Larger numbers make the voice faster, smaller numbers make it slower. This is only applicable for Telnyx Natural voices.\n\n- `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n Configuration settings for the assistant's web widget.\n - `agent_thinking_text?: string`\n Text displayed while the agent is processing.\n - `audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }`\n - `default_state?: 'expanded' | 'collapsed'`\n The default state of the widget.\n - `give_feedback_url?: string`\n URL for users to give feedback.\n - `logo_icon_url?: string`\n URL to a custom logo icon for the widget.\n - `position?: 'fixed' | 'static'`\n The positioning style for the widget.\n - `report_issue_url?: string`\n URL for users to report issues.\n - `speak_to_interrupt_text?: string`\n Text prompting users to speak to interrupt.\n - `start_call_text?: string`\n Custom text displayed on the start call button.\n - `theme?: 'light' | 'dark'`\n The visual theme for the widget.\n - `view_history_url?: string`\n URL to view conversation history.\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.versions.update('version_id', { assistant_id: 'assistant_id' });\n\nconsole.log(inferenceEmbedding);\n```",
4857
4857
  perLanguage: {
4858
4858
  typescript: {
4859
4859
  method: 'client.ai.assistants.versions.update',
@@ -4881,7 +4881,7 @@ const EMBEDDED_METHODS = [
4881
4881
  },
4882
4882
  php: {
4883
4883
  method: 'ai->assistants->versions->update',
4884
- example: "<?php\n\nrequire_once dirname(__DIR__) . '/vendor/autoload.php';\n\n$client = new Client(apiKey: 'My API Key');\n\n$inferenceEmbedding = $client->ai->assistants->versions->update(\n 'version_id',\n assistantID: 'assistant_id',\n description: 'description',\n dynamicVariables: ['foo' => 'bar'],\n dynamicVariablesWebhookTimeoutMs: 1,\n dynamicVariablesWebhookURL: 'dynamic_variables_webhook_url',\n enabledFeatures: [EnabledFeatures::TELEPHONY],\n externalLlm: [\n 'baseURL' => 'base_url',\n 'model' => 'model',\n 'authenticationMethod' => 'token',\n 'certificateRef' => 'certificate_ref',\n 'forwardMetadata' => true,\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'tokenRetrievalURL' => 'token_retrieval_url',\n ],\n fallbackConfig: [\n 'externalLlm' => [\n 'baseURL' => 'base_url',\n 'model' => 'model',\n 'authenticationMethod' => 'token',\n 'certificateRef' => 'certificate_ref',\n 'forwardMetadata' => true,\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'tokenRetrievalURL' => 'token_retrieval_url',\n ],\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'model' => 'model',\n ],\n greeting: 'greeting',\n insightSettings: ['insightGroupID' => 'insight_group_id'],\n instructions: 'instructions',\n integrations: [\n ['integrationID' => 'integration_id', 'allowedList' => ['string']]\n ],\n interruptionSettings: [\n 'disableGreetingInterruption' => true,\n 'enable' => true,\n 'startSpeakingPlan' => [\n 'transcriptionEndpointingPlan' => [\n 'onNoPunctuationSeconds' => 0,\n 'onNumberSeconds' => 0,\n 'onPunctuationSeconds' => 0,\n ],\n 'waitSeconds' => 0,\n ],\n ],\n llmAPIKeyRef: 'llm_api_key_ref',\n mcpServers: [['id' => 'id', 'allowedTools' => ['string']]],\n messagingSettings: [\n 'conversationInactivityMinutes' => 1,\n 'defaultMessagingProfileID' => 'default_messaging_profile_id',\n 'deliveryStatusWebhookURL' => 'delivery_status_webhook_url',\n ],\n model: 'model',\n name: 'name',\n observabilitySettings: [\n 'host' => 'host',\n 'promptLabel' => 'prompt_label',\n 'promptName' => 'prompt_name',\n 'promptSync' => 'enabled',\n 'promptVersion' => 1,\n 'publicKeyRef' => 'public_key_ref',\n 'secretKeyRef' => 'secret_key_ref',\n 'status' => 'enabled',\n ],\n postConversationSettings: ['enabled' => true],\n privacySettings: ['dataRetention' => true],\n tags: ['string'],\n telephonySettings: [\n 'defaultTexmlAppID' => 'default_texml_app_id',\n 'noiseSuppression' => 'krisp',\n 'noiseSuppressionConfig' => ['attenuationLimit' => 0, 'mode' => 'advanced'],\n 'recordingSettings' => [\n 'channels' => 'single', 'enabled' => true, 'format' => 'wav'\n ],\n 'supportsUnauthenticatedWebCalls' => true,\n 'timeLimitSecs' => 30,\n 'userIdleReplySecs' => 0,\n 'userIdleTimeoutSecs' => 10,\n 'voicemailDetection' => [\n 'onVoicemailDetected' => [\n 'action' => 'stop_assistant',\n 'voicemailMessage' => [\n 'message' => 'message', 'prompt' => 'prompt', 'type' => 'prompt'\n ],\n ],\n ],\n ],\n toolIDs: ['string'],\n tools: [\n [\n 'type' => 'webhook',\n 'webhook' => [\n 'description' => 'description',\n 'name' => 'name',\n 'url' => 'https://example.com/api/v1/function',\n 'async' => true,\n 'asyncTimeoutMs' => 1,\n 'bodyParameters' => [\n 'properties' => ['age' => 'bar', 'location' => 'bar'],\n 'required' => ['age', 'location'],\n 'type' => 'object',\n ],\n 'headers' => [['name' => 'name', 'value' => 'value']],\n 'method' => 'GET',\n 'pathParameters' => [\n 'properties' => ['id' => 'bar'],\n 'required' => ['id'],\n 'type' => 'object',\n ],\n 'queryParameters' => [\n 'properties' => ['page' => 'bar'],\n 'required' => ['page'],\n 'type' => 'object',\n ],\n 'storeFieldsAsVariables' => [['name' => 'x', 'valuePath' => 'x']],\n 'timeoutMs' => 500,\n ],\n ],\n ],\n transcription: [\n 'apiKeyRef' => 'api_key_ref',\n 'language' => 'language',\n 'model' => 'deepgram/flux',\n 'region' => 'region',\n 'settings' => [\n 'eagerEotThreshold' => 0.3,\n 'enableEndpointDetection' => true,\n 'endOfTurnConfidenceThreshold' => 0,\n 'eotThreshold' => 0.5,\n 'eotTimeoutMs' => 500,\n 'interimResults' => true,\n 'keyterm' => 'keyterm',\n 'maxEndpointDelayMs' => 500,\n 'maxTurnSilence' => 100,\n 'minTurnSilence' => 100,\n 'numerals' => true,\n 'smartFormat' => true,\n ],\n ],\n versionName: 'version_name',\n voiceSettings: [\n 'voice' => 'voice',\n 'apiKeyRef' => 'api_key_ref',\n 'backgroundAudio' => [\n 'type' => 'predefined_media', 'value' => 'silence', 'volume' => 0.1\n ],\n 'expressiveMode' => true,\n 'languageBoost' => 'auto',\n 'similarityBoost' => 0,\n 'speed' => 0,\n 'style' => 0,\n 'temperature' => 0,\n 'useSpeakerBoost' => true,\n 'voiceSpeed' => 0,\n ],\n widgetSettings: [\n 'agentThinkingText' => 'agent_thinking_text',\n 'audioVisualizerConfig' => ['color' => 'verdant', 'preset' => 'preset'],\n 'defaultState' => 'expanded',\n 'giveFeedbackURL' => 'give_feedback_url',\n 'logoIconURL' => 'logo_icon_url',\n 'position' => 'fixed',\n 'reportIssueURL' => 'report_issue_url',\n 'speakToInterruptText' => 'speak_to_interrupt_text',\n 'startCallText' => 'start_call_text',\n 'theme' => 'light',\n 'viewHistoryURL' => 'view_history_url',\n ],\n);\n\nvar_dump($inferenceEmbedding);",
4884
+ example: "<?php\n\nrequire_once dirname(__DIR__) . '/vendor/autoload.php';\n\n$client = new Client(apiKey: 'My API Key');\n\n$inferenceEmbedding = $client->ai->assistants->versions->update(\n 'version_id',\n assistantID: 'assistant_id',\n description: 'description',\n dynamicVariables: ['foo' => 'bar'],\n dynamicVariablesWebhookTimeoutMs: 1,\n dynamicVariablesWebhookURL: 'dynamic_variables_webhook_url',\n enabledFeatures: [EnabledFeatures::TELEPHONY],\n externalLlm: [\n 'baseURL' => 'base_url',\n 'model' => 'model',\n 'authenticationMethod' => 'token',\n 'certificateRef' => 'certificate_ref',\n 'forwardMetadata' => true,\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'tokenRetrievalURL' => 'token_retrieval_url',\n ],\n fallbackConfig: [\n 'externalLlm' => [\n 'baseURL' => 'base_url',\n 'model' => 'model',\n 'authenticationMethod' => 'token',\n 'certificateRef' => 'certificate_ref',\n 'forwardMetadata' => true,\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'tokenRetrievalURL' => 'token_retrieval_url',\n ],\n 'llmAPIKeyRef' => 'llm_api_key_ref',\n 'model' => 'model',\n ],\n greeting: 'greeting',\n insightSettings: ['insightGroupID' => 'insight_group_id'],\n instructions: 'instructions',\n integrations: [\n ['integrationID' => 'integration_id', 'allowedList' => ['string']]\n ],\n interruptionSettings: [\n 'disableGreetingInterruption' => true,\n 'enable' => true,\n 'startSpeakingPlan' => [\n 'transcriptionEndpointingPlan' => [\n 'onNoPunctuationSeconds' => 0,\n 'onNumberSeconds' => 0,\n 'onPunctuationSeconds' => 0,\n ],\n 'waitSeconds' => 0,\n ],\n ],\n llmAPIKeyRef: 'llm_api_key_ref',\n mcpServers: [['id' => 'id', 'allowedTools' => ['string']]],\n messagingSettings: [\n 'conversationInactivityMinutes' => 1,\n 'defaultMessagingProfileID' => 'default_messaging_profile_id',\n 'deliveryStatusWebhookURL' => 'delivery_status_webhook_url',\n ],\n model: 'model',\n name: 'name',\n observabilitySettings: [\n 'host' => 'host',\n 'promptLabel' => 'prompt_label',\n 'promptName' => 'prompt_name',\n 'promptSync' => 'enabled',\n 'promptVersion' => 1,\n 'publicKeyRef' => 'public_key_ref',\n 'secretKeyRef' => 'secret_key_ref',\n 'status' => 'enabled',\n ],\n postConversationSettings: ['enabled' => true],\n privacySettings: ['dataRetention' => true],\n tags: ['string'],\n telephonySettings: [\n 'defaultTexmlAppID' => 'default_texml_app_id',\n 'noiseSuppression' => 'krisp',\n 'noiseSuppressionConfig' => ['attenuationLimit' => 0, 'mode' => 'advanced'],\n 'recordingSettings' => [\n 'channels' => 'single',\n 'enabled' => true,\n 'format' => 'wav',\n 'stopOnConversationEnd' => true,\n ],\n 'supportsUnauthenticatedWebCalls' => true,\n 'timeLimitSecs' => 30,\n 'userIdleReplySecs' => 0,\n 'userIdleTimeoutSecs' => 10,\n 'voicemailDetection' => [\n 'onVoicemailDetected' => [\n 'action' => 'stop_assistant',\n 'voicemailMessage' => [\n 'message' => 'message', 'prompt' => 'prompt', 'type' => 'prompt'\n ],\n ],\n ],\n ],\n toolIDs: ['string'],\n tools: [\n [\n 'type' => 'webhook',\n 'webhook' => [\n 'description' => 'description',\n 'name' => 'name',\n 'url' => 'https://example.com/api/v1/function',\n 'async' => true,\n 'asyncTimeoutMs' => 1,\n 'bodyParameters' => [\n 'properties' => ['age' => 'bar', 'location' => 'bar'],\n 'required' => ['age', 'location'],\n 'type' => 'object',\n ],\n 'headers' => [['name' => 'name', 'value' => 'value']],\n 'method' => 'GET',\n 'pathParameters' => [\n 'properties' => ['id' => 'bar'],\n 'required' => ['id'],\n 'type' => 'object',\n ],\n 'queryParameters' => [\n 'properties' => ['page' => 'bar'],\n 'required' => ['page'],\n 'type' => 'object',\n ],\n 'storeFieldsAsVariables' => [['name' => 'x', 'valuePath' => 'x']],\n 'timeoutMs' => 500,\n ],\n ],\n ],\n transcription: [\n 'apiKeyRef' => 'api_key_ref',\n 'language' => 'language',\n 'model' => 'deepgram/flux',\n 'region' => 'region',\n 'settings' => [\n 'eagerEotThreshold' => 0.3,\n 'enableEndpointDetection' => true,\n 'endOfTurnConfidenceThreshold' => 0,\n 'eotThreshold' => 0.5,\n 'eotTimeoutMs' => 500,\n 'interimResults' => true,\n 'keyterm' => 'keyterm',\n 'maxEndpointDelayMs' => 500,\n 'maxTurnSilence' => 100,\n 'minTurnSilence' => 100,\n 'numerals' => true,\n 'smartFormat' => true,\n ],\n ],\n versionName: 'version_name',\n voiceSettings: [\n 'voice' => 'voice',\n 'apiKeyRef' => 'api_key_ref',\n 'backgroundAudio' => [\n 'type' => 'predefined_media', 'value' => 'silence', 'volume' => 0.1\n ],\n 'expressiveMode' => true,\n 'languageBoost' => 'auto',\n 'similarityBoost' => 0,\n 'speed' => 0,\n 'style' => 0,\n 'temperature' => 0,\n 'useSpeakerBoost' => true,\n 'voiceSpeed' => 0,\n ],\n widgetSettings: [\n 'agentThinkingText' => 'agent_thinking_text',\n 'audioVisualizerConfig' => ['color' => 'verdant', 'preset' => 'preset'],\n 'defaultState' => 'expanded',\n 'giveFeedbackURL' => 'give_feedback_url',\n 'logoIconURL' => 'logo_icon_url',\n 'position' => 'fixed',\n 'reportIssueURL' => 'report_issue_url',\n 'speakToInterruptText' => 'speak_to_interrupt_text',\n 'startCallText' => 'start_call_text',\n 'theme' => 'light',\n 'viewHistoryURL' => 'view_history_url',\n ],\n);\n\nvar_dump($inferenceEmbedding);",
4885
4885
  },
4886
4886
  http: {
4887
4887
  example: "curl https://api.telnyx.com/v2/ai/assistants/$ASSISTANT_ID/versions/$VERSION_ID \\\n -H 'Content-Type: application/json' \\\n -H \"Authorization: Bearer $TELNYX_API_KEY\" \\\n -d '{}'",
@@ -4898,7 +4898,7 @@ const EMBEDDED_METHODS = [
4898
4898
  qualified: 'client.ai.assistants.versions.promote',
4899
4899
  params: ['assistant_id: string;', 'version_id: string;'],
4900
4900
  response: "{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: object; fallback_config?: object; greeting?: string; import_metadata?: object; insight_settings?: object; integrations?: object[]; interruption_settings?: object; llm_api_key_ref?: string; mcp_servers?: object[]; messaging_settings?: object; observability_settings?: object; post_conversation_settings?: object; privacy_settings?: object; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: object; tools?: inference_embedding_webhook_tool_params | retrieval_tool | object | hangup_tool | object | object | object | object | object | object[]; transcription?: object; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: object; widget_settings?: object; }",
4901
- markdown: "## promote\n\n`client.ai.assistants.versions.promote(assistant_id: string, version_id: string): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**post** `/ai/assistants/{assistant_id}/versions/{version_id}/promote`\n\nPromotes a specific version to be the main/current version of the assistant. This will delete any existing canary deploy configuration and send all live production traffic to this version.\n\n### Parameters\n\n- `assistant_id: string`\n\n- `version_id: string`\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.versions.promote('version_id', { assistant_id: 'assistant_id' });\n\nconsole.log(inferenceEmbedding);\n```",
4901
+ markdown: "## promote\n\n`client.ai.assistants.versions.promote(assistant_id: string, version_id: string): { id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: enabled_features[]; external_llm?: external_llm; fallback_config?: fallback_config; greeting?: string; import_metadata?: import_metadata; insight_settings?: insight_settings; integrations?: assistant_integration[]; interruption_settings?: inference_embedding_interruption_settings; llm_api_key_ref?: string; mcp_servers?: assistant_mcp_server[]; messaging_settings?: messaging_settings; observability_settings?: observability; post_conversation_settings?: post_conversation_settings; privacy_settings?: privacy_settings; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: telephony_settings; tools?: assistant_tool[]; transcription?: transcription_settings; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: voice_settings; widget_settings?: widget_settings; }`\n\n**post** `/ai/assistants/{assistant_id}/versions/{version_id}/promote`\n\nPromotes a specific version to be the main/current version of the assistant. This will delete any existing canary deploy configuration and send all live production traffic to this version.\n\n### Parameters\n\n- `assistant_id: string`\n\n- `version_id: string`\n\n### Returns\n\n- `{ id: string; created_at: string; instructions: string; model: string; name: string; description?: string; dynamic_variables?: object; dynamic_variables_webhook_timeout_ms?: number; dynamic_variables_webhook_url?: string; enabled_features?: 'telephony' | 'messaging'[]; external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; fallback_config?: { external_llm?: external_llm; llm_api_key_ref?: string; model?: string; }; greeting?: string; import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }; insight_settings?: { insight_group_id?: string; }; integrations?: { integration_id: string; allowed_list?: string[]; }[]; interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: start_speaking_plan; }; llm_api_key_ref?: string; mcp_servers?: { id: string; allowed_tools?: string[]; }[]; messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }; observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }; post_conversation_settings?: { enabled?: boolean; }; privacy_settings?: { data_retention?: boolean; }; related_mission_ids?: string[]; tags?: string[]; telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: object; recording_settings?: object; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: object; }; tools?: object | object | { handoff: object; type: 'handoff'; } | object | { transfer: object; type: 'transfer'; } | { invite: object; type: 'invite'; } | { refer: object; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: object; type: 'send_message'; } | { skip_turn: object; type: 'skip_turn'; }[]; transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: transcription_settings_config; }; version_created_at?: string; version_id?: string; version_name?: string; voice_settings?: { voice: string; api_key_ref?: string; background_audio?: object | object | object; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }; widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: audio_visualizer_config; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }; }`\n\n - `id: string`\n - `created_at: string`\n - `instructions: string`\n - `model: string`\n - `name: string`\n - `description?: string`\n - `dynamic_variables?: object`\n - `dynamic_variables_webhook_timeout_ms?: number`\n - `dynamic_variables_webhook_url?: string`\n - `enabled_features?: 'telephony' | 'messaging'[]`\n - `external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }`\n - `fallback_config?: { external_llm?: { base_url: string; model: string; authentication_method?: 'token' | 'certificate'; certificate_ref?: string; forward_metadata?: boolean; llm_api_key_ref?: string; token_retrieval_url?: string; }; llm_api_key_ref?: string; model?: string; }`\n - `greeting?: string`\n - `import_metadata?: { import_id?: string; import_provider?: 'elevenlabs' | 'vapi' | 'retell'; }`\n - `insight_settings?: { insight_group_id?: string; }`\n - `integrations?: { integration_id: string; allowed_list?: string[]; }[]`\n - `interruption_settings?: { disable_greeting_interruption?: boolean; enable?: boolean; start_speaking_plan?: { transcription_endpointing_plan?: transcription_endpointing_plan; wait_seconds?: number; }; }`\n - `llm_api_key_ref?: string`\n - `mcp_servers?: { id: string; allowed_tools?: string[]; }[]`\n - `messaging_settings?: { conversation_inactivity_minutes?: number; default_messaging_profile_id?: string; delivery_status_webhook_url?: string; }`\n - `observability_settings?: { host?: string; prompt_label?: string; prompt_name?: string; prompt_sync?: 'enabled' | 'disabled'; prompt_version?: number; public_key_ref?: string; secret_key_ref?: string; status?: 'enabled' | 'disabled'; }`\n - `post_conversation_settings?: { enabled?: boolean; }`\n - `privacy_settings?: { data_retention?: boolean; }`\n - `related_mission_ids?: string[]`\n - `tags?: string[]`\n - `telephony_settings?: { default_texml_app_id?: string; noise_suppression?: 'krisp' | 'deepfilternet' | 'disabled'; noise_suppression_config?: { attenuation_limit?: number; mode?: 'advanced'; }; recording_settings?: { channels?: 'single' | 'dual'; enabled?: boolean; format?: 'wav' | 'mp3'; stop_on_conversation_end?: boolean; }; supports_unauthenticated_web_calls?: boolean; time_limit_secs?: number; user_idle_reply_secs?: number; user_idle_timeout_secs?: number; voicemail_detection?: { on_voicemail_detected?: { action?: 'stop_assistant' | 'leave_message_and_stop_assistant' | 'continue_assistant'; voicemail_message?: object; }; }; }`\n - `tools?: { type: 'webhook'; webhook: { description: string; name: string; url: string; async?: boolean; async_timeout_ms?: number; body_parameters?: object; headers?: object[]; method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; path_parameters?: object; query_parameters?: object; store_fields_as_variables?: object[]; timeout_ms?: number; }; } | { retrieval: object; type: 'retrieval'; } | { handoff: { ai_assistants: { id: string; name: string; }[]; voice_mode?: 'unified' | 'distinct'; }; type: 'handoff'; } | { hangup: object; type: 'hangup'; } | { transfer: { from: string; targets: { to: string; name?: string; }[] | string; custom_headers?: { name?: string; value?: string; }[]; voicemail_detection?: { detection_config?: object; detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; warm_message_delay_ms?: number; warm_transfer_instructions?: string; }; type: 'transfer'; } | { invite: { from: string; custom_headers?: { name?: string; value?: string; }[]; targets?: { to: string; name?: string; }[] | string; voicemail_detection?: { detection_mode?: 'disabled' | 'premium'; on_voicemail_detected?: object; }; }; type: 'invite'; } | { refer: { targets: { name: string; sip_address: string; sip_auth_password?: string; sip_auth_username?: string; }[]; custom_headers?: { name?: string; value?: string; }[]; sip_headers?: { name?: 'User-to-User' | 'Diversion'; value?: string; }[]; }; type: 'refer'; } | { send_dtmf: object; type: 'send_dtmf'; } | { send_message: { message_template?: string; }; type: 'send_message'; } | { skip_turn: { description?: string; }; type: 'skip_turn'; }[]`\n - `transcription?: { api_key_ref?: string; language?: string; model?: string; region?: string; settings?: { eager_eot_threshold?: number; enable_endpoint_detection?: boolean; end_of_turn_confidence_threshold?: number; eot_threshold?: number; eot_timeout_ms?: number; interim_results?: boolean; keyterm?: string; max_endpoint_delay_ms?: number; max_turn_silence?: number; min_turn_silence?: number; numerals?: boolean; smart_format?: boolean; }; }`\n - `version_created_at?: string`\n - `version_id?: string`\n - `version_name?: string`\n - `voice_settings?: { voice: string; api_key_ref?: string; background_audio?: { type: 'predefined_media'; value: 'silence' | 'office'; volume?: number; } | { type: 'media_url'; value: string; } | { type: 'media_name'; value: string; }; expressive_mode?: boolean; language_boost?: string; similarity_boost?: number; speed?: number; style?: number; temperature?: number; use_speaker_boost?: boolean; voice_speed?: number; }`\n - `widget_settings?: { agent_thinking_text?: string; audio_visualizer_config?: { color?: 'verdant' | 'twilight' | 'bloom' | 'mystic' | 'flare' | 'glacier'; preset?: string; }; default_state?: 'expanded' | 'collapsed'; give_feedback_url?: string; logo_icon_url?: string; position?: 'fixed' | 'static'; report_issue_url?: string; speak_to_interrupt_text?: string; start_call_text?: string; theme?: 'light' | 'dark'; view_history_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst inferenceEmbedding = await client.ai.assistants.versions.promote('version_id', { assistant_id: 'assistant_id' });\n\nconsole.log(inferenceEmbedding);\n```",
4902
4902
  perLanguage: {
4903
4903
  typescript: {
4904
4904
  method: 'client.ai.assistants.versions.promote',
@@ -21731,8 +21731,8 @@ const EMBEDDED_METHODS = [
21731
21731
  'webhook_failover_url?: string;',
21732
21732
  'webhook_url?: string;',
21733
21733
  ],
21734
- response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
21735
- markdown: "## send\n\n`client.messages.send(to: string, auto_detect?: boolean, encoding?: 'auto' | 'gsm7' | 'ucs2', from?: string, media_urls?: string[], messaging_profile_id?: string, send_at?: string, subject?: string, text?: string, type?: 'SMS' | 'MMS', use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages`\n\nSend a message with a Phone Number, Alphanumeric Sender ID, Short Code or Number Pool.\n\nThis endpoint allows you to send a message with any messaging resource.\nCurrent messaging resources include: long-code, short-code, number-pool, and\nalphanumeric-sender-id.\n\n\n### Parameters\n\n- `to: string`\n Receiving address (+E.164 formatted phone number or short code).\n\n- `auto_detect?: boolean`\n Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.\n\n- `encoding?: 'auto' | 'gsm7' | 'ucs2'`\n Encoding to use for the message. `auto` (default) uses smart encoding to automatically select the most efficient encoding. `gsm7` forces GSM-7 encoding (returns 400 if message contains characters that cannot be encoded). `ucs2` forces UCS-2 encoding and disables smart encoding. When set, this overrides the messaging profile's `smart_encoding` setting.\n\n- `from?: string`\n Sending address (+E.164 formatted phone number, alphanumeric sender ID, or short code).\n\n**Required if sending with a phone number, short code, or alphanumeric sender ID.**\n\n\n- `media_urls?: string[]`\n A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**\n\n- `messaging_profile_id?: string`\n Unique identifier for a messaging profile.\n\n**Required if sending via number pool or with an alphanumeric sender ID.**\n\n\n- `send_at?: string`\n ISO 8601 formatted date indicating when to send the message - accurate up till a minute.\n\n- `subject?: string`\n Subject of multimedia message\n\n- `text?: string`\n Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**\n\n- `type?: 'SMS' | 'MMS'`\n The protocol for sending the message, either SMS or MMS.\n\n- `use_profile_webhooks?: boolean`\n If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.\n\n- `webhook_failover_url?: string`\n The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.\n\n- `webhook_url?: string`\n The URL where webhooks related to this message will be sent.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.send({ to: '+18445550001' });\n\nconsole.log(response);\n```",
21734
+ response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
21735
+ markdown: "## send\n\n`client.messages.send(to: string, auto_detect?: boolean, encoding?: 'auto' | 'gsm7' | 'ucs2', from?: string, media_urls?: string[], messaging_profile_id?: string, send_at?: string, subject?: string, text?: string, type?: 'SMS' | 'MMS', use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages`\n\nSend a message with a Phone Number, Alphanumeric Sender ID, Short Code or Number Pool.\n\nThis endpoint allows you to send a message with any messaging resource.\nCurrent messaging resources include: long-code, short-code, number-pool, and\nalphanumeric-sender-id.\n\n\n### Parameters\n\n- `to: string`\n Receiving address (+E.164 formatted phone number or short code).\n\n- `auto_detect?: boolean`\n Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.\n\n- `encoding?: 'auto' | 'gsm7' | 'ucs2'`\n Encoding to use for the message. `auto` (default) uses smart encoding to automatically select the most efficient encoding. `gsm7` forces GSM-7 encoding (returns 400 if message contains characters that cannot be encoded). `ucs2` forces UCS-2 encoding and disables smart encoding. When set, this overrides the messaging profile's `smart_encoding` setting.\n\n- `from?: string`\n Sending address (+E.164 formatted phone number, alphanumeric sender ID, or short code).\n\n**Required if sending with a phone number, short code, or alphanumeric sender ID.**\n\n\n- `media_urls?: string[]`\n A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**\n\n- `messaging_profile_id?: string`\n Unique identifier for a messaging profile.\n\n**Required if sending via number pool or with an alphanumeric sender ID.**\n\n\n- `send_at?: string`\n ISO 8601 formatted date indicating when to send the message - accurate up till a minute.\n\n- `subject?: string`\n Subject of multimedia message\n\n- `text?: string`\n Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**\n\n- `type?: 'SMS' | 'MMS'`\n The protocol for sending the message, either SMS or MMS.\n\n- `use_profile_webhooks?: boolean`\n If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.\n\n- `webhook_failover_url?: string`\n The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.\n\n- `webhook_url?: string`\n The URL where webhooks related to this message will be sent.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.send({ to: '+18445550001' });\n\nconsole.log(response);\n```",
21736
21736
  perLanguage: {
21737
21737
  typescript: {
21738
21738
  method: 'client.messages.send',
@@ -21788,8 +21788,8 @@ const EMBEDDED_METHODS = [
21788
21788
  'webhook_failover_url?: string;',
21789
21789
  'webhook_url?: string;',
21790
21790
  ],
21791
- response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
21792
- markdown: "## send_long_code\n\n`client.messages.sendLongCode(from: string, to: string, auto_detect?: boolean, encoding?: 'auto' | 'gsm7' | 'ucs2', media_urls?: string[], subject?: string, text?: string, type?: 'SMS' | 'MMS', use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages/long_code`\n\nSend a long code message\n\n### Parameters\n\n- `from: string`\n Phone number, in +E.164 format, used to send the message.\n\n- `to: string`\n Receiving address (+E.164 formatted phone number or short code).\n\n- `auto_detect?: boolean`\n Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.\n\n- `encoding?: 'auto' | 'gsm7' | 'ucs2'`\n Encoding to use for the message. `auto` (default) uses smart encoding to automatically select the most efficient encoding. `gsm7` forces GSM-7 encoding (returns 400 if message contains characters that cannot be encoded). `ucs2` forces UCS-2 encoding and disables smart encoding. When set, this overrides the messaging profile's `smart_encoding` setting.\n\n- `media_urls?: string[]`\n A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**\n\n- `subject?: string`\n Subject of multimedia message\n\n- `text?: string`\n Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**\n\n- `type?: 'SMS' | 'MMS'`\n The protocol for sending the message, either SMS or MMS.\n\n- `use_profile_webhooks?: boolean`\n If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.\n\n- `webhook_failover_url?: string`\n The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.\n\n- `webhook_url?: string`\n The URL where webhooks related to this message will be sent.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.sendLongCode({ from: '+18445550001', to: '+13125550002' });\n\nconsole.log(response);\n```",
21791
+ response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
21792
+ markdown: "## send_long_code\n\n`client.messages.sendLongCode(from: string, to: string, auto_detect?: boolean, encoding?: 'auto' | 'gsm7' | 'ucs2', media_urls?: string[], subject?: string, text?: string, type?: 'SMS' | 'MMS', use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages/long_code`\n\nSend a long code message\n\n### Parameters\n\n- `from: string`\n Phone number, in +E.164 format, used to send the message.\n\n- `to: string`\n Receiving address (+E.164 formatted phone number or short code).\n\n- `auto_detect?: boolean`\n Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.\n\n- `encoding?: 'auto' | 'gsm7' | 'ucs2'`\n Encoding to use for the message. `auto` (default) uses smart encoding to automatically select the most efficient encoding. `gsm7` forces GSM-7 encoding (returns 400 if message contains characters that cannot be encoded). `ucs2` forces UCS-2 encoding and disables smart encoding. When set, this overrides the messaging profile's `smart_encoding` setting.\n\n- `media_urls?: string[]`\n A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**\n\n- `subject?: string`\n Subject of multimedia message\n\n- `text?: string`\n Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**\n\n- `type?: 'SMS' | 'MMS'`\n The protocol for sending the message, either SMS or MMS.\n\n- `use_profile_webhooks?: boolean`\n If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.\n\n- `webhook_failover_url?: string`\n The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.\n\n- `webhook_url?: string`\n The URL where webhooks related to this message will be sent.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.sendLongCode({ from: '+18445550001', to: '+13125550002' });\n\nconsole.log(response);\n```",
21793
21793
  perLanguage: {
21794
21794
  typescript: {
21795
21795
  method: 'client.messages.sendLongCode',
@@ -21845,8 +21845,8 @@ const EMBEDDED_METHODS = [
21845
21845
  'webhook_failover_url?: string;',
21846
21846
  'webhook_url?: string;',
21847
21847
  ],
21848
- response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
21849
- markdown: "## send_number_pool\n\n`client.messages.sendNumberPool(messaging_profile_id: string, to: string, auto_detect?: boolean, encoding?: 'auto' | 'gsm7' | 'ucs2', media_urls?: string[], subject?: string, text?: string, type?: 'SMS' | 'MMS', use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages/number_pool`\n\nSend a message using number pool\n\n### Parameters\n\n- `messaging_profile_id: string`\n Unique identifier for a messaging profile.\n\n- `to: string`\n Receiving address (+E.164 formatted phone number or short code).\n\n- `auto_detect?: boolean`\n Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.\n\n- `encoding?: 'auto' | 'gsm7' | 'ucs2'`\n Encoding to use for the message. `auto` (default) uses smart encoding to automatically select the most efficient encoding. `gsm7` forces GSM-7 encoding (returns 400 if message contains characters that cannot be encoded). `ucs2` forces UCS-2 encoding and disables smart encoding. When set, this overrides the messaging profile's `smart_encoding` setting.\n\n- `media_urls?: string[]`\n A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**\n\n- `subject?: string`\n Subject of multimedia message\n\n- `text?: string`\n Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**\n\n- `type?: 'SMS' | 'MMS'`\n The protocol for sending the message, either SMS or MMS.\n\n- `use_profile_webhooks?: boolean`\n If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.\n\n- `webhook_failover_url?: string`\n The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.\n\n- `webhook_url?: string`\n The URL where webhooks related to this message will be sent.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.sendNumberPool({ messaging_profile_id: 'abc85f64-5717-4562-b3fc-2c9600000000', to: '+13125550002' });\n\nconsole.log(response);\n```",
21848
+ response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
21849
+ markdown: "## send_number_pool\n\n`client.messages.sendNumberPool(messaging_profile_id: string, to: string, auto_detect?: boolean, encoding?: 'auto' | 'gsm7' | 'ucs2', media_urls?: string[], subject?: string, text?: string, type?: 'SMS' | 'MMS', use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages/number_pool`\n\nSend a message using number pool\n\n### Parameters\n\n- `messaging_profile_id: string`\n Unique identifier for a messaging profile.\n\n- `to: string`\n Receiving address (+E.164 formatted phone number or short code).\n\n- `auto_detect?: boolean`\n Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.\n\n- `encoding?: 'auto' | 'gsm7' | 'ucs2'`\n Encoding to use for the message. `auto` (default) uses smart encoding to automatically select the most efficient encoding. `gsm7` forces GSM-7 encoding (returns 400 if message contains characters that cannot be encoded). `ucs2` forces UCS-2 encoding and disables smart encoding. When set, this overrides the messaging profile's `smart_encoding` setting.\n\n- `media_urls?: string[]`\n A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**\n\n- `subject?: string`\n Subject of multimedia message\n\n- `text?: string`\n Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**\n\n- `type?: 'SMS' | 'MMS'`\n The protocol for sending the message, either SMS or MMS.\n\n- `use_profile_webhooks?: boolean`\n If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.\n\n- `webhook_failover_url?: string`\n The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.\n\n- `webhook_url?: string`\n The URL where webhooks related to this message will be sent.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.sendNumberPool({ messaging_profile_id: 'abc85f64-5717-4562-b3fc-2c9600000000', to: '+13125550002' });\n\nconsole.log(response);\n```",
21850
21850
  perLanguage: {
21851
21851
  typescript: {
21852
21852
  method: 'client.messages.sendNumberPool',
@@ -21902,8 +21902,8 @@ const EMBEDDED_METHODS = [
21902
21902
  'webhook_failover_url?: string;',
21903
21903
  'webhook_url?: string;',
21904
21904
  ],
21905
- response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
21906
- markdown: "## send_short_code\n\n`client.messages.sendShortCode(from: string, to: string, auto_detect?: boolean, encoding?: 'auto' | 'gsm7' | 'ucs2', media_urls?: string[], subject?: string, text?: string, type?: 'SMS' | 'MMS', use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages/short_code`\n\nSend a short code message\n\n### Parameters\n\n- `from: string`\n Phone number, in +E.164 format, used to send the message.\n\n- `to: string`\n Receiving address (+E.164 formatted phone number or short code).\n\n- `auto_detect?: boolean`\n Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.\n\n- `encoding?: 'auto' | 'gsm7' | 'ucs2'`\n Encoding to use for the message. `auto` (default) uses smart encoding to automatically select the most efficient encoding. `gsm7` forces GSM-7 encoding (returns 400 if message contains characters that cannot be encoded). `ucs2` forces UCS-2 encoding and disables smart encoding. When set, this overrides the messaging profile's `smart_encoding` setting.\n\n- `media_urls?: string[]`\n A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**\n\n- `subject?: string`\n Subject of multimedia message\n\n- `text?: string`\n Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**\n\n- `type?: 'SMS' | 'MMS'`\n The protocol for sending the message, either SMS or MMS.\n\n- `use_profile_webhooks?: boolean`\n If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.\n\n- `webhook_failover_url?: string`\n The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.\n\n- `webhook_url?: string`\n The URL where webhooks related to this message will be sent.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.sendShortCode({ from: '+18445550001', to: '+18445550001' });\n\nconsole.log(response);\n```",
21905
+ response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
21906
+ markdown: "## send_short_code\n\n`client.messages.sendShortCode(from: string, to: string, auto_detect?: boolean, encoding?: 'auto' | 'gsm7' | 'ucs2', media_urls?: string[], subject?: string, text?: string, type?: 'SMS' | 'MMS', use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages/short_code`\n\nSend a short code message\n\n### Parameters\n\n- `from: string`\n Phone number, in +E.164 format, used to send the message.\n\n- `to: string`\n Receiving address (+E.164 formatted phone number or short code).\n\n- `auto_detect?: boolean`\n Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.\n\n- `encoding?: 'auto' | 'gsm7' | 'ucs2'`\n Encoding to use for the message. `auto` (default) uses smart encoding to automatically select the most efficient encoding. `gsm7` forces GSM-7 encoding (returns 400 if message contains characters that cannot be encoded). `ucs2` forces UCS-2 encoding and disables smart encoding. When set, this overrides the messaging profile's `smart_encoding` setting.\n\n- `media_urls?: string[]`\n A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**\n\n- `subject?: string`\n Subject of multimedia message\n\n- `text?: string`\n Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**\n\n- `type?: 'SMS' | 'MMS'`\n The protocol for sending the message, either SMS or MMS.\n\n- `use_profile_webhooks?: boolean`\n If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.\n\n- `webhook_failover_url?: string`\n The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.\n\n- `webhook_url?: string`\n The URL where webhooks related to this message will be sent.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.sendShortCode({ from: '+18445550001', to: '+18445550001' });\n\nconsole.log(response);\n```",
21907
21907
  perLanguage: {
21908
21908
  typescript: {
21909
21909
  method: 'client.messages.sendShortCode',
@@ -21956,8 +21956,8 @@ const EMBEDDED_METHODS = [
21956
21956
  'webhook_failover_url?: string;',
21957
21957
  'webhook_url?: string;',
21958
21958
  ],
21959
- response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
21960
- markdown: "## send_group_mms\n\n`client.messages.sendGroupMms(from: string, to: string[], media_urls?: string[], subject?: string, text?: string, use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages/group_mms`\n\nSend a group MMS message\n\n### Parameters\n\n- `from: string`\n Phone number, in +E.164 format, used to send the message.\n\n- `to: string[]`\n A list of destinations. No more than 8 destinations are allowed.\n\n- `media_urls?: string[]`\n A list of media URLs. The total media size must be less than 1 MB.\n\n- `subject?: string`\n Subject of multimedia message\n\n- `text?: string`\n Message body (i.e., content) as a non-empty string.\n\n- `use_profile_webhooks?: boolean`\n If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.\n\n- `webhook_failover_url?: string`\n The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.\n\n- `webhook_url?: string`\n The URL where webhooks related to this message will be sent.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.sendGroupMms({ from: '+13125551234', to: ['+18655551234', '+14155551234'] });\n\nconsole.log(response);\n```",
21959
+ response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
21960
+ markdown: "## send_group_mms\n\n`client.messages.sendGroupMms(from: string, to: string[], media_urls?: string[], subject?: string, text?: string, use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages/group_mms`\n\nSend a group MMS message\n\n### Parameters\n\n- `from: string`\n Phone number, in +E.164 format, used to send the message.\n\n- `to: string[]`\n A list of destinations. No more than 8 destinations are allowed.\n\n- `media_urls?: string[]`\n A list of media URLs. The total media size must be less than 1 MB.\n\n- `subject?: string`\n Subject of multimedia message\n\n- `text?: string`\n Message body (i.e., content) as a non-empty string.\n\n- `use_profile_webhooks?: boolean`\n If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.\n\n- `webhook_failover_url?: string`\n The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.\n\n- `webhook_url?: string`\n The URL where webhooks related to this message will be sent.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.sendGroupMms({ from: '+13125551234', to: ['+18655551234', '+14155551234'] });\n\nconsole.log(response);\n```",
21961
21961
  perLanguage: {
21962
21962
  typescript: {
21963
21963
  method: 'client.messages.sendGroupMms',
@@ -22066,8 +22066,8 @@ const EMBEDDED_METHODS = [
22066
22066
  'webhook_failover_url?: string;',
22067
22067
  'webhook_url?: string;',
22068
22068
  ],
22069
- response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
22070
- markdown: "## schedule\n\n`client.messages.schedule(to: string, auto_detect?: boolean, from?: string, media_urls?: string[], messaging_profile_id?: string, send_at?: string, subject?: string, text?: string, type?: 'SMS' | 'MMS', use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages/schedule`\n\nSchedule a message with a Phone Number, Alphanumeric Sender ID, Short Code or Number Pool.\n\nThis endpoint allows you to schedule a message with any messaging resource.\nCurrent messaging resources include: long-code, short-code, number-pool, and\nalphanumeric-sender-id.\n\n\n### Parameters\n\n- `to: string`\n Receiving address (+E.164 formatted phone number or short code).\n\n- `auto_detect?: boolean`\n Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.\n\n- `from?: string`\n Sending address (+E.164 formatted phone number, alphanumeric sender ID, or short code).\n\n**Required if sending with a phone number, short code, or alphanumeric sender ID.**\n\n\n- `media_urls?: string[]`\n A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**\n\n- `messaging_profile_id?: string`\n Unique identifier for a messaging profile.\n\n**Required if sending via number pool or with an alphanumeric sender ID.**\n\n\n- `send_at?: string`\n ISO 8601 formatted date indicating when to send the message - accurate up till a minute.\n\n- `subject?: string`\n Subject of multimedia message\n\n- `text?: string`\n Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**\n\n- `type?: 'SMS' | 'MMS'`\n The protocol for sending the message, either SMS or MMS.\n\n- `use_profile_webhooks?: boolean`\n If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.\n\n- `webhook_failover_url?: string`\n The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.\n\n- `webhook_url?: string`\n The URL where webhooks related to this message will be sent.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.schedule({ to: '+18445550001' });\n\nconsole.log(response);\n```",
22069
+ response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
22070
+ markdown: "## schedule\n\n`client.messages.schedule(to: string, auto_detect?: boolean, from?: string, media_urls?: string[], messaging_profile_id?: string, send_at?: string, subject?: string, text?: string, type?: 'SMS' | 'MMS', use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages/schedule`\n\nSchedule a message with a Phone Number, Alphanumeric Sender ID, Short Code or Number Pool.\n\nThis endpoint allows you to schedule a message with any messaging resource.\nCurrent messaging resources include: long-code, short-code, number-pool, and\nalphanumeric-sender-id.\n\n\n### Parameters\n\n- `to: string`\n Receiving address (+E.164 formatted phone number or short code).\n\n- `auto_detect?: boolean`\n Automatically detect if an SMS message is unusually long and exceeds a recommended limit of message parts.\n\n- `from?: string`\n Sending address (+E.164 formatted phone number, alphanumeric sender ID, or short code).\n\n**Required if sending with a phone number, short code, or alphanumeric sender ID.**\n\n\n- `media_urls?: string[]`\n A list of media URLs. The total media size must be less than 1 MB.\n\n**Required for MMS**\n\n- `messaging_profile_id?: string`\n Unique identifier for a messaging profile.\n\n**Required if sending via number pool or with an alphanumeric sender ID.**\n\n\n- `send_at?: string`\n ISO 8601 formatted date indicating when to send the message - accurate up till a minute.\n\n- `subject?: string`\n Subject of multimedia message\n\n- `text?: string`\n Message body (i.e., content) as a non-empty string.\n\n**Required for SMS**\n\n- `type?: 'SMS' | 'MMS'`\n The protocol for sending the message, either SMS or MMS.\n\n- `use_profile_webhooks?: boolean`\n If the profile this number is associated with has webhooks, use them for delivery notifications. If webhooks are also specified on the message itself, they will be attempted first, then those on the profile.\n\n- `webhook_failover_url?: string`\n The failover URL where webhooks related to this message will be sent if sending to the primary URL fails.\n\n- `webhook_url?: string`\n The URL where webhooks related to this message will be sent.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.schedule({ to: '+18445550001' });\n\nconsole.log(response);\n```",
22071
22071
  perLanguage: {
22072
22072
  typescript: {
22073
22073
  method: 'client.messages.schedule',
@@ -22111,8 +22111,8 @@ const EMBEDDED_METHODS = [
22111
22111
  stainlessPath: '(resource) messages > (method) cancel_scheduled',
22112
22112
  qualified: 'client.messages.cancelScheduled',
22113
22113
  params: ['id: string;'],
22114
- response: "{ id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: object; rate?: object; }; direction?: 'outbound'; encoding?: string; errors?: object[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; webhook_failover_url?: string; webhook_url?: string; }",
22115
- markdown: "## cancel_scheduled\n\n`client.messages.cancelScheduled(id: string): { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; webhook_failover_url?: string; webhook_url?: string; }`\n\n**delete** `/messages/{id}`\n\nCancel a scheduled message that has not yet been sent. Only messages with `status=scheduled` and `send_at` more than a minute from now can be cancelled.\n\n### Parameters\n\n- `id: string`\n\n### Returns\n\n- `{ id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; webhook_failover_url?: string; webhook_url?: string; }`\n\n - `id?: string`\n - `cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]`\n - `completed_at?: string`\n - `cost?: { amount?: string; currency?: string; }`\n - `cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }`\n - `direction?: 'outbound'`\n - `encoding?: string`\n - `errors?: { code: string; title: string; detail?: string; meta?: object; source?: { parameter?: string; pointer?: string; }; }[]`\n - `from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }`\n - `media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]`\n - `messaging_profile_id?: string`\n - `organization_id?: string`\n - `parts?: number`\n - `received_at?: string`\n - `record_type?: 'message'`\n - `sent_at?: string`\n - `smart_encoding_applied?: boolean`\n - `subject?: string`\n - `tags?: string[]`\n - `tcr_campaign_billable?: boolean`\n - `tcr_campaign_id?: string`\n - `tcr_campaign_registered?: string`\n - `text?: string`\n - `to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]`\n - `type?: 'SMS' | 'MMS'`\n - `valid_until?: string`\n - `webhook_failover_url?: string`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.cancelScheduled('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
22114
+ response: "{ id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: object; rate?: object; }; direction?: 'outbound'; encoding?: string; errors?: object[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; webhook_failover_url?: string; webhook_url?: string; }",
22115
+ markdown: "## cancel_scheduled\n\n`client.messages.cancelScheduled(id: string): { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; webhook_failover_url?: string; webhook_url?: string; }`\n\n**delete** `/messages/{id}`\n\nCancel a scheduled message that has not yet been sent. Only messages with `status=scheduled` and `send_at` more than a minute from now can be cancelled.\n\n### Parameters\n\n- `id: string`\n\n### Returns\n\n- `{ id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; webhook_failover_url?: string; webhook_url?: string; }`\n\n - `id?: string`\n - `cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]`\n - `completed_at?: string`\n - `cost?: { amount?: string; currency?: string; }`\n - `cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }`\n - `direction?: 'outbound'`\n - `encoding?: string`\n - `errors?: { code: string; title: string; detail?: string; meta?: object; source?: { parameter?: string; pointer?: string; }; }[]`\n - `from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }`\n - `media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]`\n - `messaging_profile_id?: string`\n - `num_chars?: number`\n - `organization_id?: string`\n - `parts?: number`\n - `received_at?: string`\n - `record_type?: 'message'`\n - `sent_at?: string`\n - `smart_encoding_applied?: boolean`\n - `subject?: string`\n - `tags?: string[]`\n - `tcr_campaign_billable?: boolean`\n - `tcr_campaign_id?: string`\n - `tcr_campaign_registered?: string`\n - `text?: string`\n - `to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]`\n - `type?: 'SMS' | 'MMS'`\n - `valid_until?: string`\n - `webhook_failover_url?: string`\n - `webhook_url?: string`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.cancelScheduled('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
22116
22116
  perLanguage: {
22117
22117
  typescript: {
22118
22118
  method: 'client.messages.cancelScheduled',
@@ -22157,7 +22157,7 @@ const EMBEDDED_METHODS = [
22157
22157
  qualified: 'client.messages.retrieve',
22158
22158
  params: ['id: string;'],
22159
22159
  response: '{ data?: object | object; }',
22160
- markdown: "## retrieve\n\n`client.messages.retrieve(id: string): { data?: outbound_message_payload | inbound_message_payload; }`\n\n**get** `/messages/{id}`\n\nNote: This API endpoint can only retrieve messages that are no older than 10 days since their creation. If you require messages older than this, please generate an [MDR report.](https://developers.telnyx.com/api-reference/mdr-usage-reports/create-mdr-usage-report)\n\n### Parameters\n\n- `id: string`\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; } | { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'inbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; } | { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'inbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: 'received' | 'delivered'; }; media?: { content_type?: string; hash_sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst message = await client.messages.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(message);\n```",
22160
+ markdown: "## retrieve\n\n`client.messages.retrieve(id: string): { data?: outbound_message_payload | inbound_message_payload; }`\n\n**get** `/messages/{id}`\n\nNote: This API endpoint can only retrieve messages that are no older than 10 days since their creation. If you require messages older than this, please generate an [MDR report.](https://developers.telnyx.com/api-reference/mdr-usage-reports/create-mdr-usage-report)\n\n### Parameters\n\n- `id: string`\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; } | { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'inbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; } | { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'inbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: 'received' | 'delivered'; }; media?: { content_type?: string; hash_sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst message = await client.messages.retrieve('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(message);\n```",
22161
22161
  perLanguage: {
22162
22162
  typescript: {
22163
22163
  method: 'client.messages.retrieve',
@@ -22209,8 +22209,8 @@ const EMBEDDED_METHODS = [
22209
22209
  'webhook_failover_url?: string;',
22210
22210
  'webhook_url?: string;',
22211
22211
  ],
22212
- response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
22213
- markdown: "## send_with_alphanumeric_sender\n\n`client.messages.sendWithAlphanumericSender(from: string, messaging_profile_id: string, text: string, to: string, use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages/alphanumeric_sender_id`\n\nSend an SMS message using an alphanumeric sender ID. This is SMS only.\n\n### Parameters\n\n- `from: string`\n A valid alphanumeric sender ID on the user's account.\n\n- `messaging_profile_id: string`\n The messaging profile ID to use.\n\n- `text: string`\n The message body.\n\n- `to: string`\n Receiving address (+E.164 formatted phone number).\n\n- `use_profile_webhooks?: boolean`\n If true, use the messaging profile's webhook settings.\n\n- `webhook_failover_url?: string`\n Failover callback URL for delivery status updates.\n\n- `webhook_url?: string`\n Callback URL for delivery status updates.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.sendWithAlphanumericSender({\n from: 'MyCompany',\n messaging_profile_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n text: 'text',\n to: '+E.164',\n});\n\nconsole.log(response);\n```",
22212
+ response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }",
22213
+ markdown: "## send_with_alphanumeric_sender\n\n`client.messages.sendWithAlphanumericSender(from: string, messaging_profile_id: string, text: string, to: string, use_profile_webhooks?: boolean, webhook_failover_url?: string, webhook_url?: string): { data?: outbound_message_payload; }`\n\n**post** `/messages/alphanumeric_sender_id`\n\nSend an SMS message using an alphanumeric sender ID. This is SMS only.\n\n### Parameters\n\n- `from: string`\n A valid alphanumeric sender ID on the user's account.\n\n- `messaging_profile_id: string`\n The messaging profile ID to use.\n\n- `text: string`\n The message body.\n\n- `to: string`\n Receiving address (+E.164 formatted phone number).\n\n- `use_profile_webhooks?: boolean`\n If true, use the messaging profile's webhook settings.\n\n- `webhook_failover_url?: string`\n Failover callback URL for delivery status updates.\n\n- `webhook_url?: string`\n Callback URL for delivery status updates.\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.sendWithAlphanumericSender({\n from: 'MyCompany',\n messaging_profile_id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n text: 'text',\n to: '+E.164',\n});\n\nconsole.log(response);\n```",
22214
22214
  perLanguage: {
22215
22215
  typescript: {
22216
22216
  method: 'client.messages.sendWithAlphanumericSender',
@@ -22254,8 +22254,8 @@ const EMBEDDED_METHODS = [
22254
22254
  stainlessPath: '(resource) messages > (method) retrieve_group_messages',
22255
22255
  qualified: 'client.messages.retrieveGroupMessages',
22256
22256
  params: ['message_id: string;'],
22257
- response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }[]; }",
22258
- markdown: "## retrieve_group_messages\n\n`client.messages.retrieveGroupMessages(message_id: string): { data?: outbound_message_payload[]; }`\n\n**get** `/messages/group/{message_id}`\n\nRetrieve all messages in a group MMS conversation by the group message ID.\n\n### Parameters\n\n- `message_id: string`\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }[]; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.retrieveGroupMessages('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
22257
+ response: "{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }[]; }",
22258
+ markdown: "## retrieve_group_messages\n\n`client.messages.retrieveGroupMessages(message_id: string): { data?: outbound_message_payload[]; }`\n\n**get** `/messages/group/{message_id}`\n\nRetrieve all messages in a group MMS conversation by the group message ID.\n\n### Parameters\n\n- `message_id: string`\n\n### Returns\n\n- `{ data?: { id?: string; cc?: object[]; completed_at?: string; cost?: object; cost_breakdown?: object; direction?: 'outbound'; encoding?: string; errors?: messaging_error[]; from?: object; media?: object[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: object[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }[]; }`\n\n - `data?: { id?: string; cc?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; completed_at?: string; cost?: { amount?: string; currency?: string; }; cost_breakdown?: { carrier_fee?: { amount?: string; currency?: string; }; rate?: { amount?: string; currency?: string; }; }; direction?: 'outbound'; encoding?: string; errors?: { code: string; title: string; detail?: string; meta?: object; source?: object; }[]; from?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; }; media?: { content_type?: string; sha256?: string; size?: number; url?: string; }[]; messaging_profile_id?: string; num_chars?: number; organization_id?: string; parts?: number; received_at?: string; record_type?: 'message'; sent_at?: string; smart_encoding_applied?: boolean; subject?: string; tags?: string[]; tcr_campaign_billable?: boolean; tcr_campaign_id?: string; tcr_campaign_registered?: string; text?: string; to?: { carrier?: string; line_type?: 'Wireline' | 'Wireless' | 'VoWiFi' | 'VoIP' | 'Pre-Paid Wireless' | ''; phone_number?: string; status?: string; }[]; type?: 'SMS' | 'MMS'; valid_until?: string; wait_seconds?: number; webhook_failover_url?: string; webhook_url?: string; }[]`\n\n### Example\n\n```typescript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx();\n\nconst response = await client.messages.retrieveGroupMessages('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
22259
22259
  perLanguage: {
22260
22260
  typescript: {
22261
22261
  method: 'client.messages.retrieveGroupMessages',