#I am sending requests with the turbo 2.5 model via the api but they're being processed as multiling

1 messages · Page 1 of 1 (latest)

ionic joltBOT
#
AI-generated Answer for kes0953

I’m sorry—that’s frustrating. Here’s what’s almost certainly happening and how to fix it:

What’s going on

  • If model_id is not set (or set under the wrong key), the TTS API defaults to Multilingual v2 (eleven_multilingual_v2). That model costs 1 credit/character, while Turbo v2.5 is 0.5 credits/character—so you see ~2Ă— the spend. (elevenlabs.io)

How to force Turbo v2.5 billing

  • In your TTS request body, set model_id exactly to eleven_turbo_v2_5 (note the field name and underscores). Example fields for POST /v1/text-to-speech/:voice_id include text and model_id; model_id defaults to eleven_multilingual_v2 if omitted. (elevenlabs.io)
  • Verify the model ID list (and exact spelling) via GET /v1/models. Official IDs include eleven_turbo_v2_5. (elevenlabs.io)

Quick checklist

  • Ensure you’re sending model_id (not model) with value eleven_turbo_v2_5. If you used model, the API ignores it and falls back to Multilingual v2. (elevenlabs.io)
  • Remember: Turbo/Flash = 0.5 credit/char; Multilingual v2 = 1 credit/char (voice-specific modifiers can apply). (help.elevenlabs.io)

If you still see Multilingual v2 charges after setting model_id correctly, share a redacted request snippet (headers/body), and I’ll help pinpoint it. (elevenlabs.io)

Sources:
Create speech | ElevenLabs Documentation
Create speech | ElevenLabs Documentation
List models | ElevenLabs Documentation
Create speech | ElevenLabs Documentation
How do I find the model ID? – ElevenLabs
Create speech | ElevenLabs Documentation

hidden pagoda
#

It seems if I run a single text to speech request with turbo, it does it with turbo, but if I run like mutliple 15 at once, it uses multilingual??

ionic joltBOT
#
AI-generated Answer for kes0953

Short answer: No—model selection doesn’t change based on how many requests you send. The Text-to-Speech API uses whatever model_id you pass on each request; if you don’t pass one, it defaults to eleven_multilingual_v2, which costs 1 credit/character (about 2× Turbo/Flash). (elevenlabs.io)

What likely explains what you’re seeing

  • The TTS endpoint’s model_id is optional and defaults to eleven_multilingual_v2. If any of your parallel requests are missing model_id (e.g., due to how you batch/serialize payloads), those calls will be billed as Multilingual v2. Single ad‑hoc calls where you explicitly set model_id would stay on Turbo. (elevenlabs.io)
  • There is no documented auto-fallback or model swap under load; exceeding concurrency only queues requests or returns 429, it doesn’t switch models. (elevenlabs.io)

How to confirm

  • Pull your generation history; each item includes the model_id actually used. (elevenlabs.io)
  • Also check Usage Analytics in the dashboard to break down usage by model. (help.elevenlabs.io)

How to fix

  • Set model_id explicitly on every request (e.g., "eleven_turbo_v2_5" or, per current recommendation, "eleven_flash_v2_5") and verify it in your logs. The API reference shows the model_id field and its default. (elevenlabs.io)
  • Be aware of pricing: Multilingual v2 bills at 1 credit/character; Turbo v2.5 and Flash v2.5 bill at 0.5 credits/character. (help.elevenlabs.io)
  • If you’re hitting concurrency limits when firing 15 at once, you’ll see queueing or 429s, but the model won’t change; plan limits differ for Multilingual vs Turbo/Flash. (elevenlabs.io)

If you want, paste one of your “batched” request payloads (with headers stripped) and I can point out where model_id might be getting dropped.

Sources:
Create speech | ElevenLabs Documentation
Create speech | ElevenLabs Documentation
Models | ElevenLabs Documentation
Get generated items | ElevenLabs Documentation
How can I see information about credit usage for my account? – ElevenLabs
Create speech | ElevenLabs Documentation
What models do you offer and what is the difference between them? – ElevenLabs
Models | ElevenLabs Documentation

hidden pagoda
#

This is what I'm doing:

        let request: TextToSpeechRequest = {
            text,
            model_id: modelId,
            seed: 1,
            voice_settings: voiceSettings || defaultVoiceSettings,
            // previous_text: previousText,
            // next_text: nextText,
        }

        let requestOptions = {
            timeoutInSeconds: 300
        }

        console.error("request", request, voiceId, requestOptions);
        
        const audio = await client.textToSpeech.convert(voiceId, request, requestOptions);

request {
text: "Look ahead and take in the magnificent sight of towering glass and steel structures that pierce through the sky , creating an impressive urban landscape before your eyes that stretches out in all directions . One Canada Square stands majestically tall above all the rest, its distinctive pyramid roof catching the light and shining brilliantly against the backdrop of the bustling city , dominating the skyline like a beacon . The imposing banks loom high above you , their gleaming surfaces reflecting the sunlight and creating a pattern that resembles a perfectly arranged set of dominoes waiting to cascade , each one more impressive than the last . If we could travel back in time just two centuries ago , this entire area would have been nothing but churning mud , rushing water, and the constant roar of maritime activity echoing across the Thames , a world away from today's gleaming towers .",
model_id: 'eleven_turbo_v2_5',
seed: 1,
voice_settings: {
stability: 0.5,
use_speaker_boost: true,
similarity_boost: 0.75,
style: 0,
speed: 1
}
} iLVmqjzCGGvqtMCk6vVQ { timeoutInSeconds: 300 }
guide Luca iLVmqjzCGGvqtMCk6vVQ eleven_turbo_v2_5 [