Skip to main content
Deepgram's Docs

Search documentation

Type to search this documentation.

On this pageOverview

Regional Endpoints

Deepgram offers regional endpoints so you can process audio, text, and voice agent traffic within a specific geography. Regional endpoints use the same API keys and SDKs as the default global endpoint — you only need to change the base URL.

For customers requiring data processing within the EU, Deepgram provides an EU-specific endpoint at api.eu.deepgram.com. While Deepgram guarantees the service will be hosted within the EU, the specific country location may change over time. Requests to the EU endpoint are never routed outside the EU: if the region is unavailable, requests fail rather than fall back to another region. If you require hosting in a specific EU country, consider Deepgram Dedicated (see also our technical documentation).

Endpoint URL: api.eu.deepgram.com

  1. Replace the base URL: In any SDK or API request, replace api.deepgram.com with api.eu.deepgram.com.
  2. Use your existing credentials: Your existing API keys and tokens work on the EU endpoint.

The EU endpoint supports the following Deepgram APIs:

  • Speech-to-Text: /v1/listen and /v2/listen (excluding Whisper models)
  • Text-to-Speech: /v1/speak and /v2/speak
  • Voice Agent: /v1/agent/converse
  • Text Intelligence: /v1/read

See our API Documentation for more information.

  • Whisper models are not supported in the EU region. Use Flux or Nova STT models instead.

For streaming features on the EU endpoint, use the following URLs:

API URL
Speech-to-Text wss://api.eu.deepgram.com/v1/listen
Speech-to-Text (Flux) wss://api.eu.deepgram.com/v2/listen
Text-to-Speech wss://api.eu.deepgram.com/v1/speak
Text-to-Speech (Flux) wss://api.eu.deepgram.com/v2/speak
Voice Agent wss://api.eu.deepgram.com/v1/agent/converse
Python
from deepgram import DeepgramClient
from deepgram.environment import DeepgramClientEnvironment

eu_env = DeepgramClientEnvironment(
    base="https://api.eu.deepgram.com",        # REST APIs
    production="wss://api.eu.deepgram.com",     # STT/TTS WebSocket
    agent="wss://api.eu.deepgram.com",          # Agent WebSocket
    agent_rest="https://api.eu.deepgram.com",   # Agent REST
)
client = DeepgramClient(api_key="YOUR_API_KEY", environment=eu_env)
JavaScript
import { DeepgramClient } from "@deepgram/sdk";

const deepgram = new DeepgramClient({
  apiKey: "YOUR_API_KEY",
  baseUrl: "https://api.eu.deepgram.com",
});
C#
using Deepgram;
using Deepgram.Models.Authenticate.v1;

var client = new AnalyzeClient("YOUR_API_KEY",
    new DeepgramHttpClientOptions("YOUR_API_KEY", "https://api.eu.deepgram.com"));
Go
import "github.com/deepgram/deepgram-go-sdk/pkg/client/interfaces"

client := client.New("YOUR_API_KEY", &interfaces.ClientOptions{
    Host: "api.eu.deepgram.com",
})
Java
import com.deepgram.DeepgramClient;
import com.deepgram.core.Environment;

Environment euEnv = Environment.custom()
    .base("https://api.eu.deepgram.com")
    .agent("wss://api.eu.deepgram.com")
    .production("wss://api.eu.deepgram.com")
    .build();
DeepgramClient client = DeepgramClient.builder()
    .apiKey("YOUR_API_KEY")
    .environment(euEnv)
    .build();
Bash
curl -X POST "https://api.eu.deepgram.com/v1/listen" \
  -H "Authorization: Token YOUR_API_KEY" \
  -H "Content-Type: audio/wav" \
  --data-binary @audio.wav

For customers requiring data processing within Australia, Deepgram provides an AU-specific endpoint at api.au.deepgram.com. Deepgram guarantees the service will be hosted within Australia. Requests to the AU endpoint are never routed outside Australia: if the region is unavailable, requests fail rather than fall back to another region.

Endpoint URL: api.au.deepgram.com

  1. Replace the base URL: In any SDK or API request, replace api.deepgram.com with api.au.deepgram.com.
  2. Use your existing credentials: Your existing API keys and tokens work on the AU endpoint.

The AU endpoint supports the following Deepgram APIs:

  • Speech-to-Text: /v1/listen and /v2/listen (excluding Whisper models)
  • Text-to-Speech: /v1/speak and /v2/speak
  • Voice Agent: /v1/agent/converse
  • Text Intelligence: /v1/read

See our API Documentation for more information.

  • Whisper models are not supported in the AU region. Use Flux or Nova STT models instead.

For streaming features on the AU endpoint, use the following URLs:

API URL
Speech-to-Text wss://api.au.deepgram.com/v1/listen
Speech-to-Text (Flux) wss://api.au.deepgram.com/v2/listen
Text-to-Speech wss://api.au.deepgram.com/v1/speak
Text-to-Speech (Flux) wss://api.au.deepgram.com/v2/speak
Voice Agent wss://api.au.deepgram.com/v1/agent/converse
Python
from deepgram import DeepgramClient
from deepgram.environment import DeepgramClientEnvironment

au_env = DeepgramClientEnvironment(
    base="https://api.au.deepgram.com",        # REST APIs
    production="wss://api.au.deepgram.com",     # STT/TTS WebSocket
    agent="wss://api.au.deepgram.com",          # Agent WebSocket
    agent_rest="https://api.au.deepgram.com",   # Agent REST
)
client = DeepgramClient(api_key="YOUR_API_KEY", environment=au_env)
JavaScript
import { DeepgramClient } from "@deepgram/sdk";

const deepgram = new DeepgramClient({
  apiKey: "YOUR_API_KEY",
  baseUrl: "https://api.au.deepgram.com",
});
C#
using Deepgram;
using Deepgram.Models.Authenticate.v1;

var client = new AnalyzeClient("YOUR_API_KEY",
    new DeepgramHttpClientOptions("YOUR_API_KEY", "https://api.au.deepgram.com"));
Go
import "github.com/deepgram/deepgram-go-sdk/pkg/client/interfaces"

client := client.New("YOUR_API_KEY", &interfaces.ClientOptions{
    Host: "api.au.deepgram.com",
})
Java
import com.deepgram.DeepgramClient;
import com.deepgram.core.Environment;

Environment auEnv = Environment.custom()
    .base("https://api.au.deepgram.com")
    .agent("wss://api.au.deepgram.com")
    .production("wss://api.au.deepgram.com")
    .build();
DeepgramClient client = DeepgramClient.builder()
    .apiKey("YOUR_API_KEY")
    .environment(auEnv)
    .build();
Bash
curl -X POST "https://api.au.deepgram.com/v1/listen" \
  -H "Authorization: Token YOUR_API_KEY" \
  -H "Content-Type: audio/wav" \
  --data-binary @audio.wav

For customers requiring data processing within India, Deepgram provides an India-specific endpoint at api.in.deepgram.com. Deepgram guarantees the service will be hosted within India. Requests to the India endpoint are never routed outside India: if the region is unavailable, requests fail rather than fall back to another region.

Endpoint URL: api.in.deepgram.com

  1. Replace the base URL: In any SDK or API request, replace api.deepgram.com with api.in.deepgram.com.
  2. Use your existing credentials: Your existing API keys and tokens work on the India endpoint.

The India endpoint supports the following Deepgram APIs:

  • Speech-to-Text: /v1/listen and /v2/listen (excluding Whisper models)
  • Text-to-Speech: /v1/speak and /v2/speak
  • Voice Agent: /v1/agent/converse
  • Text Intelligence: /v1/read

See our API Documentation for more information.

  • Whisper models are not supported in the India region. Use Flux or Nova STT models instead.

For streaming features on the India endpoint, use the following URLs:

API URL
Speech-to-Text wss://api.in.deepgram.com/v1/listen
Speech-to-Text (Flux) wss://api.in.deepgram.com/v2/listen
Text-to-Speech wss://api.in.deepgram.com/v1/speak
Text-to-Speech (Flux) wss://api.in.deepgram.com/v2/speak
Voice Agent wss://api.in.deepgram.com/v1/agent/converse
Python
from deepgram import DeepgramClient
from deepgram.environment import DeepgramClientEnvironment

in_env = DeepgramClientEnvironment(
    base="https://api.in.deepgram.com",        # REST APIs
    production="wss://api.in.deepgram.com",     # STT/TTS WebSocket
    agent="wss://api.in.deepgram.com",          # Agent WebSocket
    agent_rest="https://api.in.deepgram.com",   # Agent REST
)
client = DeepgramClient(api_key="YOUR_API_KEY", environment=in_env)
JavaScript
import { DeepgramClient } from "@deepgram/sdk";

const deepgram = new DeepgramClient({
  apiKey: "YOUR_API_KEY",
  baseUrl: "https://api.in.deepgram.com",
});
C#
using Deepgram;
using Deepgram.Models.Authenticate.v1;

var client = new AnalyzeClient("YOUR_API_KEY",
    new DeepgramHttpClientOptions("YOUR_API_KEY", "https://api.in.deepgram.com"));
Go
import "github.com/deepgram/deepgram-go-sdk/pkg/client/interfaces"

client := client.New("YOUR_API_KEY", &interfaces.ClientOptions{
    Host: "api.in.deepgram.com",
})
Java
import com.deepgram.DeepgramClient;
import com.deepgram.core.Environment;

Environment inEnv = Environment.custom()
    .base("https://api.in.deepgram.com")
    .agent("wss://api.in.deepgram.com")
    .production("wss://api.in.deepgram.com")
    .build();
DeepgramClient client = DeepgramClient.builder()
    .apiKey("YOUR_API_KEY")
    .environment(inEnv)
    .build();
Bash
curl -X POST "https://api.in.deepgram.com/v1/listen" \
  -H "Authorization: Token YOUR_API_KEY" \
  -H "Content-Type: audio/wav" \
  --data-binary @audio.wav

When you use Deepgram's managed LLM or managed TTS providers with the Voice Agent API, Deepgram routes requests to those providers on your behalf. Where possible, Deepgram leverages regional endpoints for these managed providers to keep traffic within the same region as your Deepgram endpoint.

Today, Deepgram routes managed provider traffic through EU endpoints for OpenAI and Google. When you connect to api.eu.deepgram.com and use a managed OpenAI LLM or TTS model, the underlying requests to OpenAI are routed through OpenAI's EU infrastructure. Managed Google LLMs default to the EU Gemini Enterprise Agent (GEA) endpoint — see Google LLM APIs below.

Other managed providers do not yet offer EU-specific endpoints. As providers expand their regional availability, Deepgram will adopt those endpoints automatically — no configuration change required on your side.

Deepgram's managed Google LLMs run on either of Google's APIs:

  • AI Studio (generativelanguage.googleapis.com) — a single global endpoint with the broadest model coverage.
  • Gemini Enterprise Agent (GEA) — formerly the Vertex API. Offers regional endpoints, so requests to Gemini models stay in the region you select.

Select the API with the think.provider.version parameter in your Settings message, whichever Deepgram Voice Agent endpoint you connect to:

think.provider.version Google API
ai-studio-v1beta AI Studio
gemini-enterprise-agent-v1 Gemini Enterprise Agent (GEA)
v1beta AI Studio — alias for ai-studio-v1beta
JSON
{
  "agent": {
    "think": {
      "provider": {
        "type": "google",
        "version": "gemini-enterprise-agent-v1",
        "model": "gemini-2.5-flash"
      }
    }
  }
}

When you omit version, the default depends on the Deepgram endpoint:

Deepgram Voice Agent endpoint Default version
wss://agent.deepgram.com/v1/agent/converse (general) ai-studio-v1beta — global AI Studio, the broadest model coverage
wss://api.eu.deepgram.com/v1/agent/converse (EU) gemini-enterprise-agent-v1 — GEA EU, every request served in the EU
wss://api.au.deepgram.com/v1/agent/converse (AU) ai-studio-v1beta — global AI Studio
wss://api.in.deepgram.com/v1/agent/converse (India) ai-studio-v1beta — global AI Studio

Fewer Gemini models are available on the EU GEA endpoint than on global AI Studio. For current model availability by region, see Google's documentation.

When you connect to api.au.deepgram.com and use Deepgram managed models for speech-to-text (listen) and text-to-speech (speak) — for example, nova-3 and aura-2 — Deepgram processes that audio within Australia.

The voice agent LLM (think) runs on a third-party provider, where data residency and processing location are distinct. OpenAI, for example, offers Australian data residency — your content is stored at rest in Australia — but performs inference outside Australia. No managed in-region LLM is available today, so the think step is processed outside Australia even when residency applies. See OpenAI's data residency guide for provider specifics.

When you connect to api.in.deepgram.com and use Deepgram managed models for speech-to-text (listen) and text-to-speech (speak) — for example, nova-3 and aura-2 — Deepgram processes that audio within India.

The voice agent LLM (think) runs on a third-party provider, where data residency and processing location are distinct. OpenAI, for example, offers India data residency — your content is stored at rest in India — but performs inference outside India. No managed in-region LLM is available today, so the think step is processed outside India even when residency applies. See OpenAI's data residency guide for provider specifics.

No additional configuration is needed. Connect to your regional endpoint and select a managed provider as you normally would:

JSON
{
  "agent": {
    "listen": {
      "provider": {
        "type": "deepgram",
        "model": "nova-3"
      }
    },
    "think": {
      "provider": {
        "type": "open_ai",
        "model": "gpt-4o-mini"
      }
    },
    "speak": {
      "provider": {
        "type": "deepgram",
        "model": "aura-2-zeus-en"
      }
    }
  }
}

When this configuration is sent to wss://api.eu.deepgram.com/v1/agent/converse, Deepgram processes speech-to-text and text-to-speech within the EU, and routes the managed OpenAI LLM call through OpenAI's EU endpoint. When sent to wss://api.au.deepgram.com/v1/agent/converse, Deepgram processes speech-to-text and text-to-speech within Australia; as noted above, the managed LLM (think) call is processed outside Australia. When sent to wss://api.in.deepgram.com/v1/agent/converse, Deepgram processes speech-to-text and text-to-speech within India; the managed LLM (think) call is likewise processed outside India.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu