Features & formats
Every request can enable the full feature set — there are no paid add-ons.
Transcription options
| Option | Default | Description |
|---|---|---|
word_timestamps | true | Start and end time of each word, in seconds |
speaker_labels | true | Speaker diarization (who spoke when) |
diarize | — | Deepgram-compatible alias for speaker_labels |
nltk | true | Restore punctuation & capitalization |
custom_vocabulary | — | Names and terms to recognize |
language | auto | ISO 639-1 code (e.g. en) to skip detection and transcribe the whole file in that language — see pinning the language |
tier | standard | standard — the only tier currently available |
output_type | json | Result file format |
Output types
| Type | Use for |
|---|---|
json | Structured words, plus diarization when enabled. The SDKs parse this into text, words, and utterances. |
txt | Plain transcript, in speaker blocks when speaker_labels is on |
srt / vtt | Subtitles / captions |
docx / pdf | Shareable documents |
JSON shape (native)
The default JSON output looks like this:
{
"words": [
{"word": "Hello,", "start": 0.12, "end": 0.40, "speaker": "SPEAKER_1", "language": "en"},
{"word": "world.", "start": 0.41, "end": 0.70, "speaker": "SPEAKER_1", "language": "en"}
],
"diarization": [
{"start": 0.12, "end": 0.70, "speaker": "SPEAKER_1"}
],
"languages": [
{"start": 0.12, "end": 0.70, "language": "en"}
]
}Live progress
Every SDK reports progress for both the file upload and the transcription, either as console bars (the progress option) or through onProgress / onUploadProgress callbacks. Each callback receives completed, total, step, and a computed percent. The values come from the job SSE stream's completed/total counts, so they track completed work, not an estimate.
SDK adapters
The Python and JavaScript SDKs expose AssemblyAI-style result.text and result.utterances, plus result.to_deepgram() for code that expects Deepgram's response shape.