allmodels.ioDocs
API ReferenceElevenLabs SDK

ElevenLabs SDK-compatible TTS (HTTP streaming)

Generates speech with `client.textToSpeech.stream(...)` and returns audio as it is produced. The response `Content-Type` follows `output_format`: `mp3_*` → `audio/mpeg`, `pcm_*` → `audio/L16; rate=N`, otherwise `application/octet-stream`. Use `provider_options` for provider-specific settings. You can also pass supported options directly as query parameters. If both forms set the same option, `provider_options[<name>]=<value>` takes precedence. Recognized enum and boolean option values are case-insensitive and are normalized to each provider's wire spelling; free-form values such as prompts, keyterms, and voice IDs retain their original case.

POST/el/v1/text-to-speech/{voice_id}/stream

Generates speech with client.textToSpeech.stream(...) and returns audio as it is produced. The response Content-Type follows output_format: mp3_*audio/mpeg, pcm_*audio/L16; rate=N, otherwise application/octet-stream.

Use provider_options for provider-specific settings. You can also pass supported options directly as query parameters. If both forms set the same option, provider_options[<name>]=<value> takes precedence. Recognized enum and boolean option values are case-insensitive and are normalized to each provider's wire spelling; free-form values such as prompts, keyterms, and voice IDs retain their original case.

Authorization

xi-api-key<token>

Tenant key (ElevenLabs SDK convention).

In: header

Path Parameters

voice_id*string

Provider voice id (path segment). For Grok TTS, eve is the default voice.

Query Parameters

provider_order?array<string>

Comma-separated or repeated provider IDs in preferred order. Providers not listed remain eligible.

provider_only?array<string>

Comma-separated or repeated provider IDs. Only these providers may serve the request.

provider_ignore?array<string>

Comma-separated or repeated provider IDs that must not serve the request.

allow_fallbacks?boolean

Set to false to prevent fallback to another provider. Automatic provider retries are not currently supported.

output_format?string

Output format (case-insensitive), such as mp3_44100_128 or pcm_16000. Formats the selected provider cannot emit natively are served by transcoding its best native stream.

enable_logging?string
optimize_streaming_latency?string
provider_options?|||||||||||

Provider-specific options in bracket notation, such as provider_options[encoding]=linear16. You can also pass supported options directly as query parameters. If both forms set the same option, the bracketed value takes precedence.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Text-to-speech request body.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

Client
Language
import { writeFile } from "node:fs/promises";const response = await fetch("https://api.allmodels.io/el/v1/text-to-speech/pNInz6obpgDQGcFmaJgB/stream", {  method: "POST",  headers: { ...{ Authorization: `Bearer ${process.env.ALLMODELS_API_KEY}` }, "Content-Type": "application/json" },  body: JSON.stringify({  "text": "Hello from AllModels",  "model_id": "elevenlabs/eleven-turbo-v2-5",  "output_format": "mp3_44100_128"})});if (!response.ok) throw new Error(`AllModels request failed: ${response.status}`);await writeFile("speech.mp3", Buffer.from(await response.arrayBuffer()));
"string"

{  "detail": {    "message": "invalid json body",    "status": "invalid_json"  }}

{  "error": "missing_api_key"}

{  "detail": {    "message": "this organization has insufficient prepaid balance",    "status": "insufficient_balance"  }}

{  "error": "tenant_disabled"}

{  "detail": {    "message": "text exceeds 2000 characters",    "status": "tts_text_too_large"  }}

{  "detail": {    "loc": [      "body",      "text"    ],    "msg": "field required",    "type": "value_error.missing"  }}

{  "detail": {    "message": "upstream text-to-speech request failed",    "status": "upstream_error"  }}