Transcription integration
MeetStream transcribes meetings in-house, live during the call or after it ends, for $0.10 per bot-hour. Deepgram, AssemblyAI, Sarvam and JigsawStack are also available with your own provider keys. Speaker labels come from per-participant audio, so they hold whichever engine you pick.
What you get with transcription
Use ours, bring your own key, or take the raw audio and run any model you like.

Post-call or live, with speaker labels, for $0.10 per bot-hour. Post-call runs detect the language and can translate.
Raw, word or sentence chunks reach your webhook during the call.
Backed by per-participant audio, plus a speaker timeline down to the byte.
Connect Deepgram, AssemblyAI, Sarvam or JigsawStack keys in the dashboard and the $0.10 per hour add-on is waived.
One engine runs per request. Switch from meeting to meeting, or re-transcribe a recording later.
The engines, side by side
Each engine takes its own language and output settings, and the table names the request field.
- One engine per requestName it when you create the bot, with its own settings beside it.
- Switch meeting to meetingThe next call can use a different engine entirely.
- Re-transcribe laterRun a stored recording again in another language or on your own key.
| Engine | Mode | Request field | What it is good at |
|---|---|---|---|
| In-house transcription | Post-call | meetstream | Speaker labels, automatic language detection and optional translation, for $0.10 per bot-hour. No provider key needed |
| In-house live transcription | Live | meetstream_streaming | Raw, word or sentence chunks pushed to your webhook during the call. No provider key needed |
| Deepgram | Post-call | deepgram | Diarisation, punctuation and utterances on by default. Runs on your own Deepgram key |
| AssemblyAI | Post-call | assemblyai | Speaker labels, plus optional PII redaction and chapters. Runs on your own AssemblyAI key |
| Sarvam | Post-call | sarvam | Indic languages and English code-switching, with transcribe or translate modes. Runs on your own Sarvam key |
| JigsawStack | Post-call | jigsawstack | Auto-detect or any of 162 languages, with output per speaker. Runs on your own JigsawStack key |
| Deepgram Streaming | Live | deepgram_streaming | Raw, word or sentence chunks pushed to your webhook during the call. Runs on your own Deepgram key |
| AssemblyAI Streaming | Live | assemblyai_streaming | Raw, word or sentence chunks during the call, English by default. Runs on your own AssemblyAI key |
| Meeting captions | Live only | meeting_captions | Native Google Meet and Teams captions, sent live with nothing to set up. Pair it with a post-call run for a stored transcript |
Request fields, languages and output formats for each engine are in the transcription docs.
curl -X POST https://api.meetstream.ai/api/v1/bots/create_bot \
-H "Authorization: Token $MEETSTREAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"meeting_link": "https://meet.google.com/abc-defg-hij",
"bot_name": "Notetaker",
"audio_separate_streams": true,
"recording_config": {
"transcript": { "provider": { "meetstream": { "language": "auto" } } }
},
"callback_url": "https://your-app.example.com/meetstream"
}'A webhook tells you the moment the text is ready, and the get transcription endpoint returns it raw or formatted.
Live transcripts during the call
For products that act during the call, turn on live transcription and give it a webhook URL.
- In-house live transcriptionSends raw chunks by default. Word-level chunks and whole sentences are options, with no provider key needed.
- Your own streaming keyRun Deepgram Streaming or AssemblyAI Streaming on your own provider key instead, with the add-on waived.
- Live text and a stored copyRun live transcription during the call, then re-transcribe the recording afterwards.
One rule to design around
Live transcription, and meeting captions with it, sends the whole text live and stops when the audio is done.
Both texts then sit against the same meeting.
Live transcript chunks to your endpointLive transcription guide: request, response and options in the docsWhy the speaker labels hold up
MeetStream captures audio per participant, so each speaker arrives on their own stream.
- A stable participant IDEvery stream is keyed by it, and the speaker timeline records who was talking down to the byte.
- The transcript inherits itChange the engine and the words change, while the names stay put.
- Per platformPer-participant audio on Zoom, Google Meet and Microsoft Teams.
Bring your own speech-to-text
| What you bring | What happens |
|---|---|
| Your own key | Connect Deepgram, AssemblyAI, Sarvam or JigsawStack keys in the dashboard. MeetStream runs the engine on your account and waives the add-on |
| Your own model | Point the bot at a real-time audio WebSocket and take 48 kHz mono PCM16 frames straight from the room |
| Speaker on every frame | The speaker ID and name arrive with the audio, about 200 ms behind the talk |
| Any sample rate you need | Resample to 16 kHz if your model wants it, then run whatever you like on your side |
The diarisation entry covers where a model still helps, such as uploaded files and dial-in guests.
Raw audio to your own modelReal-time audio streaming guide: request, response and options in the docsEnterprise-level security, keep your data private.
The certificate, the audit status and the Trust Center are all on the security page.
MeetStream is ISO 27001 certified, with SOC 2 Type 2 under audit.
MeetStream is GDPR compliant, and bots run in the United States by default.
Provider keys are stored there, never in requests.
Transcription pricing and defaults
Got a question? We got the answer.
Common questions about transcription. Engines, live chunks, speaker labels and bringing your own model.
Which transcription engines can I use?
Start with MeetStream's in-house transcription, after the call or live during it, for $0.10 per bot-hour and no provider key. Deepgram, AssemblyAI, Sarvam and JigsawStack are also available with your own provider keys, and the meeting platform's own captions need no key. Name the one you want in the recording configuration when you create the bot.
Can I get transcripts in real time?
Yes. In-house live transcription sends raw, word or sentence chunks to your webhook during the call. Deepgram Streaming and AssemblyAI Streaming do the same on your own keys. For a stored transcript as well, re-transcribe the recording after the call.
Can I re-transcribe a meeting?
Yes. The transcribe endpoint runs a stored recording again, in another language or on your own provider key, using the audio you already have. A second endpoint lists every run against that bot, each with its own ID.
Do speaker labels depend on the provider?
Names come from the stream each person is on, plus the speaker timeline. That holds whichever option runs, so the words can change while the names stay put. Per-participant audio works on Zoom, Google Meet and Microsoft Teams.
What does transcription cost?
In-house transcription is a $0.10 per bot-hour add-on. Use your own provider keys and the add-on is waived. You pay the provider at your own rate.
Can I run my own speech-to-text instead?
Yes. Subscribe to the real-time audio WebSocket and you get 48 kHz PCM16 frames with speaker ID and name. They arrive roughly 200 ms behind the room, ready to feed any model you run.
Which languages are supported?
In-house post-call transcription detects the language on its own and can translate the output. Sarvam is built for Indic languages, with transcribe and translate modes. JigsawStack auto-detects across 162 languages. Deepgram and AssemblyAI cover their published language lists. The language field is passed in each provider's own format.
Two transcripts of the same meeting.
$5 of free credit, live and post-call transcription, and re-transcription of any stored recording.
Transcribe your next meeting in-house
$5 of free credit, live and post-call transcription, and no provider key needed.