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

# Transcribe audio

`POST /v1/transcriptions`

Convert speech to text.  Upload audio file containing speech and get back text that represents the content of the audio file.

## Headers

- `X-Data-Retention` boolean

## Response `200`

OK

- TranscriptionResponse — Response from speech-to-text.
  - `request_id` string, uuid — for audit purposes.
  - `text` string
  - `segments` Segment[], nullable — Either `sentence-level` or `word-level` groupings of your transcript. Each sentence (or word) will fall within a time range.
    - `text` string, required — the text that belongs in this timeframe.
    - `start` number, required — the exact time when this segment started.
    - `end` number, required — the exact time when this segment ended.

## Changes

- **2026-04-30** `345ddd9a88d1` — 11 breaking, 2 warning, 7 info
  - the request property `content` became required
  - removed the enum value `am` of the request property `language`
  - removed the enum value `en` of the request property `language`
  - removed the enum value `ha` of the request property `language`
  - …16 more
- **2026-01-22** `d909291d8029` — 1 warning, 1 info
  - deleted the `header` request parameter `Spitch-X-Data-Retention`
  - added the new optional `header` request parameter `X-Data-Retention`
- **2026-01-22** `a561cc9455e2` — 1 breaking, 1 warning, 1 info
  - for the `header` request parameter `Spitch-X-Data-Retention`, default value `true` was added
  - removed the optional property `timestamp` from the response with the `200` status
  - added the optional property `timestamps` to the response with the `200` status
- **2026-01-21** `216389e12033` — 1 info
  - added the optional property `timestamp` to the response with the `200` status
- **2026-01-21** `9caec45089fb` — 2 breaking, 1 warning, 10 info
  - request body became required
  - removed `#/components/schemas/STTModelEnum` from the `model` request property `anyOf` list
  - removed the optional property `timestamps` from the response with the `200` status
  - api operation id `transcribe_v1_transcriptions_post` removed and replaced with `transcribeAudio`
  - …9 more

[Full history](https://skmtc.dev/spi-tch/apis/spitch-api/changes/v1/transcriptions/post.md)

---

[API](https://skmtc.dev/spi-tch/apis/spitch-api.md) · [All operations](https://skmtc.dev/spi-tch/apis/spitch-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/spi-tch/spitch-api/revisions/345ddd9a88d1/schema)
