allmodels.ioDocs
API ReferenceElevenLabs SDK

ElevenLabs SDK-compatible TTS (convert)

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

Generates speech with client.textToSpeech.convert(...). It accepts the same request and returns the same streaming audio response as the /stream endpoint.

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

Voice ID, e.g. eve for Grok TTS or AM:@narrator for a cloned voice. See defaults.tts.voice on GET /v1/providers for a recommended voice per provider.

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", {  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"  }}