Whisper Large v3 API
Available PopularWhisper Large v3 transcribes audio in 100 languages with word- and segment-level timestamps. It is served here on the OpenAI-compatible transcriptions endpoint with per-minute billing, so code written for OpenAI's or Groq's Whisper endpoint works by changing the base URL and key.
Quickstart
Set INFERENCE_API_KEY to your key from the API Keys page, then run:
curl https://api.inferenceapis.com/v1/audio/transcriptions \
-H "Authorization: Bearer $INFERENCE_API_KEY" \
-F "model=openai/whisper-large-v3" \
-F "file=@meeting.mp3" \
-F "response_format=verbose_json"
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.inferenceapis.com/v1",
api_key=os.environ["INFERENCE_API_KEY"],
)
with open("meeting.mp3", "rb") as f:
result = client.audio.transcriptions.create(
model="openai/whisper-large-v3",
file=f,
response_format="verbose_json",
)
print(result.text)
import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.inferenceapis.com/v1",
apiKey: process.env.INFERENCE_API_KEY,
});
const result = await client.audio.transcriptions.create({
model: "openai/whisper-large-v3",
file: fs.createReadStream("meeting.mp3"),
response_format: "verbose_json",
});
console.log(result.text);
When to use it
- Broad language coverage with automatic language detection
- Files up to 100 MB and SRT or VTT subtitles straight from the API
- Speaker labels with diarize=true, at the same price
- You need live streaming transcription
What it costs in practice
| Workload | Cost |
|---|---|
| 1 hour of audio | $0.12 |
| 100 hours of audio | $12.00 |
| 1,000 hours of audio | $120 |
Computed from the live rate below. There is no subscription or minimum; new accounts start with free credit.
Endpoint
Content-Type: multipart/form-data
/openai/v1/… is accepted too, so Groq-style base URLs work with only the host changed.
Model IDs and aliases
Send any of these as model; they all resolve to this model and bill at its rate.
| ID | Note |
|---|---|
openai/whisper-large-v3 | Canonical |
whisper-large-v3 | Alias |
whisper-large-v3-turbo | Groq's id. Answered by the full Large v3 model, which is slightly more accurate than Turbo, not a faster one |
whisper-1 | Same id as on OpenAI — switch by changing the base URL only |
whisper | Alias |
Request body
| Parameter | Type | Description |
|---|---|---|
model required |
string | Model ID: openai/whisper-large-v3 — also accepted: whisper-large-v3, whisper-large-v3-turbo, whisper-1, whisper |
file required |
file | The audio file (multipart/form-data): mp3, mp4, m4a, wav, webm, flac, ogg. Up to 100 MB. |
language |
string | ISO-639-1 language code, e.g. en. Improves accuracy and latency when known. |
prompt |
string | Optional text to guide style or spelling of names and terms. |
response_format |
string | json (default), verbose_json, text, srt or vtt. |
timestamp_granularities |
array | ["segment"] and/or ["word"] with verbose_json. |
temperature |
number | Sampling temperature between 0 and 1. |
Response
{
"language": "en",
"duration": 12.4,
"text": "Thanks everyone for joining. Let's start with the roadmap.",
"segments": [
{ "id": 0, "start": 0.0, "end": 3.1, "text": "Thanks everyone for joining." },
{ "id": 1, "start": 3.1, "end": 6.0, "text": "Let's start with the roadmap." }
]
}
Pricing
| Price | $0.002 / audio minute |
| Billing | Pay as you go from prepaid credits. No subscription, no daily request or token cap. See all pricing. |
Notes
- Billing is per minute of audio (measured from the uploaded file). Files up to 100 MB are accepted.
- Use
response_format=verbose_jsonfor language detection, duration and segments;srtandvttreturn subtitle files.
Compare Whisper Large v3 with…
Languages
Per-language codes, tips and quickstarts: speech-to-text languages.
Questions about Whisper Large v3
How accurate is it for my language?
It varies enormously: a few percent word error in Spanish, Italian or English, and unusable output in some low-resource languages. We measured every language on public test clips through this endpoint; see accuracy by language.
I send whisper-1 or whisper-large-v3-turbo. What runs?
Whisper Large v3 in both cases. OpenAI's whisper-1 is the older Large v2, and Groq's Turbo is a pruned, faster Large v3, so expect equal or slightly better accuracy here, at the same request shape.
Can it translate speech to English?
The /v1/audio/translations endpoint is not offered. Transcribe in the source language, then translate the text with a chat model on the same key; that is usually better than Whisper's built-in translation anyway.
How should I handle long recordings?
Uploads up to 100 MB are accepted, which is about 100 minutes of 128 kbps mp3. For longer audio, or to get results sooner, split into 10 to 20 minute parts at silences and send them in parallel; processing runs at about 5% of real time.
Does it identify speakers?
Yes. Add diarize=true to the request and every word comes back with a speaker label, segments become one entry per speaker turn, and text, srt and vtt output are prefixed with SPEAKER_00: and so on. min_speakers and max_speakers are optional hints. No extra charge. On our three-voice test clip all three speakers were found and 82.5 percent of words carried the right label; the diarization page has the details and the limits.
Does it work on live audio?
No. It transcribes recorded files. See Whisper vs Deepgram for streaming.
Licence
Whisper Large v3 is published by OpenAI under the MIT. Your use of its output is also subject to that licence.
Errors
Errors use the OpenAI envelope: {"error": {"message", "type", "code"}}. 401 missing or invalid key · 402 insufficient_balance · 404 model_not_found · 503 model_unavailable · 502 backend error, safe to retry. Full table with what to retry: API documentation. Errors from other providers: provider error reference.
