Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs
Hi @Kaustubh Patil
Thank you for posting your question in the Microsoft Q&A forum.
This guide outlines the process for retrieving recordings, transcripts, attachments, and hyperlinks from Teams meetings using Microsoft Graph APIs.
1.Track meetings you organized
-First run: startDateTime = now - 30 days, endDateTime = now.
-Subsequent runs: startDateTime = lastRunTime, endDateTime = now.
GET /me/calendarView?startDateTime={ISO}&endDateTime={ISO} &$select=id,subject,start,end,isOnlineMeeting,onlineMeetingUrl
-Filter client-side:
const myEmail = userPrincipalNameOrPrimarySmtp;
const mine = events.value.filter(ev =>
ev.organizer?.emailAddress?.address?.toLowerCase() === myEmail.toLowerCase()
);
-Reference: List calendarView – Microsoft Graph.
2.Find the online meeting for a calendar event, use the onlineMeetingUrl (join URL) from the event and look up the meeting:
GET /me/onlineMeetings?$filter=JoinWebUrl eq '{joinUrl}'
The join URL must be URL-encoded.
Once you have the onlineMeetingId, you can query other resources.
Reference: Get onlineMeeting - Microsoft Graph v1.0 | Microsoft Learn.
3.Extract transcripts and recordings
-List transcripts:
GET /users/{userId}/onlineMeetings/{meetingId}/transcripts
-Download transcript content:
GET /users/{userId}/onlineMeetings/{meetingId}/transcripts/{transcriptId}/content
-List recordings:
GET /users/{userId}/onlineMeetings/{meetingId}/recordings
-Download recording content:
GET /users/{userId}/onlineMeetings/{meetingId}/recordings/{recordingId}/content
Recordings/transcripts only exist if the meeting was recorded and transcription was enabled. References:
List transcripts - Microsoft Graph v1.0 | Microsoft Learn
List recordings-online meetings - Microsoft Graph beta | Microsoft Learn
4.Extract attachments and hyperlinks from meeting chat
-Every scheduled Teams meeting has a chat, the onlineMeeting object includes chatInfo.threadId. Use it to list chat messages:
GET /chats/{threadId}/messages
-Attachments are available in message.attachments[], for example:
"attachments": [
{
"contentType": "reference",
"contentUrl": "https://...",
"name": "example.docx"
}
Use contentUrl to download the file.
Reference: Working with Microsoft Teams messaging APIs in Microsoft Graph - Microsoft Graph | Microsoft Learn.
-Hyperlinks can be extracted by parsing message.body.content (HTML) for <a href="...">
5.Required permissions
-Calendars.Read
-OnlineMeetings.Read or OnlineMeetings.Read.All
-OnlineMeetingTranscript.Read.All
-OnlineMeetingRecording.Read.All
-Chat.Read or Chat.Read.All
-Files.Read.All
I hope this helps.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.