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.
Learn when to use procedures and how they compare with prompts and workflows.
Write natural-language instructions that the agent can adapt to the conversation.
Define typed steps that the agent follows in a consistent order.
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.