Deepgram Aura 2 API, Deepgram Aura 1 API, Deepgram Nova 3 API: Pricing, Documentation

by Deepgram

Deepgram Aura 2 API delivers a highly advanced text-to-speech solution engineered specifically for real-time conversational artificial intelligence applications. By combining deep learning architectures with optimized streaming protocols, the API transforms raw text into natural, human-like speech with exceptionally low latency. This high-speed performance makes it ideal for interactive voice agents, customer support bots, and dynamic media generation where instant responses are critical. The system features a diverse selection of premium, studio-quality voices that accurately replicate realistic intonations, rhythms, and vocal nuances. Designed for seamless developer integration, it provides scalable, efficient, and robust voice synthesis that elevates user engagement across digital platforms.

Get API Key
Deepgram Aura API

Models Version

WELCOME BONUS

Get $5 Free Credit on First Payment

No strings attached — add funds and get $5 bonus instantly

Claim Your $5 →

Deepgram Aura 2 English API Documentation

The newer Aura generation for English, with a much wider voice range and steadier delivery on long copy. Asynchronous: submit returns a request_id; poll the status endpoint until the request is COMPLETED, then download the audio.

POST https://gateway.pixazo.ai/deepgram-aura-2-en/v1/text-to-speech

Authentication

All requests require an API key passed via header.

HeaderTypeRequiredDescription
Ocp-Apim-Subscription-KeystringYesYour API subscription key

Text to Speech - Deepgram Aura 2 English

Request Code

POST https://gateway.pixazo.ai/deepgram-aura-2-en/v1/text-to-speech
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "text": "Hello from Pixazo. This is a text to speech demo."
}
import requests

url = "https://gateway.pixazo.ai/deepgram-aura-2-en/v1/text-to-speech"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "text": "Hello from Pixazo. This is a text to speech demo."
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
const res = await fetch("https://gateway.pixazo.ai/deepgram-aura-2-en/v1/text-to-speech", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "text": "Hello from Pixazo. This is a text to speech demo."
})
});
console.log(await res.json());
curl -X POST 'https://gateway.pixazo.ai/deepgram-aura-2-en/v1/text-to-speech' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"text": "Hello from Pixazo. This is a text to speech demo."}'

Output

{
  "request_id": "deepgram-aura-2-en_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/deepgram-aura-2-en_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Webhook (Optional)

Instead of polling, you can receive a Webhook callback when the request reaches a terminal state. Provide a Webhook URL via header on the submit request.

HeaderRequiredDescription
X-Webhook-URLTo enableHTTPS URL to receive the Webhook callback.
X-Webhook-ModeNoterminal (default, one callback on COMPLETED/ERROR) or sync (per-poll callbacks).

Example: enable Webhook

curl -X POST 'https://gateway.pixazo.ai/deepgram-aura-2-en/v1/text-to-speech' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook' \
  --data-raw '{"text": "Hello from Pixazo. This is a text to speech demo."}'

Callback Payload (success)

{
  "request_id": "deepgram-aura-2-en_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "deepgram-aura-2-en",
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.mp3"
    ],
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-08-01T09:14:16.102Z",
  "completed_at": "2026-08-01T09:14:22.870Z"
}

Failure callback shape

{
  "request_id": "deepgram-aura-2-en_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "deepgram-aura-2-en",
  "error": "Description of the failure"
}

Delivery semantics

  • terminal mode: one Webhook callback when the request is COMPLETED or ERROR.
  • sync mode: a Webhook callback on each status change.
  • Callbacks are idempotent on request_id — de-duplicate on it.
  • Respond 200 within a few seconds; the Webhook endpoint must be HTTPS.

Request Parameters

ParameterRequiredTypeDefaultAllowed values / rangeDescription
textYesstringup to 10,000 charactersThe text to speak.
speakerNostringmodel defaultsee the voice list aboveWhich voice to use. Each Aura model has its own voice set; a name from another model is rejected.
encodingNostringmp3mp3, opus, flac, aac, linear16, mulaw, alawAudio codec. The file you receive is stored with the matching extension.
containerNostringnone, wav, oggContainer to wrap the codec in. A container wins over the codec: opus in ogg is returned as .ogg.
sample_rateNointegermodel default8000 – 48000Output sample rate in Hz.
bit_rateNointegermodel defaultcodec dependentOutput bit rate.

Voices

41 voices including apollo, aurora, hermes, luna, mars, neptune, orion, saturn, thalia and vesta.

Example Request

{
  "text": "Hello from Pixazo. This is a text to speech demo."
}

Example Response

{
  "request_id": "deepgram-aura-2-en_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/deepgram-aura-2-en_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Request Headers

HeaderRequiredDescription
Content-TypeYesapplication/json
Ocp-Apim-Subscription-KeyYesYour API subscription key.
X-Webhook-URLNoEnable Webhook callbacks (see Webhook section).

Response Handling

Status CodeMeaning
202Accepted — request queued; returns request_id and polling_url.
400Bad request — a missing or out-of-range parameter. The message names the field.
401Unauthorized — missing or invalid subscription key.
402Insufficient balance.
429Too many requests.
500Internal server error.

Retrieving Results

Poll the status endpoint with the request_id from the submit response until status is COMPLETED (or ERROR), then download output.media_url.

curl 'https://gateway.pixazo.ai/v2/requests/status/deepgram-aura-2-en_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'

Completed response

{
  "request_id": "deepgram-aura-2-en_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "deepgram-aura-2-en",
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.mp3"
    ],
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-08-01T09:14:16.102Z",
  "completed_at": "2026-08-01T09:14:22.870Z"
}

Response Fields

FieldTypeDescription
request_idstringUnique request identifier.
statusstringQUEUED, PROCESSING, COMPLETED or ERROR.
model_idstringThe model that handled the request.
output.media_urlarrayURL of the generated audio file.
output.media_typestringMIME type of the audio.
created_atstringRequest creation timestamp.
completed_atstringCompletion timestamp.
errorstringError message when status is ERROR.

Status Values & Flow

QUEUEDPROCESSINGCOMPLETED (success) or ERROR (failure).

Pricing

Billed at $0.03 per 1,000 characters of input text, rounded up to the next whole 1,000. You are charged for the text you submit, not the length of the audio produced.

Input textBilled blocksCost
A short sentence (~50 characters)1$0.03
A paragraph (~800 characters)1$0.03
A 3,000-character article3$0.09
10,000 characters10$0.3

Failed requests are not billed.

Deepgram Aura 2 English API Pricing

Your request will cost $0.03 per 1,000 characters of input text.
about $0.03 for a 1,000-character paragraph
equivalent to $30 per 1M characters
2. Deepgram Aura 2 Spanish

Deepgram Aura 2 Spanish API Documentation

Aura 2 tuned for Spanish, with native Spanish voices rather than an English model reading Spanish text. Asynchronous: submit returns a request_id; poll the status endpoint until the request is COMPLETED, then download the audio.

POST https://gateway.pixazo.ai/deepgram-aura-2-es/v1/text-to-speech

Authentication

All requests require an API key passed via header.

HeaderTypeRequiredDescription
Ocp-Apim-Subscription-KeystringYesYour API subscription key

Text to Speech - Deepgram Aura 2 Spanish

Request Code

POST https://gateway.pixazo.ai/deepgram-aura-2-es/v1/text-to-speech
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "text": "Hello from Pixazo. This is a text to speech demo."
}
import requests

url = "https://gateway.pixazo.ai/deepgram-aura-2-es/v1/text-to-speech"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "text": "Hello from Pixazo. This is a text to speech demo."
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
const res = await fetch("https://gateway.pixazo.ai/deepgram-aura-2-es/v1/text-to-speech", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "text": "Hello from Pixazo. This is a text to speech demo."
})
});
console.log(await res.json());
curl -X POST 'https://gateway.pixazo.ai/deepgram-aura-2-es/v1/text-to-speech' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"text": "Hello from Pixazo. This is a text to speech demo."}'

Output

{
  "request_id": "deepgram-aura-2-es_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/deepgram-aura-2-es_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Webhook (Optional)

Instead of polling, you can receive a Webhook callback when the request reaches a terminal state. Provide a Webhook URL via header on the submit request.

HeaderRequiredDescription
X-Webhook-URLTo enableHTTPS URL to receive the Webhook callback.
X-Webhook-ModeNoterminal (default, one callback on COMPLETED/ERROR) or sync (per-poll callbacks).

Example: enable Webhook

curl -X POST 'https://gateway.pixazo.ai/deepgram-aura-2-es/v1/text-to-speech' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook' \
  --data-raw '{"text": "Hello from Pixazo. This is a text to speech demo."}'

Callback Payload (success)

{
  "request_id": "deepgram-aura-2-es_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "deepgram-aura-2-es",
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.mp3"
    ],
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-08-01T09:14:16.102Z",
  "completed_at": "2026-08-01T09:14:22.870Z"
}

Failure callback shape

{
  "request_id": "deepgram-aura-2-es_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "deepgram-aura-2-es",
  "error": "Description of the failure"
}

Delivery semantics

  • terminal mode: one Webhook callback when the request is COMPLETED or ERROR.
  • sync mode: a Webhook callback on each status change.
  • Callbacks are idempotent on request_id — de-duplicate on it.
  • Respond 200 within a few seconds; the Webhook endpoint must be HTTPS.

Request Parameters

ParameterRequiredTypeDefaultAllowed values / rangeDescription
textYesstringup to 10,000 charactersThe text to speak.
speakerNostringmodel defaultsee the voice list aboveWhich voice to use. Each Aura model has its own voice set; a name from another model is rejected.
encodingNostringmp3mp3, opus, flac, aac, linear16, mulaw, alawAudio codec. The file you receive is stored with the matching extension.
containerNostringnone, wav, oggContainer to wrap the codec in. A container wins over the codec: opus in ogg is returned as .ogg.
sample_rateNointegermodel default8000 – 48000Output sample rate in Hz.
bit_rateNointegermodel defaultcodec dependentOutput bit rate.

Voices

10 voices: sirio, nestor, carina, celeste, alvaro, diana, aquila, selena, estrella, javier.

Example Request

{
  "text": "Hello from Pixazo. This is a text to speech demo."
}

Example Response

{
  "request_id": "deepgram-aura-2-es_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/deepgram-aura-2-es_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Request Headers

HeaderRequiredDescription
Content-TypeYesapplication/json
Ocp-Apim-Subscription-KeyYesYour API subscription key.
X-Webhook-URLNoEnable Webhook callbacks (see Webhook section).

Response Handling

Status CodeMeaning
202Accepted — request queued; returns request_id and polling_url.
400Bad request — a missing or out-of-range parameter. The message names the field.
401Unauthorized — missing or invalid subscription key.
402Insufficient balance.
429Too many requests.
500Internal server error.

Retrieving Results

Poll the status endpoint with the request_id from the submit response until status is COMPLETED (or ERROR), then download output.media_url.

curl 'https://gateway.pixazo.ai/v2/requests/status/deepgram-aura-2-es_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'

Completed response

{
  "request_id": "deepgram-aura-2-es_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "deepgram-aura-2-es",
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.mp3"
    ],
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-08-01T09:14:16.102Z",
  "completed_at": "2026-08-01T09:14:22.870Z"
}

Response Fields

FieldTypeDescription
request_idstringUnique request identifier.
statusstringQUEUED, PROCESSING, COMPLETED or ERROR.
model_idstringThe model that handled the request.
output.media_urlarrayURL of the generated audio file.
output.media_typestringMIME type of the audio.
created_atstringRequest creation timestamp.
completed_atstringCompletion timestamp.
errorstringError message when status is ERROR.

Status Values & Flow

QUEUEDPROCESSINGCOMPLETED (success) or ERROR (failure).

Pricing

Billed at $0.03 per 1,000 characters of input text, rounded up to the next whole 1,000. You are charged for the text you submit, not the length of the audio produced.

Input textBilled blocksCost
A short sentence (~50 characters)1$0.03
A paragraph (~800 characters)1$0.03
A 3,000-character article3$0.09
10,000 characters10$0.3

Failed requests are not billed.

Deepgram Aura 2 Spanish API Pricing

Your request will cost $0.03 per 1,000 characters of input text.
native Spanish voices, about $0.03 per 1,000 characters
equivalent to $30 per 1M characters
3. Deepgram Aura 1

Deepgram Aura 1 API Documentation

Context-aware English speech that applies natural pacing, emphasis and fillers based on the text around each phrase. Asynchronous: submit returns a request_id; poll the status endpoint until the request is COMPLETED, then download the audio.

POST https://gateway.pixazo.ai/deepgram-aura-1/v1/text-to-speech

Authentication

All requests require an API key passed via header.

HeaderTypeRequiredDescription
Ocp-Apim-Subscription-KeystringYesYour API subscription key

Text to Speech - Deepgram Aura 1

Request Code

POST https://gateway.pixazo.ai/deepgram-aura-1/v1/text-to-speech
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "text": "Hello from Pixazo. This is a text to speech demo."
}
import requests

url = "https://gateway.pixazo.ai/deepgram-aura-1/v1/text-to-speech"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "text": "Hello from Pixazo. This is a text to speech demo."
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
const res = await fetch("https://gateway.pixazo.ai/deepgram-aura-1/v1/text-to-speech", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "text": "Hello from Pixazo. This is a text to speech demo."
})
});
console.log(await res.json());
curl -X POST 'https://gateway.pixazo.ai/deepgram-aura-1/v1/text-to-speech' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"text": "Hello from Pixazo. This is a text to speech demo."}'

Output

{
  "request_id": "deepgram-aura-1_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/deepgram-aura-1_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Webhook (Optional)

Instead of polling, you can receive a Webhook callback when the request reaches a terminal state. Provide a Webhook URL via header on the submit request.

HeaderRequiredDescription
X-Webhook-URLTo enableHTTPS URL to receive the Webhook callback.
X-Webhook-ModeNoterminal (default, one callback on COMPLETED/ERROR) or sync (per-poll callbacks).

Example: enable Webhook

curl -X POST 'https://gateway.pixazo.ai/deepgram-aura-1/v1/text-to-speech' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook' \
  --data-raw '{"text": "Hello from Pixazo. This is a text to speech demo."}'

Callback Payload (success)

{
  "request_id": "deepgram-aura-1_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "deepgram-aura-1",
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.mp3"
    ],
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-08-01T09:14:16.102Z",
  "completed_at": "2026-08-01T09:14:22.870Z"
}

Failure callback shape

{
  "request_id": "deepgram-aura-1_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "deepgram-aura-1",
  "error": "Description of the failure"
}

Delivery semantics

  • terminal mode: one Webhook callback when the request is COMPLETED or ERROR.
  • sync mode: a Webhook callback on each status change.
  • Callbacks are idempotent on request_id — de-duplicate on it.
  • Respond 200 within a few seconds; the Webhook endpoint must be HTTPS.

Request Parameters

ParameterRequiredTypeDefaultAllowed values / rangeDescription
textYesstringup to 10,000 charactersThe text to speak.
speakerNostringmodel defaultsee the voice list aboveWhich voice to use. Each Aura model has its own voice set; a name from another model is rejected.
encodingNostringmp3mp3, opus, flac, aac, linear16, mulaw, alawAudio codec. The file you receive is stored with the matching extension.
containerNostringnone, wav, oggContainer to wrap the codec in. A container wins over the codec: opus in ogg is returned as .ogg.
sample_rateNointegermodel default8000 – 48000Output sample rate in Hz.
bit_rateNointegermodel defaultcodec dependentOutput bit rate.

Voices

12 voices: angus, asteria, arcas, orion, orpheus, athena, luna, zeus, perseus, helios, hera, stella.

Example Request

{
  "text": "Hello from Pixazo. This is a text to speech demo."
}

Example Response

{
  "request_id": "deepgram-aura-1_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/deepgram-aura-1_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Request Headers

HeaderRequiredDescription
Content-TypeYesapplication/json
Ocp-Apim-Subscription-KeyYesYour API subscription key.
X-Webhook-URLNoEnable Webhook callbacks (see Webhook section).

Response Handling

Status CodeMeaning
202Accepted — request queued; returns request_id and polling_url.
400Bad request — a missing or out-of-range parameter. The message names the field.
401Unauthorized — missing or invalid subscription key.
402Insufficient balance.
429Too many requests.
500Internal server error.

Retrieving Results

Poll the status endpoint with the request_id from the submit response until status is COMPLETED (or ERROR), then download output.media_url.

curl 'https://gateway.pixazo.ai/v2/requests/status/deepgram-aura-1_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'

Completed response

{
  "request_id": "deepgram-aura-1_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "deepgram-aura-1",
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/output.mp3"
    ],
    "media_type": "audio/mpeg"
  },
  "created_at": "2026-08-01T09:14:16.102Z",
  "completed_at": "2026-08-01T09:14:22.870Z"
}

Response Fields

FieldTypeDescription
request_idstringUnique request identifier.
statusstringQUEUED, PROCESSING, COMPLETED or ERROR.
model_idstringThe model that handled the request.
output.media_urlarrayURL of the generated audio file.
output.media_typestringMIME type of the audio.
created_atstringRequest creation timestamp.
completed_atstringCompletion timestamp.
errorstringError message when status is ERROR.

Status Values & Flow

QUEUEDPROCESSINGCOMPLETED (success) or ERROR (failure).

Pricing

Billed at $0.015 per 1,000 characters of input text, rounded up to the next whole 1,000. You are charged for the text you submit, not the length of the audio produced.

Input textBilled blocksCost
A short sentence (~50 characters)1$0.015
A paragraph (~800 characters)1$0.015
A 3,000-character article3$0.045
10,000 characters10$0.15

Failed requests are not billed.

Deepgram Aura 1 API Pricing

Your request will cost $0.015 per 1,000 characters of input text.
the cheapest voice in the range at $0.015 per 1,000 characters
equivalent to $15 per 1M characters
4. Deepgram Nova 3

Deepgram Nova 3 API Documentation

Deepgram's Nova 3 transcription. Returns the transcript with per-word timings and a confidence score, and can label speakers when diarize is on. Asynchronous: submit returns a request_id; poll the status endpoint until the request is COMPLETED, then download the audio.

POST https://gateway.pixazo.ai/deepgram-nova-3/v1/speech-to-text

Authentication

All requests require an API key passed via header.

HeaderTypeRequiredDescription
Ocp-Apim-Subscription-KeystringYesYour API subscription key

Speech to Text - Deepgram Nova 3

Request Code

POST https://gateway.pixazo.ai/deepgram-nova-3/v1/speech-to-text
Content-Type: application/json
Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY

{
  "audio_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/audio/speech-17s.mp3"
}
import requests

url = "https://gateway.pixazo.ai/deepgram-nova-3/v1/speech-to-text"
headers = {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
}
data = {
  "audio_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/audio/speech-17s.mp3"
}

resp = requests.post(url, json=data, headers=headers)
print(resp.json())
const res = await fetch("https://gateway.pixazo.ai/deepgram-nova-3/v1/speech-to-text", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Ocp-Apim-Subscription-Key": "YOUR_SUBSCRIPTION_KEY"
  },
  body: JSON.stringify({
  "audio_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/audio/speech-17s.mp3"
})
});
console.log(await res.json());
curl -X POST 'https://gateway.pixazo.ai/deepgram-nova-3/v1/speech-to-text' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  --data-raw '{"audio_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/audio/speech-17s.mp3"}'

Output

{
  "request_id": "deepgram-nova-3_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/deepgram-nova-3_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Webhook (Optional)

Instead of polling, you can receive a Webhook callback when the request reaches a terminal state. Provide a Webhook URL via header on the submit request.

HeaderRequiredDescription
X-Webhook-URLTo enableHTTPS URL to receive the Webhook callback.
X-Webhook-ModeNoterminal (default, one callback on COMPLETED/ERROR) or sync (per-poll callbacks).

Example: enable Webhook

curl -X POST 'https://gateway.pixazo.ai/deepgram-nova-3/v1/speech-to-text' \
  -H 'Content-Type: application/json' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY' \
  -H 'X-Webhook-URL: https://your-server.com/webhook' \
  --data-raw '{"audio_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/audio/speech-17s.mp3"}'

Callback Payload (success)

{
  "request_id": "deepgram-nova-3_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "deepgram-nova-3",
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/transcript.json"
    ],
    "media_type": "application/json"
  },
  "duration": 19.17,
  "created_at": "2026-08-01T09:14:16.102Z",
  "completed_at": "2026-08-01T09:14:22.870Z"
}

Failure callback shape

{
  "request_id": "deepgram-nova-3_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "ERROR",
  "model_id": "deepgram-nova-3",
  "error": "Description of the failure"
}

Delivery semantics

  • terminal mode: one Webhook callback when the request is COMPLETED or ERROR.
  • sync mode: a Webhook callback on each status change.
  • Callbacks are idempotent on request_id — de-duplicate on it.
  • Respond 200 within a few seconds; the Webhook endpoint must be HTTPS.

Request Parameters

ParameterRequiredTypeDefaultAllowed values / rangeDescription
audio_urlYesstringa publicly reachable http(s) urlThe recording to transcribe. We fetch it server-side, so it must be reachable from the internet — a signed url is fine, a private one is not. audio is accepted as an alias.
languageNostringISO 639-1, e.g. enOmit this to let the model detect the language — that is the default. auto means the same. Set it to force one of the recording.
promptNostringup to 2,000 charactersBias the transcription toward expected wording — names, jargon, spellings.

Voices

Optional punctuate, diarize and smart_format flags shape the output.

Example Request

{
  "audio_url": "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/doc-assets/audio/speech-17s.mp3"
}

Example Response

{
  "request_id": "deepgram-nova-3_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "QUEUED",
  "polling_url": "https://gateway.pixazo.ai/v2/requests/status/deepgram-nova-3_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Request Headers

HeaderRequiredDescription
Content-TypeYesapplication/json
Ocp-Apim-Subscription-KeyYesYour API subscription key.
X-Webhook-URLNoEnable Webhook callbacks (see Webhook section).

Response Handling

Status CodeMeaning
202Accepted — request queued; returns request_id and polling_url.
400Bad request — a missing or out-of-range parameter. The message names the field.
401Unauthorized — missing or invalid subscription key.
402Insufficient balance.
429Too many requests.
500Internal server error.

Retrieving Results

Poll the status endpoint with the request_id from the submit response until status is COMPLETED (or ERROR), then download output.media_url.

curl 'https://gateway.pixazo.ai/v2/requests/status/deepgram-nova-3_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' \
  -H 'Ocp-Apim-Subscription-Key: YOUR_SUBSCRIPTION_KEY'

Completed response

{
  "request_id": "deepgram-nova-3_019dxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "COMPLETED",
  "model_id": "deepgram-nova-3",
  "output": {
    "media_url": [
      "https://pub-582b7213209642b9b995c96c95a30381.r2.dev/v1/{request_id}/transcript.json"
    ],
    "media_type": "application/json"
  },
  "duration": 19.17,
  "created_at": "2026-08-01T09:14:16.102Z",
  "completed_at": "2026-08-01T09:14:22.870Z"
}

Response Fields

FieldTypeDescription
request_idstringUnique request identifier.
statusstringQUEUED, PROCESSING, COMPLETED or ERROR.
model_idstringThe model that handled the request.
output.media_urlarrayURL of the generated audio file.
output.media_typestringMIME type of the audio.
created_atstringRequest creation timestamp.
completed_atstringCompletion timestamp.
errorstringError message when status is ERROR.

Status Values & Flow

QUEUEDPROCESSINGCOMPLETED (success) or ERROR (failure).

Pricing

Billed at $0.0052 per minute of generated audio, rounded up to the next whole minute. You are charged for the audio produced, not the text you submit.

Audio producedBilled minutesCost
A 10-second clip1$0.0052
A 45-second clip1$0.0052
A 3-minute narration3$0.0156
A 10-minute narration10$0.052

Failed requests are not billed.

Deepgram Nova 3 API Pricing

Your request will cost $0.0052 per minute of audio transcribed.
an hour of audio is $0.31
equivalent to $0.312 per hour of audio

⚡ Performance

Live usage measured on Pixazo's gateway, split by model version. Generation time is how long a generation takes end-to-end (lower is better). Success rate is the percent of generations that complete (higher is better).

Show data for the last
Generations
1,900last 30d
~63 per day
Success rate
84.2%
of completed generations
Generation time
84.5savg
p95 99.3s
Requests
Jul 27max 300Aug 25
Deepgram Aura 2 EnglishAvg 23/day
Deepgram Aura 1Avg 20/day
Deepgram Aura 2 SpanishAvg 13/day
Deepgram Nova 3Avg 7/day
Generation Time
Jul 27max 2.3minAug 25
Deepgram Aura 2 EnglishAvg 79.0s
Deepgram Aura 1Avg 93.3s
Deepgram Aura 2 SpanishAvg 74.2s
Deepgram Nova 3Avg 87.7s
Error Rate
Jul 27max 100.0%Aug 25
Deepgram Aura 2 EnglishAvg 28.6%
Deepgram Aura 1Avg 0.0%
Deepgram Aura 2 SpanishAvg 25.0%
Deepgram Nova 3Avg 0.0%

〰 Uptime

Percent of generations that succeeded over the selected period, per model version.

Avg. Success Rate (30d)
84.21%
across all generations of this model family
Uptime
Jul 27max 100%Aug 25
Deepgram Aura 2 EnglishAvg 71.43%
Deepgram Aura 1Avg 100.00%
Deepgram Aura 2 SpanishAvg 75.00%
Deepgram Nova 3Avg 100.00%