Overview
ElevenLabs is a specialized audio provider for text-to-speech and speech-to-text operations. Vikat performs conversions including:- Model ID mapping - Uses provider model identifier directly
- Voice configuration - Maps voice settings (stability, similarity, boost, speed, style)
- Response format conversion - Speech format handling (MP3, Opus, PCM/WAV)
- Timestamp support - Character-level timing alignment for TTS
- Transcription with alignment - Word and character-level timing, diarization, and additional formats
- Pronunciation dictionaries - Support for custom pronunciation rules
- Voice quality parameters - Stability, similarity boost, and speaker boost controls
Supported Operations
Unsupported Operations (β): Chat Completions, Responses API, Text Completions, and Embeddings are not supported by ElevenLabs (audio-focused provider). These return
UnsupportedOperationError.Note: ElevenLabs also supports a βSpeech with Timestampsβ endpoint at /v1/text-to-speech/{voice_id}/with-timestamps (non-streaming only) for enhanced timestamp information.Setup & Configuration
Configure ElevenLabs as a provider.- Web UI
- config.json
- API
- Go SDK

- Navigate to Models > Model Providers. Look for ElevenLabs under Configured Providers. If it is missing, click on Add New Provider and select ElevenLabs.
- Click Add Key or edit an existing key.
- Set a name for your key.
- Paste your API key directly or use an environment variable (for example,
env.ELEVENLABS_API_KEY). - Set Allowed Models to All Models (default) or the specific model allowlist you want this key to serve.
- Save the provider configuration.
model is the ElevenLabs voice ID unless you pass a provider-specific voice override in the request.
1. Speech (Text-to-Speech)
Request Parameters
Core Parameters
Voice Configuration
Voice settings are optional and controlled viaparams:
Advanced Parameters
Useextra_params for ElevenLabs-specific TTS features:
- Gateway
- Go SDK
Advanced TTS Parameters
Response Format
Defaults to MP3 format if not specified. Format is passed via query parameter
output_format.Timestamps Support
To get character-level timing alignment, enablewith_timestamps:
/v1/text-to-speech/{voice_id}/with-timestamps is used and the response includes:
audio_base64- Audio data as base64-encoded stringalignment.char_start_times_ms- Character start times in millisecondsalignment.char_end_times_ms- Character end times in millisecondsalignment.characters- Array of charactersnormalized_alignment- Same as alignment but for normalized text
Response Conversion
Non-Timestamp Response
Timestamp Response
Streaming
Streaming speech returns audio in chunks as they are generated:2. Transcription (Speech-to-Text)
Request Parameters
Input Source
Choose one of the following (mutually exclusive):
Error: Providing both or neither will result in error.
Core Parameters
Advanced Parameters
Useextra_params for transcription-specific features:
- Gateway
- Go SDK
Transcription Options
Additional Formats
Request multiple output formats simultaneously:segmented_json, docx, pdf, txt, html, srt
Response Conversion
Basic Transcription
With Diarization
Whendiarize: true, the response includes speaker identification:
With Timestamps
Character-level timing whentimestamps_granularity: "character":
With Additional Formats
Caveats
Voice ID Required
Voice ID Required
Severity: High
Behavior: Voice ID must be provided for TTS requests
Impact: Request fails without voice configuration
Code:
elevenlabs.go:198-208File or URL Required for Transcription
File or URL Required for Transcription
Severity: High
Behavior: Either
file or cloud_storage_url must be provided (not both)
Impact: Request fails with ambiguous input
Code: elevenlabs.go:471-478Audio Format Conversion
Audio Format Conversion
Severity: Low
Behavior: Response formats (MP3, Opus, WAV) mapped via format string
Impact: Format parameter passed as query string to endpoint
Code:
elevenlabs.go:712-715, utils.go:5-35Timestamps as Separate Endpoint
Timestamps as Separate Endpoint
Severity: Low
Behavior: Timestamp requests use
/with-timestamps endpoint variant
Impact: Switches endpoint based on with_timestamps flag
Code: elevenlabs.go:195-205Multipart Form Data for Transcription
Multipart Form Data for Transcription
Severity: Low
Behavior: Transcription uses multipart/form-data, not JSON
Impact: File and parameters sent as form fields
Code:
elevenlabs.go:480-6903. List Models
Request Parameters
Returns available models with their capabilities and language support.

