---
title: "Text to speech"
method: POST
path: "/v1/text_to_speech"
tags: ["Start generating"]
---

# Text to speech

`POST /v1/text_to_speech`

This endpoint will start a new task to generate speech from text.

## Headers

- `X-Runway-Version` '2024-11-06', required

## Request body

- union
  - object
    - `promptText` string, required — A non-empty text prompt. For text-to-speech, the words to speak. For text-to-audio, a scene description that can include voice direction, dialogue, music, and sound effects.
    - `voice` object — Clone from a single reference audio clip, then speak promptText in that voice.
      - `type` 'reference-audio', required
      - `audioUri` union, required — A HTTPS URL, Runway or data URI containing an encoded audio. See [our docs](/assets/inputs#audio) on audio inputs for more information.
        - string — A HTTPS URL, Runway upload URI, or base64 data URI (e.g. `data:audio/mp3;base64,...`, up to 16MB) containing an encoded audio. See [our docs](/assets/inputs#audio) on audio inputs for more information.
        - string — A Runway upload URI. See https://docs.dev.runwayml.com/assets/uploads for more information.
        - string — A data URI containing encoded media.
    - `speechRate` integer — Relative speech speed. Negative is slower, positive is faster; 0 is normal.
    - `loudnessRate` integer — Relative output loudness. Negative is quieter, positive is louder; 0 is normal.
    - `pitchRate` integer — Pitch shift in semitones. Negative lowers, positive raises; 0 is unchanged.
    - `sampleRate` 8000 | 16000 | 24000 | 32000 | 44100 | 48000 — Output sample rate in Hz.
    - `outputFormat` 'wav' | 'mp3' | 'ogg_opus' — Output audio container/format.
    - `model` 'seed_audio', required
  - object
    - `promptText` string, required — A non-empty string up to 1000 characters (measured in UTF-16 code units). This should describe in detail what should appear in the output.
    - `voice` object, required — A voice preset from the RunwayML API.
      - `type` 'runway-preset', required
      - `presetId` 'Maya' | 'Arjun' | 'Serene' | 'Bernard' | 'Billy' | 'Mark' | 'Clint' | 'Mabel' | 'Chad' | 'Leslie' | 'Eleanor' | 'Elias' | 'Elliot' | 'Grungle' | 'Brodie' | 'Sandra' | 'Kirk' | 'Kylie' | 'Lara' | 'Lisa' | 'Malachi' | 'Marlene' | 'Martin' | 'Miriam' | 'Monster' | 'Paula' | 'Pip' | 'Rusty' | 'Ragnar' | 'Xylar' | 'Maggie' | 'Jack' | 'Katie' | 'Noah' | 'James' | 'Rina' | 'Ella' | 'Mariah' | 'Frank' | 'Claudia' | 'Niki' | 'Vincent' | 'Kendrick' | 'Myrna' | 'Tom' | 'Wanda' | 'Benjamin' | 'Kiana' | 'Rachel', required — The preset voice ID to use for the generated speech.
    - `model` 'eleven_multilingual_v2', required
  - object
    - `promptText` string, required — The text to convert to speech. You can include expressive audio tags like [laughs] or [whispers] in the script.
    - `voice` object, required — A voice preset from the RunwayML API.
      - `type` 'runway-preset', required
      - `presetId` 'Maya' | 'Arjun' | 'Serene' | 'Bernard' | 'Billy' | 'Mark' | 'Clint' | 'Mabel' | 'Chad' | 'Leslie' | 'Eleanor' | 'Elias' | 'Elliot' | 'Grungle' | 'Brodie' | 'Sandra' | 'Kirk' | 'Kylie' | 'Lara' | 'Lisa' | 'Malachi' | 'Marlene' | 'Martin' | 'Miriam' | 'Monster' | 'Paula' | 'Pip' | 'Rusty' | 'Ragnar' | 'Xylar' | 'Maggie' | 'Jack' | 'Katie' | 'Noah' | 'James' | 'Rina' | 'Ella' | 'Mariah' | 'Frank' | 'Claudia' | 'Niki' | 'Vincent' | 'Kendrick' | 'Myrna' | 'Tom' | 'Wanda' | 'Benjamin' | 'Kiana' | 'Rachel', required — The preset voice ID to use for the generated speech.
    - `stability` number — Voice stability (0–1). Lower values allow broader emotional range; higher values are steadier.
    - `similarityBoost` number — How closely the output tracks the original speaker (0–1). Maps to ElevenLabs similarity_boost.
    - `style` number — Style exaggeration (0–1). Higher values amplify the speaker style.
    - `speed` number — Speech speed multiplier (0.7–1.2). 1.0 is default; values below slow down and above speed up.
    - `useSpeakerBoost` boolean — Boost similarity to the original speaker at a small latency cost.
    - `languageCode` string — ISO 639-1 language code to enforce pronunciation and normalization.
    - `applyTextNormalization` 'auto' | 'on' | 'off' — Text normalization mode: 'auto', 'on', or 'off' (e.g. spelling out numbers).
    - `seed` integer — Optional seed for more deterministic output (0–4294967295). Not guaranteed.
    - `model` 'eleven_v3', required

## Response `200`

The task that was created.

- object
  - `id` string, uuid, required — The ID of the task that was created. Use this to retrieve the task later.
  - `estimatedCost` object, required — The maximum credits this task may charge. The final amount may be lower after the task completes.
    - `credits` number, required — Estimated cost of the generation in credits.

## Other responses

- `400` — The request was rejected. Inspect `error` or `issues` (when present) and retry with a corrected request.
- `429` — You have exceeded the rate limit for this endpoint.

---

[API](https://skmtc.net/runwayml/apis/runwayml-api.md) · [All operations](https://skmtc.net/runwayml/apis/runwayml-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/runwayml/runwayml-api/revisions/cbbe796a13a0/schema)
