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

### Fast LLM service tier

**ElevenAgents** can now run supported LLMs on a `fast` service tier, which trades a per-token price premium for higher token throughput and lower latency. Set `service_tier` to `fast` in the agent's prompt configuration with [Update agent](/docs/api-reference/agents/update), and check which tiers a model supports in the `available_service_tiers` field returned by [List LLMs](/docs/api-reference/llm/list). The default remains `standard`, and the [LLM usage calculator](/docs/api-reference/llm/calculate) accepts `service_tier` to estimate the cost difference.

### Knowledge base crawl exclusions

**ElevenAgents** knowledge base website crawls can now skip parts of a site. Pass up to 50 `exclude_patterns` to [Create crawl job](/docs/api-reference/knowledge-base/create-crawl-job), or fill in the **Exclude patterns** field in the whole-website crawl dialog, and URLs that match any pattern are skipped even when they match the crawl `pattern`. Crawl job responses return the patterns that were used. See [Knowledge base](/docs/eleven-agents/customization/knowledge-base) for crawl setup.

### Clone strength for v4 voices

**Text to Speech** and Text to Dialogue requests now accept `clone_strength`, a value from 0 to 1 that controls how closely a Professional Voice Clone fine-tuned for a v4 model follows its training samples. Set it in `voice_settings` on [Create speech](/docs/api-reference/text-to-speech/convert) or in `settings` on [Create dialogue](/docs/api-reference/text-to-dialogue/convert). The recommended value for most use cases is 0. On the Text to Dialogue endpoints, `clone_strength` now decides whether a v4 PVC runs as a PVC or an IVC, and `use_pvc_as_ivc` is deprecated.

### Expiring service account API keys

**Workspaces** service account API keys can now expire. Pass `expires_at_unix` when you [create](/docs/api-reference/service-accounts/api-keys/create) or [update](/docs/api-reference/service-accounts/api-keys/update) a key, or pick an **Expire after** value in the dashboard, and the key stops working after that time. Expiries must be between 15 minutes and 90 days in the future; omit the field for a key that never expires. See [Service accounts](/docs/overview/administration/workspaces/service-accounts).

### All changes

<AccordionGroup>
<Accordion title="ElevenAgents">

- **Fast LLM service tier**: Agents and workflow overrides accept `service_tier` (`standard` or `fast`) on supported models. [List LLMs](/docs/api-reference/llm/list) returns `available_service_tiers` for each model, and the [LLM usage calculator](/docs/api-reference/llm/calculate) accepts `service_tier`.
- **Knowledge base crawl exclusions**: [Create crawl job](/docs/api-reference/knowledge-base/create-crawl-job) accepts `exclude_patterns`, and the whole-website crawl dialog adds an **Exclude patterns** field. Matching URLs are skipped.
- **Procedures analytics**: The **Procedures** tab on the agent analytics dashboard is available to every workspace. Its **Procedure invocations** chart shows how often each [procedure](/docs/eleven-agents/customization/procedures) runs over time, grouped by procedure or by agent, and its tooltip shows whether a procedure is structured or free-form.
- **Start procedures at conversation start**: Conversation initiation client data accepts `start_procedure_ids`, up to five free-form procedures that start when the conversation starts. The agent must have `enable_procedure_ids_from_client` enabled; structured procedures and unknown IDs fail the conversation start.
- **Structured procedure steps**: Structured procedures can use the `end_procedure` system tool as a step, and the **End** step is relabeled **End conversation**. Sub-procedure and end steps now compile to system tool nodes, so agents start and end the intended procedure more reliably.
- **Channel integrations out of alpha**: The [Slack](/docs/eleven-agents/customization/integrations/slack), Telegram, Custom Channel and Intercom integrations are no longer in alpha. Freshdesk remains in alpha.
- **Slack thread replies**: The Slack Channel Message trigger adds a **Respond to** setting (`response_mode`), so an agent can keep replying in a thread after a single mention. Mentioning the agent with only `stop`, `mute` or `quiet` silences it in that thread until it is mentioned again, and events that Slack delivers twice get one reply.
- **Test run names**: [Run tests](/docs/api-reference/tests/run-tests) accepts an optional `name`, which test invocations and their summaries return. `PATCH /v1/convai/test-invocations/{test_invocation_id}` renames a run, and setting `name` to `null` restores the generated title.
- **Branch descriptions**: Branch descriptions can be edited from the branches table with [Update branch](/docs/api-reference/agents/branches/update) (`description`, up to 4,096 characters) and appear in the version tooltip and version graph.
- **Agent duplication keeps traffic splits**: Duplicating an agent copies its live traffic split across the copied branches. The resulting deployment records `duplicate` as its deployment source.
- **Delete environment variables**: `DELETE /v1/convai/environment-variables/{env_var_id}` deletes an [environment variable](/docs/eleven-agents/integrate/environment-variables).
- **Widget fullscreen on mobile**: Widget configuration adds `mobile_fullscreen` (default `true`), with a **Fullscreen on mobile** switch in the dashboard. Set it to `false` to keep the compact layout on phones. See [Widget](/docs/eleven-agents/customization/widget).
- **Issues**: Triage is renamed **Issues** in the agents dashboard, and triage tickets are now called issues. Every QA comment and `flag_issue_for_review` call opens its own issue, and an issue can be reopened while the conversation has another open issue. The API endpoints keep their `triage-tickets` paths. See [Triage](/docs/eleven-agents/operate/triage).
- **Prompt caching guidance**: The system prompt editor flags system variables that change on every turn and prevent prompt caching, and Spotlight adds an **Improve prompt caching** recommendation for affected agents.
- **Realtime voice mode**: Switching an agent to Realtime voice mode in the dashboard now selects Eleven Realtime v1 Max. Realtime agents always run tool calls in parallel, so the **Parallel tool calling** toggle is removed from Realtime model settings. See [Realtime models](/docs/eleven-agents/customization/realtime-models).
- **Analytics**: Workflow analytics can be filtered by channel, and the **Guardrails** tab is shown to all users.
- **Analysis LLMs**: `claude-sonnet-5-5` can be selected as the analysis LLM for evaluation criteria and data collection, both for the agent and per item. Agents on Claude Sonnet 5.5 can also set reasoning effort to `none`.
- **Conversation cost**: Conversation charging adds `voice_surcharge_charge`, the credits charged as the voice actor reward for the Voice Library voices a conversation used. It is not included in `cost`.
- **Call duration and billing**: Call charges and stored call duration stop when the call ends, so teardown time after the call is no longer billed or counted. Calls no longer continue for up to 50 seconds after ending when a knowledge base lookup is in progress.
- **Telephony**: [SIP trunk](/docs/eleven-agents/phone-numbers/sip-trunking) calls forward the `User-To-User` (UUI) header to the conversation initiation webhook. API keys with an IP allowlist now authenticate on the Genesys, Avaya, AudioCodes and Amazon Connect connector WebSockets. Batch call recipients whose call cannot be placed are marked `failed` instead of staying `dispatched`.
- **Observability**: OpenTelemetry post-call webhook agent turn spans add `elevenlabs.rag.chunks` and `elevenlabs.rag.used_chunk_ids`, matching the JSON [post-call webhook](/docs/eleven-agents/workflows/post-call-webhooks). See [OpenTelemetry traces](/docs/eleven-agents/customization/opentelemetry-traces).
- **Guardrails**: In voice conversations, the prompt injection guardrail now evaluates the user turn being answered instead of the agent's previous message. Conversations on asynchronous channels such as Zendesk, Intercom and Custom Channel that a guardrail blocks now report the guardrail as the termination reason.
- **Zero Retention Mode**: Synthetic voice detection is skipped for conversations in [Zero Retention Mode](/docs/eleven-api/resources/zero-retention-mode).
- **WhatsApp**: WhatsApp conversations resumed by a reply to a batch call template keep their `batch_call` metadata and batch ID.
- **Phone number secrets**: Workspace secrets used as a Twilio auth token or an Exotel API token on a phone number show as in use and cannot be deleted while the number depends on them.
- **Fixes**: Text conversations end as soon as the `end_call` tool runs instead of waiting for the next user message. Voice agents no longer go silent when a turn is cancelled before any audio is sent. The soft timeout no longer fires right after the first message or after tool calls on Eleven v4 voices. Realtime agents with sub-agent, agent tool or prompt say nodes that inherit the LLM can be saved and published. Agent tools that use OAuth2 connections no longer fail with expired tokens when the provider rotates refresh tokens. The `nemotron-35-super-vl-nvfp4` context limit is raised from 64,000 to 131,072 tokens.

</Accordion>

<Accordion title="Text to Speech and Text to Dialogue">

- **Clone strength**: `clone_strength` (0 to 1) in Text to Speech `voice_settings` and Text to Dialogue `settings` controls how closely a Professional Voice Clone fine-tuned for a v4 model follows its samples. The recommended value for most use cases is 0. [Edit voice settings](/docs/api-reference/voices/settings/update) stores `clone_strength` and [Get voice settings](/docs/api-reference/voices/settings/get) returns it.
- **PVC and IVC on v4 dialogue**: On the Text to Dialogue endpoints, `clone_strength` now decides whether a v4 PVC runs as a PVC or an IVC, and `use_pvc_as_ivc` is deprecated.

</Accordion>

<Accordion title="Voice Changer">

- **New endpoint paths**: Voice Changer is documented at `POST /v1/voice-changer/{voice_id}` and `POST /v1/voice-changer/{voice_id}/stream`. The `/v1/speech-to-speech/{voice_id}` paths keep working but are deprecated and removed from the API reference. The Python and JavaScript SDKs call the new paths from v2.75.0, and the SDK method names are unchanged for now. In the next major SDK version, `client.speechToSpeech` will be deprecated in favor of `client.voiceChanger` to match the endpoint. See [Voice changer](/docs/api-reference/speech-to-speech/convert).

</Accordion>

<Accordion title="Workspaces">

- **Expiring service account API keys**: Service account API keys accept `expires_at_unix` on [create](/docs/api-reference/service-accounts/api-keys/create) and [update](/docs/api-reference/service-accounts/api-keys/update), between 15 minutes and 90 days in the future. Later expiries are rejected with `400` `invalid_api_key_expiry`. On update, pass `"clear"` to remove an expiry.
- **Group concurrency limits enforced**: The workspace group concurrency limits (`group_concurrency_limit`, `group_dubbing_concurrency_limit` and `group_music_concurrency_limit`) are enforced for Text to Speech, Voice Changer, Music and Dubbing requests.
- **Voice cloning permissions**: Members without the **Create instant voice clone** or **Create professional voice clone** permission can no longer create clones, even with general voice access.
- **SCIM group seat types**: Workspaces that use SCIM without SCIM routing can assign a seat type to SCIM-synced groups from the **Groups** page.
- **Fixes**: [Delete invite](/docs/api-reference/workspace/invites/delete) returns `404` `invite_not_found` for an invite that does not exist, instead of a `500` error.

</Accordion>

<Accordion title="Speech to Text">

- **Shorter realtime silence thresholds**: Realtime Speech to Text honors `vad_silence_threshold_secs` values below 0.5 seconds, which were previously treated as 0.5. The minimum accepted value is lowered from 0.3 to about 0.19 seconds.
- **Webhook retries**: Transcription and error webhooks are retried on failure when the webhook's retry setting is on. See [Speech to Text webhooks](/docs/eleven-api/guides/how-to/speech-to-text/batch/webhooks).

</Accordion>

<Accordion title="Dubbing">

- **Legacy endpoints deprecated**: The `/v1/dubbing` endpoints outside `/v1/dubbing/project`, including [Dub a video or an audio file](/docs/api-reference/dubbing/create) and [List dubs](/docs/api-reference/dubbing/list), are marked deprecated in the API reference.
- **Transcript downloads**: The dubbing project menu can download target language transcripts as JSON, and as WebVTT subtitles for recent dubs.

</Accordion>

<Accordion title="Studio">

- **Media folders**: Workspace library files can be organized into folders in the Studio media browser.
- **Video clip actions**: Video clips offer voice changer and voice isolator actions.
- **Video to music**: Studio's video to music workflow uses Music v2.5 by default.

</Accordion>

<Accordion title="Image and video">

- **Retired models**: Image & Video and Flows requests for a retired model fail before generation with a `410` `model_retired` error that names the replacement model. Flows preflight reports the error on the affected node.
- **Fixes**: Generations wait for a just-uploaded reference asset to finish processing instead of failing.

</Accordion>

<Accordion title="Voices">

- **Fixes**: Cantonese Professional Voice Clone samples are no longer rejected when language detection reports Chinese, and adding PVC samples no longer fails with a `500` error when language detection is unavailable.

</Accordion>

<Accordion title="Billing">

- **Minimum charge**: Text to Speech and Speech to Text requests priced below one credit are charged one credit, and refunds return exactly the credits that were charged.
- **Business plan image and video pricing**: Business plans on the current pricing pay the same image and video credit rate as other self-serve plans, about 17% fewer credits per image and per video second than before.

</Accordion>

<Accordion title="Realtime Translation">

- **OAuth scope**: OAuth clients can request the `realtime_translation` scope.

</Accordion>

<Accordion title="SDK releases">

#### JavaScript SDK

- [v2.75.0](https://github.com/elevenlabs/elevenlabs-js/releases/tag/v2.75.0) - `client.speechToSpeech.convert` and `client.speechToSpeech.stream` now call `POST /v1/voice-changer/{voice_id}` and its `/stream` path. Added `client.environmentVariables.delete`, `client.conversationalAi.tests.invocations.update` for renaming a test invocation, and an optional `name` on `client.conversationalAi.agents.runTests`. Also adds `serviceTier` on the LLM usage calculators, `excludePatterns` on knowledge base crawl jobs, `expiresAtUnix` on service account API keys, `cloneStrength` in voice settings, `startProcedureIds` in conversation initiation client data and the widget `mobileFullscreen` setting. The legacy dubbing `list`, `create`, `get` and `delete` methods are marked deprecated, and the branch rebase request type `BranchesRebaseRequest` is renamed to `BodyRebaseABranchOntoMainV1ConvaiAgentsAgentIdBranchesBranchIdRebasePost`.

#### Python SDK

- [v2.75.0](https://github.com/elevenlabs/elevenlabs-python/releases/tag/v2.75.0) - Added the `callback_disconnect` option to `Conversation` and `AsyncConversation`. It receives a `DisconnectionDetails` with a `reason` of `"user"`, `"agent"` or `"error"`, plus the WebSocket close code and reason when available, and replaces the deprecated `callback_end_session`. The regenerated client moves `client.speech_to_speech` to the `/v1/voice-changer` paths and adds `client.environment_variables.delete`, `client.conversational_ai.tests.invocations.update` and the same new parameters as JavaScript SDK v2.75.0.

#### Android SDK

- [v0.13.0](https://github.com/elevenlabs/elevenlabs-android/releases/tag/v0.13.0) - `agent_tool_request` is now handled as a notification event instead of a client tool call, so client tools no longer run twice, the first time without parameters. The SDK also no longer crashes when a client tool answers after the connection has closed.

#### ElevenLabs CLI

- [v1.7.1](https://github.com/elevenlabs/cli/releases/tag/v1.7.1) - `say` uses `eleven_v4` and new agent templates use `eleven_v4_turbo` by default. Fixes `onboard` sign-in on Windows and when the token cannot be saved to the keychain.

#### Packages

- [@elevenlabs/client@1.29.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fclient%401.29.0) and [@elevenlabs/react@1.19.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact%401.19.0) - Added the `onAudioAlignmentPlayback` callback, called with `{ event_id, alignment }` when an aligned audio chunk starts playing, for syncing text with speech. It is not called on WebRTC connections.
- [@elevenlabs/client@1.30.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fclient%401.30.0) - Added the opt-in `stripAudioTags` session option, which removes audio tags such as `[laughs]` from agent messages passed to `onMessage` and `onAgentResponseCorrection`, and exports the `stripAudioTags` helper. Stripped text no longer lines up with `onAudioAlignment` timings.
- [@elevenlabs/client@1.31.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fclient%401.31.0), [@elevenlabs/types@0.26.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Ftypes%400.26.0) and [@elevenlabs/react@1.20.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact%401.20.0) - Added `overrides.tts.modelId` for a per-conversation TTS model override. Realtime Speech to Text emits `RealtimeEvents.AUDIO_STARTED` once the first microphone audio frame is sent, and `useScribe` in microphone mode reports `connected` only from that point.
- [@elevenlabs/convai-widget-core@0.21.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-core%400.21.0) and [@elevenlabs/convai-widget-embed@0.21.0](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-embed%400.21.0) - Voice call transcripts are revealed in step with the agent's speech, and an interrupted reply keeps only what was said. Resuming a persistent text conversation no longer asks the user to accept the terms again.
- [@elevenlabs/convai-widget-core@0.21.1](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-core%400.21.1), [0.21.3](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-core%400.21.3) and [0.21.4](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-core%400.21.4) - Text chat shows typing dots while the agent prepares its reply. Rich content carousels show a page indicator, stay clickable after the conversation moves on, and appear in voice calls while the agent is still speaking. On screens narrower than 768px the chat opens fullscreen; add `mobile-fullscreen="false"` to the embed to keep the compact layout.
- [@elevenlabs/react-native@1.2.31](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact-native%401.2.31), [1.2.32](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact-native%401.2.32) and [1.2.33](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Freact-native%401.2.33) - Updated to the latest `@elevenlabs/client` and `@elevenlabs/react` releases.

</Accordion>

<Accordion title="API changes">

## New endpoints

### ElevenAgents

- `DELETE /v1/convai/environment-variables/{env_var_id}` - Delete an environment variable. Returns `204`.
- `PATCH /v1/convai/test-invocations/{test_invocation_id}` - Rename a test invocation with required `name` (string, 1 to 256 characters, or `null` to restore the generated title).

### Voice Changer

- [Voice changer](/docs/api-reference/speech-to-speech/convert) - `POST /v1/voice-changer/{voice_id}` and [Voice changer stream](/docs/api-reference/speech-to-speech/stream) - `POST /v1/voice-changer/{voice_id}/stream` - The documented paths for Voice Changer. `POST /v1/speech-to-speech/{voice_id}` and `POST /v1/speech-to-speech/{voice_id}/stream` are removed from the API reference and deprecated.

## Updated endpoints

### ElevenAgents

- [Create agent](/docs/api-reference/agents/create), [Get agent](/docs/api-reference/agents/get) and [Update agent](/docs/api-reference/agents/update)
  - Prompt configuration adds `service_tier` (`standard` or `fast`, default `standard`). Workflow node prompt overrides add nullable `service_tier`.
  - Widget configuration adds `mobile_fullscreen` (boolean, default `true`).
- [List LLMs](/docs/api-reference/llm/list) - Each model adds required `available_service_tiers` (array of `standard` or `fast`).
- [Calculate LLM usage](/docs/api-reference/llm/calculate) and [Calculate expected LLM usage for an agent](/docs/api-reference/agents/calculate) - Added optional `service_tier`.
- [Get widget](/docs/api-reference/widget/get) - Widget configuration adds `mobile_fullscreen` (boolean, default `true`).
- [Create crawl job](/docs/api-reference/knowledge-base/create-crawl-job) - Added optional `exclude_patterns` (array of strings, up to 50 items of up to 2,048 characters each).
- [Get crawl job](/docs/api-reference/knowledge-base/get-crawl-job) and [List crawl jobs](/docs/api-reference/knowledge-base/list-crawl-jobs) - Crawl jobs add `exclude_patterns` (array of strings).
- Knowledge base document responses - `auto_sync_info` removes the deprecated `auto_discover` field.
- [Run tests](/docs/api-reference/tests/run-tests) - Added optional `name` (string, 1 to 256 characters). [Get test invocation](/docs/api-reference/tests/test-invocations/get) and [List test invocations](/docs/api-reference/tests/test-invocations/list) return nullable `name`.
- [Update branch](/docs/api-reference/agents/branches/update) - Added optional `description` (string, up to 4,096 characters). Pass an empty string to clear it.
- [Get conversation details](/docs/api-reference/conversations/get)
  - Conversation charging adds nullable `voice_surcharge_charge` (integer).
  - Agent definition source enum adds `architect`.
- Agent deployments (`GET /v1/convai/agents/{agent_id}/deployments`) - Deployment source enum adds `duplicate`.
- Conversation initiation client data, including the `conversation_initiation_client_data` WebSocket event and [Submit batch call](/docs/api-reference/batch-calling/create) - Added optional `start_procedure_ids` (array of strings).
- Tool type enum removes `api_integration_mcp`.

### Text to Speech and Text to Dialogue

- [Create dialogue](/docs/api-reference/text-to-dialogue/convert), [Stream dialogue](/docs/api-reference/text-to-dialogue/stream) and their timestamp variants - `use_pvc_as_ivc` is deprecated.
- Text to Speech `voice_settings` and Text to Dialogue `settings` - Added nullable `clone_strength` (number, 0 to 1). [Get voice settings](/docs/api-reference/voices/settings/get), [Get voice](/docs/api-reference/voices/get) and [List voices](/docs/api-reference/voices/search) return it.

### Dubbing

- [List dubs](/docs/api-reference/dubbing/list), [Dub a video or an audio file](/docs/api-reference/dubbing/create), `GET /v1/dubbing/{dubbing_id}`, `DELETE /v1/dubbing/{dubbing_id}`, `GET /v1/dubbing/{dubbing_id}/audio/{language_code}` and `GET /v1/dubbing/{dubbing_id}/transcripts/{language_code}/format/{format_type}` - Marked deprecated.

### Workspaces

- [Create service account API key](/docs/api-reference/service-accounts/api-keys/create) - Added optional `expires_at_unix` (integer or `null`).
- [Update service account API key](/docs/api-reference/service-accounts/api-keys/update) - Added optional `expires_at_unix` (integer, or `"clear"` to remove the expiry; omit to leave it unchanged).
- [List service accounts](/docs/api-reference/service-accounts/list) and [List service account API keys](/docs/api-reference/service-accounts/api-keys/list) - API keys add nullable `expires_at_unix` (integer).

</Accordion>
</AccordionGroup>