# Speech to text

Transcribe synthetic or user-provided audio with multipart uploads.

`POST /v1/audio/transcriptions` accepts a multipart file upload.

```bash
curl https://api.koscompute.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $KOSCOMPUTE_API_KEY" \
  -F "file=@sample.wav" \
  -F "model=openai/whisper-large-v3-turbo" \
  -F "language=en" \
  -F "response_format=json"
```

## Inputs

`file` and `model` are required. Accepted upload extensions include WAV, MP3, M4A, FLAC, OGG, WebM, MP4, MPEG, and MPGA, subject to a compatible audio or container content type.

`language` is an optional language hint. `temperature` is forwarded when the selected model advertises it. Supported response formats are `json`, `text`, `srt`, `verbose_json`, and `vtt`; timestamp granularities can request word or segment timing where the backend supports them.

## Models and pricing

Current transcription model IDs and per-minute pricing are generated from the public model catalog. Choose a ready model whose `supported_endpoints` includes `/v1/audio/transcriptions`.

## Responses and failures

JSON normally includes the transcription text; verbose formats can add timing and duration data. Plain text and subtitle formats use their corresponding content types. Unsupported file types return `400`. Capacity saturation returns `429` with `Retry-After`; no ready route returns `503`.

Only send audio you are authorized to process. KosCompute's ZDR contract covers request body retention, while operational usage metadata can include audio duration, model, status, timing, and request ID.
