Whisper Large v3 API
Available PopularWhisper Large v3 transcribes audio in 99 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);
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.
| ID | Note |
|---|---|
openai/whisper-large-v3 | Canonical |
whisper-large-v3 | Alias |
whisper-large-v3-turbo | Same id as on Groq — switch by changing the base URL only |
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.
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. See the error reference and provider error guides.
