Speech to text
Whisper
OpenAI's general-purpose speech recognition model. Upload a recording, get text back, pay per second of audio.
WAV, FLAC, OGG, MP4/M4A, MP3 · Uploads up to 8 MiB
$0.0063Per minute
Price
- Per minute
- $0.0063
- Per hour
- $0.38
Includes the MiniRouter fee. Tokens are not charged.
Estimate your cost
Priced per second of audio.
Uploads up to 8 MiB.
Estimated cost
Includes the MiniRouter fee. Credit is held on an upper bound of the upload’s duration and released on settlement.
Estimate only; nothing is sent. Your charge settles to the provider’s reported seconds plus the MiniRouter fee.
Use the Transcription API
Set MINIROUTER_API_KEY to your inference key and copy the example.
Use a recording named recording.mp3, up to 8 MiB.
curl --fail-with-body --retry 0 --max-time 120 \
https://api.minirouter.sh/v1/audio/transcriptions \
-H "Authorization: Bearer $MINIROUTER_API_KEY" \
-F 'file=@recording.mp3' \
-F 'model=openai/whisper-1' \
-F 'response_format=json'Keep the request ID and check Request logs for the settled cost. A failed or disconnected request may still incur a cost; these examples disable automatic retries.
How it works
- Endpoint
- POST /v1/audio/transcriptions
- Multipart file and model, or JSON with base64 audio and media_type.
- Accepted media
- wav, flac, ogg, mp4/m4a, mp3
- Up to 8 MiB and 3,600 s per upload.
- Response
- json, text, verbose_json
- verbose_json adds language, duration and segments.
- Billing
- Per second of audio
- Settles to the duration the provider reports.
Pay for the seconds you send.
Per minute
- Whisper
- $0.0063
- MAI-Transcribe 2
- $0.0018
Per hour of audio
- Whisper
- $0.38
- MAI-Transcribe 2
- $0.11
View chart data
| Model | Model ID | Per minute | Per hour |
|---|---|---|---|
| Whisper | openai/whisper-1 | $0.0063 | $0.38 |
| MAI-Transcribe 2 | microsoft/mai-transcribe-2 | $0.0018 | $0.11 |
Held by duration, settled by usage.
- [ 01 ]
Duration from the file
The hold is the file's duration, rounded up to a second, times the per-second rate. Unreadable or WebM audio is rejected before any hold.
- [ 02 ]
Settled to reported duration
The charge follows the duration the provider reports. Anything left on the hold is released.
- [ 03 ]
Visible in Request logs
Rows show transcription_seconds with zero tokens. The CSV export carries the same column.