How to export your messages
Every app stores your messages in its own way. These are the routes that produce a file we can actually read, including Telegram’s default HTML export and the workplace tools, Slack, Microsoft Teams, Google Chat, Discord and Viva Engage, where the export is often run by someone other than you.
Last updated 3 September 2026
.txt and .zip, email .eml and .mbox, Android SMS .xml, iMazing, LinkedIn and generic .csv/.tsv, Telegram exports in both .html (the default) and .json, Messenger, Instagram, Snapchat or generic message .json, and the workplace formats: a Slack workspace export .zip (or its day files with users.json), Microsoft Teams Graph JSON, the Teams data export tool .zip and Graph PowerShell .csv, Skype and Teams personal messages.json, Google Chat Takeout messages.json, Discord data packages and DiscordChatExporter .json, and Viva Engage Messages.csv. Upload the original export file where one exists: its timestamps and sender names can be programmatically verified against the source, and for workplace exports the channel and thread of every message are kept. Screenshots, photos of a screen and PDFs are accepted too, as evidence exhibits; they sit alongside the message timeline rather than inside it.
The export happens on your phone, inside WhatsApp itself. Open the chat you need, then:
- iPhone: tap the contact or group name at the top → scroll down → Export Chat → Without Media.
- Android: tap ⋮ → More → Export chat → Without media.
- Send the export to yourself (email it, save to Files or Drive), then upload the
.txtor.ziphere. Either works.
Choose Without media. It keeps the file small, and the message text is what matters. WhatsApp’s own instructions: How to export your chat history.
Two routes. A handful of individual messages is easiest as .eml. A whole mailbox or folder is .mbox.
A few individual messages (.eml)
- Gmail, several at once: tick the emails in the list → ⋮ (More, in the toolbar above the list) → Forward as attachment. A new email opens with every ticked message attached as its own
.emlfile. Send it to yourself, open it, and click the Download all attachments icon: you get one.zip. Unzip it and drag all the.emlfiles into the uploader together. Gmail allows 25 MB per email, so a batch with heavy attachments may need splitting in two. Include the emails you sent as well as the ones you received. For a single message, open it → ⋮ → Download message. - Outlook.com, Hotmail, Live, Microsoft 365: right-click the message in the list → Download. Hotmail and Live accounts are Outlook.com, so this exact route works for them. Microsoft’s instructions.
- Apple Mail, Thunderbird and the new Outlook for Windows: drag the message from the list onto your desktop. Each one becomes an
.emlfile. Classic Outlook on Windows is the exception: dragging produces.msg, which cannot be read here. Instead, select the messages in the list (Ctrl-click, or Ctrl+A for the whole folder), then File → Save As and choose Text Only (*.txt). Outlook saves them all into one text file, and we read that.
You can select several .eml files at once when uploading.
A whole mailbox or folder (.mbox)
Gmail
Export the one person, not the whole mailbox. A whole mailbox runs to gigabytes and is mostly newsletters and receipts; the correspondence that matters is usually a few megabytes once it is filtered.
- In Gmail, search for the person:
from:their@address OR to:their@address. Tick the select-all box above the results, then click Select all conversations that match this search. - Click the label icon in the toolbar → Create new → name it, for example
Case export→ apply it. - Use the button below. It opens Google Takeout with only Mail already selected. Click All Mail data included, untick Include all messages in Mail, and tick only your new label. (Takeout is a separate Google service. There is no link to it from inside Gmail, which is why nobody can ever find it.)
- Scroll down, press Next step, then Create export. Google emails you when it is ready, usually within the hour for one label. The
.mboxfile is inside theTakeout/Mailfolder of the download; upload it as it is.
Files up to 50 MB upload directly. If a single correspondent still exceeds that, or you need a whole mailbox handled, contact us: that is part of the full service.
Apple Mail (Mac)
- Select the mailbox in the sidebar → menu bar Mailbox → Export Mailbox… → choose where to save it. Apple’s guide.
- What you get is a
.mboxpackage, which is really a folder. Right-click it → Show Package Contents. - Inside is a file named just
mbox. Copy it out, rename it tomailbox.mbox, and upload that. (The demo will also accept the package zipped, but the rename route works everywhere.)
Outlook, Hotmail, Microsoft 365, Yahoo, AOL, iCloud and most others
None of these export .mbox directly, and Outlook’s own export produces a .pst file we cannot read. The free, reliable route is Thunderbird:
- File → Save As → Text Only (*.txt) works here, and it batches. Select the messages in the list first (Ctrl-click individual messages, or Ctrl+A for the whole folder), then File → Save As: Outlook writes every selected message, with its sender, date and subject, into one
.txtfile. Upload that file. The other Save As formats (.msg, Outlook Template, HTML, MHT) cannot be read here. - File → Open & Export → Import/Export offers
.pstor CSV. Avoid the CSV: Outlook’s mail CSV famously contains no dates, which makes it useless for a timeline. The.pstpreserves everything but needs converting. If a.pstis what you have, contact us and we will convert it for you as part of the full service. - Other routes: in Outlook on the web, right-click a message → Download saves a real
.eml(the desktop app cannot do this); for a whole mailbox in one file, use the Thunderbird route below.
- Install Mozilla Thunderbird (free, Windows/Mac/Linux) and sign in to your email account. It syncs your folders automatically.
- Install the ImportExportTools NG add-on (Tools → Add-ons and Themes → search “ImportExportTools NG”).
- Right-click the folder you need → ImportExportTools NG → Export folder → mbox. Upload the file it saves.
Proton Mail
The official Proton Mail Export Tool produces .eml files we can read directly. For .mbox, use Proton Mail Bridge with Thunderbird (paid Proton plans).
Android SMS and MMS
- Install SMS Backup & Restore (free) from the Play Store.
- Open it → Set up a backup → back up Messages. Save locally or to Drive.
- Upload the
.xmlfile it produces, unchanged. The direction of each message (sent or received) is stored inside it, so upload the original rather than a converted copy.
Apple Messages and iMessage
Two routes. If you use Messages on a Mac, the first one needs no extra software at all.
From a Mac (recommended, nothing to install)
Messages on macOS keeps everything in a single database file. You upload that file, and we ask you which conversation the case is about.
- In Finder, press Shift Command G and paste
~/Library/Messages, then press Return. - Copy
chat.dbto your Desktop. (Copy it rather than dragging it, so the original is left alone. If macOS refuses, grant Finder or your terminal Full Disk Access in System Settings, Privacy and Security.) - Upload that copy to your case. Because the file contains every conversation you have ever had, we then show you a list of the conversations in it, with the participants, message counts and date ranges.
- Choose the one this case is about. Only that conversation is imported. Everything else in the database is discarded and the temporary copy is deleted.
chat.db holds your conversations with everyone: family, colleagues, your doctor. Importing it whole would put unrelated people's messages into a legal case file. Selecting one thread keeps the case record to the two people it concerns.Files up to 2GB are accepted, which covers a full Messages history. Messages that store their text in a modern attributed body record are decoded, so recent iOS conversations come through complete. Tapbacks, reactions and attachments are reported as skipped rather than guessed at.
From an iPhone, with iMazing
If you do not have a Mac, or your messages are only on the phone, iMazing exports a single conversation directly.
- Install iMazing on a Mac or PC and connect your iPhone.
- Open Messages, select the conversation you need, and export it as CSV.
- Upload the
.csv. Because you picked the conversation in iMazing, there is nothing further to choose here.
The in-browser demo does not read Messages databases. Use a case in the full service for chat.db, or try the demo with an iMazing CSV.
Messenger and Instagram
- Use a button below to open Meta’s Download your information page (it lives in Accounts Centre, several menus deep).
- Choose Download or transfer information → select your profile → Some of your information → tick Messages.
- Set the format to JSON (not HTML). Low media quality is fine, the text is what matters.
- When the download arrives, it contains one folder per conversation. Upload one conversation at a time, either its
.jsonfile or a.zipof that single conversation folder.
Telegram
- Install Telegram Desktop from Telegram’s own website. The phone app cannot export.
- Open the chat → ⋮ → Export chat history, or for everything: Settings → Advanced → Export Telegram data.
- Both export formats work: the default HTML (upload
messages.html, or zip the whole export folder and upload that) or machine-readable JSON (upload the.json). Export a single chat where you can. - For a long HTML export split across
messages.html,messages2.htmland so on, select them all together or zip the folder. Leave the photos out of the zip if it is large; the text is what gets analysed.
Snapchat
- Sign in at Snapchat’s My Data page (button below).
- Request your data with Chat History included, in JSON format.
- Snapchat emails a download link. Inside the archive, upload
json/chat_history.json.
Saved text chats come through with sender and time. Snaps, disappearing messages and media are listed as media records without their content, which is a limit of Snapchat’s export, not of the upload.
- Open LinkedIn’s Get a copy of your data page (button below).
- Choose Want something in particular? → tick Messages → Request archive.
- LinkedIn emails a download link, usually within minutes for messages only. Inside the archive, upload
messages.csv.
Slack
Slack has no export for individual members. Exports are run for the whole workspace by a Workspace Owner or Admin (on Enterprise plans, an Org Owner or a member with the Export Admin role). If that is not you, the request goes to the employer; see the subject access note under Microsoft Teams, which applies to Slack in the same way.
- Owner or Admin: click the workspace name → Tools & settings (older menus say Settings & administration) → Workspace settings → Import & export data → the Export tab.
- Choose the date range, the whole history where the plan allows it, and click Start export. Slack emails a download link when the file is ready.
- Upload the
.zipexactly as Slack delivered it, without unpacking or renaming anything. The whole workspace imports as one batch and every message keeps the channel it was posted in. A single day file, or a set of day files selected together withusers.json, also works.
- Free and Pro: public channels only. Private channels and direct messages are included only after an application to Slack showing a legal process, member consent or a legal right.
- Business+ and Enterprise Grid: Owners can apply for a self-serve export covering public channels, private channels and direct messages. Enterprise Grid can also export one member’s conversations on their own.
- Free plan limits: messages older than a year are not included, and file links only cover the last 90 days. No export contains the files themselves, only links to them.
- Whether edited and deleted messages appear as separate log entries depends on the workspace’s retention setting. Ask the exporting admin which setting applied, because an export with no such entries cannot prove that nothing was edited.
What comes through: every message with its sender resolved from users.json, its channel (#general, a direct message shown as the two names, or a group direct message) and its thread, so a reply stays attached to the message it answered. Joins, leaves, topic changes and deleted-message placeholders are kept as labelled system records rather than dropped. App and bot posts appear under the bot’s own name. Emoji reactions are not carried into the record. Slack stores times in UTC; they are converted to UK time and the batch is labelled to say so.
Microsoft Teams
Which route applies depends on the account. A work or school account, signed in with an employer’s Microsoft 365 login, has no self-service export at all: the record is held by the organisation and only its administrators can export it. A personal account (Teams Free, including history migrated from Skype) can export itself.
Work and school accounts
There is no button in Teams that exports a chat, and the personal export page refuses work accounts. Ask the organisation’s IT or compliance team for one of these, in this order of preference:
- Graph export JSON. An administrator using the Teams Export APIs (
getAllMessages) or Microsoft’s free Teams data export tool (Teams admin centre, tenants of up to 500 users) produces JSON in Microsoft’schatMessageshape. Upload the JSON files or the whole.zip; several pages of results can be uploaded together. - Purview eDiscovery export. The organisation’s eDiscovery Manager searches the participants’ mailboxes and exports either HTML conversation transcripts (the Organize conversation into HTML transcript option) or a PST, in both cases with the Items report. These arrive in containers we convert for you in the white-glove service rather than read automatically; contact us when you have one.
- A PowerShell CSV. Some administrators export a chat with the Graph PowerShell module. That works if the header keeps
CreatedDateTime, a sender column and the message content.
Under UK GDPR you are entitled to a copy of your personal data, and your own Teams, Slack, Google Chat or Viva Engage messages are personal data. Make a written subject access request to the employer; the ICO’s guide is linked below. The organisation must normally respond within one month. Ask expressly for the messages in their native export form (Graph JSON, or the eDiscovery export with its Items report) rather than as screenshots or a PDF, because only a native export keeps the timestamps, channels and threads that can be verified. Messages a user has deleted stay visible to the organisation’s export tools for 21 days after deletion, and for longer where a retention policy or hold applies, so ask sooner rather than later.
Personal accounts (Teams Free)
- Sign in at teams.live.com/dataexport (button below) with the personal Microsoft account. Work and school accounts are refused here.
- Tick Chat history, and Media if you want the files, then Submit request. The archive appears under Available exports, sometimes within hours and sometimes after days; Microsoft allows itself up to 30 days.
- Download the
.tar, extract it, and uploadmessages.json. Only conversations you are still a member of are included, and each party’s personal account produces its own export.
What comes through: each chat labelled by its topic or participants, each channel post labelled with its team and channel, replies attached to the post they answer, and edited or deleted messages marked as system records. Bodies that Teams stores as HTML are reduced to their text. Times are converted from UTC to UK time and the batch is labelled to say so.
Skype
Skype was retired on 5 May 2025, and Microsoft’s window for exporting Skype data closed on 15 June 2026. Two sources remain.
- An archive you already downloaded. The Skype export was a
.tarfile. Extract it and uploadmessages.json. Media, if you requested it, sits in amediafolder and can be added as evidence exhibits. - History migrated to Teams. Accounts that were active in Skype between December 2024 and February 2025 and moved to Teams Free before 1 December 2025 kept their Skype chats there. Export them with the Teams personal account route; the file is the same
messages.jsonshape. For other accounts Microsoft deleted Skype history from 1 April 2026.
What comes through: each conversation labelled with its name, calls and file shares kept as system records, and an edited message once rather than twice. Skype’s cloud history only reaches back to April 2017; anything older survives only in the local database of an old Skype 7 installation, which we can look at in the white-glove service.
Google Chat
The one workplace tool where you can usually export both sides yourself. Google Takeout includes every direct message and space you are a member of, with everyone’s messages in it, unless your Workspace administrator has switched Takeout off for Chat.
- Use the button below. It opens Google Takeout with only Google Chat already selected. (If you arrive at Takeout another way: Deselect all, then tick Google Chat.)
- Scroll down, press Next step, then Create export. Google emails a link when the archive is ready: hours is typical, days for large accounts. Download the
.zip. - Upload the whole archive, or just the conversation you need. Inside
Takeout/Google Chat/Groups/each direct message or space is a folder holdingmessages.jsonandgroup_info.json. Select both files together, because the folder name is only an ID and the participants’ names live ingroup_info.json.
What comes through: every message with its sender, labelled Space or DM with the members’ names, and replies kept with the topic they belong to. Takeout writes times in UTC in long English form; they are converted to UK time and the batch is labelled to say so.
Discord
Two routes, and the difference matters for evidence.
Your data package (your own messages only)
- User Settings → Data & Privacy → Request all of my data (on mobile, Settings → Data & Privacy). Discord emails a download link within 30 days, and the link lasts 30 days.
- Upload the package
.zip, or the contents of itsmessagesfolder: one folder per channel holdingchannel.jsonandmessages.json(older packages usemessages.csv), plusindex.json.
The package contains only the messages you sent, never anyone else’s, and messages you deleted are absent. It evidences what you said and when, in which server and channel, and the batch is labelled to say exactly that. On its own it cannot evidence an exchange.
A whole channel with DiscordChatExporter
DiscordChatExporter is a free, open-source tool that saves a channel or direct message with every participant’s messages. Export in JSON and upload the file; senders, edit times and the channel are all kept.
Viva Engage (Yammer)
Members cannot export Viva Engage. A Global administrator, Engage administrator or Verified administrator exports the network’s data, and for one person’s messages there is a separate single-user export designed for subject access requests.
- Administrator: Viva Engage admin centre → Governance and compliance → Data export → choose the date range, and whether to include attachments → Export. The result is a
.zipof CSV files. - Upload
Messages.csvfrom the archive. - Not an administrator? Ask the organisation for the export, or for the single-user export under a subject access request.
What comes through: every message with its sender’s name, its community (or Private conversation for private messages) and its thread, so replies stay with the post they answer. Times are converted from UTC to UK time and the batch is labelled to say so.
Other platforms
Not read automatically yet. Each of these is handled in the white-glove service; contact us with what you have and we will tell you what it contains before any work starts.
- X (Twitter): Settings → Download an archive of your data. The archive stores direct messages with numeric account IDs rather than names, so it is not yet read automatically.
- TikTok: Settings → Download your data includes direct messages. Choose the TXT format.
- Zoom Team Chat: only an account administrator can export it, from the Chat history report, as CSV or HTML. In-meeting chat that a participant saved during the meeting is a plain
.txt. - Webex: a Control Hub compliance officer runs an eDiscovery report, delivered as a
.zipof one.emlper message. Those archives are handled white-glove. - Mattermost, Rocket.Chat and Zulip: administrator exports (Mattermost JSONL, Rocket.Chat HTML or JSON, Zulip archives). Rocket.Chat also lets a member export a room when the administrator has enabled it.
- Symphony, Bloomberg and ICE Chat: held firm-side by the compliance archive (Symphony XML or EML, Bloomberg daily XML files, ICE Chat XML). They reach you only through the firm or through disclosure, and we read them from what the firm supplies.
- Workplace from Meta: closed in May 2026, with its data deleted from 1 June 2026. An export downloaded before the closure can still be used.
- Microsoft Purview exports as PST (Teams, Exchange or Viva Engage) are handled white-glove, as are Outlook
.pstfiles generally.
Spreadsheets and other exports
A .csv or .tsv works if it has a date column, a sender column and a message column. Headers such as timestamp, date, sender, from, message and text are recognised automatically. ISO timestamps with a timezone offset are preferred, because they remove any ambiguity about what the time means.
Screenshots, photos of a screen, and PDFs
Yes, you can use them. In the full service they are added to your case as evidence exhibits: each file is SHA-256 hashed on upload, listed in the report’s court-friendly exhibit index, and images are reproduced in the report appendix. In the Court Bundle and white-glove tiers, screenshots are reviewed and matched against the message record by a supervised deep review.
What a screenshot cannot do is feed the automatic message timeline. Text inside an image has no underlying record to verify it against, and the analysis only counts messages whose text and timestamps can be programmatically checked. So the strongest case file is both: the original export for the timeline, and screenshots or PDFs as exhibits alongside it, especially for things an export cannot show, such as a deleted-message gap, a profile page or a story post.
The in-browser demo reads message exports only.
Video and audio, and how transcripts work
Yes, video and audio can be used, and they are transcribed for you. Recordings are often the clearest evidence in a case: a voice note, a doorstep recording, a video taken during an incident. Upload them to your case the same way you upload a photo, in the evidence section, and a draft transcript is produced automatically.
- Video:
.mp4,.mov - Audio:
.m4a,.mp3,.wav,.opus,.ogg
The soundtrack is extracted from video automatically, so there is nothing to convert yourself. Each recording is SHA-256 hashed on upload and listed in the exhibit index alongside your other evidence, and the transcript is stored with it so the words and the file stay together.
What the transcript is, and what it is not. It is an AI-generated draft. It is there so the content is searchable, quotable and reviewable, and so nothing sits in your case as an unlabelled file nobody has listened to. For a contested hearing, where the precise words matter, a certified human transcript is the version a court expects, and we will tell you when we think a recording needs one. Every draft transcript is labelled as a draft wherever it appears, in the app and in the report.
Read the draft before relying on it. Recordings made outdoors, over a phone speaker, or with people talking across each other are the ones most likely to need correcting, and you can re-run a transcript at any time.
Formats we do not read automatically
- Outlook’s own formats:
.pst,.ost,.msgand.olm. These are what File → Open & Export produces. Use one of the email routes above instead, or contact us about a.pst, which is converted in the white-glove service. - Signal: its native backups are encrypted and are not accepted. A clearly identified third-party CSV or JSON export can be used if you keep a record of where it came from.
A note on privacy
The demo parses whatever you give it entirely inside your own browser. Nothing is uploaded and no external service is called. Files uploaded to a case in the full service are processed on our servers, and are covered by our privacy policy and security page.