ElevenAgents
-
MCP 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_inputfield onConversationConfig. When enabled, end users can attach images or PDFs in chat (requires an LLM with multimodal input support). Configurable withenabled(boolean) andmax_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_configfield to control how tool calls are handled during testing. UseMockingStrategy(all,selected,none) to choose which tools are mocked andMockNoMatchBehavior(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_byquery parameter with valuessearch_score(default) orcreated_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 anauth_type, in addition to the existing options. NewCreateMTLSAuthRequestandMTLSAuthResponseschemas are available for creating and retrieving mTLS-authenticated connections. -
Max duration message: Added
max_conversation_duration_messagefield 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_idandenvironmentoptional fields to the conversation initiation client data (ConversationInitiationClientDataRequest) and submit batch call request body, enabling routing to specific agent branches and environments.
Music
- Video to music: New
POST /v1/music/video-to-musicendpoint generates background music from one or more video files. Videos are combined in sequence. Accepts optionaldescription(up to 1,000 characters) andtags(up to 10 style tags such asupbeatorcinematic) to influence the generated track.
Speech to Text
- Transcribe from URL: The convert speech to text endpoint now accepts a
source_urlparameter (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.
Voices
- Total count in shared voices list: The list shared voices response now includes a
total_countfield, making it easier to implement pagination and display result counts.
SDK Releases
JavaScript SDK
- v2.41.0 - Added support for the
multimodal_messageWebSocket event type in ElevenAgents real-time conversations. Includes Fern regeneration for the latest API schema updates. - v2.41.1 - Fern regeneration to match the April 1, 2026 API schema.
Python SDK
- v2.41.0 - Fixed
audio_interfaceto 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.
Packages
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:
InputandOutputclasses are no longer exported. Use theInputControllerandOutputControllerinterfaces from@elevenlabs/clientinstead.Conversationis no longer a class — it is now a namespace object and a type alias forTextConversation | VoiceConversation. Remove anyinstanceof Conversationchecks and subclasses.- The default
connectionTypeis 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, passconnectionType: "websocket"explicitly. VoiceConversation.wakeLockis now private. PassuseWakeLock: falsein session options to suppress wake lock management.changeInputDevice()andchangeOutputDevice()now returnPromise<void>instead ofPromise<Input>orPromise<Output>.- Replace
conversation.input.analyser.getByteFrequencyData(data)withconversation.getInputByteFrequencyData(). - Replace
conversation.input.setMuted(v)withconversation.setMicMuted(v). - Replace
conversation.output.gain.gain.value = vwithconversation.setVolume({ volume: v }). getInputVolume(),getOutputVolume(),getInputByteFrequencyData(), andgetOutputByteFrequencyData()now return0or an emptyUint8Arrayinstead of throwing when no conversation is active.
-
@elevenlabs/react@1.0.0 — Breaking changes:
useConversationnow requires aConversationProviderancestor. Wrap your component tree in<ConversationProvider>and move options to the provider or to the hook.DeviceFormatConfigandDeviceInputConfigexports are removed. UseFormatConfigandInputDeviceConfigfrom@elevenlabs/clientinstead.- New granular hooks replace the monolithic
useConversationfor better render performance:useConversationControls(),useConversationStatus(),useConversationInput(),useConversationMode(),useConversationFeedback(), anduseRawConversation(). Each hook subscribes only to the state it needs, preventing unnecessary re-renders. - New
useConversationClientTool(name, handler)hook for registering client tools that agents can invoke, with automatic cleanup on unmount. - Added controlled mute support via
isMutedandonMutedChangeprops onConversationProvider.
-
@elevenlabs/react-native@1.0.0 — Breaking changes:
- The previous
ElevenLabsProvideranduseConversationAPI have been removed and replaced with re-exports from@elevenlabs/react. ReplaceElevenLabsProviderwithConversationProvideranduseConversationwith the granular hooks (useConversationControls,useConversationStatus, etc.). - On React Native, the package now polyfills WebRTC globals, configures the native
AudioSession, and registers a platform-specific voice session strategy on import.
- The previous
-
@elevenlabs/types@0.8.0 - Exports the
CALLBACK_KEYSruntime array containing all keys from theCallbacksinterface, used internally by the React SDK for callback composition. -
@elevenlabs/client@0.16.0 - Added the
guardrail_triggeredserver-to-client WebSocket event and theonGuardrailTriggeredcallback, which fires when the server detects a guardrail violation during a conversation. Also added type discriminants toTextConversationandVoiceConversationto enable discriminated union narrowing, and addedstartSessionoverloads that narrow the return type based on thetextOnlyoption. -
@elevenlabs/react-native@0.6.0 - Added the
guardrail_triggeredWebSocket event andonGuardrailTriggeredcallback, 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.0and@elevenlabs/react@1.0.1.
API
View API changes
New Endpoints
-
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.
Updated Endpoints
ElevenAgents
-
- Added
file_inputfield (FileInputConfig, optional) toConversationConfig, enabling file upload support (images, PDFs) in chat conversations when the LLM supports multimodal input - Added
max_conversation_duration_messagefield (string, optional) to agent configuration — the agent sends this message when the session time limit is reached
- Added
-
- Added
tool_mock_configfield (object, optional) — a map of tool names toToolResponseMockConfigentries for controlling tool mocking behavior during simulation
- Added
-
- Added
sort_byquery parameter (string, optional) — acceptssearch_score(default) orcreated_at
- Added
-
- Added
branch_idfield (string, optional) to target a specific agent branch - Added
environmentfield (string, optional) to specify the target environment
- Added
-
Twilio outbound call, SIP trunk outbound call
- Conversation initiation client data now accepts
branch_idandenvironmentoptional fields
- Conversation initiation client data now accepts
Speech to Text
-
- Added
source_urlparameter (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 upload
- Added
Voices
-
- Added
total_countfield (integer) to the response model
- Added
Forced Alignment
-
- Removed
enabled_spooled_fileparameter from the multipart form data request body
- Removed