> 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 - **Call queueing and hold audio**: Added [call queueing](/docs/eleven-agents/guides/call-queueing) for agents at their concurrency limit. Queued callers hear hold audio and receive `queue_status` events 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](https://github.com/elevenlabs/elevenlabs-js/releases/tag/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-flash` and `music_v2_5`. #### Python SDK - [v2.68.0](https://github.com/elevenlabs/elevenlabs-python/releases/tag/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-flash` and `music_v2_5`. The `compose_detailed` wrapper now accepts every generated music model ID and both prompt- and chunk-based composition plans. #### iOS SDK - [v3.3.1](https://github.com/elevenlabs/elevenlabs-swift-sdk/releases/tag/v3.3.1) - Reconciles agent messages by `response_id` instead of `event_id`, preserving multiple responses around tool calls and preventing streamed parts or corrections from attaching to the wrong message. #### ElevenLabs CLI - [v1.3.0](https://github.com/elevenlabs/cli/releases/tag/v1.3.0) - Added optional `--intent` metadata to generated API commands. Added `elevenlabs feedback missing-capability` to report workflows that the CLI does not support. #### Packages - [@elevenlabs/convai-widget-core@0.18.2](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-core%400.18.2) and [@elevenlabs/convai-widget-embed@0.18.2](https://github.com/elevenlabs/packages/releases/tag/%40elevenlabs%2Fconvai-widget-embed%400.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_activity` events to once per second and clears the limit when a session ends. ### API ## New endpoints ### ElevenAgents - [Upload agent hold audio](/docs/api-reference/agents/hold-audio/create) - `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) and `hold_audio` (`AgentHoldAudioConfig`). The hold-audio object requires `audio_path`, `audio_url`, `original_filename` (strings), `duration_secs` (number) and `size_bytes` (integer). - [Delete agent hold audio](/docs/api-reference/agents/hold-audio/delete) - `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](/docs/api-reference/agents/create), [Get agent](/docs/api-reference/agents/get) and [Update agent](/docs/api-reference/agents/update) - Added optional `platform_settings.queueing_config` (`AgentQueueingConfig`) with `enabled` (boolean, default `false`) and `wait_timeout_seconds` (integer, 1–1,800, default `180`). - Queue configuration responses include read-only nullable `hold_audio` (`AgentHoldAudioConfig`). Agent responses also include optional `default_hold_audio_url` (string). - [Get conversation](/docs/api-reference/conversations/get) - `GET /v1/convai/conversations/{conversation_id}` - Metadata adds optional nullable `queue_wait_secs` (number). Queue time is excluded from `call_duration_secs` and billed time. - [Create agent branch](/docs/api-reference/agents/branches/create) - `POST /v1/convai/agents/{agent_id}/branches` - Added optional `include_draft` (boolean, default `false`). When `true`, a branch created from the branch tip includes the caller's draft procedure set. - [List procedures](/docs/api-reference/agents/procedures/list) and procedure create, get and draft endpoints - List items add optional `referenced_tool_ids`, `referenced_kb_ids`, `referenced_procedure_ids` and `referenced_dynamic_variables` (string arrays). - Agent and merge-preview responses add optional `procedures`, a map keyed by procedure ID. - [List test invocations](/docs/api-reference/tests/test-invocations/list) - `GET /v1/convai/test-invocations` - Added optional nullable `search` (string) to filter tests and folders by name. - [Run tests on agent](/docs/api-reference/tests/run-tests) and [Get test invocation](/docs/api-reference/tests/test-invocations/get) - Test suite invocation and unit test run responses add optional nullable `version_id` (string) and optional `ran_against_draft` (boolean, default `false`). - Invocation summaries also add optional `runs_diverged_from_version` (boolean, default `false`). - `POST /v1/convai/agents/{agent_id}/knowledge-base/rag-query` - The request body adds optional nullable `max_documents_length` (integer, 1–50,000) and `max_retrieved_rag_chunks_count` (integer, 1–20) query-specific overrides. - [Get WhatsApp account](/docs/api-reference/whats-app/accounts/get) - `GET /v1/convai/whatsapp-accounts/{phone_number_id}` - Added optional `account_type` (`WhatsAppAccountType`, default `cloud_api`). Values are `cloud_api` and `coexistence`. - [Calculate expected LLM usage](/docs/api-reference/agents/calculate) - `POST /v1/convai/agent/{agent_id}/llm-usage/calculate` - `LLMUsageCalculatorLLMResponseModel` adds required `price_per_message` (number). ### Music - `MusicModelID` adds `music_v2_5` for `POST /v1/music/video-to-music`, `POST /v1/music/plan`, [Compose music](/docs/api-reference/music/compose), `POST /v1/music/detailed`, `POST /v1/music/detailed/stream`, `POST /v1/music/stream`, `POST /v1/music/upload` and `POST /v1/music/finetunes`. - `GenerationChunk.text` increases `maxLength` from 6,000 to 6,132 characters for `POST /v1/music/plan`, `POST /v1/music`, `POST /v1/music/detailed`, `POST /v1/music/detailed/stream`, `POST /v1/music/stream` and `POST /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 required `queue_status_event.status` accepts `waiting`, `admitted` or `timed_out`; `timed_out` precedes WebSocket close code `4300`. Hold audio continues to arrive as regular `audio` events. - The `LLM` enum adds `gemini-3.8-flash`, including conversation initiation overrides. - Conversation system tool result unions add `start_procedure_success`, `start_procedure_error`, `end_procedure_success` and `end_procedure_error`. - `FeaturesUsageCommonModel` adds optional `freeform_procedure` and `structured_procedure` feature statuses. > ElevenLabs provides APIs and SDKs for text to speech, voice cloning, speech to text, sound effects, voice isolator, voice changer, and conversational AI agents. Build voice-enabled applications with lifelike audio generation.