---
title: "Stream audio for transcription"
method: GET
path: "/ws/transcribe"
tags: ["/ws"]
---

# Stream audio for transcription

`GET /ws/transcribe`

Opens a WebSocket to stream audio for real-time transcription. Browser clients authenticate with the `Sec-WebSocket-Protocol` header; non-browser clients send `sdp_suki_token` and `transcription_session_id` as HTTP headers on the upgrade request.

## Headers

- `Sec-WebSocket-Protocol` string
- `transcription_session_id` string, required
- `sdp_provider_id` string

## Response `200`

OK - May indicate successful stream processing or completion (e.g., sending 'EOF' message). Specific meaning depends on implementation after handshake.

- string

## Other responses

- `101` — Switching Protocols - Indicates successful WebSocket handshake.
- `400` — Bad Request - Invalid parameters, headers, or request format.
- `401` — Unauthorized - Authentication failed (invalid token/session, incorrect protocol/headers).
- `403` — Forbidden - Client is authenticated but not authorized for this action.
- `500` — Internal Server Error - Abnormal closure or server-side issue.

---

[API](https://skmtc.dev/suki/apis/suki-developer-platform.md) · [All operations](https://skmtc.dev/suki/apis/suki-developer-platform/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/suki/suki-developer-platform/revisions/5f420a18fb68/schema)
