text_only filter to conversation list and message text search endpoints so developers can narrow results to text-only conversations.load_procedure as a system tool configuration with ProcedureAtVersion, and added skills to ProcedureCompilerMode. ProcedureSettings.compiler_mode now defaults to skills.gemini-3.1-flash-lite and qwen35-397b-a17b as LLM options, added genesys_bot_connector as a conversation initiation source, added auto_resolve_after_inactive_minutes to alerting settings, and added attributes_to_headers to SIP trunk configuration.null to omit the temperature field from downstream LLM requests.custom_headers for token requests.convai_templates and transcription_tasks to workspace resource types.video_processing_failed boolean field.text_only filters, new ElevenAgents configuration fields, updated LLM options and voice isolator history updates. The release also excludes the speech_engine_custom.py example from Fern packaging.text_only filters, new ElevenAgents configuration fields, updated LLM options and voice isolator history updates.@elevenlabs/client@1.7.1 pins livekit-client to 2.16.1 and forces the dual peer connection path to fix WebRTC connection failures with newer LiveKit join protocols.@elevenlabs/types, including Role, Mode, Status, Callbacks, CALLBACK_KEYS, DisconnectionDetails, MessagePayload and AudioAlignmentEvent. Import those types from @elevenlabs/client instead. The types package now contains only generated code.ConnectionManager and DataChannelReceiver cleanup on deallocation, skipped audio hardware initialization in text-only mode, removed unused code and duplicate agent ID extraction, and bumped visionOS support.GET /v1/convai/agents/{agent_id}/versions/{version_id}
agent_id (string) and version_id (string)AgentVersionMetadata with id, agent_id, branch_id, version_description, seq_no_in_branch, time_committed_secs, parents and optional nullable access_infoPATCH /v1/workspace/auth-connections/{auth_connection_id}
auth_connection_id (string)UpdateOAuth2ClientCredsRequest, UpdateBasicAuthRequest and UpdateOAuth2JWTRequestUpdateOAuth2ClientCredsRequest includes optional nullable custom_headers as an object with string valuesGET /v1/convai/conversations
text_only (boolean)GET /v1/convai/conversations/messages/text-search
text_only (boolean)PromptAgentAPIModel-Input.temperature and PromptAgentAPIModel-Output.temperature now accept nulltemperature to null omits the temperature field from downstream LLM requestsLLM enum
gemini-3.1-flash-lite and qwen35-397b-a17bConversationInitiationSource enum
genesys_bot_connectorLoadProcedureToolConfig with system_tool_type defaulting to load_procedureProcedureAtVersion with required procedure_id, name, content and agent_idskills to ProcedureCompilerModeProcedureSettings.compiler_mode default from append to skillsauto_resolve_after_inactive_minutes to AgentAlertingSettings as an integer with default 15 and minimum 1auto_resolve_after_inactive_minutes to AgentAlertingMonitorConfigattributes_to_headers as an object with string values to inbound and outbound SIP trunk request and response modelsCreateBearerAuthRequest with required name, provider and tokenSlackBotAuthResponse with required name and id, auth_type defaulting to slack_bot_auth, and provider defaulting to Slackcustom_headers to OAuth2ClientCredsResponse as an object with string valuesWorkspaceResourceType enum
convai_templates and transcription_tasksAudioIsolationHistoryItemResponseModel
video_processing_failed (boolean)SMSConversationInfo, sms as an authorization method and twilio_sms as a conversation initiation source.gpt-5.4-mini, gpt-5.4-nano, gpt-5.4-mini-2026-03-17 and gpt-5.4-nano-2026-03-17.allowed_ips to service account API key create, edit and response schemas. Create requests accept an array of IP addresses or CIDR ranges, or null to allow all IPs. Edit requests also accept clear and no_update.conversational_ai_read and voice_design to workspace group permissions.POST /v1/text-to-voice/create-previews. Use Design a voice to create previews, then use the returned generated_voice_id when creating a voice.wav_8000, wav_16000, wav_22050, wav_24000, wav_32000, wav_44100 and wav_48000 to the output_format query parameter on speech-to-speech conversion.onAgentToolResponse. The callback now receives agent_tool_response_full_payload events with the raw full_tool_result string, capped at 64 KB, when enabled in the agent configuration.RealtimeConnection now exposes mute(), unmute() and isMuted, and useScribe exposes matching state and callbacks. The releases also add onAgentResponseCorrection for agent response correction events.contextId to sendContextualUpdate for deduplicating contextual updates and added llm to the typed agent prompt override for conversation sessions. The React package also allows useScribe microphone deviceId to use full ConstrainDOMString constraints.@elevenlabs/client@1.7.0, including full tool result payload support.event_id, so voice and DTMF turns render the user transcript before the agent message.GET /v1/convai/conversations/{conversation_id}/sip-messages
conversation_id (string)page_size (integer, default 20) and cursorGetSIPLogMessagesResponse with sip_messages, nullable next_cursor and has_moreGET /v1/convai/phone-numbers/{phone_number_id}/sip-messages
phone_number_id (string)page_size (integer, default 20) and cursorGetSIPLogMessagesResponseGET /v1/convai/knowledge-base/{documentation_id}/chunks
documentation_id (string)embedding_modelpage_size (integer, default 30) and cursorKnowledgeBaseDocumentChunksResponseModel with chunks and nullable next_cursorPATCH /v1/convai/knowledge-base/{documentation_id}/update-file
documentation_id (string)file (string, binary)POST /v1/workspace/analytics/requests
start_time, end_time, limit (integer, default 100, maximum 1000), sort, filters and searchWorkspaceAnalyticsQueryResponseModel with columns, column_types, rows and column_unitsPATCH /v1/convai/knowledge-base/{documentation_id}
name (optional nullable string) and content (optional nullable string)POST /v1/convai/agents/create
enable_versioning default from false to truePATCH /v1/convai/agents/{agent_id}
enable_versioning_if_not_enabled default from false to truePATCH /v1/convai/phone-numbers/{phone_number_id}
environment and branch_id to phone number agent configurationstore_sip_messages now defaults to trueGET /v1/convai/agents/{agent_id}/widget
file_input_config for widget file uploadsLLM enum
gpt-5.4-mini, gpt-5.4-nano, gpt-5.4-mini-2026-03-17 and gpt-5.4-nano-2026-03-17AuthorizationMethod enum
smsConversationInitiationSource enum
twilio_smsAgentTopicResponseModel
parent_topic_id, x_2d and y_2dBackgroundMusicConfig and BackgroundMusicConfigWorkflowOverride
source_type, source_id, volume and crossfade_loopBackgroundMusicPresetId enum values city, elevator1, elevator2, elevator3, elevator4, office1, office2, restaurant and typingAgentPlatformSettingsResponseModel
alerting with Monitor enum values elevated_conversation_failure_rate and elevated_tool_failure_rateProcedureCompilerMode enum
deterministicallowed_ips as an optional array of IP addresses or CIDR ranges, with 1 to 100 entriesnull to allow all IPsclear or no_update; the default is no_updateWorkspaceApiKeyResponseModel
allowed_ipsWorkspaceGroupPermission enum
conversational_ai_read and voice_designApiIntegrationOAuth2CustomAppResponse for user-owned OAuth2 custom app connectionsPOST /v1/text-to-voice/create-previews
POST /v1/speech-to-speech/{voice_id}
wav_8000, wav_16000, wav_22050, wav_24000, wav_32000, wav_44100 and wav_48000 to the output_format enumtag_ids.exclude_statuses to list conversations, allowing clients to hide conversations with statuses such as initiated, in-progress, processing, done, or failed.claude-opus-4-7, gpt-5.4, gpt-5.5, gpt-5.4-2026-03-05, gpt-5.5-2026-04-23, and qwen36-35b-a3b to the LLM enum.contextual_update_info to conversation transcript response items. The field references ContextualUpdateInfo, which includes context_id and is_superseded, so clients can identify contextual updates and whether they have been replaced by later context.agent_id query parameter to list workspace batch calling jobs, allowing clients to return jobs for a single agent.agent_id query parameter optional and nullable on list test invocations, allowing clients to list test invocations without filtering by one agent.response_timeout_secs value from 120 to 300 seconds on MCP server configuration and MCP tool configuration overrides.current_overage to SubscriptionResponseModel and ExtendedSubscriptionResponseModel.resource_collection to the WorkspaceResourceType enum.error and pending_task to ProjectImageResponseModel, and made signed image URLs nullable when an image is still processing or has failed.pending_block_ids and pending_external_audio_ids fields from project external audio and video response models.keyterms and no_verbatim support to the Scribe realtime API, refactored WebSocket URL construction, and regenerated the SDK for the May 7, 2026 API schema, including conversation tags, conversation list filters, batch calling agent_id filtering, optional test invocation agent_id, contextual update metadata, and MCP response timeout updates.agent_id filtering, optional test invocation agent_id, contextual update metadata, and MCP response timeout updates.keyterms (string[]) and noVerbatim (boolean) options to the Scribe realtime API. keyterms are sent as repeated WebSocket query parameters and can include up to 50 terms of up to 20 characters each. noVerbatim removes filler words, false starts, and disfluencies from transcripts. Also fixed a case where interruptions could cut off agent audio that arrived less than 2 seconds after the interruption.keyterms and noVerbatim.GET /v1/convai/tags
page_size and cursor query parametersGetConversationTagsPageResponseModel with conversation_tags, next_cursor, and has_morePOST /v1/convai/tags
CreateConversationTagRequestModel with required title (string) and optional nullable description (string, max 1000 characters)ConversationTagResponseModelGET /v1/convai/tags/{tag_id}
ConversationTagResponseModelPATCH /v1/convai/tags/{tag_id}
PatchConversationTagRequestModel with optional nullable title (string, 1-120 characters) and optional nullable description (string, max 1000 characters)ConversationTagResponseModelDELETE /v1/convai/tags/{tag_id}POST /v1/convai/conversations/{conversation_id}/tags
AssignConversationTagsRequestModel with required tag_ids (array)DELETE /v1/convai/conversations/{conversation_id}/tags/{tag_id}GET /v1/convai/conversations
exclude_statuses query parameter (array of initiated, in-progress, processing, done, failed)tag_ids query parameter (array of strings)GET /v1/convai/conversations/{conversation_id}
tag_ids to GetConversationResponseModelcontextual_update_info to ConversationHistoryTranscriptResponseModel, referencing ContextualUpdateInfoGET /v1/convai/batch-calling/workspace
agent_id query parameter (string)GET /v1/convai/test-invocations
agent_id from required string to optional nullable stringresponse_timeout_secs maximum from 120 to 300 seconds on MCPToolConfigOverride-Input and MCPToolConfigOverride-OutputLLM enum
claude-opus-4-7, gpt-5.4, gpt-5.5, gpt-5.4-2026-03-05, gpt-5.5-2026-04-23, and qwen36-35b-a3bConvAIWebhooks
transcript_formatConversationHistoryMetadataCommonModel
voice_rewardsConversationChargingCommonModel
asr_usage and tts_usageSubscriptionResponseModel and ExtendedSubscriptionResponseModel
current_overageWorkspaceResourceType enum
resource_collectionProjectImageResponseModel
error and pending_taskProjectExternalAudioResponseModel and ProjectVideoResponseModel
pending_block_ids and pending_external_audio_idsagent_response_complete WebSocket event: A new agent_response_complete client event fires exactly once when an agent’s response is fully delivered — after all LLM generation, tool call chains, and audio playback complete. The event lets clients reliably detect end of turn for batching messages, wake-word activation, or post-turn UI updates. The event is suppressed while async tool tasks are still running and is not emitted on agents configured with turn_timeout or soft_timeout. Added a new AGENT_RESPONSE_COMPLETE value to the ClientEvent enum and a corresponding AgentResponseCompleteClientEvent response model.
Pre-tool speech mode: Added a new pre_tool_speech field (PreToolSpeechMode enum, default auto) on MCP server configuration and per-tool overrides. Replaces the now-deprecated force_pre_tool_speech boolean. Values: auto decides whether the agent speaks before the tool call based on recent tool latency, force always asks the agent to speak, and off opts out entirely.
Tool dispatch respects execution mode: Workflow tool dispatch nodes now correctly respect each nested tool’s execution_mode. If any tool in a dispatch node uses POST_TOOL_SPEECH, the workflow waits for the current turn’s audio to be fully exposed before executing the dispatch.
MCP response timeout: Added a response_timeout_secs field (integer, default 30, min 5, max 120) on MCP server configuration and per-tool overrides, controlling the maximum time to wait for each MCP tool call to complete.
Agent trust context: Added a trust_context field on agent platform settings (AgentTrustContext enum: unknown | low | high, default unknown). low is for agents serving untrusted external participants, where outputs should be vetted and tool access scoped; high is for agents serving the owner where full tool access is appropriate; unknown covers agents created before this feature.
Source attribution toggle: Added a source_attribution boolean (default false) on conversation config. When enabled and knowledge base content is present, the LLM is instructed to report which sources it used.
Test sharing mode filter: The list tests endpoint now accepts a sharing_mode query parameter (all | shared_with_me, default all) to filter tests and folders to only those shared with the current user that they did not create.
Tool icons and execution metadata: Added icons (array of Icon) and execution (ToolExecution) fields to the Tool schema. Icon includes src, mimeType, and sizes for UI display, and ToolExecution.taskSupport (forbidden | optional | required) declares how the tool participates in tasks.
Procedure compiler default: The ProcedureCompilerMode default has changed from deterministic to append, and the llm value has been removed. Existing agents that explicitly set deterministic are unaffected.
RAG and knowledge base attribution metadata: Added used_static_kb_document_ids (array of strings) on ConversationHistoryTranscriptCommonModel and ConversationHistoryTranscriptResponseModel, and used_chunk_ids on RagRetrievalInfo, surfacing exactly which knowledge base documents and RAG chunks contributed to each transcript turn.
Dynamic variable refactor: dynamic_variables and dynamic_variable_placeholders now reference unified DynamicVariableValueType-Input / DynamicVariableValueType-Output schemas (replacing the prior DynamicVariableContainerValueType-* schemas), with broader support for nested and list values. DynamicVariableAssignment gained a preserve_native_type field to keep typed values rather than coercing to strings.
GET /v1/audio-isolation/history) returns a paginated list of all your audio isolation generations. Supports page_size, page, and search query parameters.DELETE /v1/audio-isolation/history/{history_item_id}) deletes a specific item and its associated media files.keyterms parameter (array of strings, max 50 entries of up to 20 characters each) to bias the model toward specific terms, and a no_verbatim boolean to remove filler words, false starts, and disfluencies from transcripts. Both parameters are echoed back in the session_started event. Available across the JavaScript SDK, Python SDK, and the @elevenlabs/client browser/Node client SDK.pre_tool_speech and response_timeout_secs, and the agent_response_complete client event. Also includes a fix to the notebook install hint in the README.trust_context field, pre_tool_speech mode, asset transcription support, and MCP response timeout configuration.keyterms (string array, max 50 keyterms of up to 20 chars each) and noVerbatim (boolean) options on the Scribe realtime client. keyterms are sent as repeated query parameters on the WebSocket URL to bias transcription, and noVerbatim removes filler words and disfluencies. Both fields are also added to the typed Config interface for the session_started echo. Also includes the April 27, 2026 Fern regeneration (#376).trust_context field, pre_tool_speech mode, and MCP response timeout configuration.end_call tool). onAgentDisconnected now disconnects the LiveKit room and tears down conversation state, with onDisconnect firing an .agent reason. ConnectionManaging.onAgentDisconnected is now async. Removed the unused ConversationConnectionManager wrapper.@elevenlabs/client@1.3.1 / @elevenlabs/client@1.3.0, picking up the tool-call sound fix and conversation file upload support.@elevenlabs/client for the same fixes.@elevenlabs/client@1.3.1 for the tool-call sound fix.@elevenlabs/client@1.3.0 for conversation file upload support.GET /v1/audio-isolation/historyDELETE /v1/audio-isolation/history/{history_item_id}GET /v1/convai/tools/{tool_id}/executions returns paginated tool executions for a specific tool with optional cursor, page_size, is_error, agent_id, branch_id, start_time, and end_time filtersCreate agent, Get agent, Update agent
trust_context field (AgentTrustContext enum: unknown | low | high, default unknown) on AgentPlatformSettingsRequestModelsource_attribution field (boolean, default false) on ConversationConfigUpdate MCP server configuration, Create MCP server
pre_tool_speech field (PreToolSpeechMode enum: auto | force | off, default auto)response_timeout_secs field (integer, default 30, min 5, max 120)Create configuration override, Update configuration override
pre_tool_speech field (PreToolSpeechMode enum, nullable, optional)response_timeout_secs field (integer, nullable, optional)response_mocks field on MCPToolConfigOverride-Input / MCPToolConfigOverride-Outputforce_pre_tool_speech as deprecated; use pre_tool_speech insteadsharing_mode query parameter (TestSharingMode enum: all | shared_with_me, default all)Simulate conversation, Stream simulate conversation
dynamic_variables and dynamic_variable_placeholders payloads to reference unified DynamicVariableValueType-Input / DynamicVariableValueType-Output schemas with broader nested and list value supportTool schema
icons field (array of Icon, nullable) for UI displayexecution field (ToolExecution, nullable) including taskSupport (forbidden | optional | required)ClientEvent enum
agent_response_complete value with new AgentResponseCompleteClientEvent response modelProcedureCompilerMode enum
deterministic to appendllm valueConversationHistoryTranscriptCommonModel, ConversationHistoryTranscriptResponseModel
used_static_kb_document_ids field (array of strings)RagRetrievalInfo
used_chunk_ids field (array of strings)DynamicVariableAssignment
preserve_native_type field (boolean) for keeping typed values instead of coercing to stringsWorkflow nodes
auto_advance_after_first_response field on relevant workflow node schemasTool configuration documentation
response_body_schema field for documenting expected response shapeGetUserSubscriptionResponseModel
max_credit_limit_extension fieldGet workspace usage by product over time
start_time and end_time minimums raised to 2020-01-01, with descriptions added on both fields. The endpoint summary was renamed to Get Workspace Usage.Currency enum with values eur, inr, usd, replacing inline currency strings in several schemas.AssetTranscription and AssetTranscriptionData schemas extend asset models with transcription support.PendingBlocksMetadataModel and PendingExternalAudiosMetadataModel provide richer metadata on pending tasks.InVPC value added to source-related enums.keyterms now have explicit length restrictions in the spec.MemoryEntrySearchResult, ConversationSource, and ManualSource schemas added.Workflow starting node override: Conversations can now be started at a specific workflow node by passing starting_workflow_node_id in the conversation initiation client data. This is gated by an opt-in enable_starting_workflow_node_id_from_client field in the agent’s platform override settings. When enabled, clients can specify which node to begin a conversation at, which is useful for agent memory and longer-term WebSocket use cases. If the specified node does not exist, the conversation falls back to the default entry point.
Post-call analysis LLM configuration: Agent platform settings now include an analysis_llm field (default: gemini-2.5-flash) that sets the default LLM for post-call analysis, including evaluation criteria and data collection. Individual data collection properties can override this default with a per-item llm field via the new AnalysisProperty schema, giving fine-grained control over which model processes each analysis item.
New LLM options: Added gpt-5.4 to the list of available LLM providers for agent configuration. Added xhigh to the LLMReasoningEffort enum for extended reasoning on supported models.
Null literal in workflow expressions: Workflow conditional expressions now support null comparisons via the new ASTNullNode type, enabling branches like “if variable is null” in workflow logic.
Get secret by ID: A new get secret endpoint (GET /v1/convai/secrets/{secret_id}) retrieves a single workspace secret by its ID. The list secrets endpoint also now accepts a search query parameter to filter secrets by name prefix.
Searchable phone numbers in batch calling: The batch calling form in the dashboard now includes a searchable phone number selector, making it easier to find the right outbound number when configuring batch calls.
detect_speaker_roles parameter (boolean, default false). When enabled alongside diarize=true, speaker labels are returned as agent and customer instead of speaker_0, speaker_1. This cannot be used with use_multi_channel=true. Usage incurs an additional 10% surcharge on the base transcription cost.inputs[].text values per request. Longer requests may terminate early in streaming responses or return a validation error.POST /v1/workspace/analytics/query/usage-by-product-over-time) returns credit usage broken down by product type over time. Results are returned in a tabular structure with configurable interval_seconds, group_by dimensions, and filters. The previous GET /v1/usage/character-stats endpoint has been deprecated in favor of this new endpoint.@elevenlabs/client@1.2.1 - Fixed conversation startup readiness so onConnect runs after the session is marked connected and React has synchronized conversationRef. Also exposed and forwarded onConversationCreated for consumers that need the created Conversation instance before onConnect.
@elevenlabs/react@1.1.1 - Fixed conversation startup readiness and exposed onConversationCreated callback, matching the @elevenlabs/client@1.2.1 changes.
@elevenlabs/react-native@1.1.1, @elevenlabs/convai-widget-core@0.11.4, @elevenlabs/convai-widget-embed@0.11.4 - Updated to @elevenlabs/client@1.2.1 with conversation startup fixes.
GET /v1/convai/secrets/{secret_id}POST /v1/workspace/analytics/query/usage-by-product-over-time - Get workspace credit usage by product over timeGET /v1/usage/character-stats - Deprecated in favor of POST /v1/workspace/analytics/query/usage-by-product-over-timePOST /v1/dubbing/resource/{dubbing_id}/language, POST /v1/dubbing/resource/{dubbing_id}/speaker/{speaker_id}/segment, PATCH /v1/dubbing/resource/{dubbing_id}/segment/{segment_id}/{language}, and others) are now deprecatedCreate agent, Get agent, Update agent
analysis_llm field (LLM enum, default: gemini-2.5-flash) to AgentPlatformSettings for configuring the default post-call analysis modelAnalysisProperty schema with an optional per-item llm override fieldstarting_workflow_node_id field (string, nullable) to conversation initiation client dataenable_starting_workflow_node_id_from_client field (boolean, default false) to ConversationInitiationClientDataConfigexternal_link field (string, nullable) to batch call recordssearch query parameter (string) for filtering secrets by name prefixLLM enum
gpt-5.4, gpt-5.4-2026-03-05LLMReasoningEffort enum
xhighWorkflow expressions (ASTNode)
null_literal discriminator value and ASTNullNode schema for null comparisonsArray tool parameters (ArrayJsonSchemaProperty)
dynamic_variable field (string, optional) for populating arrays from dynamic variables at runtimeconstant_value field (array, nullable) for setting constant array valuesitems field is no longer required (has a default schema)MCP tool config overrides
MCPToolConfigOverride-Output schema (input/output split)detect_speaker_roles field (boolean, default false) for agent/customer speaker role detectionConvert text to dialogue, Stream text to dialogue
inputs description with 2,000 character per-request recommendationavatar_context field from request bodyQualityPresetType enum schema. The highest value has been removed from dialogue quality presets; use ultra instead.AudioNativeResponse - Removed transcription field from responseUserResponseModel - Backward compatible schema updateConversation topic discovery: A new conversation topics endpoint (GET /v1/convai/agents/{agent_id}/topics) returns the latest topic discovery results for a given agent, surfacing recurring themes across conversations. The list conversations endpoint now accepts a topic_ids query parameter to filter conversations by discovered topic.
Knowledge base content search: A new search knowledge base endpoint (GET /v1/convai/knowledge-base/search) provides fuzzy text search over knowledge base document content. Results include highlighted snippets with SearchHighlightSegment objects and support cursor-based pagination with configurable page sizes (up to 100, default 30). Filter by document type with the optional types parameter.
Flexible branch merging: The merge branch endpoint no longer restricts merges to the main branch — any branch can now be used as a merge target. A new optional force boolean parameter overrides timestamp-based conflict resolution when set to true. Branch metadata responses now include parent_branch_id and merged_from_version_id for better lineage tracking.
Secret dependency management: A new get secret dependencies endpoint (GET /v1/convai/secrets/{secret_id}/dependencies/{resource_type}) returns paginated dependency lookups filtered by resource type (tools, agents, or phone_numbers). The list secrets endpoint now accepts a dependency_limit query parameter to control how many dependencies are previewed per secret, with agents_has_more, tools_has_more, and phone_numbers_has_more flags indicating when additional dependents exist beyond the preview.
New LLM options: Added gemini-3.1-pro-preview to the list of available LLM providers for agent configuration.
voice_type query parameter on the list voices endpoint now accepts non-community, which returns personal and workspace voices combined while excluding library copies. This provides a convenient filter for teams that want to see only their own voices without community-shared ones.@elevenlabs/client@1.2.0 - Fixed getInputVolume() and getOutputVolume() returning 0 in React Native by adding native volume providers using LiveKit’s RMS and multiband FFT processors. getInputByteFrequencyData() and getOutputByteFrequencyData() now return data focused on the human voice range (100-8000 Hz), which is more useful for voice visualization, and on web getInputVolume() and getOutputVolume() are also computed from this range.
@elevenlabs/react@1.1.0 - Fixed startSession errors being swallowed instead of surfaced via onError in ConversationProvider. Previously, when Conversation.startSession() rejected (e.g., “agent not found”), the UI would get stuck in “connecting” with no error feedback.
@elevenlabs/react-native@1.1.0 - Updated to @elevenlabs/client@1.2.0 and @elevenlabs/react@1.1.0 with native volume provider fixes.
@elevenlabs/convai-widget-core@0.11.3 - Fixed transcript message ordering in voice mode where agent responses could appear before user messages.
GET /v1/convai/knowledge-base/searchGET /v1/convai/secrets/{secret_id}/dependencies/{resource_type}GET /v1/convai/agents/{agent_id}/topics - Get agent conversation topicstopic_ids query parameter (array of strings) for filtering conversations by discovered topicsdependency_limit query parameter (integer) to control how many dependency items are previewed per secrettarget_branch_id no longer restricted to the main branch — any branch can be used as a merge targetforce field (boolean, optional) to the request body for overriding timestamp-based conflict resolutionAgent branch metadata (AgentBranchMetadataResponseModel)
parent_branch_id field (string, nullable) tracking the parent branchmerged_from_version_id field (string, nullable) tracking the source version of the last mergeSecret dependency responses
agents_has_more field (boolean) indicating more agent dependents exist beyond the previewtools_has_more field (boolean) indicating more tool dependents exist beyond the previewphone_numbers_has_more field (boolean) indicating more phone number dependents exist beyond the previewLLM enum
gemini-3.1-pro-previewPermissionType and WorkspaceGroupPermission enums
copy_resources_cross_workspacenon-community option to voice_type filter parameter (returns personal and workspace voices, excludes library copies)Scoped conversation analysis: Evaluation criteria and data collection items can now be scoped to conversation (full transcript) or agent (only the portion where a specific agent was active). Added scope field to PromptEvaluationCriteria, data_collection_scopes to agent platform settings, and a new scoped array of ScopedAnalysisResult on the conversation analysis response. This is particularly useful for multi-agent workflows where each agent should be evaluated independently.
Agent test folder management: Tests can now be organized into folders. New endpoints for creating, retrieving, updating, and deleting test folders, plus bulk moving tests between folders.
Tool and knowledge base overrides in workflows: Agent workflow node overrides now support tool_ids and knowledge_base fields in PromptAgentAPIModelOverrideConfig, allowing workflow nodes to control which tools and knowledge base documents each sub-agent can access.
Response filter hide_all mode: Added hide_all option to ResponseFilterMode, forcing the system to hide all fields of a tool response from the agent.
Visited agents in conversation history: The get conversation response now includes a visited_agents array of VisitedAgentRef objects (with agent_id and branch_id), tracking which agents participated in a multi-agent conversation.
Multimodal message support in hooks: The useConversationControls hook now exposes sendMultimodalMessage, and the MultimodalMessageInput type is exported from @elevenlabs/client, making it easier to send images and other multimodal content during conversations.
audio_duration_secs field, providing the total duration of the transcribed audio without requiring client-side calculation.recording_quality (enum: studio, good, ok, poor, bad) and labelling_status (enum: in_review, review_complete) fields, providing visibility into voice quality assessment.@elevenlabs/client@1.1.1 - Exposed sendMultimodalMessage in the client API and exported the MultimodalMessageInput type for sending images and other multimodal content during conversations.
@elevenlabs/client@1.1.2, @elevenlabs/react@1.0.3, @elevenlabs/react-native@1.0.3, @elevenlabs/types@0.9.1 - Fixed Node.js ESM compatibility by adding explicit .js extensions to all relative imports and setting "type": "module" on @elevenlabs/types.
@elevenlabs/convai-widget-core@0.11.0 - Added automatic language selection from localStorage history and browser language preferences for the embeddable widget.
POST /v1/convai/agent-testing/foldersGET /v1/convai/agent-testing/folders/{folder_id}PATCH /v1/convai/agent-testing/folders/{folder_id}DELETE /v1/convai/agent-testing/folders/{folder_id}POST /v1/convai/agent-testing/bulk-moveCreate agent, Get agent, Update agent
data_collection_scopes field (object, optional) to AgentPlatformSettings for per-item analysis scope controlvisited_agents field (array of VisitedAgentRef, optional) tracking agents visited during multi-agent conversationsscoped field (array of ScopedAnalysisResult) to conversation analysis responsescoped analysis results with per-agent evaluation breakdownsAgent workflow node overrides (PromptAgentAPIModelOverrideConfig)
tool_ids field (array of strings, optional) for restricting available tools per workflow nodeknowledge_base field (object, optional) for overriding knowledge base per workflow nodeResponseFilterMode enum
hide_all valueMockNoMatchBehavior default
call_real_tool to raise_errorClientEvent enum
dtmf_request valueTurn metrics
convai_tts_cascade field (string, nullable) to ConversationTurnMetricsaudio_duration_secs field (number) to response modelsrecording_quality field (enum: studio, good, ok, poor, bad, nullable)recording_quality_reason field (string, nullable)labelling_status field (enum: in_review, review_complete, nullable)ToDialogueSettingsResponseModel schema with stability and speed fieldsMCP tool scoping in agent workflows: Agent workflow nodes can now restrict which MCP tools a sub-agent is permitted to call. When tool inheritance is disabled on a node, only the explicitly selected MCP tools are loaded for that sub-agent, giving teams precise control over tool access per workflow step.
Conversation file uploads: The create agent and update agent endpoints now support a file_input field on ConversationConfig. When enabled, end users can attach images or PDFs in chat (requires an LLM with multimodal input support). Configurable with enabled (boolean) and max_files_per_conversation (integer).
Re-run conversation analysis: New run conversation analysis endpoint (POST /v1/convai/conversations/{conversation_id}/analysis/run) re-evaluates a completed conversation using the agent’s current evaluation criteria and data collection settings, without needing a new call.
Tool response mocking for tests: Agent simulation tests and test suite invocations now support a tool_mock_config field to control how tool calls are handled during testing. Use MockingStrategy (all, selected, none) to choose which tools are mocked and MockNoMatchBehavior (call_real_tool, raise_error) to set the fallback when no mock matches.
Text search sort order: The text search conversations endpoint now accepts a sort_by query parameter with values search_score (default) or created_at, allowing you to control whether results are ordered by relevance or recency.
mTLS auth connections: Agent auth connections now support mutual TLS (mtls) as an auth_type, in addition to the existing options. New CreateMTLSAuthRequest and MTLSAuthResponse schemas are available for creating and retrieving mTLS-authenticated connections.
Max duration message: Added max_conversation_duration_message field to agent configuration. When set to a non-empty string, the agent will send this message to the user when the maximum conversation duration is reached.
Branch and environment in conversation initiation: Added branch_id and environment optional fields to the conversation initiation client data (ConversationInitiationClientDataRequest) and submit batch call request body, enabling routing to specific agent branches and environments.
POST /v1/music/video-to-music endpoint generates background music from one or more video files. Videos are combined in sequence. Accepts optional description (up to 1,000 characters) and tags (up to 10 style tags such as upbeat or cinematic) to influence the generated track.source_url parameter (string, optional) for transcribing audio or video from a hosted URL, including YouTube videos, TikTok videos, and other video hosting services. This can be used as an alternative to uploading a file directly.total_count field, making it easier to implement pagination and display result counts.multimodal_message WebSocket event type in ElevenAgents real-time conversations. Includes Fern regeneration for the latest API schema updates.audio_interface to be optional in text-only conversation mode, resolving a runtime error when starting a session without audio. Includes Fern regeneration for the latest API schema.This release includes the new v1.0.0 of the client side Agent SDKs. It features major breaking changes to @elevenlabs/client, @elevenlabs/react, and @elevenlabs/react-native. Review the migration guidance below before upgrading.
To help upgrade, we released a Skill to help your agents upgrade for you. Install it with
You can read more about the v1 release and its improvements on our developer blog.
@elevenlabs/client@1.0.0 — Breaking changes:
Input and Output classes are no longer exported. Use the InputController and OutputController interfaces from @elevenlabs/client instead.Conversation is no longer a class — it is now a namespace object and a type alias for TextConversation | VoiceConversation. Remove any instanceof Conversation checks and subclasses.connectionType is now inferred from the conversation mode: voice conversations use "webrtc" by default, and text-only conversations use "websocket". To keep the previous behavior for voice, pass connectionType: "websocket" explicitly.VoiceConversation.wakeLock is now private. Pass useWakeLock: false in session options to suppress wake lock management.changeInputDevice() and changeOutputDevice() now return Promise<void> instead of Promise<Input> or Promise<Output>.conversation.input.analyser.getByteFrequencyData(data) with conversation.getInputByteFrequencyData().conversation.input.setMuted(v) with conversation.setMicMuted(v).conversation.output.gain.gain.value = v with conversation.setVolume({ volume: v }).getInputVolume(), getOutputVolume(), getInputByteFrequencyData(), and getOutputByteFrequencyData() now return 0 or an empty Uint8Array instead of throwing when no conversation is active.@elevenlabs/react@1.0.0 — Breaking changes:
useConversation now requires a ConversationProvider ancestor. Wrap your component tree in <ConversationProvider> and move options to the provider or to the hook.DeviceFormatConfig and DeviceInputConfig exports are removed. Use FormatConfig and InputDeviceConfig from @elevenlabs/client instead.useConversation for better render performance: useConversationControls(), useConversationStatus(), useConversationInput(), useConversationMode(), useConversationFeedback(), and useRawConversation(). Each hook subscribes only to the state it needs, preventing unnecessary re-renders.useConversationClientTool(name, handler) hook for registering client tools that agents can invoke, with automatic cleanup on unmount.isMuted and onMutedChange props on ConversationProvider.@elevenlabs/react-native@1.0.0 — Breaking changes:
ElevenLabsProvider and useConversation API have been removed and replaced with re-exports from @elevenlabs/react. Replace ElevenLabsProvider with ConversationProvider and useConversation with the granular hooks (useConversationControls, useConversationStatus, etc.).AudioSession, and registers a platform-specific voice session strategy on import.@elevenlabs/types@0.8.0 - Exports the CALLBACK_KEYS runtime array containing all keys from the Callbacks interface, used internally by the React SDK for callback composition.
@elevenlabs/client@0.16.0 - Added the guardrail_triggered server-to-client WebSocket event and the onGuardrailTriggered callback, which fires when the server detects a guardrail violation during a conversation. Also added type discriminants to TextConversation and VoiceConversation to enable discriminated union narrowing, and added startSession overloads that narrow the return type based on the textOnly option.
@elevenlabs/react-native@0.6.0 - Added the guardrail_triggered WebSocket event and onGuardrailTriggered callback, consistent with @elevenlabs/client@0.16.0.
@elevenlabs/client@1.1.0 - Added client-side support for mocking tool responses in agent conversations, enabling test scenarios that simulate tool call outcomes without invoking real tools.
@elevenlabs/types@0.9.0 - Added type definitions for tool response mocking in agent conversations.
@elevenlabs/react@1.0.1 - Updated to depend on @elevenlabs/client@1.1.0.
@elevenlabs/react-native@1.0.1 - Updated to depend on @elevenlabs/client@1.1.0 and @elevenlabs/react@1.0.1.
Run conversation analysis - POST /v1/convai/conversations/{conversation_id}/analysis/run - Re-runs the analysis for a completed conversation using the agent’s current evaluation criteria and data collection settings.
POST /v1/music/video-to-music - Generates background music from one or more video files supplied as multipart form data.
file_input field (FileInputConfig, optional) to ConversationConfig, enabling file upload support (images, PDFs) in chat conversations when the LLM supports multimodal inputmax_conversation_duration_message field (string, optional) to agent configuration — the agent sends this message when the session time limit is reachedtool_mock_config field (object, optional) — a map of tool names to ToolResponseMockConfig entries for controlling tool mocking behavior during simulationsort_by query parameter (string, optional) — accepts search_score (default) or created_atbranch_id field (string, optional) to target a specific agent branchenvironment field (string, optional) to specify the target environmentTwilio outbound call, SIP trunk outbound call
branch_id and environment optional fieldssource_url parameter (string, optional) — accepts a URL to an audio or video file, YouTube video, TikTok video, or other hosted media as an alternative to a file uploadtotal_count field (integer) to the response modelenabled_spooled_file parameter from the multipart form data request bodyEnvironment Variables API: New environment variables endpoints for managing workspace-level configuration that agents can reference at runtime via {{system_env__<label>}} templating. Supports string, secret, and auth-connection variable types with per-environment value overrides. Endpoints include create, list, get, and update.
Auth Connections management: New workspace-level auth connections API for managing authentication credentials used by agent tools and integrations. Supports multiple auth methods including OAuth2 client credentials, JWT, basic auth, bearer tokens, custom headers, and integration-managed OAuth2 authorization code flows. Endpoints include create, list, and delete operations.
Knowledge Base URL refresh: New refresh endpoint (POST /v1/convai/knowledge-base/{documentation_id}/refresh) to re-fetch and update content for URL-sourced knowledge base documents. Knowledge base documents also now support auto-sync configuration with enable_auto_sync, auto_remove, and auto_sync_info fields.
Guardrail retry with feedback: Custom and content guardrails now support configurable trigger actions with EndCallTriggerAction and RetryTriggerAction options. When set to retry, the agent re-generates its response with injected system feedback up to 3 attempts. Available placeholders include {{trigger_reason}} and {{agent_message}} for contextual retry guidance.
Conversation History system variable: Added a new system__conversation_history dynamic variable that provides a lazily-evaluated, JSON-serialized conversation history at runtime. This is useful for passing full conversation context to tools, webhooks, or sub-agent handoffs.
Webhook tool content type: Server tools now support a configurable content type for webhook body parameters, allowing you to choose between application/json and application/x-www-form-urlencoded formats. The URL-encoded format is useful for integrating with legacy systems, OAuth token endpoints, and payment processors.
WhatsApp outbound messages: Updated the WhatsApp integration with a new outbound message dialog in the dashboard, enabling agents to send outbound messages in addition to calls through the WhatsApp channel.
Agent and resource listing filters: The list agents, list knowledge base documents, and list tools endpoints now support a created_by_user_id query parameter (use @me for the current user). The previous show_only_owned_agents and show_only_owned_documents parameters are deprecated.
Workflow conditional expressions: Added a new conditional_operator AST node to the workflow expression schema, enabling branching logic within agent workflow definitions.
environment parameter support for ElevenAgents conversations, enabling environment-specific agent connections. Fern regeneration to match the latest API schema including environment variables, auth connections, knowledge base refresh, and guardrail trigger actions.multimodal_message WebSocket event type for ElevenAgents real-time conversations. Fern regeneration to match the latest API schema including environment variables, auth connections, knowledge base refresh, and guardrail trigger actions.environment parameter support for environment-specific agent connections. Fixed a visionOS build error by bumping the platform requirement to v2.multimodal_message WebSocket event type for ElevenAgents real-time conversations.multimodal_message WebSocket event support.multimodal_message WebSocket event support.@elevenlabs/client@0.15.2.@elevenlabs/client@0.15.2.The first release candidate for v1.0.0 of the ElevenAgents client SDKs is now available. This is a major release with breaking changes that improve the API surface, add granular React hooks for better render performance, and unify the React Native SDK with the React SDK.
To try out the release candidate:
An elevenlabs:sdk-migration skill is available to help AI coding assistants automatically migrate your codebase to the new APIs. Add it to your Claude Code, Cursor, or Windsurf project to get guided migration support.
Key changes in v1.0.0:
@elevenlabs/client: Conversation is now a namespace object and type alias for TextConversation | VoiceConversation instead of a class. The Input and Output classes are replaced by InputController and OutputController interfaces, with new convenience methods on the conversation instance (setMicMuted(), setVolume(), getInputByteFrequencyData(), getOutputByteFrequencyData()). changeInputDevice() and changeOutputDevice() now return void.@elevenlabs/react: useConversation now requires a ConversationProvider ancestor. New granular hooks for fine-grained re-rendering: useConversationControls(), useConversationStatus(), useConversationInput(), useConversationMode(), useConversationFeedback(). New useConversationClientTool() hook for dynamically registering client tools from React components with full type safety.@elevenlabs/react-native: Complete API rewrite replacing ElevenLabsProvider and useConversation with ConversationProvider and the same granular hooks from @elevenlabs/react. WebRTC polyfills and native AudioSession configuration are applied automatically on import.See the full release notes and migration guides:
POST /v1/convai/environment-variables - Create a new environment variable with string, secret, or auth-connection typeGET /v1/convai/environment-variables - List all environment variables in the workspaceGET /v1/convai/environment-variables/{env_var_id} - Get a specific environment variablePATCH /v1/convai/environment-variables/{env_var_id} - Update an environment variable, including per-environment value removal via nullPOST /v1/convai/knowledge-base/{documentation_id}/refresh - Re-fetch content for URL-sourced knowledge base documentsPOST /v1/workspace/auth-connections - Create a workspace auth connection with support for OAuth2, JWT, basic, bearer, custom header, and integration-managed auth methodsGET /v1/workspace/auth-connections - List all workspace auth connections with dependency information (tools, MCP servers, integration connections)DELETE /v1/workspace/auth-connections/{auth_connection_id} - Delete a workspace auth connectionGET /v1/speech-to-text/evaluation/eval-criteria - List evaluation criteriaPOST /v1/speech-to-text/evaluation/eval-criteria - Create an evaluation criterionGET /v1/speech-to-text/evaluation/eval-criteria/{criterion_id} - Get a specific evaluation criterionPATCH /v1/speech-to-text/evaluation/eval-criteria/{criterion_id} - Update an evaluation criterionDELETE /v1/speech-to-text/evaluation/eval-criteria/{criterion_id} - Delete an evaluation criterionPOST /v1/speech-to-text/evaluation/evaluations - Trigger an evaluationGET /v1/speech-to-text/evaluation/evaluations - List evaluationsGET /v1/speech-to-text/evaluation/evaluations/{evaluation_id} - Get a specific evaluationGET /v1/speech-to-text/evaluation/human-agents - List human agentsGET /v1/speech-to-text/evaluation/human-agents/{agent_id} - Get a human agentDELETE /v1/speech-to-text/evaluation/human-agents/{agent_id} - Delete a human agentGET /v1/speech-to-text/evaluation/analytics - Get evaluation analyticsGET /v1/speech-to-text/evaluation/eval-criteria/{criterion_id}/analytics - Get analytics for a specific criterionGET /v1/speech-to-text/evaluation/human-agents/{agent_id}/analytics - Get analytics for a specific human agentGet signed URL, Get conversation token
environment query parameter (string, optional) for environment-specific resolutioncreated_by_user_id query parameter (string, optional, supports @me)show_only_owned_agents in favor of created_by_user_idcreated_by_user_id query parameter (string, optional, supports @me)show_only_owned_documents in favor of created_by_user_idcreated_by_user_id query parameter (string, optional, supports @me)show_only_owned_documents in favor of created_by_user_idembedding_model query parameter (string, optional) to specify the embedding model for chunk retrievalCreate agent, Update agent, Create draft
guardrail_trigger_action support with EndCallTriggerAction and RetryTriggerAction schemasconditional_operator AST node to workflow expression definitionsConvAIEnvVarLocator and EnvironmentAuthConnectionLocator for referencing environment variables in tool configsSimulate conversation, Simulate conversation stream
simulation_environment field to request schemaConvAIEnvironmentVariable, ConvAIEnvironmentVariableCreate, ConvAIEnvironmentVariableUpdate - Environment variable models supporting string, secret, and auth-connection typesConvAIEnvVarLocator, EnvironmentAuthConnectionLocator - Locators for referencing environment variables in tool and MCP server configsEndCallTriggerAction, RetryTriggerAction - Guardrail trigger action schemas for end-call and retry-with-feedback behaviorsConditionalOperator - New AST node for conditional expressions in agent workflowsAuthConnectionCreateRequest, AuthConnectionResponse, AuthConnectionDependencies - Workspace auth connection management schemas with support for OAuth2, JWT, basic, bearer, custom header, WhatsApp, and integration-managed auth methodsSpeechToTextEvaluation* - Suite of schemas for speech-to-text evaluation criteria, evaluations, human agents, and analyticsMCPServerConfig, MCPServerConfigOutput - Added support for ConvAIEnvVarLocator references in server configurationCustomGuardrailConfig - Added trigger_action field for configuring end-call or retry behaviorContributor - Added optional bio (string) and profile_id (string) fieldsASTLLMNode - Added value_schema field; prompt field is deprecated in favor of value_schemaTelephonyDirection - Refactored to a shared enum referenced by multiple conversation and telephony models