> 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

<Accordion title="View API changes">

## 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.

</Accordion>