Microsoft Teams does not provide a normal Export chat history command in its desktop or web client. If you open a chat’s More options (…) menu, you will not find a supported control that downloads the complete conversation.
There are, however, six practical routes. The right one depends on whether you need a quick copy of a small conversation, a tenant-wide archive, retained or deleted messages, or a legally defensible compliance export.
Choose the export method that fits the job
| Method | Best for | Access required | Complete bulk export? |
|---|---|---|---|
| Copy or print a small visible conversation | Personal notes or a short record | Normal Teams access | No |
| Microsoft Purview eDiscovery portal | Compliance, legal, and investigation exports | eDiscovery permissions | Yes, within the search scope |
| Graph user chat Export API | All 1:1, group, and meeting chats for a user | Application permissions and admin consent | Yes |
| Graph team channel Export API | All messages in a team’s channels | Application permissions and admin consent | Yes |
| Graph retained-message API | Messages preserved by retention or a hold | Retention configuration and application access | For retained data |
| Graph eDiscovery export API | Automated export of an existing Purview search | eDiscovery case permissions | Yes, for the search results |
The Teams Export APIs require an active Teams license for the users whose data is exported. They do not require a Microsoft Purview DLP service plan or additional DLP licensing. Purview exports are controlled by eDiscovery roles and case permissions.
1. Copy or print a small Teams chat
For a few messages, the simplest option is to select the text in Teams and copy it into Word, Notepad, OneNote, or an email. You can then save the document as a PDF using your operating system’s print dialog.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →#1 Best Overall
- Open Teams and select the chat or channel.
- Scroll to the messages you need. Teams loads older content as you move through the conversation.
- Drag across the text, press Ctrl+C on Windows or Command+C on macOS, and paste it into a document.
- Save the document, or choose Print and select Microsoft Print to PDF on Windows or Save as PDF on macOS.
This is not a genuine full-history export. It can omit messages that have not loaded, attachments, message metadata, deleted content, reactions, and the original conversation structure. Use it only for a short, informal record.
2. Export with Microsoft Purview eDiscovery
Purview eDiscovery is the main no-code route for an authorized compliance user. It searches Teams compliance copies stored in Exchange Online rather than querying the live Teams message store directly.
- Sign in to the Microsoft Purview portal with an account assigned the necessary eDiscovery permissions.
- Select the eDiscovery solution card.
- Open Cases and select an existing case.
- Open the Searches tab and select the relevant search.
- On the search flyout, select Sample to preview results, or select Export.
- Download the generated export package when processing finishes.
Depending on the search and export options, the package can include an Excel report and a .pst file. Teams messages appear as IM or Conversations in the Excel output. In Outlook, private-chat messages are typically under Conversation History > Team Chat. Team channel exports identify the team and channel in the message title.
Include the related file locations
Searching chat text does not automatically mean every shared file is included in the same location:
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problems- Files shared in 1:1 and group chats are stored in the OneDrive account of the person who shared them.
- Files in standard channels are stored in the team’s SharePoint site.
- Private and shared channels use channel-specific SharePoint sites, which must be identified and included separately.
- Loop components are
.fluidfiles in the sender’s OneDrive, so OneDrive must be included when searching for them. - Meeting transcripts are extracted as separate files. The organizer’s OneDrive may need to be included for recorded-meeting content.
Private-channel messages are stored in dedicated private-channel mailboxes. Shared-channel messages are associated with the parent team’s system mailbox, so search the parent Team rather than expecting to select a shared-channel mailbox directly.
3. Export a user’s chats with the Microsoft Graph Export API
Administrators and applications can export all 1:1 chats, group chats, and meeting chats in which a user participates with this endpoint:
GET https://graph.microsoft.com/v1.0/users/{id | user-principal-name}/chats/getAllMessages
The endpoint returns both messages sent and received in the user’s chats. It does not support delegated permissions. The least-privileged documented application permission is Chat.Read.All; an administrator must grant consent for the application permission.
A request can include a date range and a page-size hint:
Free tools Windows power users keep installed
One-click scans. No signup required.
GET https://graph.microsoft.com/v1.0/users/alex@example.com/chats/getAllMessages?$top=50&$filter=lastModifiedDateTime gt 2020-06-04T18:03:11.591Z and lastModifiedDateTime lt 2020-06-05T21:00:09.413Z
Important implementation details:
$topis a maximum hint, not a guaranteed page size.- When more results are available, follow the
@odata.nextLinkURL until no next link remains. - Results are not guaranteed to be sorted by creation or modification time. Sort the collected records in your own export process.
- Use each message’s
attachmentscollection for attachment information and files. A URL visible in a message body may not be directly accessible. - Exporting every participant separately can create duplicate messages because each user endpoint includes messages sent and received from that user’s mailbox.
For a tenant-wide collection, export a controlled set of users and deduplicate using message IDs or another stable identifier rather than blindly exporting every participant.
4. Export every channel message in a team
For channel conversations, use the team-level Export API:
GET https://graph.microsoft.com/v1.0/teams/{id}/channels/getAllMessages
This covers standard, private, and shared-channel messages associated with the team, subject to the API’s access and retention rules. The same endpoint supports a date filter:
GET https://graph.microsoft.com/v1.0/teams/{id}/channels/getAllMessages?$top=50&$filter=lastModifiedDateTime gt 2020-06-04T18:03:11.591Z and lastModifiedDateTime lt 2020-06-05T21:00:09.413Z
The relevant application permission for channel messages is ChannelMessage.Read.All. Depending on the broader application, Microsoft also documents permissions such as User.Read.All for tenant user lists, OnlineMeetingTranscript.Read.All for scheduled-meeting transcripts, and OnlineMeetingRecording.Read.All for scheduled-meeting recordings.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Rank #3
Do not treat this as an ordinary Graph request that any signed-in user can run. Protected Teams Export APIs require an application, administrator approval, and the appropriate Microsoft Graph permissions.
5. Retrieve retained or deleted messages
Normal message export and retention export are different operations. If a tenant has Teams retention policies configured, the retained-message endpoints can expose soft-deleted messages preserved in a retention location and previous edited versions preserved by retention.
For retained messages in a user’s chats:
GET https://graph.microsoft.com/v1.0/users/{id}/chats/getAllRetainedMessages
For retained channel messages in a team:
GET https://graph.microsoft.com/v1.0/teams/{id}/channels/getAllRetainedMessages
These endpoints are useful when the message is no longer visible in the Teams interface but remains preserved by a retention policy or hold. They are not a recovery mechanism for permanently deleted content. Microsoft documents a maximum 30-day retrieval window for deleted channel messages after deletion; after hard deletion, the Export API cannot retrieve them. Deleted-user messages and inactive-user mailbox data are likewise documented as available for up to 30 days in the relevant export scenarios.
Edited-message history is available through the Export API only when the tenant has a Teams retention policy configured. It applies to individual and group chats and to posts or comments in public and shared channels.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
6. Automate a Purview export through Microsoft Graph
If your organization already uses Purview eDiscovery searches, you can start an export programmatically instead of downloading each result manually. This is useful for repeatable legal, audit, or investigation workflows.
First create or select an eDiscovery case and search. Then submit an export request:
Rank #4
POST https://graph.microsoft.com/v1.0/security/cases/ediscoveryCases/{ediscoveryCaseId}/searches/{ediscoverySearchId}/exportReport
Content-Type: application/json
{
"displayName": "Export 1",
"exportCriteria": "searchHits",
"additionalOptions": "none"
}
The operation returns 202 Accepted and a Location header. Poll the URL in that header to check the export status rather than expecting the files in the initial response.
Depending on the case, additionalOptions can include values such as:
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteteamsAndYammerConversationscloudAttachmentsallDocumentVersionssubfolderContentslistAttachmentshtmlTranscriptsadvancedIndexingallItemsInFolder
Use this route only with the eDiscovery permissions and case controls required by your organization. It exports the results of the search; it is not a substitute for creating a correctly scoped search first.
What Teams exports include—and what they may miss
The Microsoft Teams Export APIs support 1:1, group, and meeting chats; standard, private, and shared-channel messages; attachments; reactions; system or control messages in supported scenarios; and, when retention is configured, edited-message history.
There are still limitations. Meeting-related control or system messages are not currently supported by the Export API. Customized reaction colors are not supported, although standard reactions such as like, heart, angry, sad, surprised, and laugh are supported. Message attachment results may contain metadata or links rather than a neatly packaged file. Embedded links in message text may require separate access checks.
For eDiscovery, anonymous users joining meetings are not currently supported in search queries. In meetings involving external-access users from two organizations, administrators in both organizations can search the meeting chat. For meetings involving guests, only administrators in the hosting organization can search the meeting chat.
Best Value
- The Microsoft Office 365 Bible: The Most Updated and Complete Guide to Excel, Word, PowerPoint, Outlook, OneNote, OneDrive, Teams, Access, and Publisher from Beginners to Advanced
- ABIS BOOK
Recommended choice
- Need a few messages? Copy them to a document or print the visible content to PDF.
- Need a defensible legal or compliance record? Use a Purview eDiscovery case and export the search.
- Need an automated user-chat archive? Use
/users/{id}/chats/getAllMessageswith application permissions and pagination. - Need channel history? Use
/teams/{id}/channels/getAllMessages. - Need deleted or previous edited versions? Use the retained-message endpoints, provided retention is configured and the data is still within the available window.
- Need a repeatable compliance workflow? Automate a Purview search export with
exportReport.
FAQ
Can I export a complete Teams chat from the desktop app?
No. Microsoft’s current documented procedures do not provide an end-user Teams desktop or web command that exports an entire chat history. A user can copy a small amount of visible content, but bulk export requires Microsoft Graph Export APIs or Microsoft Purview eDiscovery.
What permission exports 1:1 and group chats through Graph?
The documented least-privileged application permission is Chat.Read.All. The user-chat getAllMessages endpoint does not support delegated permissions, and administrator consent is required for the application permission.
How do I export all channel messages from a team?
Call GET https://graph.microsoft.com/v1.0/teams/{team-id}/channels/getAllMessages using an authorized application with the ChannelMessage.Read.All application permission. Follow every @odata.nextLink returned by Graph.
Can Teams export deleted messages?
Only messages still preserved under the applicable retention and deletion rules can be retrieved. The retained-message APIs require Teams retention policies. Deleted channel content is documented as available for up to 30 days after deletion; hard-deleted content cannot be retrieved through the Export API.
Where are Teams messages in a Purview PST export?
Private-chat messages are generally under Conversation History > Team Chat in Outlook. In the Excel export, Teams data appears as IM or Conversations. Channel message titles identify the team and channel.
Do I need a Purview DLP license to use the Teams Export APIs?
No additional Purview DLP service plan is required for the Teams Export APIs. You do need an active Teams license for the users whose data is being exported, plus the required Microsoft Graph application permissions and administrator consent.
The Bottom Line
There is no supported one-click Teams client export for a complete chat history. For a small record, copy or print the visible messages. For real bulk exports, use Purview eDiscovery for controlled compliance work or the Microsoft Graph Teams Export APIs for an application-driven archive. Plan for pagination, attachments, retention limits, channel-specific mailboxes and SharePoint sites, and possible duplicate messages before treating the result as a complete archive.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

