Microsoft Teams
Transcription
API
Real-time Microsoft Teams transcription via open-source REST API. Drop a bot into any Teams meeting, get live transcripts with speaker diarization. Self-host on Docker or Kubernetes, or use Vexa cloud.
Waiting for meeting participants…
Feed meetings into your AI. Live.
AI needs data, and the best data is real-time. Vexa streams transcripts, audio, and context from any meeting straight to your models and agents — as it happens.
Built for Microsoft Teams
Vexa drops a meeting bot into Microsoft Teams calls and streams live transcripts back through a REST API. The bot joins via the public Teams web client — no Microsoft 365 add-on, no per-tenant licensing, no admin consent flow for unmanaged tenants. Transcripts are powered by Whisper running locally or in our hosted cloud, so audio never leaves infrastructure you control when you self-host. The same API surface also covers Google Meet and Zoom, so a single integration handles every platform your customers use.
- Join any Teams meeting via numeric meeting ID + passcode — no tenant admin consent for unmanaged tenants
- Real-time transcripts with speaker diarization, streamed via WebSocket or polled via REST
- Apache 2.0 license — self-host the bot pod + Whisper service entirely within your VPC for GDPR / SOC 2 control
# Extract from https://teams.live.com/meet/1234567890123?p=YOUR_PASSCODE
# native_meeting_id = "1234567890123"
# passcode = "YOUR_PASSCODE"
curl -X POST "$API_BASE/bots" \
-H "Content-Type: application/json" \
-H "X-API-Key: $API_KEY" \
-d '{
"platform": "teams",
"native_meeting_id": "1234567890123",
"passcode": "YOUR_PASSCODE",
"transcribe_enabled": true,
"transcription_tier": "realtime"
}'
# Poll transcripts
curl "$API_BASE/transcripts/teams/1234567890123" \
-H "X-API-Key: $API_KEY"Set $API_BASE to https://api.cloud.vexa.ai (hosted) or http://localhost:8056 (self-host). Get $API_KEY from /get-started.
Microsoft Teams transcription FAQ
Things developers and buyers usually want to know before they wire Microsoft Teams up.
Will my IT department block a Teams bot?
For unmanaged tenants Vexa joins the public Teams web client like any guest, so no admin consent is required. For managed tenants where guest access is locked down, the meeting organizer needs to admit the bot from the lobby — same flow as inviting any external participant. We have customers running Vexa in regulated environments (legal, financial services) — the bot is auditable and runs in pods you control when self-hosted.
How does Vexa compare to the Microsoft 365 transcription add-on?
The native Teams transcription feature requires a per-user Microsoft 365 license, only writes transcripts to the meeting organizer's OneDrive after the meeting ends, and gives you no programmatic access to live transcript chunks. Vexa is an API: you POST a meeting URL and receive transcripts as they happen, with no Microsoft licensing dependency.
What happens with speaker identification for large meetings?
For meetings with up to 4 active speakers, diarization is solid. For meetings with 5+ active speakers, accuracy degrades — we're honest about this and the fix is in flight (see GitHub issue #317). If you're building for board meetings or multi-party events with strict speaker-attribution requirements, talk to us before relying on it in production.
Which Teams URL formats are supported?
Personal teams.live.com links, enterprise teams.microsoft.com short and deep links, legacy /meetup-join/ URLs (via MCP), US Government gov.teams.microsoft.us, and DoD dod.teams.microsoft.us. See the platform doc for the full table.
Can I self-host the Teams bot inside my own VPC?
Yes — the entire stack is Apache 2.0 and ships as Docker images plus a Helm chart. Audio capture, Whisper transcription, and the API server all run in your Kubernetes cluster. We have customers running Vexa fully air-gapped with on-premise GPU nodes for the Whisper service. See the deployment guide.
Common patterns
What teams build with the Microsoft Teams API
Three shapes we see repeatedly across customers integrating Vexa with Microsoft Teams.
Enterprise sales-call capture
Scenario
Sales reps run discovery and demo calls on Teams. You want every conversation transcribed, summarized, and synced to CRM (HubSpot / Salesforce) without a human notetaker.
What you get
Push a bot into each scheduled call via your CRM hook, deliver structured transcripts to the deal record, and trigger downstream automations on key phrases. No license collision with M365 transcription, full control of where the data lands.
Customer-success live coaching
Scenario
CS managers want real-time visibility into how reps handle escalations on Teams. You need streaming transcript chunks during the call, not a post-meeting OneDrive dump.
What you get
Subscribe to the websocket stream, run sentiment / keyword detection on chunks as they arrive, and surface coaching prompts in your internal app while the call is still live.
Compliance & legal-hold capture
Scenario
Regulated industries (financial advice, healthcare consults, legal intake) need every Teams call recorded and transcribed for legal hold, with audio data residency under your control.
What you get
Self-host Vexa in your VPC. Audio and transcripts never leave your infrastructure. Searchable transcripts go straight to your archive — audit trail attached to every recording.
Quickstart
Get a Microsoft Teams bot live in 5 minutes
The full flow from sign-up to first transcript — no SDK install, no Marketplace approval, no admin consent for unmanaged tenants.
- 1
Get an API key
Sign up at vexa.ai/get-started, or run the self-hosted gateway and mint a key locally.
- 2
Extract meeting ID + passcode
From a Teams join URL like teams.live.com/meet/1234567890123?p=PASSCODE, take the digits as native_meeting_id and the ?p= value as passcode.
- 3
POST /bots
Send the platform, native_meeting_id, and passcode. The bot joins the meeting in 5-10 seconds.
- 4
Receive transcripts
Poll GET /transcripts/teams/{native_meeting_id} every few seconds, or set up a webhook for push delivery.
- 5
Stop the bot
DELETE /bots/{bot_id} when the meeting ends — or let it leave automatically when participants drop.
How it works under the hood
Microsoft Teams architecture
Vexa joins via the public Teams web client in a Playwright-driven bot pod. Audio is captured from the browser session, streamed to a Whisper-large-v3-turbo transcription service, and emitted as transcript chunks. The same pipeline runs in Vexa cloud or in your Kubernetes cluster when self-hosted. No Marketplace approval, no per-tenant OAuth flow, no native SDK dependency.
Pipeline
Documentation
Go deeper on Microsoft Teams
Reference docs for the Microsoft Teams buyer: URL formats, lifecycle, webhooks, self-host, diarization.
Microsoft Teams platform guide
Supported URL formats, native_meeting_id extraction, common join failures.
Bots API reference
Full POST /bots payload, status polling, lifecycle hooks.
Webhooks
Push transcripts to your endpoint as chunks land — no polling.
Speaker identification
How diarization works, accuracy bounds, current limits.
Self-hosted deployment
Docker Compose for dev, Kubernetes / Helm for production, GPU sizing.
Authentication & token scoping
API keys, admin tokens, multi-tenant scoping.
Full reference at docs.vexa.ai.
Related reading
Keep going on Microsoft Teams
Tutorials, deep-dives, and adjacent surfaces from across the Vexa substrate.
Vexa v0.10 release — Zoom Web Client, MCP, interactive bots
What ships in v0.10 across Teams, Meet, and Zoom — architecture refactor, MCP server, interactive-bot preview.
Vexa vs Recall.AI — open-source meeting bot API comparison
Side-by-side: Apache 2.0 vs closed SaaS, self-host vs cloud-only, pricing model differences.
Self-host meeting transcription in 5 minutes
Docker Compose quickstart for fully air-gapped Teams transcription.
Pay only for
what you use
Self-host for free, or let us run it for you. Simple usage-based pricing—no per-seat tax.
Apache 2.0 · Self-host forever
Best for teams who need full control
1 bot · Flat monthly · Everything included
Best for personal use — 1 meeting at a time
No credit card required
Bot infrastructure · +$0.20/hr transcription
Best for teams & API builders · $5 free credit
No credit card required
On-premises, OpenShift, Kubernetes. Dedicated support + SLA.
For self-hosted Vexa bot users. Transcription only — $0.002/min.
Frequently asked questions
What's included in the $0.30/hr Bot Service?
The base rate covers bot infrastructure: audio capture, webhooks, and 12 months of audio storage across Google Meet, Microsoft Teams, and Zoom. Add real-time transcription for +$0.20/hr ($0.50/hr total).
Which plan is right for me?
Choose Individual ($12/mo) if you need one bot for personal use—it includes real-time transcription, storage, and the Dashboard. Choose Pay-as-you-go ($0.30/hr) if you need multiple simultaneous bots or want to pay only for what you use—ideal for teams and API integrations. Both plans include Google Meet and Microsoft Teams support. Self-host for free from GitHub if you need full data control.
How does the free credit work?
Every new account gets $5 in free bot credit—no credit card required. That covers ~16 hours of bot time at $0.30/hr. All features are available: audio capture, transcription, real-time data, and full API access.
Can I self-host Vexa?
Yes. Vexa is Apache 2.0 licensed and fully self-hostable. Deploy with Docker Compose, Kubernetes, or OpenShift on your own infrastructure with complete data sovereignty.
How does Vexa compare to Recall.ai?
Vexa is open source, self-hostable, and up to 40% cheaper. Bot: $0.30/hr vs Recall.ai ~$0.50/hr. Transcription add-on: $0.20/hr vs ~$0.15/hr. See our detailed comparison.
What's the Individual plan for?
The Individual plan ($12/mo) is for single users who need one concurrent bot with unlimited meetings. It includes real-time transcription, recording, storage, REST API, WebSockets, and the UI Dashboard—everything you need for personal meeting intelligence. It supports Google Meet and Microsoft Teams, with Zoom coming soon.
Ready when you are
Start with Microsoft Teams.
First transcript in 5 minutes.
No credit card, no Marketplace approval, no admin consent for unmanaged tenants. Get an API key, POST a meeting URL, receive transcripts.
Apache 2.0 · Self-host or cloud · No credit card required