# ElevenLabs

Turn text into lifelike speech and recordings into text with ElevenLabs, and look up voices, models, past generations and the account's usage.

## Connect ElevenLabs

1. In the sidebar, open **Connections** and press **Add connection**.
2. Type `elevenlabs` and choose **ElevenLabs**.
3. Fill in the fields. Each one says **Required** or **Optional**.
4. Press **Test and save**. GoRunner checks the connection before it saves anything.

The sheet asks for:

- **API key · Required**: The ElevenLabs API key (sk_…).
- **Data residency region · Optional**: Empty for the global API. us, eu or in for a workspace with data residency in that region.

Paste an ElevenLabs API key (elevenlabs.io → Developers → API Keys). A key limited to some endpoints works for the operations it allows; give it Text to Speech, Speech to Text, Voices, Models, History and User read access as you need them.

[Connections](https://docs.gorunner.io/build/connections) says how to sign in again, rename or delete it. In a product that embeds GoRunner, **Add connection** can be missing: then [your provider makes connections](https://docs.gorunner.io/embed/customer-connections) for you.

## Do things in ElevenLabs

Add an **ElevenLabs** step, choose a **Resource**, then an **Operation**. Choose a row to see its fields.

- [Speech](https://docs.gorunner.io/apps/elevenlabs#fields-f-speech): Text to Speech · Speech to Text
- [Voice](https://docs.gorunner.io/apps/elevenlabs#fields-f-voice): Get · Get Many
- [Model](https://docs.gorunner.io/apps/elevenlabs#fields-f-model): Get Many
- [History](https://docs.gorunner.io/apps/elevenlabs#fields-f-history): Get · Get Many · Download Audio · Delete
- [Subscription](https://docs.gorunner.io/apps/elevenlabs#fields-f-user): Get Subscription

To start a workflow from ElevenLabs, use a [Schedule](https://docs.gorunner.io/apps/schedule), [Webhook](https://docs.gorunner.io/apps/webhook) or [Form](https://docs.gorunner.io/apps/form) trigger.

Later steps read a step’s output by its name: see [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Limits

- A reply from ElevenLabs can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When ElevenLabs says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.

Not in your list? See [When an app isn’t here](https://docs.gorunner.io/apps/when-an-app-isnt-here#q-not-in-list).

## For developers

In the API, which calls apps pieces, ElevenLabs is `pieceId: "elevenlabs"` with `actionId: "elevenlabs"`, set by `resource` and an `operation_…` field, such as `operation_history`. [Get an app](https://docs.gorunner.io/api/apps/get-app) returns every field.

It can change something outside the run (`writes_external`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### ElevenLabs › Speech

### Text to Speech

- **Voice · Required**: The voice that speaks the text.
- **Text · Required**: The text to speak. Each model takes up to a set length per request (10,000 characters for Multilingual v2, more for Flash).
- **Model · Optional**: The speech model. Empty uses ElevenLabs' default (Multilingual v2).
- **Audio Format · Optional**: The file the step returns. Options: MP3, 44.1 kHz, 128 kbps to A-law, 8 kHz (telephony) (14 options). Default: MP3, 44.1 kHz, 128 kbps.
- **Language · Optional**: An ISO 639-1 code (de, en, fr …). Text to Speech: makes the model speak and read numbers in that language (only some models). Speech to Text: the recording's language, when known. Empty detects it.
- **Stability · Optional**: 0 to 1. Lower is more expressive and varied, higher more even. Empty keeps the voice's own setting.
- **Similarity · Optional**: 0 to 1. How closely the speech keeps to the original voice. Empty keeps the voice's own setting.
- **Style Exaggeration · Optional**: 0 to 1. Amplifies the voice's style; above 0 is slower to generate. Empty keeps the voice's own setting.
- **Speed · Optional**: 0.7 to 1.2. 1 is the normal pace. Empty keeps the voice's own setting.
- **Speaker Boost · Optional**: Makes the speech closer to the original speaker, at a little more latency. Options: The voice's setting, On, Off.
- **Seed · Optional**: The same seed and settings give nearly the same audio again (a best effort, not a promise).
- **Text Before · Optional**: The text spoken just before this one, so the joins sound natural when audio is put together.
- **Text After · Optional**: The text spoken just after this one.
- **Spell Out Numbers · Optional**: Whether numbers, dates and abbreviations are written out before speaking. Options: When needed, Always, Never. Default: When needed.
- **File Name · Optional**: The audio file's name without extension. Empty is speech.

### Speech to Text

- **Audio or Video File · Optional**: Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). At most 11 MB; for a longer recording give its URL instead.
- **Or File URL · Optional**: An https link to the recording (a hosted file, YouTube, TikTok …) instead of a file. Give one of the two.
- **Model · Optional**: The transcription model. Options: Scribe v2, Scribe v1. Default: Scribe v2.
- **Language · Optional**: An ISO 639-1 code (de, en, fr …). Text to Speech: makes the model speak and read numbers in that language (only some models). Speech to Text: the recording's language, when known. Empty detects it.
- **Tell Speakers Apart · Optional**: Mark which speaker says each word (speaker_id in words). Off by default.
- **Most Speakers · Optional**: The most people who speak in the recording (1–32). Empty lets ElevenLabs decide.
- **Tag Sounds · Optional**: Write sounds such as (laughter) or (applause) into the transcript. On by default.
- **Timestamps · Optional**: Start and end times per word, per character, or none. Options: Per word, Per character, None. Default: Per word.

### ElevenLabs › Voice

### Get

- **Voice · Required**: The voice to read.

### Get Many

- **Search Text · Optional**: Text in the voice's name, description, labels or category. Empty lists every voice.
- **Voices · Optional**: Which voices to list. Options: All, My voices, Shared in the workspace, ElevenLabs' default voices, From the voice library, All but the defaults.
- **Category · Optional**: Only voices of one kind. Options: Any, Premade, Instant clone, Designed, Professional clone.
- **Return All · Optional**: Read every voice, page by page (at most 1000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many voices to return (1–1000). Default: 50. Shows when **Return All** is off.

### ElevenLabs › Model

### Get Many

Nothing to fill in.

### ElevenLabs › History

### Get, Download Audio and Delete

- **History Item ID · Required**: The generation's history_item_id.

### Get Many

- **Voice · Optional**: Only generations with this voice. Empty lists all.
- **Search Text · Optional**: Only generations whose text holds this.
- **Return All · Optional**: Read every history item, page by page (at most 1000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many history items to return (1–1000). Default: 50. Shows when **Return All** is off.

### ElevenLabs › Subscription

### Get Subscription

Nothing to fill in.

Source: https://docs.gorunner.io/apps/elevenlabs
