Home/Meeting Bot API/Microsoft Teams
// Microsoft Teams bots

Microsoft Teams Meeting Bot API to Record, Transcribe, and Stream Teams Calls

The Microsoft Teams meeting bot API sends a named bot into a Teams call and returns the recording, a stream per participant, and a transcript.

Microsoft Teams calls$0.35 per bot-hourFour-hour sessionsISO 27001 certified
Overview

What is a Microsoft Teams meeting bot API?

It puts a bot in a Teams call from your code, then hands the media back to your application.

One request returns an MP4 recording, per-participant audio and video, and a transcript
Send a meeting link, and when the call ends you get all three.

Why is building a Teams recorder so expensive?

A bot API takes that work away. Your code is one request, in the language you already use.

C# on Windows in Azure

Microsoft says a media bot must be written in C# and run on Microsoft Azure.

One or two sessions per core

Microsoft notes a bot with video may hold only one or two live sessions per core.

Tenant admin consent

Graph gives you app-only rights. Every one of them needs a tenant admin to say yes.

Recording status call

The Access API terms ask you to report recording status before you store media.

The meeting bot API overview covers all three platforms.

What you get

Teams bots from a join link, no tenant setup.

No app registration, no C# bot, no Windows Server.

  • No Azure registration
    Teams asks for a Graph app, a C# bot and Windows servers. A join link is enough here.
  • Same request as Zoom and Meet
    Change the link, nothing else.
  • Lobby by default, handled
    The bot waits, and you get the event either way.
Priya
Daniel
Teams NotetakerRecording
+3
Speaking
Notetaker has joined the meeting
Teams linkany meetingOne requestcreate a botBot in the callrecords and streamsWebhookfiles are readyYour productnotes, agents, analytics
Five steps on every Teams call. Only the last box is yours.

What you get from every Teams meeting

Two artefacts have pages of their own: the Teams recording API and the Teams transcription API.

Platform rules

Why is my Teams bot in the lobby?

Teams sends outside bots to the lobby by default, so build for that first.

  • The bot joins under a name you choose
    It lands in the lobby, named the way you passed it.
  • A waiting event, straight away
    Your app knows to ask the user to let the bot in.
  • Lobby time counts as meeting time
    Participant events tell your app that it is waiting.
Joins the linkone request, no AzureLobbya waiting event straight awayOrganiser admitsa joined event landsRecordingfollows within about a second
Once the wait passes your timeout, the bot leaves and sends a final event.

Which Teams rules affect your bot?

Teams is the strictest of the three platforms for bots. One default decides whether your build works.

Teams ruleWhat it means for a bot
External bot accessExternalBotAccessMode defaults to RequireApprovalWhenDetected. External bots land in the lobby.
Bot detectionMicrosoft describes built-in detection mechanisms that spot external AI bots during the join.
Recording bannerIt cannot be removed. An admin can only change the consent text and the privacy link by an admin.
External participantsMicrosoft says external participants cannot record, unless you are a certified partner.
Native recordingsThey land in the organizer's OneDrive or SharePoint, with a default 120-day expiry.

The Teams integration page covers capture, the bot lifecycle entry lists every state, and the webhooks guide gives the exact event names.

MEETSTREAM DASHBOARDMeetStream dashboard listing Microsoft Teams bots with lobby and recording status
Lobby state is surfaced per bot, which matters on Teams more than anywhere else.
Integration

One integration for Teams, Zoom and Google Meet

The same request, the same webhook, the same files. Only the link changes.

  • One API for all three platforms
    MeetStream reads the platform from the link.
  • Calendar-driven joins
    Connect Outlook and bots are booked ahead.
  • Webhooks, not polling
    Every lifecycle event arrives on your endpoint.
  • Bring your own storage
    Write every file into your own S3 bucket.

Send a bot into a Teams call

One request, no Azure subscription required. The bot joins, records, and fires a webhook at the end.

Examplebash
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://teams.microsoft.com/l/meetup-join/19%3ameeting_NTk0...",
    "bot_name": "Acme Notetaker",
    "recording_config": { "transcript": { "provider": { "meetstream": {} } } },
    "callback_url": "https://your-app.example.com/meetstream"
  }'
ExampleWebhooks and events guide: request, response and options in the docs
MEETSTREAM DASHBOARDThe MeetStream dashboard with API key, webhook and first bot cards
An API key, a webhook, and your first bot, from the dashboard.

Microsoft Teams bot API pricing

A bot costs $0.35 per bot-hour. Transcription adds $0.10, and the rate falls toward $0.25 at volume.

$0.35 per bot-hourRecording, with thirtydays of storage$0.45 per hourThe same bot, withtranscription addedToward $0.25Per bot-hour, oncevolume builds
Every account starts with $5 of free credit.

Thirty days of storage is included. The pricing page has the full breakdown, and the Recall.ai comparison sets out the differences.

Security

Enterprise-level security, keep your data private.

The certificate, the audit status and the Trust Center are all on the security page.

Robust and reliable

MeetStream is ISO 27001 certified. SOC 2 Type 2 is under audit rather than complete.

GDPR compliant

MeetStream is GDPR compliant, and bots run in the United States by default.

Lobby by default, handled

The bot waits, and your app gets the event either way.

SOC 2Type 2 (Under Audit)
ISO 27001Certified
GDPRCompliant

Teams bot limits and defaults

4 hoursdefault session, five when you raise it
No capconcurrent bots, and no limit to raise
30 daysstorage, or your own S3 bucket
ISO 27001certified. SOC 2 Type 2 is under audit
United StatesWhere bots runby defaultEU, Australia, JapanAvailable onrequestThe Middle EastAvailable onrequest
Bots run in the United States by default.

Ask for a longer session on the create request, and the create bot reference names the field.

FAQ

Got a question? We got the answer.

Common questions about Teams bots. How they join, what comes back, and what it costs.

Can you record a Teams meeting without being the host?

Teams recording is not organizer-only by default. Any suitably licensed user with the policy enabled can record. Native recording stays with those licensed users. A bot records what it receives as a participant, once an organiser admits it.

Why does my Teams bot end up in the lobby?

Because that is the default. The ExternalBotAccessMode policy defaults to RequireApprovalWhenDetected. That sends external bots to the lobby, whatever the meeting's own lobby setting says. Build for it and every join stays predictable.

Does Microsoft Teams detect meeting bots?

Yes. Microsoft documents built-in detection that spots external AI bots during the join. It uses infrastructural and behavioural signals, and warns organizers before they admit one. Microsoft notes that coverage varies by bot.

Do I need C# and Azure to build a Teams recording bot?

If you build on Microsoft Graph directly, effectively yes. Microsoft states the bot must be written in C# and deployed on Windows Server in Azure, and real-time media runs through the C# API. A bot API gives you the same result from one request.

How many concurrent Teams recordings can I run?

Through MeetStream there is no cap. Build it yourself on Graph and Microsoft notes a video-enabled bot may sustain one or two concurrent media sessions per CPU core, so you size that capacity yourself.

Can participants tell that a Teams meeting is being recorded?

Yes. Teams shows a recording notification banner to everyone in the call. Admins can set the consent message text and the privacy policy link. Tenants can also turn on explicit consent mode, which asks each participant to answer before the call goes on.

Where do Teams recordings normally go?

Native recordings land in the organizer's OneDrive, or in SharePoint for channel meetings. They expire after 120 days by default. A MeetStream recording goes wherever you point it, including straight into your own S3 bucket.

Can I get per-participant audio from Teams?

Yes. MeetStream returns a separate audio and video stream per participant. Speaker attribution does not depend on a diarization model.

Does this need tenant admin approval?

Admission depends on the tenant's bot and lobby policies. External bots go to the lobby by default. So the smoothest path is usually an organizer admitting the bot. A policy change can come later if the customer wants it automatic. The relevant setting is the meeting policy's ExternalBotAccessMode, changed by an admin with Set-CsTeamsMeetingPolicy.

What does a Teams meeting bot cost?

$0.35 per bot-hour for recording, $0.45 per hour with transcription, dropping toward $0.25 at volume. Thirty days of storage is included and every account starts with $5 of free credit.

Teams recording without the C# bot and the Windows box.

Microsoft’s route needs a registered app, a C# bot and Azure Windows servers. One request replaces all of it.

Per-participant audio
Live transcripts
MP4 recordings
Participant events
Calendar sync

Put a bot in your next Microsoft Teams call

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