Skip to content
English

ElevenLabs Text to Dialogue v3 API

POST /v1/tasks

All models are called through the Unified Async API POST /v1/tasks endpoint; only the input fields differ (see input parameters below).

Model summary

Model name elevenlabs/text-to-dialogue-v3
Type Audio generation (text-to-dialogue)
Endpoint POST /v1/tasks
Pricing See HiAPI Pricing (per character)

ElevenLabs Eleven v3 multi-speaker text-to-dialogue: turn scripted lines into natural, expressive conversation audio with a distinct voice per line, 70+ languages, billed per character.

Production guidance

Production guidance
  • For production, pass callback.url at the top level of the request body so HiAPI can notify your service when the task reaches a terminal state.
  • GET /v1/tasks/:id is better for local debugging, low-volume jobs, or fallback reconciliation if a callback is missed.
  • Use callback.when=final. Both success and fail are terminal states, so your service should deduplicate by taskId.
  • Split long scripts into multiple calls under the 5000-character limit; keep the same voice_id per character across calls for a consistent sound.

Best suited for

Audio dramas & audiobooks

Assign a voice per line and generate whole conversation passages in one call — Eleven v3 excels at expressive narration.

dialogue
Podcasts & interview intros

Host + guest two-voice dialogue for podcast openers, news reads, and interview simulations.

dialoguestability
Game NPCs & interactive stories

Pin one voice_id per character for a consistent sound and batch-generate quest dialogue.

dialogue
Multilingual voiceover

70+ languages with auto-detection by default; rewrite the text per language to produce localized versions.

language_code

Request parameters

model string required

Fixed value elevenlabs/text-to-dialogue-v3.

example elevenlabs/text-to-dialogue-v3
input object required

Business parameters. Put ElevenLabs Text to Dialogue v3-specific configuration here.

dialogue object[] required

Array of dialogue lines, each { text, voice }, synthesized in order into one conversation audio. · Total characters across all text fields must not exceed 5000; requests over the limit return 400 (no charge) · Keep the same voice for the same character across lines for a consistent sound · All 67 preset voices are listed in the Preset voices table below

text string required

The spoken text of this line (at least 1 character).

voice string required

Voice ID for this line (67 presets, defaults to James). See the full Preset voices table below ↓

default EkK5I93UQWFDigLMpZcX
language_code enum optional

Language of the generated speech (ISO code). Leave empty to auto-detect. See the full Supported languages table below ↓

default "" enum: ""afarhyasazbebnbsbg +65
stability enum optional

Voice stability: 0 = more emotional and varied, 0.5 = balanced, 1 = most stable and consistent.

default 0.5 enum: 00.51
callback object optional

Optional callback configuration. When set, HiAPI notifies your service when the task reaches a terminal state.

url string required

Required when callback is set; HTTPS URL that receives terminal task notifications.

example https://your-domain.com/hiapi/callback
when enum optional

Callback trigger timing. Use final.

default final enum: final

Preset voices (67)

Pass a voice_id from this table in dialogue[].voice; keep one voice per character across lines for a consistent sound.

Show all 67 voices
VoiceStylevoice_id
JamesHusky, EngagingEkK5I93UQWFDigLMpZcX
ArabellaMysterious, EmotionalZ3R5wn05IrDiVCyEkUrK
BradfordExpressive, ArticulateNNl6r8mD7vthiJatiJt1
XavierBold, Metallic AnnouncerYOq2y2Up4RgXP2HyXjE5
KuonCheerful, Clear, SteadyB8gJV1IhpuegLxdpXFOE
Monika SogamDeep, Natural2zRM7PkgwBPiau2jvVXc
MarkCasual, Relaxed1SM7GgM6IMuvQlz2BwM3
AdelineFeminine, Conversational5l5f8iK3YPeGga21rQIX
SamSupport AgentscOwDtmlUjD3prqpp97I
Spuds OxleyWise, ApproachableNOpBlnGInO9m6vDvFkFC
EveGenuine, Lively, HappyBZgkqPqms7Kj9ulSkVzn
Northern Terrywo6udizrrtpIxWGp2qJk
British Football AnnouncergU0LNdkMOQCOrPrwtbee
BrockCommanding SergeantDGzg6RaUqxGRTHSBjfgF
NathanVirtual Radio Hostx70vRnQBMBu4FAYhjJbO
AnikaLively, Friendly, EngagingSm1seazb4gs7RSlUVw7c
VirajRich, SoftP1bg08DkjqiVEzOn76yG
TakshCalm, Serious, SmoothqDuRKMlYmrm8trt5QyBn
HoratiusEnergetic CharacterqXpMhyvQqiRxWQs4qSSB
LiamEnergetic CreatorTX3LPaxmHKxFdv7VOQHJ
CallumHusky RogueN2lVS1w4EtoT3dr4eOWO
LauraWarm, QuirkyFGY2WhTYpPnrIDTdsKH5
BrittneyFun, Young, InformativekPzsL2i3teMYv0FxEYQ6
MarkNatural ConversationUgBBYS2sOqTuMpoF3BR0
BellaProfessional, Bright, Warmhpp4J3VqNfWAUOO0d1Us
BrianDeep, Resonant, ReassuringnPczCjzI2devNBz1zQrb
HopeLively, Gossipy, YouthfuluYXf8XasLslADfZ2MB4u
JeffElegant, Resonant, Stronggs0tAILXbY5DNrJrsM6F
JamahalYoung, Energetic, NaturalDTKMou8ccj1ZaWGBiotd
FinnYoung, Eager, EnergeticvBKc2FfBKJfcZNyEt1n6
TomConversation & BooksDYkrAHD8iwork3YSUBbs
CassidyCrisp, Direct, Clear56AoDkrOh6qfVPDXZ7Pt
Addison 2.0Australian AudiobookeR40ATw9ArzDf9h3v7t7
Jessica Anne BogartChatty, Friendlyg6xIsTj2HwM6VR4iXFCw
LucyFresh, CasuallcMyyd2HUfFzxdCaC4Ta
TiffanyNatural, Warm6aDn1KB0hjpdcocrUkmq
FelixWarm, Positive, Modern RPSq93GQT4X1lKDXsQcixO
Jessica Anne BogartEloquent VillainflHkNRp1BlvT73UL6gyz
LutzGiggly, Cheerful9yzdeviXkFddZ4Oz8Mok
EmmaCute, UpbeatpPdl9cQBQq4p6mRkZy2Z
EdwardLoud, Confident, CockyzYcjlYFOd3taleS0gkk3
MarshalFriendly, Witty ProfessornzeAacJi50IvxcyDnMXa
John MorganRugged CowboyruirxsoakN0GWmGNIo04
AriaSultry VillainTC0Zp7WVFzhA8zpTlRqV
Viking BjornEpic Medieval Raiderljo9gAlSqKOvF6D8sOsX
Pirate MarshalPPzYpIqttlTYA83688JI
Johnny KidSerious, Calm Narration8JVbfL6oEdmuxKn5DK2C
HopePoetic, Romantic, CharmingiCrDUkL56s3C8sCRl7wb
Ana RitaSmooth, Expressive, BrightwJqPPQ618aTW29mptyoc
John DoeDeepEiNlNiXeDU1pqqOPrYMO
Burt Reynolds™Deep, Smooth, Clear4YYIPFl9wE5c4L2eu2Gb
HankDeep, Engaging Narration6F5Zhi321D3Oq7v1oNT4
WyattWise Country CowboyYXpFCvM1S3JbWEJhoskW
PhilExplosive, Passionate AnnouncerLG95yZDEHg6fCZdQjLqj
Johnny DynamiteRetro Radio DJCeNX9CMwmxDxUF5Q2Inm
Rachel MPro British Radio HostaD6riP1btT197c6dACmy
Rex ThunderDeep, Toughmtrellq69YZsNwzUSyXh
EdLate-Night AnnouncerdHd5gvgSOzSfduK4CvEg
JeanCharming, Playful Femme FataleeVItLK1UvXctxuaRV2Oq
BritneyCool, Calculating Villainesy0r39YPLQjOczyOib8
SvenEmotive, KindTsns2HvNFKfGiNjllgqo
VirajSmooth, Gentle1U02n4nD6AdIZ9CjF053
NathanielEngaging, British, CalmAeRdCCKzvd23BpJoofzx
BenjaminDeep, Warm, CalmLruHrtVF6PSyGItzMNHS
AllisonCalm, Soothing, Meditative1wGbFxmAM3Fgw63G1zZJ
Theodore HQSerene, ComposedhqfrgApggtO1785R4Fsn
LeonSoothing, ComposedMJ0RnG71ty4LH3dvNfSd

Supported languages (73)

All accepted language_code values; leave empty (default) to auto-detect.

Show all 73 languages
LanguageCode
Auto-detect (default)""
Afrikaansaf
Arabicar
Armenianhy
Assameseas
Azerbaijaniaz
Belarusianbe
Banglabn
Bosnianbs
Bulgarianbg
Catalanca
Cebuanoceb
Nyanjany
Croatianhr
Czechcs
Danishda
Dutchnl
Englishen
Estonianet
Filipinofil
Finnishfi
Frenchfr
Galiciangl
Georgianka
Germande
Greekel
Gujaratigu
Hausaha
Hebrewhe
Hindihi
Hungarianhu
Icelandicis
Indonesianid
Irishga
Italianit
Japaneseja
Javanesejv
Kannadakn
Kazakhkk
Kyrgyzky
Koreanko
Latvianlv
Lingalaln
Lithuanianlt
Luxembourgishlb
Macedonianmk
Malayms
Malayalamml
Chinesezh
Marathimr
Nepaline
Norwegianno
Pashtops
Persianfa
Polishpl
Portuguesept
Punjabipa
Romanianro
Russianru
Serbiansr
Sindhisd
Slovaksk
Sloveniansl
Somaliso
Spanishes
Swahilisw
Swedishsv
Tamilta
Telugute
Thaith
Turkishtr
Ukrainianuk
Urduur
Vietnamesevi
Welshcy

Example requests

Two-voice product chat

Two characters alternate lines (James × Arabella) at the balanced default stability.

Request body
{
  "model": "elevenlabs/text-to-dialogue-v3",
  "input": {
    "dialogue": [
      {
        "text": "Welcome to HiAPI — one API for every AI model.",
        "voice": "EkK5I93UQWFDigLMpZcX"
      },
      {
        "text": "Really? Video, image and speech, all with the same key?",
        "voice": "Z3R5wn05IrDiVCyEkUrK"
      },
      {
        "text": "Exactly, and it is usage-based pricing.",
        "voice": "EkK5I93UQWFDigLMpZcX"
      }
    ],
    "stability": 0.5
  }
}
Podcast opener (pinned language)

Host + guest dialogue with language_code pinned to en and stability 1 for a steadier read.

Request body
{
  "model": "elevenlabs/text-to-dialogue-v3",
  "input": {
    "dialogue": [
      {
        "text": "Welcome to today's podcast.",
        "voice": "x70vRnQBMBu4FAYhjJbO"
      },
      {
        "text": "Happy to be here — today I want to talk about the future of AI voice.",
        "voice": "uYXf8XasLslADfZ2MB4u"
      }
    ],
    "language_code": "en",
    "stability": 1
  }
}

Getting the result

  1. The response returns a taskId immediately without waiting for generation to finish.
  2. In production, prefer waiting for callback.url to receive the terminal notification. For local debugging, poll GET /v1/tasks/:id.
  3. When status=success, download the generated audio from output[].url.
  4. When status=fail, fix the request based on the returned error instead of retrying the same invalid payload.

FAQ

How is it billed?

Billing is per character: the total character count across all text fields, multiplied by the per-1000-characters rate. See the live pricing page for the current rate. View live pricing

How much text can one call synthesize?

Up to 5000 characters total across all lines per call. Requests over the limit return 400 without charging. Split long scripts into multiple calls, ideally by paragraph.

How do I pick voices?

Pass a preset voice_id in each line (67 presets covering narration, characters, male and female voices). The full list is in the Preset voices table on this page; keep one voice_id per character. See the preset voices table

Which languages are supported?

70+ languages. The language is auto-detected by default; pass language_code (e.g. en / zh / ja) to pin it. Keep one language per conversation for best results.

What is the output format?

The result is MP3 audio (audio/mpeg). After status=success, download it from output[].url; result URLs expire, so copy them to your own storage promptly.

Next steps