SaidwireDevelopers

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

FormatsWAV, MP3, FLAC, Ogg/Opus, WebM
Sizeup to 100 MB and 60 minutes of audio per request
Responsethe transcript in the same HTTP response, with words[] (start, end, punctuated_word)
Concurrency2 file requests at once per key by default; ask for more
LanguageEnglish

Options

parameterwhat it does
keyterm=names and terms spelled the way you wrote them
numerals=truenumbers, prices, percentages, phone numbers and emails written the way people write them
redact=pci,ssn,phone,emailmasks sensitive numbers and addresses (or redact=true for all four)
punctuate=truesentence 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.