Dograh

STT and TTS Concurrency Limits: When Several API Keys Help

STT and TTS Concurrency Limits: When Several API Keys Help
TechnicalNovember 3, 2026·5 min read

STT and TTS Concurrency Limits: When Several API Keys Help

Abhishek Kumar
Abhishek Kumar·Co-founder, Dograh AI

Co-founder of Dograh, building the future of open-source voice AI agents. Own your voice AI stack.

Most speech vendors count concurrency per project or per account, so extra keys from one account add no capacity. Dograh, the open-source AI voice agent platform you can self-host or run on Dograh Cloud, spreads calls across the keys on one connection. That helps only when the keys come from separate accounts you are entitled to. Otherwise, ask the vendor.

Key Takeaways

  • Check where your vendor counts the limit before you add API keys.
  • Extra keys in one Deepgram project share that project's limit.
  • A higher tier from the vendor is the default way to more calls.

A second API key looks like double the call capacity, yet with most speech vendors it adds nothing. We show where vendors count the limit, what extra keys do in Dograh, when separate keys help and how a limit becomes a call count. For the wider field, see our guide to self-hosted voice models.

Where vendors count the limit

A concurrency limit caps how many requests a provider handles for you at the same moment. The question that matters before you add keys is what the provider counts against: the key, the project or the whole account.

Deepgram's rate limit page is explicit. Limits apply per project, not per account or API key, and every key inside a project draws from the same pool. It also says that spreading traffic across several projects to get round the limits breaks its Terms of Service. On Pay as You Go, a project gets 150 streaming speech-to-text connections and 45 for Aura text to speech.

Three keys on one keyring all lead into the same strip of sockets in one project. Every socket already has a call plugged in, the same pool for all, so three more calls hold their plugs and wait in line. Beside it, two separate accounts, client A and client B, each have their own key and their own strip of sockets. Several keys add capacity only when each one sits on its own limit, and you are entitled to use them together.
Keys created only to multiply a limit are a different matter: Deepgram rules that out in its terms, and other vendors may treat it the same way. Give each client its own connection and model configuration, so each client's calls appear on that client's bill.

Speechify's API limits are enforced per account, not per API key. OpenAI sets its limits at the organization and project level. ElevenLabs publishes a concurrency table per plan, 20 Flash or Turbo requests on Pro, without saying whether it counts per key. When a page is silent, ask the vendor before you assume.

What several keys do in Dograh

A provider connection in Dograh can hold more than one key. In Providers, open the connection and click Add API Key for each extra key, as the Model Configurations guide shows. Dograh checks every key when you save.

When a call starts, Dograh picks one key from the connection at random and keeps it for the whole call. If the same connection serves several services, such as speech to text and the voice, they share that key on the call. A call that already started keeps its key even if you edit the connection.

So across many calls, the load spreads roughly evenly over the keys. Within one call, the key stays the same from the first word to the last. That design suits keys that each carry their own capacity, and for keys that share one pool it changes nothing.

Dograh

Open Source Alternative to Vapi / Retell

Self-hosted voice agent platform — no per-minute fees

dograh-hq/dograh

Star on GitHub

When separate keys add capacity

Several keys add capacity only when each one sits on its own limit, and you are entitled to use them together. That usually means separate accounts or projects that exist for a real reason, such as one per client or one per region, each under its own contract.

Even then, a key pool mixes the bills. With two clients' keys on one connection, any call can land on either client's account. Give each client its own connection and model configuration instead, so each client's calls use that client's limits and appear on that client's bill.

Keys created only to multiply a limit are a different matter. Deepgram rules that out in its terms, and other vendors may treat it the same way. Read each vendor's terms before you pool keys from more than one project or account.

Turn a vendor limit into a call count

A voice agent call holds a speech-to-text stream open for as long as the caller is on the line, so each live call uses one unit of streaming concurrency. Text to speech is used in bursts, only while the agent speaks, so one unit serves several calls.

Cartesia's concurrency guide puts a number on that: the parallel conversations you can support are effectively four times your concurrency limit. Above the limit, its paid plans queue extra requests until the queue fills and then return a 429 error, while the free plan returns 429 at once. On a call, a queued voice request is silence, and a 429 can leave the agent unable to hear or speak.

Dograh adds a limit of its own. A self-hosted install allows 10 concurrent calls per organization by default, and Dograh Cloud's Pay as you go plan also starts at 10, with more on request. Our post on how to scale voice agents to many concurrent calls covers the rest of the capacity plan.

Join the Dograh Community

Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.

When to ask the vendor instead

For a single business on one account, the answer to a limit is almost always a higher plan or a custom limit. Deepgram, Cartesia and ElevenLabs all list an Enterprise or custom tier, and a sales conversation is quicker than any workaround. Bring your peak concurrent call count, measured or projected, so the vendor can size it.

Running the models yourself removes the vendor limit entirely. A speech model on your own GPU has no per-key or per-account cap, and the card's capacity becomes the limit instead. Our tutorial on how to run faster-whisper locally shows that path for speech to text. Either way, run a load test at your expected peak before a campaign goes live.

Glossary

Concurrency limit
The most requests or open streams a provider handles for you at the same moment. For a voice agent it usually caps live calls, since each call holds a speech-to-text stream open.
Key pool
Several API keys saved on one Dograh provider connection. Dograh picks one at random when a call starts and keeps it for that call, so load spreads across keys over many calls.
429 error
The HTTP Too Many Requests error a provider returns above its limit. On a live call it means the agent cannot transcribe or speak until capacity frees up.
Project
A container inside a provider account that holds keys and usage. Deepgram applies concurrency per project, so every key in one project shares a single limit.

Frequently Asked Questions

Get started with Dograh

Build, deploy, and scale AI agents with Dograh. Join the community of developers building the future.