Skip to content

Audio transcription

Two endpoints, served by models carrying the audio category:

Endpoint Purpose
POST /audio/transcriptions Speech to text in the spoken language.
POST /audio/translations Speech in any supported language to English text.

Both take multipart form data, not JSON — the audio file is uploaded rather than embedded.

Terminal window
curl https://api.resetdata.ai/api/v1/audio/transcriptions \
-H "Authorization: Bearer $RESETDATA_API_KEY" \
-F file="@meeting.mp3" \
-F model="openai/whisper-large-v3-turbo"

Same shape, different endpoint — use client.audio.translations.create(...), or POST /audio/translations. Output is always English regardless of the input language.

  • language — an ISO-639-1 code such as en or fr. Supplying it when you know the language avoids misdetection on short or noisy clips and is usually faster.
  • response_format — plain text or a structured format; some models offer timestamped output suitable for subtitles.
  • temperature — leave at the default unless you have a reason; higher values make transcription less literal, which is rarely what you want.

Availability differs per model, so check supported_parameters — see Model parameters.

Audio is billed per minute of input, not per token — see Usage and costs.

Uploads are subject to a request size limit, and long recordings are the usual thing to trip it. Split long audio into chunks and transcribe them in sequence, cutting on silence where you can so a word isn’t split across the boundary.

Because the file uploads before processing begins, a large file over a slow link spends real time in transit — set client timeouts accordingly, and see Rate limits and queueing.

  • Audio quality dominates. A clean 16 kHz recording beats a noisy 48 kHz one.
  • Domain vocabulary, names and acronyms are the most common errors; if downstream accuracy matters, post-process with a text model to normalise known terms.
  • Speaker diarisation — labelling who said what — is not provided by these endpoints.