New: Cekura Voice AI BenchmarksView results

Deepgram API: How the 4 APIs Work & Top Use Cases (2026)

Dileep Chagam
Written byOCT 26, 202613 MIN READ
Dileep ChagaminExpert verified
Founding Engineer, CekuraIIT BombayEx-Apple

Has stress-tested 5M+ voice agent minutes at Cekura.

I went through the docs for all four Deepgram APIs (Speech-to-Text, Text-to-Speech, the Voice Agent API, and Audio Intelligence) and installed the Python SDK to check the parameters in this guide.

Two things decide how you work with each one: the protocol it runs on, REST or WebSocket, and the concurrency limit that sets how many calls you can run at once. Below is how each API works, what it costs, and which use cases to start with.

TL;DR: How the Deepgram API Works

  • Four APIs run on two protocols. Speech-to-Text and Text-to-Speech support REST and WebSocket. Audio Intelligence uses REST, and the Voice Agent API uses WebSocket alone.

  • Pick by job. Nova-3 handles transcripts, and Flux handles turn-taking in live agents. Aura-2 covers multilingual voices, Flux TTS covers English conversational speech, and Audio Intelligence parameters on /v1/listen cover analysis.

  • Read the limits first. The Voice Agent API allows up to 45 concurrent connections on Pay As You Go, and Audio Intelligence supports English only.

APIProtocolMain useBilled per
Speech to TextREST and WebSocketTranscripts (batch and streaming)Audio minute
Text to SpeechREST and WebSocketAura-2 and Flux TTS voices1k characters
Voice Agent APIWebSocketThe voice pipeline on one socketMinute
Audio IntelligenceRESTSentiment, topics, intentsTokens

What Is the Deepgram API?

The Deepgram API is a set of REST and WebSocket endpoints that turn speech into text, text into speech, and handle both inside a live voice agent. Deepgram's homepage says the platform is available in real time or batch, in the cloud or self-hosted.

Getting started takes an API key. Requests authenticate with it in an Authorization header, written as Token followed by the key. Creating and scoping one takes a separate guide, so we wrote a Deepgram API key guide for it.

Browser WebSocket clients that can't set headers use the Sec-WebSocket-Protocol header instead, and Deepgram also accepts temporary tokens, short-lived JWTs sent as Bearer credentials, for client-side use.

How the 4 Deepgram APIs Work

Each API comes with its own endpoint, billing unit, and limits. Here’s what each one does and how you reach it.

Speech to Text API

Speech to Text runs over two protocols. Files and hosted URLs go to a REST request, POST https://api.deepgram.com/v1/listen (pre-recorded reference), and live audio goes to a WebSocket at wss://api.deepgram.com/v1/listen (streaming reference).

Nova-3 handles batch and streaming, and Deepgram's models page calls it a general-purpose model with no turn detection, so a live agent on Nova-3 has to detect end-of-turn some other way. Pricing starts at $0.0043 per minute for Nova-3 pre-recorded audio (monolingual, Pay As You Go).

Flux is the streaming model designed for voice agents. It includes end-of-turn detection and comes in English (flux-general-en) and a 10-language variant (flux-general-multi).

For streaming latency, Deepgram states that its Speech to Text delivers transcripts in under 300 milliseconds. That's a vendor figure, so use it as a reference for your own tests.

To compare, Cekura's STT benchmark measured two other timings on the same streamed test turns. Nova-3 returned first text at a median of 1,060 ms and final text 103 ms after the caller stopped. Flux English reached first text at 791 ms and final text at 108 ms.

If latency across providers is your main question, our ranking of live voice AI APIs compares Deepgram with eight other providers.

Text to Speech API

Text to Speech offers two current families. Aura-2 is served from https://api.deepgram.com/v1/speak with a model such as model=aura-2-thalia-en, over REST or a WebSocket designed for streaming text (TTS docs). Flux TTS uses /v2/speak with the same two options.

REST requests are limited to 2,000 characters for Aura-2 and Aura-1. Longer text gets a 413 error and no audio file.

Aura-2 offers seven languages (English, Spanish, Dutch, Italian, German, Japanese, and French), per Deepgram's voice list. It bills at $0.030 per 1k characters on Pay As You Go.

Deepgram’s Aura-2 launch post claims sub-200 ms time to first byte, so measure it on your own stack before you trust it.

I'd pick Aura-2 when you already use Deepgram for Speech to Text and want a single vendor for the voice output too. Our TTS for voice agents ranking points out one limitation with Aura-2: it has no SSML support. It does take a speed setting and pronunciation controls, but you can’t add pauses.

Flux TTS is Deepgram's newer text-to-speech family. It reached general availability on August 12, 2026 (changelog). It's English only, includes 36 voices (voice catalog), and costs $0.045 per 1k characters.

A September 30 update added inline pauses (on REST requests) and pronunciation control (Early Access) (changelog).

In short, Aura-2 covers languages beyond English, and Flux TTS suits English-only agents that want conversational speech.

Voice Agent API

The Voice Agent API is WebSocket-only, at wss://agent.deepgram.com/v1/agent/converse (reference).

Deepgram says the API handles listening, thinking, and speaking over a single WebSocket connection, which in practice replaces the separate connections you would otherwise set up with one.

In the reference, the server opens with Welcome, and you answer with a Settings message that configures each stage. The server then confirms with SettingsApplied.

For configuration, the reference examples listen with flux-general-en and think with OpenAI's gpt-4o or gpt-4o-mini. They speak with aura-2-asteria-en or aura-2-luna-en. Since August 12, 2026, a Settings message that omits agent.speak uses Flux TTS with the flux-kit-en voice.

The Standard tier costs $0.075 per minute on Pay As You Go. Bringing your own LLM and TTS drops it to $0.050 per minute on the Custom - BYO LLM + TTS tier.

Audio Intelligence API

Audio Intelligence is added to the pre-recorded /v1/listen request with summarize=v2 for Summarization, topics=true for Topic Detection, intents=true for Intent Recognition, and sentiment=true for Sentiment Analysis, all passed as query parameters.

You get the analysis in the same request that delivers the transcript. Audio Intelligence is English-only. The docs state, "At this time, audio analysis features only work for English language transcriptions." Transcription itself still works in other languages.

All four analyses bill by the token. The pricing page lists one rate for all four analyses: $0.0003 per 1k input tokens and $0.0006 per 1k output tokens on Pay As You Go.

A related product, Text Intelligence, applies the same four analyses to text you already have. Inputs are limited to 150k tokens, and anything larger fails with a 400 error and TOKEN_LIMIT_EXCEEDED.

How to Make Your First Deepgram API Request

Install the Python SDK and export DEEPGRAM_API_KEY, which the client reads from the environment. Version 7.12.0, released October 2, 2026, requires Python 3.10 or newer.

pip install deepgram-sdk==7.12.0
from deepgram import DeepgramClient

client = DeepgramClient()

with open("audio.wav", "rb") as audio_file:
    response = client.listen.v1.media.transcribe_file(
        request=audio_file.read(),
        model="nova-3",
        language="en",
    )

print(response.results.channels[0].alternatives[0].transcript)

The snippet above is copied from the PyPI quickstart for 7.12.0. I installed the package and confirmed that transcribe_url accepts the Audio Intelligence parameters.

The next call adds those parameters to a hosted file. The response then contains summary (with short holding the summary text), topics, intents, and sentiments fields.

response = client.listen.v1.media.transcribe_url(
    url="https://example.com/call.wav",
    model="nova-3",
    language="en",
    sentiment=True,
    topics=True,
    intents=True,
    summarize="v2",
)

print(response.results.summary.short)

I didn't run either snippet against the live API, so test them with a key from your account. Deepgram publishes migration guides between major SDK versions (v5 to v6, v6 to v7), so check any tutorial snippet against the release you installed.

Once the first call works, the use cases below show which parameters and limits matter for each setup.

Top Deepgram API Use Cases

Each setup below pairs one Deepgram API with the parameters it needs and the concurrency limit that applies to it. They run from live transcription to post-call analytics.

Live Call Transcription

Stream the call to the wss://api.deepgram.com/v1/listen WebSocket with Nova-3 and read results as they arrive.

Keep the connection open, because Deepgram closes one that receives no audio. Send KeepAlive messages during pauses, and send at least one audio message within 10 seconds of opening.

Streaming Nova-3 is limited to 150 concurrent requests per project on Pay As You Go and 225 on Growth in North America, per Deepgram's rate limit reference.

Meeting Notes and Searchable Transcripts

Post recordings to /v1/listen with diarize_model=latest for Speaker Diarization, which uses the v2 model for batch audio, and summarize=v2 for Summarization. The older diarize=true is deprecated and uses v1.

Pre-recorded Nova-3 accepts 50 concurrent requests per project on both self-serve plans (diarization caps at 25 outside North America), and adding Summarization lowers that to 10 because the lower limit applies.

A batch job over a day of recordings with summarize=v2 needs a queue that limits itself to 10 simultaneous requests.

Production Voice Agents

Open a Voice Agent API connection when a call starts, with flux-general-en listening, an LLM thinking, and an Aura-2 or Flux TTS voice speaking.

Voice Agent limits the number of concurrent connections. If each call opens one connection, Pay As You Go supports 45 simultaneous calls, and Growth supports 60 in North America.

Deepgram's concurrency docs say neither plan can have its limits raised. Enterprise starts at 100 connections, per the rate limit reference. If your peak is above 60 simultaneous calls (45 outside North America), plan for an Enterprise agreement.

Post-Call Analytics

Send recorded calls through pre-recorded transcription with sentiment=true, topics=true, and intents=true. The results come back alongside the transcript as matching objects.

Sentiment Analysis and Intent Recognition each accept 10 concurrent requests in North America and 5 elsewhere on both self-serve plans. Topic Detection and Summarization accept 10 in every region, and all four apply to English calls only.

Which Deepgram API Should You Choose?

Each API covers a different part of the voice pipeline, so the choice follows what you still need to add and the language of your calls.

  • Speech to Text is the transcript layer when your LLM and TTS come from elsewhere.

  • Text to Speech supplies replies when your languages fall inside Aura-2's seven, or when you want English conversational speech from Flux TTS.

  • The Voice Agent API handles listening, thinking, and speaking over one WebSocket, as long as your peak call volume stays within the connection limit in the limits table below.

  • Audio Intelligence adds Sentiment Analysis, Topic Detection, or Intent Recognition to the same request as the transcript, for English calls.

Deepgram API Limits to Consider

Limits apply to the project and are shared by every API key in it. Secondary self-serve projects get 1 concurrent stream by design, and Pay As You Go and Growth can't raise limits.

Limit (North America)Pay As You GoGrowth
Voice Agent connections4560
STT streaming requests, Nova-3150225
STT pre-recorded requests, Nova-35050
TTS streaming requests, Aura-24560
TTS REST requests, Aura-21515

Exceeding a limit returns a 429 (Too Many Requests), and a request that touches several services gets the lower of the limits, so adding summarize=v2 to a pre-recorded request lowers its limit to 10. Run a load test before launch to see where your traffic starts hitting 429 errors.

How to Test a Voice Agent That Runs on the Deepgram API

The latency figures in this guide come from Deepgram’s own claims and from benchmark runs on fixed audio, so they’re a starting reference. Testing shows how your agent behaves with your callers.

Cekura's STT benchmark ranks 19 models on 1,000 Pipecat clips, three of them Deepgram’s. Nova-3 had a 3.78% word error rate (WER), ranking 14th of 19. Flux English had 4.00% (15th) and Flux Multilingual 4.81% (16th).

On a smaller set of eight Ocular phone recordings from four conversations, Nova-3 had 4.39% and Flux English 4.18%. These are relative scores under one fixed test setup, so use them to shortlist and then test on your own traffic.

Cekura runs those tests on your own agent in stages, from pre-production simulation to production monitoring.

Pre-production

  • Simulations run thousands of synthetic conversations before launch, with personas that have background noise and accents.

  • Each release runs through the suite first, so changes such as a new STT model or a prompt edit are tested before it goes out.

  • Red teaming tests the agent for jailbreaks and for responses outside its intended script.

Production monitoring

Cekura runs its metrics on live call logs, so you can see when an STT model, prompt, or voice change shifts behavior on real traffic.

  • Transcription Accuracy checks your Deepgram transcript against two separate transcription models and weights errors on names, numbers, and negations, so a dropped digit or a misheard “can’t” counts more than a filler word.

  • Latency and Stop Time After User Interruption track how fast the agent replies and how quickly it stops talking when a caller cuts in, which is where turn detection (Flux vs. Nova-3) shows up on live calls.

  • Infrastructure Issues, Sentiment, and Dropoff Node flags calls that broke, went negative, or ended early.

On compliance, Cekura is SOC 2, HIPAA, and GDPR-compliant, and it supports role-based access control.

On setup, Cekura lists integrations with Retell AI, Vapi, ElevenLabs, LiveKit, and Pipecat. You add a testing and monitoring layer alongside what you already have.

To run these stages against a voice agent built on the Deepgram API, book a demo.

Frequently Asked Questions

What is the Deepgram API?

The Deepgram API is a set of REST and WebSocket endpoints for Speech to Text, Text to Speech, the Voice Agent API, and Audio Intelligence. You call it with an API key, directly or through a client library such as the Python SDK.

Billing is per audio minute, per 1k characters, per agent minute, or per token, depending on the product.

How much does the Deepgram API cost?

Deepgram bills by usage on Pay As You Go: Nova-3 pre-recorded starts at $0.0043 per minute, Aura-2 costs $0.030 per 1k characters (Flux TTS costs $0.045), and the Voice Agent API Standard tier costs $0.075 per minute.

Nova-3 streaming lists a limited-time promotional rate of $0.0048 per minute against a regular $0.0077. Growth starts at $4K+ per year with prepaid credits for the year.

Pricing verified against Deepgram's pricing page on 19 October 2026. Verify with the vendor before you commit.

What is a Deepgram API key?

A Deepgram API key is a secret string you send in the Authorization header as Token <your key> to authenticate each request. Our key guide explains how to create and scope one.

Is the Deepgram API free?

Yes, to start. Pay As You Go includes $200 in free credit with no minimums, no expiration, and no credit card required, and once the credit runs out, usage bills at the per-product rates above after you add a card.

Ready to ship voice
agents fast? 

Book a demo