> 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

<Accordion title="View API changes">

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

</Accordion>