# Meeting Transcription API for Zoom, Meet and Teams

> Send a bot into any Zoom, Google Meet or Microsoft Teams call and get a speaker-labelled transcript back. Real-time or post-call, from $0.45 per hour all-in.

Source: https://meetstream.ai/meeting-transcription-api

## Meeting Transcription API for Zoom, Google Meet and Microsoft Teams

One POST request sends a bot into a Zoom, Google Meet or Microsoft Teams call and returns a speaker-labelled transcript over a webhook or a live WebSocket. Speaker identity comes from a separate audio stream per participant, not from a model guessing who spoke.

### What is a meeting transcription API?

A meeting transcription API turns a live video call into text your code can use. It does two separate jobs that are easy to confuse. First it has to capture the audio out of a meeting that is happening inside Zoom, Google Meet or Microsoft Teams. Then it has to transcribe that audio into text.

Speech engines only do the second job. Deepgram, AssemblyAI and Whisper convert audio you already have. They cannot join a meeting. Getting the audio out is the harder half, and it is what a meeting bot API exists to solve. MeetStream sends a bot into the call as a participant, captures the audio, and returns the transcript, so you integrate once instead of building a capture layer and then bolting an engine onto it.

### How the meeting transcription API works

Four steps, one integration.

- POST a meeting link to the API.

- A bot joins the call. Scheduled bots join on time, and ad hoc bots join in under ten seconds on average.

- Text streams to your WebSocket while the meeting runs, if you asked for live transcription.

- A webhook fires when the call ends and the finished transcript is available to GET.

```
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", "transcription": { "provider": "meetstream", "live": true }, "webhook_url": "https://your-app.example.com/meetstream" }'
```

The response is a list of utterances, each one already attributed to a named participant with start and end times, so you can build a scorecard, a summary or a search index without post-processing speaker turns yourself.

```
{ "transcript": [ { "speaker": "Amy Stace", "start": 12.44, "end": 16.10, "text": "I have gone over the documents and the numbers look right." }, { "speaker": "Theo Flynn", "start": 16.52, "end": 19.08, "text": "Good. Then we can send the draft across this afternoon." } ] }
```

### Speaker labels without diarization

Most transcription products identify speakers with speaker diarization . The meeting is recorded as one mixed audio track, and a model then infers where the voice changed and groups the segments into Speaker 1, Speaker 2 and so on. It works reasonably well in a quiet two-person call. It degrades when people talk over each other, when several voices sound alike, and as the participant count grows.

That degradation is not a secret. Nylas publicly scopes its transcription accuracy to meetings with up to 10 participants , which is what a diarization ceiling looks like when it is written down.

MeetStream takes the audio apart instead of guessing. The bot requests a separate stream for each person in the call, so an utterance is attributed because it arrived on that participant's own per-participant audio channel, carrying the platform's own participant identity. The label is a fact from the meeting platform rather than a model's best guess, and it holds up when four people interrupt each other.

Per-participant audio and video are available on Zoom, Google Meet and Microsoft Teams.

### Real-time vs post-call meeting transcription

Both come off the same bot. The question is when you need the words.

Real-time transcription streams text over a secure WebSocket at roughly 200ms while people are still speaking. That is the mode for live sales coaching, in-meeting assistants and anything that has to react during the call. If that is your use case, the real-time transcripts page covers the streaming interface in more depth, and voice agents covers agents that speak back.

Post-call transcription runs after the meeting ends and arrives by webhook. It is the right default for summaries, CRM enrichment, compliance archives and search, where a few minutes of delay costs nothing and you would rather have the cleaner pass over the complete recording.

You can run both on one bot: stream live for the in-call experience, then take the final transcript for the record.

### Choose your transcription engine

MeetStream ships its own transcription engine and also lets you route audio to a provider you choose. That matters if you already have a contract, a tuned vocabulary, or a language requirement one engine handles better than the rest. The figures below are each provider's own published numbers, linked to source.

Two honest notes. Deepgram's real-time multilingual mode covers ten languages, which is narrower than its full batch language list. JigsawStack's streaming path is English only, so pair it with post-call jobs if you need other languages. Both constraints come from the providers' own documentation, linked above.

### Supported platforms: Zoom, Google Meet and Microsoft Teams

One integration covers all three. You do not branch your code per platform.

Platform-specific detail lives on the Zoom bot API , Google Meet bots and Teams bots pages. Zoom is the one with a real setup step: bots need the correct OAuth and OBF token configuration before they can join, which is the single most common reason a first Zoom bot fails to connect.

### What the native Zoom, Meet and Teams APIs do not give you

Every platform has some transcript capability of its own, and developers usually try those first. They run into the same four walls.

Permission. Native transcription is controlled by the meeting host and the account admin. If you are building a product, your customer's customer owns that setting, and you cannot depend on it.

Plan tier. On all three platforms, transcription and cloud recording are tied to paid editions and admin policy. A feature that exists on some of your users' accounts is not a feature you can build on.

Timing. Native retrieval is generally post-hoc. You ask for the transcript after the meeting. There is no straightforward path to text while the call is running.

Three integrations, not one. Microsoft Graph, the Google Meet APIs and Zoom's own endpoints are three separate contracts with three separate auth models and three sets of restrictions. A bot sits above all of them and behaves identically on each.

A bot-based transcription API works on accounts you do not control, on the plans your customers already have, and returns text while the meeting is still live.

### Meeting transcription API pricing

MeetStream charges $0.35 per bot-hour for capture and $0.10 per hour for transcription, so a transcribed meeting costs $0.45 per hour all-in , dropping toward $0.25 per bot-hour at volume. Every account starts with $5 of free credit, which is enough to run real meetings before you commit. Full detail on the pricing page.

Here is how that compares against the rates competitors publish. These are their numbers, from their own pricing pages, linked so you can check them.

A note on reading that table fairly. MeetingBaaS prices in tokens, and the dollar value of a token depends on how large a pack you prepay for, from $0.50 down to $0.35 per token. The $0.625 figure is the entry pack; at the largest prepaid tier the all-in rate comes down. Rates change, so check the linked pages before you make a decision on them.

### How to evaluate meeting transcription accuracy

Most buyers reach for Word Error Rate. WER counts the words an engine got wrong as a share of total words, so lower is better. It is a useful number and a bad single answer, because it treats every word as equally important.

The clearest evidence for that comes from a speech vendor rather than from us. When AssemblyAI shipped Universal-2, it reported WER moving from 6.68% to 6.88%, which it described as roughly a 3% improvement, while blind human evaluation showed 73% of people preferred the new output . The gains that people actually noticed were a 24% improvement on rare words, 21% on alphanumerics and 15% on formatting. Almost none of that shows up in a WER headline.

For meeting transcripts specifically, judge four things:

- Speaker attribution. A perfectly transcribed sentence attributed to the wrong person is worse than a typo, because every downstream summary inherits the error.

- Proper nouns. Meetings are full of customer names, product names and acronyms. This is where custom vocabulary earns its place.

- Formatting. Punctuation, capitalisation and numbers are what make a transcript readable.

- Behaviour under crosstalk. Test with people interrupting each other, because that is what real meetings sound like.

Run your own audio through more than one engine before choosing. That is the reason MeetStream lets you switch providers rather than locking you to one.

### Frequently asked questions

Yes. A meeting transcription API does two jobs: it captures the audio from a live call, then converts that audio to text. MeetStream handles both. One request puts a bot in a Zoom, Google Meet or Microsoft Teams meeting and returns a speaker-labelled transcript.

It depends on whether you need capture or just speech to text. Engines like Deepgram and AssemblyAI convert audio you already have. They do not join meetings. If your audio is inside a video call, you need a capture layer first, which is what MeetStream provides, with your choice of engine on top.

The same one. MeetStream records the call and transcribes it through a single bot, so you get the MP4, the per-participant audio and the transcript from one integration rather than stitching a recorder to a separate speech engine.

Only in limited cases. Zoom's own transcript retrieval depends on cloud recording being enabled, the right account tier, and host permission, and it returns the transcript after the meeting. A bot-based API captures the audio directly, works on accounts you do not control, and can stream text while the call is still running.

Zoom's AI transcription is tied to paid plans and account settings rather than being universally free, and it is controlled by the meeting host. If you are building a product, you cannot rely on every customer having it enabled, which is the usual reason teams move to a bot-based transcription API.

Google Meet transcription depends on the Workspace edition. It is not available on every tier, and programmatic access is more restricted than most developers expect. A meeting bot removes that dependency because it captures audio as a participant.

Teams can transcribe automatically when the tenant policy allows it, but access through the Graph API depends on tenant permissions and licensing, and real-time media access has historically been the most restricted path of the three platforms. A bot gives you the same capture behaviour across all three.

Real-time transcription streams text while people are still talking, usually over a WebSocket, and is what live agents and coaching tools need. Batch or post-call transcription runs after the meeting ends and is better for summaries, CRM writeback and search. MeetStream supports both on the same bot.

Yes. MeetStream requests a separate audio stream for each participant, so each utterance is attributed using the platform's own participant identity rather than a diarization model inferring speaker changes from one mixed track.

Yes. You can use the in-house MeetStream engine or route audio to Deepgram, AssemblyAI, Gemini, Sarvam or JigsawStack, which matters if you already have a contract, a tuned custom vocabulary, or a language requirement a specific engine handles best.

Most production engines charge per hour or per minute. MeetStream includes $5 of free credit on signup, which is enough to run real meetings end to end and read the transcripts back before you commit to anything.

Recordings and transcripts are retained for 30 days by default. If you connect your own S3 bucket, they are written into your account instead and your retention policy applies from the first byte.

### Keep exploring

### Start transcribing meetings

$5 of free credit, self-serve API keys, and no sales call between you and your first transcript.

---

Full site index for agents: https://meetstream.ai/llms.txt
API contract (OpenAPI 3.1): https://meetstream.ai/openapi.json
MCP discovery: https://meetstream.ai/.well-known/mcp
