Back to Comparison Hub/Whisper Pricing
other

Whisper API Pricing

Whisper turns spoken audio into accurate written text. Upload an audio file URL and receive a clean transcription, with optional timestamped subtitle output (SRT or VTT) for video captioning, podcast transcripts, meeting notes, and voice-driven workflows.

Savings Alert60% ↓Cheaper than Fal.ai

About Whisper

Whisper is a robust speech-to-text model that converts spoken audio into accurate written transcripts across dozens of languages. Submit an audio URL and receive a clean transcription, optional segment-level timestamps, or ready-to-use SRT/VTT subtitles, making it ideal for podcasts, meetings, video captioning, and any voice-driven workflow.

Interactive Savings Calculator

Estimate monthly API spend and compare absolute developer savings.

Monthly API Generations10,000 runs
50025,00050,00075,000100,000+
MuAPI Monthly Cost

$120.00

$0.012 per minute
Fal.ai Cost

$300.00

Not available
Estimated Monthly Savings$180.00
Annual Savings$2160.00

Detailed Pricing Breakdown

ProviderEstimated RateNotes
muapiapp$0.012 per minutePay only for the audio you transcribe, billed per minute with a 1-minute minimum.
Fal.aiNot availableWhisper is not offered as a managed endpoint on Fal.ai.
Replicate~$0.011 per minutePricing varies with the underlying GPU; muapiapp offers a flat, predictable per-minute rate.

Developer Integration Snippets

1import requests 2import time 3import json 4 5api_key = "YOUR_API_KEY" 6url = "https://api.muapi.ai/workflow/run/openai-whisper" 7 8def poll_for_result(run_id): 9 url = f"https://api.muapi.ai/workflow/run/{run_id}/api-outputs" 10 headers = { 11 "Content-Type": "application/json", 12 "x-api-key": f"{api_key}", 13 } 14 while True: 15 response = requests.get(url, headers=headers) 16 result = response.json() 17 18 if result['status'] == 'completed': 19 return json.loads(result['outputs']) 20 21 if result['status'] == 'failed': 22 raise Exception(result.get('error', 'Generation failed')) 23 24 time.sleep(5) 25 26data = { 27 "schemas": { 28 "input_data": { 29 "x-order-properties": [ 30 "audio_url", 31 "language", 32 "prompt", 33 "response_format", 34 "temperature" 35 ], 36 "type": "object", 37 "properties": { 38 "audio_url": { 39 "examples": [ 40 "https://d3adwkbyhxyrtq.cloudfront.net/ai-audio/sample.mp3" 41 ], 42 "description": "URL of the audio file to transcribe. Supported formats: mp3, mp4, mpeg, mpga, m4a, wav, webm. File must be under 25 MB.", 43 "field": "audio", 44 "type": "string", 45 "title": "Audio URL", 46 "name": "audio_url" 47 }, 48 "language": { 49 "type": "string", 50 "title": "Language", 51 "name": "language", 52 "description": "Optional ISO-639-1 language code of the input audio (e.g. 'en', 'es', 'hi'). Leave empty for automatic detection.", 53 "examples": [ 54 "en" 55 ] 56 }, 57 "prompt": { 58 "type": "string", 59 "title": "Prompt", 60 "name": "prompt", 61 "description": "Optional context to guide the model's style or to spell out unusual words and proper nouns. Should match the audio language.", 62 "examples": [ 63 "The transcript is a podcast about AI startups." 64 ] 65 }, 66 "response_format": { 67 "enum": [ 68 "json", 69 "text", 70 "srt", 71 "verbose_json", 72 "vtt" 73 ], 74 "type": "string", 75 "title": "Response Format", 76 "name": "response_format", 77 "description": "Output format. 'json' / 'text' return plain transcripts, 'srt' / 'vtt' return timestamped subtitles, 'verbose_json' includes per-segment metadata.", 78 "default": "json" 79 }, 80 "temperature": { 81 "type": "number", 82 "title": "Temperature", 83 "name": "temperature", 84 "description": "Sampling temperature between 0 and 1. Higher values make output more random; lower values make it more deterministic.", 85 "default": 0 86 } 87 }, 88 "title": "BaseInput", 89 "required": [ 90 "audio_url" 91 ], 92 "endpoint_url": "openai-whisper" 93 }, 94 "output_data": { 95 "type": "object", 96 "properties": { 97 "text": { 98 "type": "string", 99 "title": "Transcription", 100 "description": "Transcribed text from the audio.", 101 "examples": [ 102 "Welcome to the show. Today we're talking about..." 103 ] 104 } 105 }, 106 "title": "OpenAIWhisperOutput", 107 "required": [ 108 "text" 109 ] 110 } 111 } 112} 113 114headers = { 115 "Content-Type": "application/json", 116 "x-api-key": f"{api_key}", 117} 118 119response = requests.post(url, json=data, headers=headers) 120 121result = response.json() 122print("Queued:", result) 123 124outputs = poll_for_result(result["run_id"]) 125print("Completed:", outputs) 126

Model FAQ

Ready to scale your production?

Get instant access to developer keys. Integrate high-speed dynamic models in minutes with our robust SDKs.