Skip to main content
Streaming TTS has one endpoint per data residency zone, the US and the EU. Each one processes your text and audio in its own zone.* Choose the zone that fits your data residency requirements, or the one nearer to your application for the lowest latency. *AssemblyAI will store Account Data and Usage Data in the United States, per our Privacy Policy and the Data Privacy Framework. Text and audio data will be stored in the endpoint region you select. Incident response and customer support may be conducted from locations where staff are employed, which may be in the US, EU, or elsewhere. If your text or audio needs to be accessed for debugging, a member of our team located outside of your endpoint region may access that data and may use a US-based subprocessor to support the troubleshooting or customer support request.

Data processing locations

All Streaming TTS text and audio is processed in AWS regions located in the United States and the European Union: US EU Which of these locations processes your data depends on the endpoint you connect to, as described below.

Endpoints

The path, connect parameters, frames and limits are identical on both hosts. Only the host changes. An API key in the Authorization header and a temporary token in the token query parameter are accepted on both hosts. A cloned voice belongs to the data zone it was created in, and only that zone’s host can use it. On the other zone’s host, a session with the voice closes with 3012 voice_not_found.
Streaming TTS has no global endpoint yet. Connect to the US or EU endpoint: the one of the zone that should process your data and that holds your cloned voices.

HTTP API

The HTTP API and its OpenAI-compatible route are served over HTTPS on the same hosts, in the same regions: The HTTP routes read the credential from the Authorization header: an API key, or a temporary token in a browser.

Which endpoint should I use?

  • Need US data residency? Use the US endpoint (tts.us.assemblyai.com).
  • Need EU data residency? Use the EU endpoint (tts.eu.assemblyai.com).
  • Using a cloned voice? Use the endpoint of the zone the voice was created in. A voice created in one zone is only usable on that zone’s endpoint.
  • No residency requirement? Use the endpoint nearer to where your application runs, for the lowest latency. Optimizing accuracy and latency shows what the distance costs.

How to use it

The AssemblyAI SDKs take the host as one setting, which covers the HTTP API and the WebSocket sessions alike: tts_base_url in the Python SDK’s settings, ttsBaseUrl on the JavaScript client. Without an SDK, the host is the base URL of your HTTP client, the base_url of an OpenAI SDK, LiveKit or Pipecat (OpenAI compatibility), or part of the WebSocket URL you open. The last two tabs are the URL constant from the raw WebSocket program of the Quickstart and a browser’s connect(), which passes a temporary token in the query string. Everything below is on the US data zone; for the EU data zone, replace us with eu, and nothing else changes.
If you also use Streaming Speech-to-Text with a data zone endpoint, pick the matching Streaming TTS host so that both halves of a conversation are processed in the same zone.