---
title: "Speech to text over WebSocket"
method: GET
path: "/speech-to-text/transcription"
tags: ["Speech To Text over WebSockets"]
---

# Speech to text over WebSocket

`GET /speech-to-text/transcription`

Open a WebSocket connection to stream audio and receive transcriptions in real-time. Authentication is provided via the standard `Authorization: Bearer <API_KEY>` header.

Supported engines: `Azure`, `Deepgram`, `Google`, `Telnyx`, `xAI`, `Speechmatics`, `Soniox`, `Parakeet`, `Humain`.

**Connection flow:**
1. Open WebSocket with query parameters specifying engine, input format, and language.
2. Send binary audio frames (mp3/wav format).
3. Receive JSON transcript frames with `transcript`, `is_final`, and `confidence` fields.
4. Close connection when done.

## Query parameters

- `transcription_engine` 'Azure' | 'Deepgram' | 'Google' | 'Telnyx' | 'xAI' | 'Speechmatics' | 'Soniox' | 'Parakeet' | 'Humain', required
- `input_format` 'mp3' | 'wav', required
- `language` string
- `interim_results` boolean
- `model` union
  - 'fast'
  - 'deepgram/nova-2' | 'deepgram/nova-3'
  - 'latest_long' | 'latest_short' | 'command_and_search' | 'phone_call' | 'video' | 'default' | 'medical_conversation' | 'medical_dictation'
  - 'openai/whisper-tiny' | 'openai/whisper-large-v3-turbo'
  - 'xai/grok-stt'
  - 'speechmatics/standard'
  - 'soniox/stt-rt-v4'
  - 'nvidia/parakeet-v3'
  - 'humain/realtime'
- `endpointing` integer
- `redact` string
- `keyterm` string
- `keywords` string

## Response `200`

WebSocket upgrade successful — this response is not returned directly. See 101 for frame documentation.

## Other responses

- `101` — WebSocket connection established. Communication proceeds via binary audio frames (client) and JSON transcript frames (server). **Client → Server:** Binary audio data (mp3/wav). **Server → Client:** See `TranscriptFrame` and `SttErrorFrame` schemas.
- `400` — Invalid parameters — engine not supported or missing required fields.
- `401` — Authentication failed — missing or invalid Authorization header.
- `422` — Unprocessable entity. The request was well-formed but could not be processed due to semantic errors. This includes validation errors, invalid parameter values and business logic violations.

## Changes

- **2026-07-22** `ce9e90fc16f3` — 1 info
  - added the new enum value `Humain` to the `query` request parameter `transcription_engine`
- **2026-07-13** `afc3349ad4f1` — 1 breaking, 1 info
  - removed the enum value `parakeet/tdt-0.6b-v3` from the property `oneOf[#/components/schemas/parakeet_models]/` of the `query` request parameter `model`
  - added the enum value `nvidia/parakeet-v3` to the property `oneOf[#/components/schemas/parakeet_models]/` of the `query` request parameter `model`
- **2026-07-03** `80dbfc37f51e` — 1 info
  - added the new enum value `Parakeet` to the `query` request parameter `transcription_engine`
- **2026-07-02** `224ed0d8a5c3` — 1 breaking
  - removed the enum value `Parakeet` from the `query` request parameter `transcription_engine`

[Change history](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/changes/speech-to-text/transcription/get.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api-2.md) · [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/revisions/eb02d7e7280b?raw)
