Fast mode

View as Markdown

Fast mode provides synchronous transcription for individual audio files. The response returns immediately after the transcription completes.

Capabilities

  • Processes one audio file at a time
  • Returns results after transcription completes
  • Optimized for short recordings
  • Supports language detection, model selection, custom vocabulary, and Text Polishing (en-US only, without language detection)

Fast mode accepts mono or stereo audio. With channel_separation=false, stereo audio is mixed down to mono and a single transcript is returned. With channel_separation=true, each channel is recognized independently and each segment includes a channel tag.

Audio requirements

  • Formats: WAV, MP3, M4A, MP4, and WebM
  • Channels: Mono or stereo
  • Sample rate: At least 8 kHz; 16 kHz or greater is recommended
  • Maximum duration: 2 hours
  • Maximum file size for URL input: 300 MB
  • Maximum request body size when sending audio as a data URL: 2 MB

Transcription options

These options control recognition. For full descriptions, see Speech configuration.

ParameterTypeDefaultDescription
languagestringen-USLanguage code, such as en-US. See Speech configuration for supported languages.
segmentation_modestring"auto"Voice Activity Detection (VAD) mode. Set "none" to disable.
word_time_offsetsbooleanfalseInclude word-level timestamps.
channel_separationbooleanfalseTranscribe stereo channels separately.
diarizationbooleanfalseIdentify speakers and add a speaker tag to each transcript segment.
modelstringAutomaticSelect a compatible recognition model. For multilingual recognition, use zoom-scribe-multilingual or whisper, the same IDs used in Live mode.
language_detectionobject—Detect the input language once or continuously. Omit model when mode is once.
profanity_filterbooleanfalseFilter profanity when supported by the selected model.
text_polishingobject—Whether to return polished text. enabled boolean defaults to false. See Text Polishing.
vocabularyobject—Apply an inline phrase list to this request.
vocabulary_idstring—Apply a persistent Vocabulary Asset.

For model and language options, see Speech configuration. For vocabulary options, see Custom vocabulary.

Audio transcription

Use this endpoint to send an audio file for synchronous transcription:

POST /aiservices/scribe/transcribe

Example request (cURL)

This cURL example sends an audio file to the Scribe API and returns a transcription:

curl -X POST https://api.zoom.us/v2/aiservices/scribe/transcribe \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "file": "https://example.com/path/clip.mp3",
    "config": {
      "language": "en-US",
      "model": "zoom-scribe-en",
      "word_time_offsets": true,
      "channel_separation": false,
      "diarization": true
    },
    "outputs": {
      "text_polishing": {
        "enabled": true
      }
    }
  }'

Response (200)

{
    "request_id": "3f2b8c1e-7a4d-4e9b-b6f0-1c5d8a2e9b47",
    "duration_sec": 27.4,
    "result": {
        "text_display": "Um, welcome everyone. Let's get started.",
        "segments": [
            {
                "start": 0.0,
                "end": 5.2,
                "channel": 0,
                "speaker": "Speaker 1",
                "text": "Um, welcome everyone. Let's get started.",
                "words": [
                    { "word": "Welcome", "start": 0.0, "end": 0.4 },
                    { "word": "everyone", "start": 0.41, "end": 0.9 }
                ]
            }
        ]
    },
    "outputs": {
        "text_polishing": {
            "text": "[Speaker 1] Welcome everyone. Let's get started."
        }
    },
    "model": "zoom-scribe-en"
}

Text Polishing is optional. When enabled, it does not replace the transcript under result. See Text Polishing.