---
title: "Transcribe audio (beta)"
method: POST
path: "/transcribe"
tags: ["Transcriptions"]
---

# Transcribe audio (beta)

`POST /transcribe`

## Request

- Base URL: `https://api.openwhispr.com/api/v1`
- URL: `https://api.openwhispr.com/api/v1/transcribe`
- Auth: HTTP bearer

Upload an audio file and get its transcript back in the same response. Cloud transcription through the API is in beta. Limits, response shape, and availability may change, and there is no SLA. For long recordings or free, private transcription, use the OpenWhispr CLI with the desktop app running. Requires a Pro or Business plan and transcriptions:write on a personal key (owk_live_); workspace keys get 403. Files are capped at 4 MB per request, usage at 600 audio minutes per calendar month, and one transcription runs at a time per key. Each call counts as 5 requests against the key's per-minute and per-day rate limits.

## Request body `multipart/form-data`

- object
  - `file` string, binary, required: Audio file: wav, mp3, m4a/mp4, ogg, flac, or webm. 4 MB max.
  - `language` string: Language code of the audio (e.g. 'en').
  - `prompt` string: Names and jargon to spell correctly, comma-separated.

## Response `200`

The transcript.

- object
  - `data` TranscribeResult
    - `id` string
    - `text` string: The transcript.
    - `language` string: Language of the transcript (e.g. 'en').
    - `duration_ms` integer: Audio length in milliseconds, estimated from file size when the engine does not report it. Counts against the monthly quota.
    - `words` integer: Word count of the transcript.
    - `provider` string: Which transcription provider produced the result. Informational; may change during the beta.
    - `model` string: Which model produced the result. Informational; may change during the beta.
    - `beta` true: Always true while cloud transcription through the API is in beta.

## Other responses

- `400`: validation_error — the file was not recognised as audio.
- `403`: plan_required — Pro or Business needed. Or forbidden — missing transcriptions:write, a workspace key, or an organization policy that blocks cloud transcription.
- `409`: concurrency_limit — a transcription is already running on this key.
- `413`: payload_too_large — the file exceeds 4 MB.
- `429`: quota_exceeded — 600 audio minutes used this calendar month; the message includes the reset date. Or rate_limited — see Retry-After.
- `503`: service_unavailable — the beta is paused. Retry later.

## Changes

- **2026-11-03** `cf6557643deb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openwhispr/apis/openwhispr-api/changes/transcribe/post.md)

---

[API](https://skmtc.dev/openwhispr/apis/openwhispr-api.md) - [All operations](https://skmtc.dev/openwhispr/apis/openwhispr-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openwhispr/apis/openwhispr-api/revisions/cf6557643deb?raw)
