---
title: "Transcribe audio synchronously"
method: POST
path: "/audio/transcriptions"
tags: ["transcription"]
---

# Transcribe audio synchronously

`POST /audio/transcriptions`

## Request

- Base URL: `https://api.aquavoice.com/v1`
- URL: `https://api.aquavoice.com/v1/audio/transcriptions`
- Auth: HTTP bearer

Uses a 210-second overall deadline. If the wait times out after the job
is stored, processing continues and the `504 request_timeout` error
body carries `error.job_id`; poll that job to follow its status. The
`x-request-id` response header carries the same value.

## Headers

- `Idempotency-Key` string
- `X-Client-Request-Id` string

## Request body `multipart/form-data`

- TranscriptionRequest
  - `file` string, binary, required: Audio in flac, mp3, mp4, mpeg, mpga, m4a, ogg, opus, wav, or webm format. Maximum 256 MiB and four hours of decoded audio.
  - `model` 'avalon-v1.5', required: The Avalon model to use.
  - `language` string: ISO 639-1 language code. Omit it or use `auto` to detect the language.
  - `prompt` string: Context or vocabulary hints for the transcription.
  - `response_format` 'json' | 'text' | 'srt' | 'vtt' | 'verbose_json' | 'diarized_json': Response format. Defaults to `json`, or to `diarized_json` when `diarize` is true. A diarized transcription supports only `diarized_json`, `srt`, and `vtt`.
  - `diarize` boolean: Labels who speaks each word. The result has speaker turns with word timings. Speaker IDs (`spk_0`, `spk_1`, ...) are in order of first speech. A transcription has a maximum of 8 speakers.
  - `max_speakers` integer: The maximum number of speaker labels. Only with `diarize`. The speakers with the most detected speech keep their labels; words of other speakers go to the closest kept speaker. It does not change how many speakers the model detects.
  - `temperature` 0: Compatibility no-op. Nonzero values are unsupported.
  - `stream` false: Avalon is batch-only, so only false is accepted.
  - `timestamp_granularities` string[]: Only `segment` is supported, and only with `verbose_json`.

## Response `200`

Transcription result.

- Transcription
  - `task` 'transcribe'
  - `text` string, required
  - `language` string
  - `duration` number
  - `segments` object[]
  - `usage` object, required
    - `type` 'duration', required
    - `seconds` number, required

## Other responses

- `default`: OpenAI-compatible Avalon error.

---

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