ElevenLabs integration

AI voice: text-to-speech, speech-to-speech, voice cloning, dubbing, voices, models, history, projects

Help CentreConnectors

Overview

ElevenLabs provides AI voice generation – text-to-speech, voice cloning, dubbing, and speech-to-speech. The Automize connector covers TTS (sync + streaming), STT, dubbing jobs, voice management, and history download.

  • Regions: Single global API at api.elevenlabs.io. Audio responses stream from the closest edge POP automatically.
  • Plans: Free has 10k characters/month and no commercial use rights. Starter onwards unlocks commercial licensing. Voice cloning (Instant + Professional) requires Creator or higher. Dubbing Studio is metered separately.

Setting up the connection

Auth type: API Key.

  1. In ElevenLabs, open Profile → API Keys and click Create API Key. Scope it to the workspace + actions you need.
  2. Copy the key (shown once) and paste it as the API key in Automize.
  3. The connector sends it as xi-api-key on every request – no Authorization header used.

Find your credentials at https://elevenlabs.io/app/settings/api-keys.


Rate limits

Character throughput is the actual quota – concurrent requests cap at 2 (Free), 5 (Starter), 10 (Creator), 15 (Pro+). Hitting concurrency returns 429 system_busy; the connector backs off + retries. Streaming TTS counts the same characters whether you consume the stream or not.


Data model

ElevenLabs' content graph:

    Voice         pre-built / cloned voice
      ├─ settings (stability, similarity_boost, style, speaker_boost)
      └─ samples  (source audio for clones)

    History       every generation gets a history_item_id
      ├─ text     (the prompt)
      ├─ voice_id (which voice rendered it)
      └─ audio    (downloadable for the retention window)

    Dubbing       async job – translate + voice-clone source video
      └─ status   dubbing → dubbed → (failed)

    Model         eleven_multilingual_v2 (default), eleven_turbo_v2_5
                  (low-latency), eleven_monolingual_v1 (legacy English),
                  scribe_v1 (STT). Each has supported language list.

Voice categories:

    premade       ElevenLabs-hosted stock voices, available to all
    cloned        Your Instant Clones (1-min source, fast)
    generated     Voice Lab generated (style-from-description)
    professional  Studio-trained, manual review (Pro+)

History retention: 30 days for Free, longer on paid plans. Audio
is regenerable if you have history retention – past that window it's
gone, even if you have the history_item_id.

Available operations

15 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Add Voice (Clone)GeneralClone a voice from audio samples
Create DubbingGeneralDub a video or audio file to another language
Delete VoiceGeneralDelete a voice from your library
Edit Voice SettingsGeneralUpdate default stability/similarity settings for a voice
Get DubbingGeneralGet status of a dubbing job
Get History AudioGeneralDownload the audio for a historical generation
Get UserGeneralGet account info, subscription tier and character usage
Get VoiceGeneralGet a single voice's details
List HistoryGeneralList historical generations
List ModelsGeneralList available TTS models
List VoicesGeneralList voices available to your account
Speech to SpeechGeneralConvert source audio to target voice
Speech to TextGeneralTranscribe audio to text
Text to SpeechGeneralSynthesize speech from text for a given voice
Text to Speech (Stream)GeneralSynthesize speech and stream audio chunks

Operations

Add Voice (Clone)

Clone a voice from audio samples

ParameterRequiredTypeDescription
Name nameNotext
Files filesNotext
Description descriptionNotext
Labels labelsNotext

Tips

  • Instant cloning needs 1+ minute of clean source audio. Professional cloning needs 30+ minutes and a manual review step on ElevenLabs' side.
  • Multipart upload: name + description + files[] (audio samples). Returns voice_id; available immediately for Instant clones, hours-days for Professional.

Create Dubbing

Dub a video or audio file to another language

ParameterRequiredTypeDescription
File fileNotext
Source Lang source_langNotext
Target Lang target_langNotext
Num Speakers num_speakersNotext
Watermark watermarkNotext
Start Time start_timeNotext
End Time end_timeNotext
Highest Resolution highest_resolutionNotext

Tips

  • Async – returns dubbing_id. Poll Get Dubbing until status='dubbed' (typically 1-5 min/minute of source).
  • target_lang takes ISO-639 codes; source_lang is auto-detected if omitted.

Delete Voice

Delete a voice from your library

ParameterRequiredTypeDescription
Voice Id voice_idYestext

Tips

  • DELETE /v1/voices/{voice_id} – only your cloned voices are deletable. Premade voices return 403.
  • Doesn't delete historical generations made with this voice – those stay in history.

Edit Voice Settings

Update default stability/similarity settings for a voice

ParameterRequiredTypeDescription
Voice Id voice_idYestext
Stability stabilityNotext
Similarity Boost similarity_boostNotext
Style styleNotext
Use Speaker Boost use_speaker_boostNotext

Tips

  • POST /v1/voices/{voice_id}/settings/edit – body: stability, similarity_boost, style, use_speaker_boost.
  • Settings persist as the voice's default. Per-call settings (passed in TTS) override these without changing the saved default.

Get Dubbing

Get status of a dubbing job

ParameterRequiredTypeDescription
Dubbing Id dubbing_idYestext

Tips

  • Poll /v1/dubbing/{dubbing_id} every 30s. status: dubbing → dubbed → failed.
  • On 'dubbed', call the separate GET /v1/dubbing/{dubbing_id}/audio/{language_code} to download the rendered audio per target language.
  • error_message exposed on 'failed' – common: source_audio_quality_too_low, lipsync_failed, unsupported_source_language.

Get History Audio

Download the audio for a historical generation

ParameterRequiredTypeDescription
History Item Id history_item_idYestext

Tips

  • GET /v1/history/{history_item_id}/audio – re-downloads the rendered audio for a past generation, no re-billing.
  • Available only if history retention window hasn't expired (30 days Free, indefinite on paid).

Get User

Get account info, subscription tier and character usage

No input parameters.

Tips

  • GET /v1/user – character quota remaining, subscription tier, next_character_count_reset_unix, voice_limit. Useful as a health-check + cost-budget guard.

Get Voice

Get a single voice's details

ParameterRequiredTypeDescription
Voice Id voice_idYestext

Tips

  • GET /v1/voices/{voice_id} – full metadata including category (premade|cloned|generated|professional), samples, settings, sharing options.
  • Pass with_settings=true to include the active voice_settings object.

List History

List historical generations

No input parameters.

Tips

  • Paginated. Default page_size=100, max 1000. last_history_item_id (cursor) for further pages.
  • Filter by voice_id + start_after_history_item_id. source filter (TTS|STS) separates Speech-to-Speech from Text-to-Speech generations.

List Models

List available TTS models

No input parameters.

Tips

  • Each model exposes: model_id, name, can_do_text_to_speech, can_do_voice_conversion, languages[], max_characters_request, token_cost_factor.
  • Pick the model with the lowest token_cost_factor that supports your language + use case to minimise character billing.

List Voices

List voices available to your account

No input parameters.

Tips

  • Returns all voices accessible to the workspace – premade + your clones. Filter client-side by category.
  • Use this to populate dropdowns; voice_id is opaque and won't change for premade voices.

Speech to Speech

Convert source audio to target voice

ParameterRequiredTypeDescription
Voice Id voice_idYestext
Audio audioNotext
Model Id model_idNotext
Voice Settings voice_settingsNotext

Tips

  • POST /v1/speech-to-speech/{voice_id} – upload source audio, get back the same speech in the target voice. Preserves emotion and timing better than transcribe→TTS.

Speech to Text

Transcribe audio to text

ParameterRequiredTypeDescription
File fileNotext
Model Id model_idNotext
Language Code language_codeNotext
Diarize diarizeNotext
Tag Audio Events tag_audio_eventsNotext
Timestamps Granularity timestamps_granularityNotext

Tips

  • POST /v1/speech-to-text – supports 99 languages. model_id=scribe_v1 is the production STT model.

Text to Speech

Synthesize speech from text for a given voice

ParameterRequiredTypeDescription
Voice Id voice_idYestext
Text textNotext
Model Id model_idNotext
Voice Settings voice_settingsNotext
Language Code language_codeNotext
Pronunciation Dictionary Locators pronunciation_dictionary_locatorsNotext

Tips

  • POST /v1/text-to-speech/{voice_id} – body is text + voice_settings (stability, similarity_boost, style, use_speaker_boost) + model_id.
  • model_id defaults to eleven_multilingual_v2. Use eleven_turbo_v2_5 for ~3x lower latency at slightly lower fidelity.
  • output_format=mp3_44100_128 is the default. Use pcm_44100 for downstream processing (no encode pass).

Text to Speech (Stream)

Synthesize speech and stream audio chunks

ParameterRequiredTypeDescription
Voice Id voice_idYestext
Text textNotext
Model Id model_idNotext
Voice Settings voice_settingsNotext

Tips

  • Same endpoint with /stream suffix – returns chunked audio. The connector reassembles to a single file.
  • Use optimize_streaming_latency=3 for the lowest time-to-first-byte on Turbo.

FAQ

Why is my voice clone sounding nothing like the source?
Source audio quality dominates. Mono, 44.1kHz, no background music, single speaker, 30-180s of dry speech. Stereo or noisy source produces a voice that sounds like a different person.
Streaming vs sync – when does it matter?
Sync is fine for batches (podcasts, articles). Streaming matters when a human is waiting – voice agents, real-time captioning. Turbo + streaming + optimize_streaming_latency=3 gets you sub-500ms time-to-first-audio.
How do I prevent voices from drifting between calls?
Pin voice_settings.stability=0.5+, similarity_boost=0.75+, and use a deterministic seed (model-dependent). Drift on the same voice usually means voice_settings weren't sent – the API uses your default workspace settings when omitted.
Can I get word-level timestamps back?
Yes – use /v1/text-to-speech/{voice_id}/with-timestamps (separate variant). The connector exposes this; output includes a character→timing map for sync to video.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.