Endpoints

Audio transcription

Whisper-class speech-to-text. Multipart audio upload, plain-text or SRT/VTT subtitle output.

POST /api/v1/audio/transcriptions
New to transcription? Start with the Audio transcription guide. This page is the field-by-field reference.

POST /api/v1/audio/transcriptions is mirrored at the OpenAI-style alias /v1/audio/transcriptions. Multipart form upload, up to 25 MB per file. Uploads must be wav, mp3, or flac — convert other formats first (e.g. ffmpeg -i input.m4a output.wav).

Body multipart/form-data
file file required
The audio file (wav, mp3, or flac).
model string required
Whisper-class model ID, e.g. whisper-large-v3-turbo.
language string
Optional ISO 639-1 code (e.g. en, cy) to improve accuracy.
prompt string
Optional priming text (acronyms, names) to bias the transcription.
temperature number default: 0
Sampling temperature.
response_format string default: json
json, text, srt, vtt, or verbose_json (timing metadata + optional word/segment timestamps).
timestamp_granularities string[]
["segment"] and/or ["word"]. Only applies with response_format=verbose_json.

Response

The shape depends on response_format. The default json returns { "text": ... } (see example). text returns a plain UTF-8 string. verbose_json adds timing and language metadata plus optional timestamps:

{
  "task": "transcribe",
  "language": "en",
  "duration": 12.48,
  "text": "We're starting the meeting now. First item on the agenda is the Q3 forecast.",
  "segments": [
    { "id": 0, "start": 0.0, "end": 4.2, "text": "We're starting the meeting now.", "avg_logprob": -0.21, "no_speech_prob": 0.01 },
    { "id": 1, "start": 4.2, "end": 12.48, "text": "First item on the agenda is the Q3 forecast.", "avg_logprob": -0.18, "no_speech_prob": 0.02 }
  ]
}

Subtitle output

Set response_format=srt (or vtt) for time-coded captions. The body is the raw subtitle file:

1
00:00:00,000 --> 00:00:04,200
We're starting the meeting now.

2
00:00:04,200 --> 00:00:12,480
First item on the agenda is the Q3 forecast.
curl https://api.pendra.ai/api/v1/audio/transcriptions \
  -H "Authorization: Bearer pdr_sk_..." \
  -F file=@meeting.mp3 \
  -F model=whisper-large-v3-turbo \
  -F response_format=srt

Models

Transcription is built into every Pendra worker — no separate service to install. Two Whisper-class models are available: whisper-large-v3-turbo (fast, multilingual) and whisper-large-v3 (highest accuracy).