Book a demo
Microsoft Teams · API-first · Apache 2.0

Microsoft Teams
Transcription
API

Vexa joins Teams calls as a guest and returns a speaker-attributed transcript over REST or WebSocket while the meeting runs.

2.9k stars on GitHub
vexa · api
Teams callVexa botTranscriptsYour appREST · WebSocket
  • Teams call
  • Vexa bot
  • Transcripts
  • Your app
  • REST · WebSocket
Teams
Meet
Vexa
🦀
Meeting data for your agents

Your agents read the meeting while it runs.

The transcript streams to your agents as people speak, over WebSocket or MCP.

Built for Microsoft Teams

Vexa joins as a guest, so the host's settings decide whether it is admitted.

  • Send the meeting ID and passcode, or the meeting link
  • Read speaker-attributed segments over REST, or stream them over WebSocket
  • Apache 2.0: self-host it, with your own transcription
Send a bot to a Microsoft Teams meeting
# From the Teams invite: the meeting ID and its passcode

curl -X POST "$API_BASE/bots" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $API_KEY" \
  -d '{
    "platform": "teams",
    "native_meeting_id": "397421056486982",
    "passcode": "YOUR_PASSCODE",
    "bot_name": "Vexa"
  }'

# Read the transcript, during or after the meeting
curl "$API_BASE/transcripts/teams/397421056486982" \
  -H "X-API-Key: $API_KEY"
Set $API_BASE to https://api.cloud.vexa.ai (hosted) or http://localhost:18056 (self-host). Get $API_KEY from /start.

Common patterns

What you can build with the Microsoft Teams API

Three things you can build on the Microsoft Teams API.

Calls into your system

Your data team wants the transcript of each Teams client call in its own store.

What you get
  • Send a bot from your scheduler.
  • Fetch the transcript when the signed webhook arrives.
  • Vexa does not connect to a CRM; your code does.

Live help during calls

A manager needs what is said while the Teams call runs, not afterwards.

What you get
  • Stream segments over WebSocket into your own app.
  • Or give an agent Vexa's MCP server.

Records on your systems

Your firm wants its Teams calls with clients kept on its own systems.

What you get
  • Self-host Vexa and run transcription inside your network.
  • The recording and transcript stay in your own storage.
  • Retention controls and a read audit log are not built.

Send a bot to a Microsoft Teams call

From an API key to a transcript: no SDK to install and no marketplace app to approve.

Quickstart

  1. Get an API keySign in at vexa.ai. Self-hosted: make all prints a key.
  2. Take the meeting ID and passcodeFrom the Teams invite, or send the full meeting link.
  3. POST /botsSend platform teams with the ID and passcode.
  4. Admit the botIf the meeting has a lobby, the organizer admits it.
  5. Read the transcriptGET /transcripts/teams/{native_meeting_id}, or stream it over WebSocket.

Microsoft Teams architecture

The bot joins through the Teams web client, in its own container.

Pipeline
bot → audio capture → speech-to-text → transcript segments → REST / WebSocket

Before you start

  • Tenants that block all guests block the bot too.

Documentation

Go deeper on Microsoft Teams

Reference docs for the Microsoft Teams buyer: URL formats, lifecycle, webhooks, self-host, diarization.

Full reference at docs.vexa.ai.

Related reading

Keep going on Microsoft Teams

Related pages, guides and comparisons.

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?

It may hold it. Vexa joins as a guest, so the meeting's lobby and the host's tenant settings decide whether it gets in. Teams can hold outside bots in the lobby by default, and the organizer admits it from there.

How does Vexa compare to Teams' own transcription?

Teams' own transcription works inside Microsoft 365 and keeps the transcript there. Vexa is an API across Teams, Meet and Zoom: you send a bot and read the transcript while people talk, and self-hosted it stays on your own systems.

Can I run the Teams bot on my own servers?

Yes. The stack is Apache 2.0 and runs on Docker Compose or on Kubernetes. Transcription runs as its own unit or on any OpenAI-compatible endpoint you host. With both inside your network, the audio path makes no outbound calls. What else leaves: the security review.

How well does it name speakers in large meetings?

Check it on your own calls. Attribution is per segment, and meetings with many people talking are harder.

A seat, an hour, or free

A seat for your agent. An hour for what you build. No licence fee when you run it yourself.

Start with Microsoft Teams. Read the transcript as it happens.

Sign in, copy an API key, send a bot with the meeting link, read the transcript. Free credit, no card.

Apache 2.0 · Self-host or cloud · No credit card required