---
title: "Transcribe audio"
method: POST
path: "/v1/audio/transcriptions"
---

# Transcribe audio

`POST /v1/audio/transcriptions`

OpenAI-compatible multipart STT input. Speko rewrites or unwraps the request for eligible HTTP, WebSocket, or multi-step STT adapters and normalizes supported transcript shapes to {"text":"..."}; audio compatibility can narrow the candidate set. An exact ru language hint narrows the candidate set further: it routes only to compatible OpenAI transcription models.

## Headers

- `X-Speko-Objective` 'latency' | 'quality' | 'cost' | 'balanced'
- `X-Speko-Language` string
- `X-Speko-Allow` string
- `X-Speko-Deny` string
- `X-Speko-Max-Price` number

## Response `200`

Transcription

- object
  - `text` string

## Other responses

- `502` — Every attempted upstream failed before the router could complete the request. Route, reason, and failover-count headers are present; X-Speko-First-Byte-Ms is omitted.
- `default` — Router-generated errors use the Speko JSON error schema. A non-retryable upstream 4xx is passed through after response-header sanitization with its upstream status, media type, and body, which can be non-JSON.

---

[API](https://skmtc.net/speko/apis/speko-voice-router-api.md) · [All operations](https://skmtc.net/speko/apis/speko-voice-router-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/speko/speko-voice-router-api/versions/ef3d201df72e/schema)
