---
title: "POST /transcribe"
method: POST
path: "/transcribe"
---

# POST /transcribe

`POST /transcribe`

Transcribe audio (and supported video formats) into text using speech recognition models. Supports multiple languages, diarization (model-dependent), and various formats. Most models return synchronous results; some models (for example Elevenlabs-STT and voice cloning workflows) return asynchronous job IDs.

## Request body

- TranscribeJsonRequest
  - `audioUrl` string, uri, required — URL to audio file to transcribe
  - `model` 'Whisper-Large-V3' | 'Wizper' | 'Elevenlabs-STT' | 'gpt-4o-mini-transcribe' | 'gpt-4o-mini-transcribe-2025-03-20' | 'gpt-4o-mini-transcribe-2025-12-15' | 'gpt-4o-mini-transcribe-latest' | 'openai-whisper-with-video' | 'qwen-voice-clone' | 'minimax-voice-clone' — The STT model to use for transcription
  - `language` string — Language code for transcription (ISO 639-1 or ISO 639-3). Use 'auto' for auto-detection
  - `actualDuration` string — Actual audio duration in minutes for accurate billing
  - `diarize` boolean — Enable speaker diarization (Elevenlabs-STT only)
  - `tagAudioEvents` boolean — Tag non-speech audio events like [laughter], [applause] (Elevenlabs-STT only)

## Response `200`

Synchronous transcription response (Whisper/Wizper models)

- TranscribeResponse
  - `transcription` string, required — The transcribed text
  - `metadata` object, required
    - `fileName` string — Original file name
    - `fileSize` integer — File size in bytes
    - `chargedDuration` number — Duration charged for billing (in minutes)
    - `actualDuration` number — Actual audio duration (in minutes)
    - `language` string — Detected or specified language code
    - `cost` number, required — Cost of the transcription
    - `currency` string, required — Currency of the cost
    - `model` string, required — Model used for transcription

## Other responses

- `202` — Asynchronous transcription job started (Elevenlabs-STT model)
- `400` — Bad Request - Invalid parameters or file format
- `401` — Unauthorized - Invalid or missing API key
- `402` — Payment Required - Insufficient balance
- `413` — Payload Too Large - File exceeds size limit
- `500` — Internal Server Error

---

[API](https://skmtc.dev/nano-gpt/apis/nanogpt-api.md) · [All operations](https://skmtc.dev/nano-gpt/apis/nanogpt-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nano-gpt/nanogpt-api/revisions/584e96d146b0/schema)
