> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt. ### ElevenAgents - **`agent_response_complete` WebSocket event**: A new [`agent_response_complete` client event](/docs/eleven-agents/customization/events/client-events) fires exactly once when an agent's response is fully delivered -- after all LLM generation, tool call chains, and audio playback complete. After this event, the agent will only produce further output if the user provides new input or a turn timeout triggers a new turn. The event lets clients reliably detect end of turn for batching messages, wake-word activation, or post-turn UI updates. 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](/docs/api-reference/tests/list) 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. ### Audio Isolation - **History endpoints**: Two new endpoints expose your audio isolation history. - [List audio isolation history](/docs/api-reference/audio-isolation/list) (`GET /v1/audio-isolation/history`) returns a paginated list of all your audio isolation generations. Supports `page_size`, `page`, and `search` query parameters. - [Delete audio isolation history item](/docs/api-reference/audio-isolation/delete) (`DELETE /v1/audio-isolation/history/{history_item_id}`) deletes a specific item and its associated media files. ### Speech to Text - **Realtime keyterms and verbatim mode**: The [Scribe realtime WebSocket](/docs/api-reference/speech-to-text/v-1-speech-to-text-realtime) now accepts a `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](https://github.com/elevenlabs/elevenlabs-js/releases/tag/v2.45.0), [Python SDK](https://github.com/elevenlabs/elevenlabs-python), and the [`@elevenlabs/client`](https://github.com/elevenlabs/packages/tree/main/packages/client) browser/Node client SDK. ### SDK Releases #### Python SDK - [v2.45.0](https://github.com/elevenlabs/elevenlabs-python/releases/tag/v2.45.0) - Fern regeneration for the April 27, 2026 API schema, including audio isolation history endpoints, tool executions, MCP `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. - [v2.44.0](https://github.com/elevenlabs/elevenlabs-python/releases/tag/v2.44.0) - Fern regeneration for the April 21, 2026 API schema, picking up the `trust_context` field, `pre_tool_speech` mode, asset transcription support, and MCP response timeout configuration. #### JavaScript SDK - [v2.45.0](https://github.com/elevenlabs/elevenlabs-js/releases/tag/v2.45.0) - Added `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](https://github.com/elevenlabs/elevenlabs-js/pull/376)). - [v2.44.0](https://github.com/elevenlabs/elevenlabs-js/releases/tag/v2.44.0) - Fern regeneration for the April 21, 2026 API schema, picking up the `trust_context` field, `pre_tool_speech` mode, and MCP response timeout configuration. #### Swift SDK - [v3.1.4](https://github.com/elevenlabs/elevenlabs-swift-sdk/releases/tag/v3.1.4) - Fixed an issue where the local microphone kept publishing after an agent disconnected (silence timeout or `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. #### Packages - [@elevenlabs/client@1.3.1](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/client@1.3.1) - Fixed the agent tool-call sound being interpreted as user speech and interrupting the agent during tool execution. - [@elevenlabs/client@1.3.0](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/client@1.3.0) - Added support for the [upload conversation file](/docs/api-reference/conversations/upload-file) endpoint, letting clients attach files to an in-progress conversation directly from the client SDK. - [@elevenlabs/react@1.2.1](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/react@1.2.1), [@elevenlabs/react@1.2.0](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/react@1.2.0) - Updated to `@elevenlabs/client@1.3.1` / `@elevenlabs/client@1.3.0`, picking up the tool-call sound fix and conversation file upload support. - [@elevenlabs/react-native@1.1.3](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/react-native@1.1.3), [@elevenlabs/react-native@1.1.2](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/react-native@1.1.2) - Updated to the latest `@elevenlabs/client` for the same fixes. - [@elevenlabs/convai-widget-core@0.11.6](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/convai-widget-core@0.11.6), [@elevenlabs/convai-widget-embed@0.11.6](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/convai-widget-embed@0.11.6) - Updated to `@elevenlabs/client@1.3.1` for the tool-call sound fix. - [@elevenlabs/convai-widget-core@0.11.5](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/convai-widget-core@0.11.5), [@elevenlabs/convai-widget-embed@0.11.5](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/convai-widget-embed@0.11.5) - Updated to `@elevenlabs/client@1.3.0` for conversation file upload support. ### API ## New Endpoints - [List audio isolation history](/docs/api-reference/audio-isolation/list) - `GET /v1/audio-isolation/history` - [Delete audio isolation history item](/docs/api-reference/audio-isolation/delete) - `DELETE /v1/audio-isolation/history/{history_item_id}` - [Get tool executions](/docs/api-reference/tools/get-executions) - `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` filters ## Updated Endpoints ### ElevenAgents - [Create agent](/docs/api-reference/agents/create), [Get agent](/docs/api-reference/agents/get), [Update agent](/docs/api-reference/agents/update) - Added `trust_context` field (`AgentTrustContext` enum: `unknown` | `low` | `high`, default `unknown`) on `AgentPlatformSettingsRequestModel` - Added `source_attribution` field (boolean, default `false`) on `ConversationConfig` - [Update MCP server configuration](/docs/api-reference/mcp/update), [Create MCP server](/docs/api-reference/mcp/create) - Added `pre_tool_speech` field (`PreToolSpeechMode` enum: `auto` | `force` | `off`, default `auto`) - Added `response_timeout_secs` field (integer, default `30`, min `5`, max `120`) - [Create configuration override](/docs/api-reference/mcp/tool-configuration/create), [Update configuration override](/docs/api-reference/mcp/tool-configuration/update) - Added `pre_tool_speech` field (`PreToolSpeechMode` enum, nullable, optional) - Added `response_timeout_secs` field (integer, nullable, optional) - Added `response_mocks` field on `MCPToolConfigOverride-Input` / `MCPToolConfigOverride-Output` - Marked `force_pre_tool_speech` as deprecated; use `pre_tool_speech` instead - [List tests](/docs/api-reference/tests/list) - Added optional `sharing_mode` query parameter (`TestSharingMode` enum: `all` | `shared_with_me`, default `all`) - [Simulate conversation](/docs/api-reference/agents/simulate-conversation), [Stream simulate conversation](/docs/api-reference/agents/simulate-conversation-stream) - Refactored `dynamic_variables` and `dynamic_variable_placeholders` payloads to reference unified `DynamicVariableValueType-Input` / `DynamicVariableValueType-Output` schemas with broader nested and list value support - `Tool` schema - Added `icons` field (array of `Icon`, nullable) for UI display - Added `execution` field (`ToolExecution`, nullable) including `taskSupport` (`forbidden` | `optional` | `required`) - `ClientEvent` enum - Added `agent_response_complete` value with new `AgentResponseCompleteClientEvent` response model - `ProcedureCompilerMode` enum - Default changed from `deterministic` to `append` - Removed `llm` value - `ConversationHistoryTranscriptCommonModel`, `ConversationHistoryTranscriptResponseModel` - Added `used_static_kb_document_ids` field (array of strings) - `RagRetrievalInfo` - Added `used_chunk_ids` field (array of strings) - `DynamicVariableAssignment` - Added `preserve_native_type` field (boolean) for keeping typed values instead of coercing to strings - Workflow nodes - Added `auto_advance_after_first_response` field on relevant workflow node schemas - Tool configuration documentation - Added `response_body_schema` field for documenting expected response shape ### Workspaces - `GetUserSubscriptionResponseModel` - Added `max_credit_limit_extension` field - [Get workspace usage by product over time](/docs/api-reference/workspace/usage/get-usage-by-product-over-time) - Tightened request validation: `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`. ### Other - New shared `Currency` enum with values `eur`, `inr`, `usd`, replacing inline currency strings in several schemas. - New `AssetTranscription` and `AssetTranscriptionData` schemas extend asset models with transcription support. - New `PendingBlocksMetadataModel` and `PendingExternalAudiosMetadataModel` provide richer metadata on pending tasks. - New `InVPC` value added to source-related enums. - Transcription `keyterms` now have explicit length restrictions in the spec. - New `MemoryEntrySearchResult`, `ConversationSource`, and `ManualSource` schemas added. > ElevenLabs provides APIs and SDKs for text to speech, voice cloning, speech to text, sound effects, voice isolator, voice changer, and conversational AI agents. Build voice-enabled applications with lifelike audio generation.