Private GPU · not OpenAI · no rush
Send audio.
Get text.
Whisper runs on our private GPU. Your audio is not sent to OpenAI. A small, inexpensive queue for people who are not in a rush — no speed guarantee.
Looking to generate MIDI? We have the solution.
Current wait
about a minuteQueue is clear. Typical file, one at a time. Estimate, not a promise.
SPEAKER_00: Bonjour. SPEAKER_01: Allô — on commence ? [00:00:12] SPEAKER_00: Oui. On parle du trimestre.
How it works
01
Upload or POST
Drop a file in the app, or send multipart audio to the API with your key.
02
It waits in line
We don’t promise when. The homepage and your file list show a live estimate. Minutes, hours — the point is it gets done, not that it’s instant.
03
Download or webhook
Watch the page, poll GET for txt/srt/json, or take a webhook when it’s ready.
Formats: plain text, <span class="font-mono text-zinc-300">[HH:MM:SS]</span> timestamps, SRT, JSON speaker arrays.
Plans
Start free. Subscribe when you have more audio. Checkout shows the price in your currency. If you’re in a hurry, this is still the wrong product — no speed SLA.
Free
$0 forever
- ✓ 3 files per day
- ✓ Maximum 20 minutes of audio
- ✓ Longer files are dropped immediately
- ✓ No speed SLA — delivery eventually
- ✓ txt, srt, JSON, speaker names
Whisper 100h
100h / month
Priced in your currency at checkout.
- ✓ 100 hours of audio every month
- ✓ Unused hours stay valid for 12 months
- ✓ Files up to 500 MB
- ✓ Cancel anytime — unused hours stay, this month is not refunded
- ✓ Or refund the last paid month immediately, no questions — no chargeback needed
API
Always async. POST returns 202. Free: 3 files/day, 20 minutes max. Paid: 100 hours/month, unused hours last a year. Poll or wait for the webhook — we will not hold your HTTP request open.
Create
curl -X POST https://whisper.byel.dev/api/v1/transcriptions \
-H "Authorization: Bearer lw_live_…" \
-F audio=@meeting.m4a \
-F webhook_url=https://example.com/hooks/whisper \
-F diarize=true \
-F timestamps=false
# 202
{"id":"t_01J…","status":"queued"}
Live poll + rename
GET /api/v1/transcriptions/t_01J…
GET /api/v1/transcriptions/t_01J….txt
GET /api/v1/transcriptions/t_01J….srt
GET /api/v1/transcriptions/t_01J….json
# .txt / .srt return 409 while processing
PATCH /api/v1/transcriptions/t_01J…
{"speaker_names":{"SPEAKER_00":"Marie"}}
Webhook body
{
"id": "t_01J…",
"status": "completed",
"language": "fr",
"text": "SPEAKER_00: Bonjour.\nSPEAKER_01: Allô.",
"srt": "1\n00:00:00,000 --> 00:00:02,100\nSPEAKER_00: Bonjour.\n\n",
"speaker_names": {},
"segments": [
{"start": 0.0, "end": 2.1, "text": "Bonjour.", "speaker": "SPEAKER_00", "speaker_name": "SPEAKER_00"}
]
}
# Header: X-Letzwhisper-Signature: sha256=HMAC(api_token, raw_body)
Privacy
Whisper runs on our private GPU. Nothing is sent to OpenAI. We don’t listen to your audio, train on it, sell it, or use it for anything else. We transcribe the file and give you the text. That’s the whole product.
- ✓Whisper runs on our private GPU. Nothing is sent to OpenAI.
- ✓Audio is deleted 30 days after transcription if you don’t do anything.
- ✓The transcript stays available (txt, srt, JSON) after the audio is gone.
- ✓You can delete the transcript yourself whenever you want.