ElevenAgents
- Structured procedures compile on save and publish: Update agent and Create agent draft now compile and validate structured procedures automatically. Integrations no longer need to call the compile endpoint or manually update the generated workflow. Invalid procedures return per-procedure errors as
400 procedure_validation_failed. Agents without structured procedures are unaffected. - Compile procedures endpoint is legacy: Compile procedures is marked legacy and should not be used by new integrations. It remains available for existing callers.
- Merge proposals: Merge proposals are available in alpha. Teams can open a proposal for an agent branch, review configuration changes and test results, leave comments or approval decisions, and merge approved changes into a target branch. See Merge proposals.
SDK releases
JavaScript SDK
- v2.71.0 - Added clients for agent merge proposals, deployment history, test invocation cancellation and Speech Engine duplication. The release also adds triage ticket priorities and sorting, batch call export limits,
gpt-6.1-sol,claude-sonnet-5-5, Eleven v4 agent voice models and current agent configuration types.
Python SDK
- v2.71.0 - Added clients for agent merge proposals, deployment history, test invocation cancellation and Speech Engine duplication. The release also adds triage ticket priorities and sorting, batch call export limits,
gpt-6.1-sol,claude-sonnet-5-5, Eleven v4 agent voice models and current agent configuration types.
Swift SDK
- v3.4.0 - Dynamic variables now preserve native JSON types when sent in conversation initiation data.
Packages
- @elevenlabs/client@1.26.0, @elevenlabs/react@1.16.0, @elevenlabs/react-native@1.2.28 and @elevenlabs/types@0.24.0 - Added realtime Speech to Text transcript editing through
transcriptEdit, theedited_transcriptevent and React’sonEditedTranscriptcallback. React now forwardsfilterBackgroundAudioto realtime sessions. The client also exportsMessagePayloadand uses stable response IDs to prevent duplicate agent replies. - @elevenlabs/convai-widget-core@0.18.3 and @elevenlabs/convai-widget-embed@0.18.3 - Added image previews and download links for agent message attachments, including attachment-only replies. Stable response IDs prevent duplicate replies, and text-only conversations now use a stop control with an End chat tooltip.
API
View API changes
New endpoints
ElevenAgents
- Create a merge proposal -
POST /v1/convai/agents/{agent_id}/merge-proposals- Create a proposal with requiredsource_branch_id,target_branch_idandtitlefields, plus an optional description, reviewer IDs and triage ticket ID. - List merge proposals -
GET /v1/convai/agents/{agent_id}/merge-proposals- List proposals with status, source branch, target branch and text filters, plus cursor pagination. - Get a merge proposal -
GET /v1/convai/agents/{agent_id}/merge-proposals/{merge_proposal_id}- Retrieve a proposal and its review, comment and outcome details. - Update a merge proposal -
PATCH /v1/convai/agents/{agent_id}/merge-proposals/{merge_proposal_id}- Update its title, description or requested reviewers, or close it without merging. - Review a merge proposal -
POST /v1/convai/agents/{agent_id}/merge-proposals/{merge_proposal_id}/reviews- Submit anapprovedorchanges_requesteddecision with an optional comment. - Comment on a merge proposal -
POST /v1/convai/agents/{agent_id}/merge-proposals/{merge_proposal_id}/comments- Add a Markdown comment of up to 4,096 characters. - Merge a merge proposal -
POST /v1/convai/agents/{agent_id}/merge-proposals/{merge_proposal_id}/merge- Merge the source branch and optionally control forced conflict resolution and source branch archival. - List agent deployments -
GET /v1/convai/agents/{agent_id}/deployments- List current and historical branch traffic splits with page-based pagination. - Cancel a test invocation -
POST /v1/convai/test-invocations/{test_invocation_id}/cancel- Cancel a running test invocation.
Speech Engine
- Duplicate a Speech Engine -
POST /v1/speech-engine/{speech_engine_id}/duplicate- Duplicate a Speech Engine and optionally assign the copy a newname.
Updated endpoints
ElevenAgents
- Create agent, Get agent and Update agent
- Added
gpt-6.1-solandclaude-sonnet-5-5to theLLMenum. - Added
eleven_v4andeleven_v4_turboto the conversational TTS model options. The default changed fromeleven_flash_v2toeleven_v4_turbo. - Agent transfers and standalone workflow agent nodes add optional
preserve_voice_settings(boolean, defaultfalse) to retain the base voice, TTS model and voice settings after a transfer. - Skip-turn tool configurations add optional
wait_timeout_secs(number, default-1). A value of-1keeps the agent silent until the caller speaks. - Post-call webhook configurations add optional
exclude_transcript(boolean, defaultfalse) to omit turn-by-turn transcripts from JSON transcription webhooks. - Conversation history redaction configurations add optional
excluded_data_collection_ids(string array, maximum 50) to preserve selected extracted values while redacting their rationales. - Client tool
response_timeout_secsnow accepts-1to wait indefinitely whenexpects_responseis enabled.
- Added
- List tickets
- Added optional
priorities(array) withlow,medium,highandurgentvalues. - Added
sort_bywithcreated_atandpriorityvalues; the default iscreated_at. - Ticket responses now require
title, nullablepriority, and apriority_changesarray. Ticket creation and update requests can setpriority, and ticket status addscancelled.
- Added optional
- List tools - Added optional nullable
used_by_agent_id(string) to return tools referenced by an agent’s main branch. - Export batch call results - Added optional nullable
limit(integer, minimum1) to export only the first recipients as a column preview. - List test invocations and Get test invocation
- Test invocation summaries add required
cancelled_count(integer) and optionalcancelled(boolean, defaultfalse). - Test run status adds
cancelled.
- Test invocation summaries add required
- Get conversation details - Transcript entries add optional nullable
platform_eventwithuser_turn_timeoutandskip_turn_wait_elapsedvalues. - Get agent version metadata - Added optional nullable
merged_authors, an array describing the people who published changes merged into the main branch. - Get crawl job - Removed the deprecated
max_depthresponse field.
Eleven v4 and Eleven v4 Turbo
Eleven v4 and Eleven v4 Turbo are now available. Eleven v4 provides higher-quality, more expressive speech and improved voice cloning across more than 90 languages. Eleven v4 Turbo provides the same model family for real-time applications, with median inference latency of approximately 100 ms.
Use eleven_v4 through the Text to Dialogue API for content creation and long-form audio. Use eleven_v4_turbo through the Text to Dialogue WebSocket for agents and interactive applications.
Speech to Text
- Transcript editing: Batch and realtime transcription now accept a natural-language edit instruction of up to 2,000 characters. Batch responses return the result in
edited_transcript, while realtime sessions emit anedited_transcriptevent. See the batch and realtime guides for incompatibilities, response handling and pricing.
ElevenAgents
- Agent models: Added
gpt-6-sol,gpt-6-luna,glm-52,deepseek-v41-flash,claude-opus-5andclaude-opus-5-5to the supported agent LLM options. - Agent test usage: Test invocation summaries can include total credits and USD price. Individual test runs can include credits and a charging breakdown.
Flows
- Template API: Added endpoints to list and retrieve published Flows templates, start template runs and retrieve run results. Runs can target a published version and send their terminal result to a configured webhook.
Text to Dialogue
- Generation continuity: Text to Dialogue requests can use preceding or following text and request IDs to maintain continuity across generations.
- Professional voice mode: Text to Dialogue requests can use the Instant Voice Clone version of a Professional Voice Clone to reduce latency or improve expressiveness.
SDK releases
JavaScript SDK
- v2.70.0 - Added batch and realtime Speech to Text transcript editing types,
branchIdfiltering and cost fields for test invocation summaries, knowledge base auto-discovery, Text to DialogueusePvcAsIvcand thedeepseek-v41-flashagent model.
Python SDK
- v2.70.0 - Added batch and realtime Speech to Text transcript editing types,
branch_idfiltering and cost fields for test invocation summaries, knowledge base auto-discovery, Text to Dialogueuse_pvc_as_ivcand thedeepseek-v41-flashagent model.
ElevenLabs CLI
- v1.4.0 - Fixed requests with an explicit API key so they no longer also send stored OAuth credentials, which caused authentication failures. Added descriptions for the feedback command group and instructions for reporting missing capabilities to generated agent skills. Regenerated the API client with Flows template endpoints and current schema types.
API
View API changes
New endpoints
Flows
- List templates -
GET /v1/flows/templates- List published templates and their runnable versions. - Get template -
GET /v1/flows/templates/{template_id}- Retrieve a template and its runnable versions. - Create template run -
POST /v1/flows/templates/{template_id}/runs- Start a template run with input values, an optional version and an optional webhook. - List template runs -
GET /v1/flows/templates/{template_id}/runs- List template runs with cursor pagination and optional version filtering. - Get template run -
GET /v1/flows/templates/{template_id}/runs/{run_id}- Retrieve a template run and its output status.
Updated endpoints
Speech to Text
- Convert speech to text -
POST /v1/speech-to-text- Added optional nullable
transcript_edit(string), which accepts a natural-language edit instruction of up to 2,000 characters. - Responses add optional nullable
edited_transcript. A successful edit contains requiredkind: "transcript"andtextfields. A failed edit contains requiredkind: "error",error_type: "edit_failed"andmessagefields.
- Added optional nullable
- Realtime Speech to Text accepts
transcript_edit(string) and emitsedited_transcriptevents with requiredtextandedited_textfields.
ElevenAgents
- Create agent, Get agent and Update agent
- Added
gpt-6-sol,gpt-6-luna,glm-52,deepseek-v41-flash,claude-opus-5andclaude-opus-5-5to theLLMenum. - Alerting monitors add optional nullable
enabled(boolean) to control whether a monitor can send notifications.
- Added
- List conversations and Text search
data_collection_paramsanddynamic_variable_paramsaddneqandinoperators. Values forinuse a pipe delimiter.evaluation_paramsacceptssuccess,failureorunknownas the result value.
- Smart search -
GET /v1/convai/conversations/messages/smart-search- Added optional nullable
branch_id(string).
- Added optional nullable
- List test invocations -
GET /v1/convai/test-invocations- Added optional nullable
branch_id(string). - Test invocation summaries add optional nullable
credits_used(integer) andtotal_price(number).
- Added optional nullable
- Get test invocation -
GET /v1/convai/test-invocations/{test_invocation_id}- Individual test runs add optional nullable
credits_used(integer) andcharging(ConversationChargingCommonModel).
- Individual test runs add optional nullable
- Simulate conversation and Simulate conversation stream
- Changed the optional
new_turns_limitdefault from10,000to100and set its maximum to100.
- Changed the optional
- Create crawl job and Get crawl job
- Added optional
auto_discover(boolean, defaultfalse) to follow links and add newly discovered pages during auto-sync. This requiresenable_auto_sync: true.
- Added optional
- Refresh knowledge base document -
POST /v1/convai/knowledge-base/{documentation_id}/refreshAutoSyncInfoadds optionalauto_discover(boolean, defaultfalse) to indicate whether refreshes crawl and add newly discovered pages.
- List MCP server tools -
GET /v1/convai/mcp-servers/{mcp_server_id}/tools- Responses add optional
tool_approval_statuses(array). Each item contains requiredtool_id(string) andstate(up_to_date,needs_reviewornot_approved), with optional approval policy and approved-definition fields.
- Responses add optional
Text to Dialogue
- Convert text to dialogue, Stream text to dialogue, Convert with timestamps and Stream with timestamps
- Added optional
use_pvc_as_ivc(boolean, defaultfalse) to use the Instant Voice Clone version of a Professional Voice Clone. - Added optional nullable
previous_textandfuture_text(strings, maximum 100 characters) andprevious_request_idsandnext_request_ids(string arrays, maximum 3 IDs) for generation continuity. - The optional
settingsobject adds nullablesimilarity(number, 0–1, default0.75).
- Added optional
Text to Speech
- Convert text to speech, Stream text to speech, Convert with timestamps and Stream with timestamps
- The existing
use_pvc_as_ivcfield is no longer deprecated.
- The existing
Flows
- Create image generation, Create video generation and Create template run
- Webhook targets now require an explicit
typediscriminator (allorids). The previous defaults were removed.
- Webhook targets now require an explicit
Voice Design
- Create voice from preview, Create voice previews, Design a voice and Remix a voice
- Added a
409response when a generation for the preview is already in progress. Retry the request after receiving this response.
- Added a
Workspaces
- Create service account API key -
POST /v1/service-accounts/{service_account_user_id}/api-keys- Added optional nullable
tts_concurrency_limit,music_concurrency_limitanddubbing_concurrency_limit(integers) for enterprise service account API keys.
- Added optional nullable
- Update service account API key -
PATCH /v1/service-accounts/{service_account_user_id}/api-keys/{api_key_id}- Added optional
tts_concurrency_limit,music_concurrency_limitanddubbing_concurrency_limit. Each field accepts an integer,clear,no_updateornulland defaults tono_update.
- Added optional
Models
- List models -
GET /v1/models- Deprecated required
max_characters_request_free_userandmax_characters_request_subscribed_user. These fields are not enforced; usemaximum_text_length_per_requestinstead.
- Deprecated required
Image & Video
- Sora 2 and Sora 2 Pro retired: OpenAI is discontinuing the Sora API on September 24, 2026. Both models have been removed from the Image & Video model picker and stop generating on that date. Existing generations remain available in your history. Flows and templates that use a Sora node need to be switched to another video model, such as Gemini Omni 1.1 Flash, before they can run again.
- Seedance 1.5 Pro deprecated: ByteDance retires Seedance 1.5 Pro on November 11, 2026. The model is no longer offered for new generations and will stop working on that date. Use a Seedance 2.0 model instead.
ElevenAgents
- Parallel tool calls: Agent prompt configuration now includes
enable_parallel_tool_calls(boolean, defaulttrue). When enabled, supported models can execute multiple tools in one turn. - Agent models: Added
gpt-6-astrato the agent LLM options. - Alerting: Agent alerting now supports Slack channels alongside PagerDuty and webhook notifiers.
- Phone number search: Added a cursor-paginated phone number endpoint with filters for provider, outbound support, assigned agent and branch, label and phone number.
Image and video
- GPT Image 2.5 models: Image generation now supports
gpt-image-2.5-flareandgpt-image-2.5-sunburst. Both models accept up to 10 reference images, quality levels throughmax, 14 fixed aspect ratios plusauto, and 1K, 2K or 4K output.
Speech Engine
- Cascade timeout: Speech Engine create and update requests now accept
cascade_timeout_seconds(number, 2–15, default4) to control how long ElevenLabs waits for an upstream speech engine before retrying.
Text to Speech
- Multi-context turn boundaries: The
is_final_audio_for_turnmarker is now emitted after every buffered byte for that turn, including MP3 and Opus output. Clients can use the marker as an exact turn boundary without switching to PCM.
SDK releases
JavaScript SDK
- v2.69.0 - Added
transcriptEditto the realtime Speech to Text wrapper, with edited text delivered throughedited_transcriptevents. Fixed Speech Engine JWT verification for API keys with data residency suffixes. AddedphoneNumbers.listV2and Flows template methods to list and get templates and list, create and get runs. Regenerated clients and types for GPT Image 2.5, Slack agent alerting, parallel tool calls,gpt-6-astra, service account API key concurrency limits, Music zero retention, conversation filters and MCP tool approval statuses.
Python SDK
- v2.69.0 - Added
transcript_editto the realtime Speech to Text wrapper, with edited text delivered throughedited_transcriptevents. Fixed Speech Engine JWT verification for API keys with data residency suffixes, and madeplayraise an error whenffplayfails. Addedphone_numbers.list_v2and Flows template methods to list and get templates and list, create and get runs. Regenerated clients and types for GPT Image 2.5, Slack agent alerting, parallel tool calls,gpt-6-astra, service account API key concurrency limits, Music zero retention, conversation filters and MCP tool approval statuses.
ElevenLabs CLI
- v1.3.2 - Added optional
--intentmetadata to collect feedback on CLI usage. Addedelevenlabs feedback missing-capabilityto report workflows that the CLI does not support.
API
View API changes
New endpoints
ElevenAgents
- List phone numbers page -
GET /v1/convai/v2/phone-numbers- Added optional
page_size(integer, 1–1,000, default100) andcursor(nullable string) pagination parameters. - Added optional
search,label,phone_number,provider,supports_outbound,agent_id,branch_id,sort_byandsort_directionfilters.sort_byacceptslabelorphone_number;sort_directiondefaults toasc. - The response contains required
phone_numbers(array), optional nullablenext_cursor(string) andhas_more(boolean, defaultfalse).
- Added optional
Updated endpoints
ElevenAgents
- Create agent, Get agent and Update agent
- Prompt configuration adds
enable_parallel_tool_calls(boolean, defaulttrue). Workflow overrides accept a nullable boolean. - The
LLMenum addsgpt-6-astra, including conversation initiation overrides. - Alerting integration notifiers now use
integration_typeto selectpagerdutyorslack. Slack notifiers requireconnection_idandchannel_id(strings);channel_idaccepts 1–64 characters.
- Prompt configuration adds
- List conversations and Resolve conversation reference
data_collection_paramsno longer accepts themissingoperator. Use an empty value to match conversations where the field was not collected.- An empty value in
dynamic_variable_paramsmatches conversations where the variable was not set.
- Create Speech Engine, Get Speech Engine and Update Speech Engine
- Added
cascade_timeout_seconds(number, 2–15). Create requests default to4, update requests accept a nullable value and responses require the field.
- Added
Image and video
- Create image generation -
POST /v1/flows/image- Added request variants for
gpt-image-2.5-flareandgpt-image-2.5-sunburst. - Both variants require
promptandmodel_id, accept up to 10images, and addresolution(1K,2Kor4K, default1K). qualityacceptslow,medium,high,xhighormaxand defaults tohigh.aspect_ratioacceptsautoand 14 fixed ratios and defaults to16:9.
- Added request variants for
Dubbing
- Create dubbing project -
POST /v1/dubbing/project- Multipart
keytermsaccepts repeated fields or a single JSON array. - Multipart
webhook_idsaccepts repeated fields, a single JSON array or a comma-separated string.
- Multipart
- Get workspace resource, Share workspace resource and Unshare workspace resource
WorkspaceResourceTypeaddsdubbing_project.
Knowledge base
- Create crawl job -
POST /v1/convai/knowledge-base/crawl- Deprecated
max_depth(integer, default3). The field is now a no-op and no longer has minimum or maximum constraints. - Crawl job metadata no longer requires
max_depth.
- Deprecated
User
- Get user and Get subscription
- Currency enums add
gbp.
- Currency enums add
Schema changes
Text to Speech
- Multi-context WebSocket
audioandfinalmessages now defineis_final_audio_for_turnas occurring after all buffered bytes for the turn have been delivered.
ElevenAgents
- Call queueing and hold audio: Added call queueing for agents at their concurrency limit. Queued callers hear hold audio and receive
queue_statusevents until they are admitted or time out. New API methods upload or delete custom hold audio. - Test version metadata: Agent test results now identify the agent version they ran against and whether they included draft changes. Invocation summaries also indicate when partial resubmissions ran against different versions.
- Model and account metadata: Agent LLM configuration now accepts
gemini-3.8-flash. WhatsApp account responses identify whether the account uses the Cloud API or coexistence signup flow.
Music
- Music v2.5 API support: Music endpoints and SDKs now accept
music_v2_5. Composition plan generation chunks support up to 6,132 characters, with up to 30 lines of 200 characters each.
SDK releases
JavaScript SDK
- v2.68.0 - Added methods to upload and delete agent hold audio. Regenerated types for call queueing, procedure references, draft branch creation, RAG query limits, test version metadata,
gemini-3.8-flashandmusic_v2_5.
Python SDK
- v2.68.0 - Added synchronous and asynchronous methods to upload and delete agent hold audio. Regenerated types for call queueing, procedures, draft branch creation, RAG query limits, test version metadata,
gemini-3.8-flashandmusic_v2_5. Thecompose_detailedwrapper now accepts every generated music model ID and both prompt- and chunk-based composition plans.
iOS SDK
- v3.3.1 - Reconciles agent messages by
response_idinstead ofevent_id, preserving multiple responses around tool calls and preventing streamed parts or corrections from attaching to the wrong message.
ElevenLabs CLI
- v1.3.0 - Added optional
--intentmetadata to generated API commands. Addedelevenlabs feedback missing-capabilityto report workflows that the CLI does not support.
Packages
- @elevenlabs/convai-widget-core@0.18.2 and @elevenlabs/convai-widget-embed@0.18.2 - Fixed duplicate agent replies after tool and procedure calls. Streamed text replies retain Markdown formatting, and voice conversations no longer render unspoken streamed chat parts. The embed package also limits
user_activityevents to once per second and clears the limit when a session ends.
API
View API changes
New endpoints
ElevenAgents
- Upload agent hold audio -
POST /v1/convai/agents/{agent_id}/hold-audio- Accepts required
hold_audio_file(binary) as multipart form data. The file must be MP3 or WAV, up to 40 MB and 180 seconds. - Returns required
agent_id(string) andhold_audio(AgentHoldAudioConfig). The hold-audio object requiresaudio_path,audio_url,original_filename(strings),duration_secs(number) andsize_bytes(integer).
- Accepts required
- Delete agent hold audio -
DELETE /v1/convai/agents/{agent_id}/hold-audio- Removes the custom clip so queued callers hear the default hold tone.
- Returns required
agent_id(string).
Updated endpoints
ElevenAgents
- Create agent, Get agent and Update agent
- Added optional
platform_settings.queueing_config(AgentQueueingConfig) withenabled(boolean, defaultfalse) andwait_timeout_seconds(integer, 1–1,800, default180). - Queue configuration responses include read-only nullable
hold_audio(AgentHoldAudioConfig). Agent responses also include optionaldefault_hold_audio_url(string).
- Added optional
- Get conversation -
GET /v1/convai/conversations/{conversation_id}- Metadata adds optional nullable
queue_wait_secs(number). Queue time is excluded fromcall_duration_secsand billed time.
- Metadata adds optional nullable
- Create agent branch -
POST /v1/convai/agents/{agent_id}/branches- Added optional
include_draft(boolean, defaultfalse). Whentrue, a branch created from the branch tip includes the caller’s draft procedure set.
- Added optional
- List procedures and procedure create, get and draft endpoints
- List items add optional
referenced_tool_ids,referenced_kb_ids,referenced_procedure_idsandreferenced_dynamic_variables(string arrays). - Agent and merge-preview responses add optional
procedures, a map keyed by procedure ID.
- List items add optional
- List test invocations -
GET /v1/convai/test-invocations- Added optional nullable
search(string) to filter tests and folders by name.
- Added optional nullable
- Run tests on agent and Get test invocation
- Test suite invocation and unit test run responses add optional nullable
version_id(string) and optionalran_against_draft(boolean, defaultfalse). - Invocation summaries also add optional
runs_diverged_from_version(boolean, defaultfalse).
- Test suite invocation and unit test run responses add optional nullable
POST /v1/convai/agents/{agent_id}/knowledge-base/rag-query- The request body adds optional nullable
max_documents_length(integer, 1–50,000) andmax_retrieved_rag_chunks_count(integer, 1–20) query-specific overrides.
- The request body adds optional nullable
- Get WhatsApp account -
GET /v1/convai/whatsapp-accounts/{phone_number_id}- Added optional
account_type(WhatsAppAccountType, defaultcloud_api). Values arecloud_apiandcoexistence.
- Added optional
- Calculate expected LLM usage -
POST /v1/convai/agent/{agent_id}/llm-usage/calculateLLMUsageCalculatorLLMResponseModeladds requiredprice_per_message(number).
Music
MusicModelIDaddsmusic_v2_5forPOST /v1/music/video-to-music,POST /v1/music/plan, Compose music,POST /v1/music/detailed,POST /v1/music/detailed/stream,POST /v1/music/stream,POST /v1/music/uploadandPOST /v1/music/finetunes.GenerationChunk.textincreasesmaxLengthfrom 6,000 to 6,132 characters forPOST /v1/music/plan,POST /v1/music,POST /v1/music/detailed,POST /v1/music/detailed/stream,POST /v1/music/streamandPOST /v1/music/upload. Section names can contain 1–100 characters, and chunks can contain up to 30 lines with 200 characters per line.
Schema changes
ElevenAgents
- Real-time server events add
queue_status. Its requiredqueue_status_event.statusacceptswaiting,admittedortimed_out;timed_outprecedes WebSocket close code4300. Hold audio continues to arrive as regularaudioevents. - The
LLMenum addsgemini-3.8-flash, including conversation initiation overrides. - Conversation system tool result unions add
start_procedure_success,start_procedure_error,end_procedure_successandend_procedure_error. FeaturesUsageCommonModeladds optionalfreeform_procedureandstructured_procedurefeature statuses.
Scribe v2 Medical
Scribe v2 Medical is now generally available. It is a batch speech recognition model specialized for medical and clinical audio, billed at the same rate as Scribe v2.
Pass scribe_v2_medical as model_id on Create transcript. Keyterm prompting, entity detection, speaker diarization, and no-verbatim mode work the same way as Scribe v2.
ElevenAgents
- Workspace-wide conversation tickets: Added List workspace tickets to retrieve conversation triage tickets across accessible agents. Filter by status or assignee and use cursor pagination to retrieve up to 100 tickets per page.
- Dynamic variable conversation filters: List conversations and Text search conversation messages now accept repeatable
dynamic_variable_paramsfilters. Usename:op:valuewitheq,gt,gte,ltorlte; comparison operators require numeric values. - Twilio answering machine detection: Outbound telephony and batch call configurations now support optional
twilio_machine_detection. Chooseenablefor an early human-or-machine verdict ordetect_message_endto wait for a voicemail greeting to finish. Results arrive through the newanswering_machine_detectionwebhook event. - Data collection value constraints: Data collection properties can now use
allowed_valuesto name a dynamic variable containing the permitted values. The previousallowed_values_dynamic_variablefield is deprecated. - Agent metadata: List agent branches responses now indicate when a draft was created and whether it predates the branch tip. Agent and Speech Engine summaries now require
voice_id. - Knowledge base source URLs: Agent RAG query chunks now include required nullable
source_url, containing the tracked URL for URL documents. - Agent response attachments:
agent_responseWebSocket events now include optionalattachments. Each attachment requiresurlandnameand can includemime_type.
Workspaces
- API key platform limits: Service account API key responses can now include enterprise
platform_limitsfor credits, Professional Voice Clones, and TTS, Dubbing, and Music concurrency.
SDK releases
JavaScript SDK
- v2.67.0 - Added
dynamicVariableParamsto conversation listing and text search requests. Regenerated types for Twilio answering machine detection, data collection value constraints, API key platform limits, agent branch draft metadata and knowledge base source URLs.
Python SDK
- v2.67.0 - Added
dynamic_variable_paramsto synchronous and asynchronous conversation listing and text search methods. Regenerated types for Twilio answering machine detection, data collection value constraints, API key platform limits, agent branch draft metadata and knowledge base source URLs. The real-time text-to-speech client no longer passes the internal omit sentinel to the connection.
ElevenLabs CLI
- v1.2.0 - Added the
elevenlabs saycommand and its agent skill, regenerated API command bindings and madeeleven_v3the default TTS model.
Packages
- @elevenlabs/client@1.25.0, @elevenlabs/react@1.15.2, @elevenlabs/react-native@1.2.27, @elevenlabs/convai-widget-core@0.18.1 and @elevenlabs/convai-widget-embed@0.18.1 - Re-exported
MessageAttachmentfrom@elevenlabs/clientso consumers can import the type directly. - @elevenlabs/client@1.24.0, @elevenlabs/types@0.23.0, @elevenlabs/react@1.15.1, @elevenlabs/react-native@1.2.26, @elevenlabs/convai-widget-core@0.18.0 and @elevenlabs/convai-widget-embed@0.18.0 - Forwarded agent-response file attachments to
onMessageand added the optionalwebRtc.singlePeerConnectionsession setting. The widget also localizes greeting buttons and fixes dropped or duplicated text-chat responses.
API
View API changes
New endpoints
ElevenAgents
- List workspace tickets -
GET /v1/convai/triage-tickets- Lists conversation triage tickets across every agent the caller can access, ordered by most recently created first.
- Added optional
page_size(integer, 1–100, default100),status(AgentConversationTicketStatus),assignee_user_id(string orunassigned) andcursor(string) query parameters. - Returns
GetAgentConversationTicketsPageResponseModel.
Updated endpoints
ElevenAgents
- List conversations -
GET /v1/convai/conversations- Added optional nullable
dynamic_variable_params(repeatable string array). Each value usesname:op:value, whereopiseq,gt,gte,ltorlte.
- Added optional nullable
- Text search conversation messages -
GET /v1/convai/conversations/messages/text-search- Added optional nullable
dynamic_variable_params(repeatable string array) with the same syntax.
- Added optional nullable
- Twilio outbound call, SIP trunk outbound call, Exotel outbound call and Submit batch calling
telephony_call_confignow uses separate input and output schemas.- Added optional nullable
twilio_machine_detection(TwilioMachineDetectionConfig). Itsmodeacceptsenableordetect_message_endand defaults toenable. The setting is ignored for non-Twilio providers and inbound calls.
- Import phone number -
POST /v1/convai/phone-numbers- Added optional nullable
account_auth_token(string) for Twilio API key imports to validate inbound webhook signatures.
- Added optional nullable
Schema changes
ElevenAgents
WebhookEventTypeaddsanswering_machine_detection.AgentBranchSummaryadds optional nullabledraft_created_at(integer) and optionaldraft_is_behind_tip(boolean, defaultfalse).AgentKnowledgeBaseRagChunkResponseModeladds required nullablesource_url(string).AgentSummaryResponseModelandSpeechEngineSummaryResponseadd requiredvoice_id(string).AnalysisPropertyadds optional nullablename(string) andallowed_values(AllowedValues).LiteralJsonSchemaPropertyalso addsallowed_values. Both deprecateallowed_values_dynamic_variable.DataCollectionResultCommonModeladds optional nullablename(string).WorkspaceApiKeyResponseModeladds optional nullableplatform_limits(PlatformLimits).- MCP tool
Iconadds optional nullabletheme(lightordark). SMBToolConfigaddssend_custom_email,create_service_quote_requestandcreate_product_quote_requestparameter variants.- Webhook query parameter schemas and telephony call configuration now use separate input and output models.
agent_responseWebSocket events add optionalattachments(array). Each item requiresurlandname(strings) and accepts optionalmime_type(string).
ElevenCreative
ReferenceVideo.studio_clipnow usesStudioClipLocatorinstead ofStudioClipReference. The fields and wire format are unchanged.
ElevenAgents
- Phone keypad input: Agent conversation configuration now supports optional
dtmf_input_settingsfor DTMF input. Configure the digit timeout, use#as a terminator and redact keypad entries from transcripts, logs and analysis. - Conversation attachment history: Get conversation transcript entries now include
file_inputs, an array containing every attached file’s ID, name, MIME type and URL. - Agent tag filtering: List agents now accepts an optional
tagsquery parameter. Repeat the parameter to match agents with any of the supplied tags. - Batch campaign context: Get conversation now identifies batch calls with nullable
campaignmetadata containing the requiredcampaign_idandcampaign_lead_id.
Music
- Waveform visual data: Generate music detailed, Stream music with details and Upload music now accept optional
with_waveform_visual(boolean, defaultfalse). Opted-in responses return a low-resolutionwaveform_visualinteger array with four samples per second.
Dubbing
- Project pagination behavior: List Dubbing projects and List language targets now clamp
page_sizeto 1–100. Project status filtering includesqueued, and both endpoints document usingnext_cursorto retrieve the next page.
SDK releases
JavaScript SDK
- v2.66.0 - Added
fileIdstosendMultimodalMessage, allowing one message to include multiple file attachments.
Python SDK
- v2.66.0 - Added
file_idstosend_multimodal_message, allowing one message to include multiple file attachments.
Android SDK
- v0.12.2 - Preserved the
onUnhandledClientToolCallcallback when wiring session events. Unhandled client tool calls that expect a response now receive the automatic error response instead of remaining unresolved.
ElevenLabs CLI
- v1.1.0 - Regenerated API command bindings and added command-scoped request attribution for ElevenAgents workflows. These commands append
cmd/<command>to the CLIUser-Agent, allowing requests from workflows such asagents pushandagents createto be distinguished.
Packages
- @elevenlabs/client@1.23.0, @elevenlabs/react@1.15.0, @elevenlabs/types@0.22.1, @elevenlabs/react-native@1.2.25, @elevenlabs/convai-widget-core@0.17.1 and @elevenlabs/convai-widget-embed@0.17.1 - Added
fileIdstosendMultimodalMessage. The client sends bothfileandfilesfields for compatibility, and React exposes the updated client API.
API
View API changes
Updated endpoints
ElevenAgents
- List agents -
GET /v1/convai/agents- Added optional nullable
tags(string array). Repeat the query parameter to match any supplied tag.
- Added optional nullable
- Create agent, Get agent and Update agent
- Added optional nullable
conversation_config.conversation.dtmf_input_settings(DTMFInputConfig). It supportsdtmf_input_timeout(number, 0.5–10 seconds, default2),hash_terminator(boolean, defaulttrue) andredact_input(boolean, defaultfalse). - Added optional
sip_refer_play_dialtone(boolean, defaulttrue) to phone-number transfer configuration. Set it tofalseto keep the original call leg silent while a SIP REFER transfer completes. - Start- and end-procedure system tools now accept either a
ProcedureVersionRefor aProcedureDraftRef. Draft references requireprocedure_id(string) and setversion_idtonull.
- Added optional nullable
- Get conversation -
GET /v1/convai/conversations/{conversation_id}- Added
file_inputs(array ofConversationHistoryTranscriptFileInputResponseModel) to transcript entries. Each item requiresfile_id,original_filename,mime_typeandfile_url(strings). - Added optional nullable
campaign(BatchCallingCampaignInformation) to batch-call metadata. The object requirescampaign_idandcampaign_lead_id(strings). - Added
dtmftoChatSourceMedium.
- Added
- Conversation triage ticket issue types add
incorrect_information,documentation_gap,platform_bugandwrong_action.
Music
- Generate music detailed (
POST /v1/music/detailed) and Stream music with details (POST /v1/music/detailed/stream)- Added optional
with_waveform_visual(boolean, defaultfalse). - Detailed responses add nullable
waveform_visual(integer array), sampled four times per second from-1000to1000.
- Added optional
- Upload music -
POST /v1/music/upload- Added optional
with_waveform_visual(boolean, defaultfalse) and nullablewaveform_visual(integer array) in the response.
- Added optional
ElevenCreative
- Create Studio project and Create podcast
quality_presetnow acceptsnull, and itsstandardschema default was removed.
Dubbing
- List Dubbing projects -
GET /v1/dubbing/projectpage_sizeremains an optional integer with default20, but values are now clamped to 1–100 instead of rejected.- The
statusfilter now documentsqueued,preparing,readyandfailed. - Pass the preceding response’s
next_cursorincursor; omit it for the first page.
- List language targets -
GET /v1/dubbing/project/{project_id}/languagepage_sizeremains an optional integer with default20, but values are now clamped to 1–100 instead of rejected.- The
statusfilter supportsqueued,processing,completed,staleandfailed. - Pass the preceding response’s
next_cursorincursor; omit it for the first page.
Schema changes
Workspace
PendingSubscriptionSwitchResponseModel.next_tieraddsgrant.
ElevenLabs CLI
The ElevenLabs CLI v1.0.0 is now available. Every ElevenLabs API operation is available as a subcommand, with JSON, table, YAML and CSV output, automatic pagination and shell completion.
The CLI also provides local configuration workflows for ElevenAgents. Store agent, tool and test configurations as files, synchronize them with push and pull commands, manage branches, run tests, install ElevenLabs UI components and select a data residency region.
Procedures
Procedures are now generally available in ElevenAgents. A procedure contains task-specific instructions and a trigger that determines when they apply. During a conversation, the agent loads the relevant procedure, allowing one agent to handle distinct tasks without placing every instruction in its system prompt.
Use free-form procedures when the agent can adapt the wording or order of instructions. Use structured procedures when steps must run in a defined order. Both types can be used alongside workflows on the same agent.
ElevenAgents
- Conversation triage tickets: Added APIs for creating tickets about agent performance, creating manual follow-up tickets, listing tickets, assigning workspace members, updating status and assignee, and adding ticket-level or turn-level comments.
- Conversation observability: Realtime clients can receive a
context_usageevent after each completed agent turn. The event reports the model, prompt token count and model context limit.
SDK Releases
JavaScript SDK
- v2.65.0 - Added clients and types for conversation triage tickets and lightweight conversation summaries. Conversation APIs add procedure, invalid-tool-call and sort filters; procedure APIs add agent version selection; topic APIs add evaluation detail controls and frustration sorting. The release also adds knowledge base refresh frequency, test environment and alerting integration fields, plus realtime Dubbing message types.
Python SDK
- v2.65.0 - Added clients and types for conversation triage tickets and lightweight conversation summaries. Conversation APIs add procedure, invalid-tool-call and sort filters; procedure APIs add agent version selection; topic APIs add evaluation detail controls and frustration sorting. The release also adds knowledge base refresh frequency, test environment and alerting integration fields, and preserves repeated multipart fields for Speech to Text
keytermsand Dubbingwebhook_ids.
Swift SDK
- v3.3.0 - Added typed client error parsing,
expects_responsehandling and type-safe tool results. WebRTC startup now becomes ready when the agent joins instead of waiting for audio-track subscription. The release also hardens URL handling, suppresses unknown-event noise and removes realtime-thread allocation from software mute processing.
Packages
- @elevenlabs/client@1.19.1, @elevenlabs/react@1.12.3, @elevenlabs/react-native@1.2.21, @elevenlabs/convai-widget-core@0.16.2 and @elevenlabs/convai-widget-embed@0.16.2 - WebRTC output capture now uses self-hosted AudioWorklet paths under strict content security policies. Worklet caching includes the requested source, preventing an earlier inline URL from replacing a self-hosted path. React Native setup errors now point to
@elevenlabs/react-native. - @elevenlabs/client@1.20.0, @elevenlabs/react@1.12.4, @elevenlabs/react-native@1.2.22, @elevenlabs/convai-widget-core@0.16.3 and @elevenlabs/convai-widget-embed@0.16.3 - Added optional
webRtc.iceTransportPolicy. Set it torelayto restrict WebRTC ICE candidates to TURN relays on networks that block direct UDP traffic. - @elevenlabs/client@1.21.0, @elevenlabs/react@1.13.0, @elevenlabs/types@0.21.1, @elevenlabs/react-native@1.2.23, @elevenlabs/convai-widget-core@0.16.4 and @elevenlabs/convai-widget-embed@0.16.4 - Added the
onContextUsagecallback andContextUsageEventtype. React exposes the callback throughuseConversation. React Native now resolves through its package export condition instead of browser-global detection. - @elevenlabs/client@1.22.0, @elevenlabs/react@1.14.0, @elevenlabs/types@0.22.0, @elevenlabs/react-native@1.2.24, @elevenlabs/convai-widget-core@0.17.0 and @elevenlabs/convai-widget-embed@0.17.0 - Added first-message rich content with attributed button responses,
onExternalAgentDisconnectedandonMCPToolApprovalRequest. WebRTC now uses the selected input device, preserves mute state when switching microphones and fails setup if initiation data cannot be sent. The widget adds concurrency queue status, optional language selection on the collapsed trigger and first-message rendering for agents that support both text and voice.
API
View API changes
New Endpoints
ElevenAgents
- Added nine conversation triage ticket endpoints:
- Create conversation ticket -
POST /v1/convai/triage-tickets. The request requiresconversation_id(string) and acceptsqa_comment(nullable string, 1–10,000 characters) and up to 200 turn comments. - List tickets -
GET /v1/convai/agents/{agent_id}/triage-tickets, with cursor pagination. - Create manual ticket -
POST /v1/convai/agents/{agent_id}/triage-tickets. The request requiresqa_comment(string, 1–10,000 characters). - List assignable users -
GET /v1/convai/agents/{agent_id}/triage-tickets/assignable-users. The response lists non-service-account workspace members and whether each member has access to the agent. - Get ticket -
GET /v1/convai/triage-tickets/{agentqa_ticket_id}. - Update ticket -
PATCH /v1/convai/triage-tickets/{agentqa_ticket_id}. The request accepts optionalstatusand nullableassignee_user_id. - Delete ticket -
DELETE /v1/convai/triage-tickets/{agentqa_ticket_id}. - Add comment -
POST /v1/convai/triage-tickets/{agentqa_ticket_id}/comments. The request requirescomment(string, 1–10,000 characters). - Add turn comment -
POST /v1/convai/triage-tickets/{agentqa_ticket_id}/turn-comments. The request requires zero-basedturn_index(integer) andcomment(string, 1–10,000 characters).
- Create conversation ticket -
Updated Endpoints
ElevenAgents
- Get signed URL -
GET /v1/convai/conversation/get-signed-url- Added optional
debug_events_request(boolean, defaultfalse). Debug events require editor access to the agent.
- Added optional
- Get WebRTC token -
GET /v1/convai/conversation/token- Added optional
debug_events_request(boolean, defaultfalse). The legacyGET /v1/convai/conversation/get_signed_urlroute accepts the same parameter.
- Added optional
- List conversations -
GET /v1/convai/conversations- Added optional
triggered_procedure_ids(nullable string array, maximum 50) to match conversations where any specified procedure ran. - Added optional
include_invalid_tool_calls(boolean, defaultfalse) to include tool calls that did not run. - Added optional
sort_direction(ascordesc, defaultdesc) for call start time.
- Added optional
- Text search conversation messages -
GET /v1/convai/conversations/messages/text-search- Added optional
triggered_procedure_ids(nullable string array, maximum 50). - Added optional
include_invalid_tool_calls(boolean, defaultfalse).
- Added optional
- Get agent conversation topics -
GET /v1/convai/agents/{agent_id}/topics- Added optional
include_evaluation_criteria(boolean, defaulttrue). - Added
frustrationtosort_by. - Topic responses add nullable
success_rate(number), while the overall response addsaggregated_run_count(integer, default0). from_unix_secsis floored to the start of its UTC day. A bounded range aggregates completed daily discovery runs; omitting both bounds returns the latest run.
- Added optional
- List procedures (
GET /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures) and Get procedure (GET /v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/{procedure_id})- Added optional nullable
agent_version_id(string) to retrieve procedures from a specific agent version.
- Added optional nullable
- Create test and Update test
- Added optional nullable
environment(string) to response, simulation and tool-call unit test schemas. The value selects environment-specific URLs, headers and auth connections; it defaults toproduction.
- Added optional nullable
- Create URL document, Create crawl job and Create folder
- Added optional nullable
minimum_frequency_days(integer, 1–180) for auto-sync. The default is7, and a stricter parent-folder frequency takes precedence.
- Added optional nullable
Music
- List Music Finetunes -
GET /v1/music/finetunes- Increased the maximum
page_sizefrom 100 to 150. The default remains 50.
- Increased the maximum
Schema Changes
ElevenAgents
- Agent update requests add optional nullable
procedures(object<string, ProcedureVersionRef>). Each value requiresprocedure_idandversion_id(strings). An empty object removes all procedures. - Conversation initiation configuration adds
enable_procedure_ids_from_client(boolean, defaultfalse). Initiation data adds optional nullableprocedure_ids(string array); an empty array disables all procedures for the starting agent. ClientEventaddscontext_usage.- Soft-timeout overrides add optional nullable
additional_soft_timeout_messages(string array). - Constant values in analysis and schema override models now accept
null. - Widget configuration defaults for
mic_muting_enabledandtranscript_enabledchanged fromfalsetotrue. Set them explicitly tofalseto preserve the previous behavior.
Workspace
- Get user responses removed
xi_api_keyfromUserResponseModel. ResourceMetadataResponseModel.role_to_group_idsnow accepts custom role IDs as keys instead of restricting keys toadmin,editor,commenterandviewer.- Direct publishing responses add optional nullable
restricted_to_user_email_domains(string array). - Pending subscription switch responses add
gotonext_tier.
MCP server
- Local MCP server deprecated: The local ElevenLabs MCP server and MCP player are deprecated in favor of the hosted MCP server. Both repositories are archived and will no longer receive updates. The hosted server is available at
https://api.elevenlabs.io/v1/mcp, signs in with your ElevenLabs account through OAuth and requires no local installation or API key. See the hosted MCP server documentation for setup instructions for Claude, Cursor and other MCP clients.