Pros and cons of using Microsoft Graph for meeting transcripts
Microsoft Graph works well for retrieving native Teams recordings and transcripts inside a Microsoft environment you can configure. A unified API is a stronger fit for products that need to capture meeting data across Teams, Zoom, Google Meet, and other supported platforms.
TL;DR
Microsoft Graph is a good fit for applications that need to retrieve native Teams recordings and transcripts within a Microsoft environment they can configure. Recall.ai is a stronger fit for products that need to capture meeting data across Teams, Zoom, Google Meet, and other supported platforms, with live data options and less recording infrastructure to maintain. The choice depends on the meetings your product needs to support, the access your customers can grant, and how much capture infrastructure your team wants to operate.
What is Microsoft Graph?
Microsoft Graph is the single REST API that Microsoft exposes for its cloud services. Instead of separate endpoints for each product, it provides one gateway (graph.microsoft.com) through which an application can read and write data across Microsoft 365, including user and group data in Entra ID, mail and calendars in Outlook, files in OneDrive and SharePoint, and chats, channels, and online meetings in Teams. For meeting recording specifically, Graph is the native way to fetch the recordings and transcripts that Teams produces, though it operates only on data that Teams has already captured and stored.
How do you use Microsoft Graph to get Teams transcripts programmatically?
Using Microsoft Graph for meeting recording means tapping into Teams’ built-in recording and transcription rather than capturing the meeting yourself.
The typical flow is: a tenant admin grants your app an application access policy for one or more users and your app subscribes to change notifications on those users’ onlineMeetings for recordings and transcripts. Once a meeting ends and Teams has uploaded the recording to OneDrive or SharePoint, Graph notifies your app with a resource URL.
You then call the callRecording and callTranscript endpoints to download the MP4 and VTT files. This works well when you need Teams-native artifacts after the fact with no bot or client-side capture, but is more difficult when you need real-time transcripts or have users holding meetings on other meeting platforms.
Microsoft Graph: Key limitations for Teams transcription
Microsoft Graph doesn’t offer real-time transcripts
The Microsoft Graph API only offers transcripts after the meeting ends, and does not support live transcription. For this reason, if you have a use case like an AI meeting agent, live coaching tool, or real-time notetaker, you will need to use a different solution.
Microsoft Graph doesn’t work on other meeting platforms
A Graph integration can be sufficient for a Teams-only product. However, most customers of external tools don’t just use one meeting platform. If your users also have meetings on Zoom or Google Meet, you will need to build additional capture integrations for those platforms. Building and maintaining these integrations separately can be a huge drain on engineering resources, so most companies who take meeting recording features to market need a unified API like Recall.ai.
Transcription must be turned on
In order to get transcripts using Microsoft Graph, the Teams meeting must have transcription enabled. That means that during the meeting, a participant must manually turn on "Start transcription" or "Start recording.” Unlike Recall.ai’s meeting bot API, there's no retroactive way to generate a transcript if the users forgot to manually record.
Configuring application access
Application access for Microsoft Graph can be more complicated than for other meeting recording APIs. For app-only access to the Graph APIs, a tenant administrator must create an application access policy and assign it to the user whose ID appears in the API request. This authorizes your app to retrieve online meetings and meeting artifacts, such as recordings and transcripts, on that user’s behalf. Without the policy, the API rejects the request with an access error.
Admin setup and tenant controls
Application permissions require a tenant admin to create an application access policy granting the app access on behalf of a specific user. If the admin has turned off Graph API access to transcripts, all transcript requests — metadata, metadataContent, and content — return 403 Forbidden. Microsoft has also added a tenant-level setting to restrict it further: a control announced in June 2026 limits Graph API access to Teams meeting transcripts, so apps and agents can be blocked from reading them.
No flexibility in terms of transcription providers
Microsoft Graph transcripts are generated by native Teams transcription, and you do not have the option to use a different transcription provider if you are using Microsoft Graph. Meanwhile, Recall.ai allows you to integrate with multiple transcription providers through a single API.
Recording permissions
Connecting a customer’s Microsoft account does not automatically give your application access to recordings of every Teams meeting they attend. For example, Graph’s getAllRecordings endpoint retrieves recordings from meetings organized by the specified user, but not meetings they join as an attendee. This can create gaps for products whose users regularly attend meetings hosted by prospects, clients, or other external contacts.
Access to those externally organized meetings may require additional authorization from the organizer’s organization or an appropriately authorized meeting-specific app installation. Your customer’s administrator cannot simply extend their tenant’s permissions to cover another organization’s meeting data.
For that reason, Graph’s native recording APIs are a more straightforward fit when your product can rely on recordings generated within organizations that have authorized your integration. That includes internal tools and customer-facing products with administrator-led onboarding, but is less straightforward when your product needs to retrieve recordings from externally organized meetings.
How do you use Recall.ai to get Teams transcripts programmatically?
Recall.ai offers two ways to get Microsoft Teams transcripts programmatically: a meeting bot API and a desktop recording SDK. Like the Microsoft Graph API, the desktop recording SDK offers recording without a bot participant in the call.
The meeting bot API can record meetings by sending a bot to a meeting and either getting real-time or asynchronous audio. Meeting bots can be scheduled automatically using Recall.ai’s calendar API, so users in the meeting do not have to remember to manually record their calls.
When the transcript is ready, Recall.ai sends a transcript.done webhook. Your application can then retrieve the transcript through the API, including timestamps and participant information where available. For live transcript delivery, configure a real-time webhook or WebSocket endpoint.
When Microsoft Graph is a good fit
Graph is worth considering when your product is focused on Teams, can rely on native recordings or transcripts, and has a workable process for Microsoft permissions and tenant configuration.
It is particularly relevant for an internal tool in a Microsoft environment you control, or an application that needs Microsoft 365 data beyond meetings. If users need summaries after the call and the organization already generates the required transcripts, a native retrieval integration may cover the use case.
When to consider a unified API like Recall.ai
When your product needs to capture meetings across platforms, work with externally hosted calls, or access conversation data in real time, it is worth considering a unified meeting API. Graph’s standard recording and transcript retrieval endpoints are designed to fetch Teams-generated files after a meeting, not provide that complete capture workflow.
Recall.ai provides a unified API for capturing meeting data across Microsoft Teams, Zoom, Google Meet, and other supported platforms. Rather than building a separate recording integration for each platform, Recall.ai lets your application access audio, video, transcripts, and participant data from multiple meeting platforms and in-person meetings, in one place.
The difference is not just that Recall.ai unifies multiple APIs. Its meeting bots join calls and capture the conversation directly, rather than downloading a recording that Teams has already created. This lets your product generate transcripts from that captured audio without depending on the organizer enabling native Teams transcription.
This approach is particularly useful when your users attend meetings hosted by prospects, clients, or other external organizations. Instead of obtaining Graph access to the organizer’s recording, your application can automatically send a bot to the meeting and use it to record, or allow users to record without a bot participant using Recall.ai’s desktop recording SDK.
Recall.ai also supports real-time audio, video, and transcription, alongside post-meeting data. That gives you a path to build live coaching, in-meeting assistance, or other features that cannot wait for a completed recording or transcript. Furthermore, with Recall.ai, users can record even if they are not the host or the organizer of the Teams meeting, and no application-specific permissions are required.