The speech API that knows who's talking
Re:WayAI turns real-world conversations into structured, speaker-attributed transcripts. State-of-the-art diarization, real names on every line, one API call away.
Diarization tuned and continuously evaluated on messy, overlapping, real-world conversations.
European languages through the same pipeline, with the same speaker accuracy.
Source audio is deleted the moment processing completes. Deleted, not archived.
Free credit on every new account. Per-minute billing after that — no subscriptions.
From raw audio to named speakers
One job, four stages. Each stage returns its results as soon as it finishes — you never wait for the whole pipeline to read the transcript.
Upload or stream
Send any common audio or video format — conversion is handled. Or stream 16 kHz PCM over a WebSocket for real time.
Accurate ASR
Word-level timestamps in 25 European languages, batch or streaming, built for conversational speech.
Who spoke when
State-of-the-art segmentation by voice — robust to overlap, crosstalk and far-field microphones.
Real names
Names inferred from conversational context or matched against enrolled voices — with confidence and quoted evidence.
Three calls to a finished transcript
A boring, predictable REST API — the way infrastructure should be.
- Incremental results — show the plain transcript while attribution is still running
- Stage control — run
asralone, adddiar, add attribution; pay only for what runs - Voice enrollment — a 10-second sample once, recognition by name forever
- WebSocket streaming — partial results as words are spoken
# 1 — upload curl -X POST https://rewayai.ai/api/pipeline/upload \ -H "Authorization: Bearer rw_..." \ -F "file=@meeting.mp3" # → {"key": "u42/ab12cd34.mp3", ...} # 2 — create a job (asr + diarization + attribution) curl -X POST https://rewayai.ai/api/pipeline/jobs \ -H "Authorization: Bearer rw_..." \ -d '{"input_key": "u42/ab12cd34.mp3"}' # → {"id": 123, "status": "created", ...} # 3 — poll; stages land incrementally curl https://rewayai.ai/api/pipeline/jobs/123/stages \ -H "Authorization: Bearer rw_..." # → "merged": [{"speaker": "SPEAKER_00", # "text": "Welcome everyone..."}], # "llm": {"speakers_meta": {"SPEAKER_00": # {"name": "Sarah Chen", "confidence": 0.92}}}
import requests API = "https://rewayai.ai/api/pipeline" H = {"Authorization": "Bearer rw_..."} # upload, then create a job key = requests.post(f"{API}/upload", headers=H, files={"file": open("meeting.mp3", "rb")}).json()["key"] job = requests.post(f"{API}/jobs", headers=H, json={"input_key": key}).json() # poll until done, then read named segments stages = requests.get(f"{API}/jobs/{job['id']}/stages", headers=H).json() names = {s: m["name"] for s, m in stages["llm"]["speakers_meta"].items()} for seg in stages["merged"]: print(names.get(seg["speaker"]), "—", seg["text"])
import asyncio, json, websockets async def stream(pcm_chunks): # 16 kHz mono PCM16 uri = "wss://rewayai.ai/api/pipeline/stream" async with websockets.connect(uri) as ws: await ws.send(json.dumps( {"token": "rw_...", "language": "en"})) async for msg in ws: ev = json.loads(msg) # {"type": "partial"|"final", "text": ...} print(ev["type"], ev.get("text", ""))
Built for the hard part: the speakers
Transcription is table stakes. Getting the speakers right on real-world audio is what we obsess over.
Overlap-robust diarization
Segmentation that holds up on interruptions, crosstalk and far-field recordings — not just clean studio audio.
Context-aware attribution
Speakers get real names inferred from the conversation itself — each with a confidence score and the quoted evidence behind it.
Voice enrollment
Enroll a voice once with a short sample; that person is recognized by name in every future job. Strictly opt-in, per job.
Real-time streaming
Live transcription over a WebSocket with partial results as words are spoken — straight from a microphone or a call.
Transcript Q&A
Ask questions about any finished transcript — answers are grounded strictly in what was said, nothing invented.
25 European languages
English plus 24 more, through the same pipeline — same diarization, same attribution, same accuracy.
Your audio never outlives the job
Voice recordings are some of the most sensitive data there is. The pipeline is built around that fact — not audited into shape afterwards.
Audio deleted immediately
Source audio is deleted the moment processing completes. We never retain, reuse or train on your recordings — there is nothing left to leak.
ISO 27001, our own DC
Re:WayAI is ISO 27001 certified. Every job runs inside our own certified data center — your audio never leaves it, and no third-party cloud or AI API ever touches it.
Transcripts stay yours
Finished transcripts are stored for you until you delete them — retrieve, export or remove them at any time via the console or the API.
Extremely competitive, pay per minute
Only pay for audio you process
We run our own hardware in our own data center — no hyperscaler margin baked into every minute. That's exactly why we can undercut the big transcription APIs.
- Billed per minute of audio — no subscriptions, no minimums
- Pay only for the stages you run: ASR, diarization, attribution
- Live per-minute rates in the console, metered usage API included
- Volume pricing for larger workloads — talk to us
free credit — roughly 120 hours of
speaker-attributed transcription
Stop shipping transcripts that say “Speaker 1”
Upload your first recording and get a speaker-attributed transcript in minutes.