> 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. ### Developer Resources - **ElevenLabs Devs YouTube channel**: A new developer-focused [YouTube channel](https://www.youtube.com/@elevenlabsdevs) is now live, featuring tutorials, API walkthroughs, and technical deep dives to help you get the most out of the ElevenLabs platform. ### ElevenAgents - **Workflow starting node override**: Conversations can now be started at a specific workflow node by passing `starting_workflow_node_id` in the [conversation initiation client data](/docs/api-reference/agents/create). This is gated by an opt-in `enable_starting_workflow_node_id_from_client` field in the agent's platform override settings. When enabled, clients can specify which node to begin a conversation at, which is useful for agent memory and longer-term WebSocket use cases. If the specified node does not exist, the conversation falls back to the default entry point. - **Post-call analysis LLM configuration**: Agent platform settings now include an `analysis_llm` field (default: `gemini-2.5-flash`) that sets the default LLM for post-call analysis, including evaluation criteria and data collection. Individual data collection properties can override this default with a per-item `llm` field via the new `AnalysisProperty` schema, giving fine-grained control over which model processes each analysis item. - **New LLM options**: Added `gpt-5.4` to the list of available LLM providers for agent configuration. Added `xhigh` to the `LLMReasoningEffort` enum for extended reasoning on supported models. - **Null literal in workflow expressions**: Workflow conditional expressions now support null comparisons via the new `ASTNullNode` type, enabling branches like "if variable is null" in workflow logic. - **Get secret by ID**: A new [get secret](/docs/api-reference/workspace/secrets/get) endpoint (`GET /v1/convai/secrets/{secret_id}`) retrieves a single workspace secret by its ID. The [list secrets](/docs/api-reference/workspace/secrets/list) endpoint also now accepts a `search` query parameter to filter secrets by name prefix. - **Searchable phone numbers in batch calling**: The batch calling form in the dashboard now includes a searchable phone number selector, making it easier to find the right outbound number when configuring batch calls. ### Speech to Text - **Speaker role detection**: The [convert speech to text](/docs/api-reference/speech-to-text/convert) endpoint now accepts a `detect_speaker_roles` parameter (boolean, default `false`). When enabled alongside `diarize=true`, speaker labels are returned as `agent` and `customer` instead of `speaker_0`, `speaker_1`. This cannot be used with `use_multi_channel=true`. Usage incurs an additional 10% surcharge on the base transcription cost. ### Text to Dialogue - **Input character limit guidance**: The [text to dialogue](/docs/api-reference/text-to-dialogue/convert) endpoints now document a recommended limit of 2,000 characters across all `inputs[].text` values per request. Longer requests may terminate early in streaming responses or return a validation error. ### Workspaces - **Usage analytics endpoint**: A new [usage by product over time](/docs/api-reference/workspace/usage/get-usage-by-product-over-time) endpoint (`POST /v1/workspace/analytics/query/usage-by-product-over-time`) returns credit usage broken down by product type over time. Results are returned in a tabular structure with configurable `interval_seconds`, `group_by` dimensions, and `filters`. The previous `GET /v1/usage/character-stats` endpoint has been deprecated in favor of this new endpoint. ### SDK Releases #### Packages - [@elevenlabs/client@1.2.1](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/client@1.2.1) - Fixed conversation startup readiness so `onConnect` runs after the session is marked connected and React has synchronized `conversationRef`. Also exposed and forwarded `onConversationCreated` for consumers that need the created `Conversation` instance before `onConnect`. - [@elevenlabs/react@1.1.1](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/react@1.1.1) - Fixed conversation startup readiness and exposed `onConversationCreated` callback, matching the `@elevenlabs/client@1.2.1` changes. - [@elevenlabs/react-native@1.1.1](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/react-native@1.1.1), [@elevenlabs/convai-widget-core@0.11.4](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/convai-widget-core@0.11.4), [@elevenlabs/convai-widget-embed@0.11.4](https://github.com/elevenlabs/packages/releases/tag/@elevenlabs/convai-widget-embed@0.11.4) - Updated to `@elevenlabs/client@1.2.1` with conversation startup fixes. ### API ## New Endpoints - [Get secret](/docs/api-reference/workspace/secrets/get) - `GET /v1/convai/secrets/{secret_id}` - `POST /v1/workspace/analytics/query/usage-by-product-over-time` - Get workspace credit usage by product over time ## Deprecated Endpoints - `GET /v1/usage/character-stats` - Deprecated in favor of `POST /v1/workspace/analytics/query/usage-by-product-over-time` - All dubbing resource editing endpoints (`POST /v1/dubbing/resource/{dubbing_id}/language`, `POST /v1/dubbing/resource/{dubbing_id}/speaker/{speaker_id}/segment`, `PATCH /v1/dubbing/resource/{dubbing_id}/segment/{segment_id}/{language}`, and others) are now deprecated ## Updated Endpoints ### ElevenAgents - [Create agent](/docs/api-reference/agents/create), [Get agent](/docs/api-reference/agents/get), [Update agent](/docs/api-reference/agents/update) - Added `analysis_llm` field (LLM enum, default: `gemini-2.5-flash`) to `AgentPlatformSettings` for configuring the default post-call analysis model - Data collection properties now use the `AnalysisProperty` schema with an optional per-item `llm` override field - [Simulate conversation](/docs/api-reference/agents/simulate-conversation) - Added `starting_workflow_node_id` field (string, nullable) to conversation initiation client data - Added `enable_starting_workflow_node_id_from_client` field (boolean, default `false`) to `ConversationInitiationClientDataConfig` - [Submit batch calling](/docs/api-reference/batch-calling/create) - Added `external_link` field (string, nullable) to batch call records - [List secrets](/docs/api-reference/workspace/secrets/list) - Added optional `search` query parameter (string) for filtering secrets by name prefix - `LLM` enum - Added `gpt-5.4`, `gpt-5.4-2026-03-05` - `LLMReasoningEffort` enum - Added `xhigh` - Workflow expressions (`ASTNode`) - Added `null_literal` discriminator value and `ASTNullNode` schema for null comparisons - Array tool parameters (`ArrayJsonSchemaProperty`) - Added `dynamic_variable` field (string, optional) for populating arrays from dynamic variables at runtime - Added `constant_value` field (array, nullable) for setting constant array values - `items` field is no longer required (has a default schema) - MCP tool config overrides - Response now uses `MCPToolConfigOverride-Output` schema (input/output split) ### Speech to Text - [Convert speech to text](/docs/api-reference/speech-to-text/convert) - Added `detect_speaker_roles` field (boolean, default `false`) for agent/customer speaker role detection ### Text to Dialogue - [Convert text to dialogue](/docs/api-reference/text-to-dialogue/convert), [Stream text to dialogue](/docs/api-reference/text-to-dialogue/stream) - Updated `inputs` description with 2,000 character per-request recommendation - Removed `avatar_context` field from request body ### Text to Speech - Quality preset fields on TTS and dialogue endpoints now reference the `QualityPresetType` enum schema. The `highest` value has been removed from dialogue quality presets; use `ultra` instead. ### Other - `AudioNativeResponse` - Removed `transcription` field from response - `UserResponseModel` - Backward compatible schema update > 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.