Use case · File transcription
Audio file transcription API
Not everything is live. Saidwire's file API transcribes recorded English audio with the same Wire-1 model that streams for voice agents: one HTTP request in, the full transcript with word timings out. It works with plain HTTP, with any /v1/listen-compatible client, and with the official OpenAI SDKs. On Coval's STT benchmark, Wire-1's word error rate was 3.8% over the 30-day window to Nov 9, 2026. Source: Coval model page, 30-day window to Nov 9, 2026, 2,857 samples, US-hosted endpoint. Add your own network round trip. Method and how to reproduce.
Upload a file
curl -s -X POST "https://api.saidwire.com/v1/listen?punctuate=true" \
-H "Authorization: Token $SAIDWIRE_API_KEY" \
-H "Content-Type: audio/wav" \
--data-binary @interview.wav \
| jq -r '.results.channels[0].alternatives[0].transcript'
Or point at a URL
curl -s -X POST "https://api.saidwire.com/v1/listen?punctuate=true&numerals=true" \
-H "Authorization: Token $SAIDWIRE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/episode-42.mp3"}'
The file must be on a public address; downloads time out after 30 seconds.
With the OpenAI SDK
Change the base URL and the key. POST /v1/audio/transcriptions accepts the same fields the SDK sends.
# pip install openai
import os
from openai import OpenAI
client = OpenAI(base_url="https://api.saidwire.com/v1", api_key=os.environ["SAIDWIRE_API_KEY"])
with open("interview.mp3", "rb") as f:
r = client.audio.transcriptions.create(model="saidwire-en", file=f)
print(r.text)
Node, the Vercel AI SDK, LiteLLM, n8n and other tools built on the OpenAI API work the same way. Assistants such as Claude and Cursor can transcribe files through the Saidwire MCP server.
Formats and limits
| Formats | WAV, MP3, FLAC, Ogg/Opus, WebM |
| Size | up to 100 MB and 60 minutes of audio per request |
| Response | the transcript in the same HTTP response, with words[] (start, end, punctuated_word) |
| Concurrency | 2 file requests at once per key by default; ask for more |
| Language | English |
Options
| parameter | what it does |
|---|---|
keyterm= | names and terms spelled the way you wrote them |
numerals=true | numbers, prices, percentages, phone numbers and emails written the way people write them |
redact=pci,ssn,phone,email | masks sensitive numbers and addresses (or redact=true for all four) |
punctuate=true | sentence case and punctuation |
Cost
120 free hours with no card and no deadline, up to 4 streams at once, then $0.25 per audio hour, billed per second. You pay for the seconds of audio in the file. Audio is processed in memory and never stored.
Questions
Which file formats work?
WAV, MP3, FLAC, Ogg/Opus and WebM, up to 100 MB and 60 minutes per request.
Does the OpenAI SDK work?
Yes. Set the base URL to https://api.saidwire.com/v1 and call audio.transcriptions.create with your Saidwire key.
Can I send a URL instead of uploading?
Yes. POST JSON {"url": "https://..."} to /v1/listen. The file must be on a public address.
Do you keep my files?
No. Audio is processed in memory and never stored.
Questions or stuck? Email support@saidwire.com with the request ID from the failed call.
Pipecat, LiveKit, Vapi, OpenAI and the other names on this page belong to their respective owners. They are named only to describe compatibility; no partnership or endorsement is implied. Coval benchmark figures are from Coval's public model page; Coval does not endorse Saidwire.