Getting your data out

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

What we can read. WhatsApp .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.

WhatsApp

The export happens on your phone, inside WhatsApp itself. Open the chat you need, then:

  1. iPhone: tap the contact or group name at the top → scroll down → Export ChatWithout Media.
  2. Android: tap ⋮ → MoreExport chatWithout media.
  3. Send the export to yourself (email it, save to Files or Drive), then upload the .txt or .zip here. 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.

Email

Two routes. A handful of individual messages is easiest as .eml. A whole mailbox or folder is .mbox.

A few individual messages (.eml)

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.

  1. 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.
  2. Click the label icon in the toolbar → Create new → name it, for example Case export → apply it.
  3. 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.)
  4. Scroll down, press Next step, then Create export. Google emails you when it is ready, usually within the hour for one label. The .mbox file is inside the Takeout/Mail folder 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)

  1. Select the mailbox in the sidebar → menu bar MailboxExport Mailbox… → choose where to save it. Apple’s guide.
  2. What you get is a .mbox package, which is really a folder. Right-click it → Show Package Contents.
  3. Inside is a file named just mbox. Copy it out, rename it to mailbox.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:

Using the Outlook desktop app? A map of what its menus offer.
  • 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 .txt file. Upload that file. The other Save As formats (.msg, Outlook Template, HTML, MHT) cannot be read here.
  • File → Open & Export → Import/Export offers .pst or CSV. Avoid the CSV: Outlook’s mail CSV famously contains no dates, which makes it useless for a timeline. The .pst preserves everything but needs converting. If a .pst is 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.
  1. Install Mozilla Thunderbird (free, Windows/Mac/Linux) and sign in to your email account. It syncs your folders automatically.
  2. Install the ImportExportTools NG add-on (Tools → Add-ons and Themes → search “ImportExportTools NG”).
  3. Right-click the folder you need → ImportExportTools NGExport foldermbox. 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

  1. Install SMS Backup & Restore (free) from the Play Store.
  2. Open it → Set up a backup → back up Messages. Save locally or to Drive.
  3. Upload the .xml file 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.

  1. In Finder, press Shift Command G and paste ~/Library/Messages, then press Return.
  2. Copy chat.db to 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.)
  3. 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.
  4. 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.
Why we ask you to choose. A 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.

  1. Install iMazing on a Mac or PC and connect your iPhone.
  2. Open Messages, select the conversation you need, and export it as CSV.
  3. 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

  1. Use a button below to open Meta’s Download your information page (it lives in Accounts Centre, several menus deep).
  2. Choose Download or transfer information → select your profile → Some of your information → tick Messages.
  3. Set the format to JSON (not HTML). Low media quality is fine, the text is what matters.
  4. When the download arrives, it contains one folder per conversation. Upload one conversation at a time, either its .json file or a .zip of that single conversation folder.

Telegram

  1. Install Telegram Desktop from Telegram’s own website. The phone app cannot export.
  2. Open the chat → ⋮ → Export chat history, or for everything: SettingsAdvancedExport Telegram data.
  3. 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.
  4. For a long HTML export split across messages.html, messages2.html and 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.
Don’t see “Export chat history”? You are probably using the Mac App Store version of Telegram, which does not have the export feature. Install Telegram Desktop directly from telegram.org instead, sign in, and the option appears.

Snapchat

  1. Sign in at Snapchat’s My Data page (button below).
  2. Request your data with Chat History included, in JSON format.
  3. 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.

LinkedIn

  1. Open LinkedIn’s Get a copy of your data page (button below).
  2. Choose Want something in particular? → tick MessagesRequest archive.
  3. 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.

  1. Owner or Admin: click the workspace name → Tools & settings (older menus say Settings & administration) → Workspace settingsImport & export data → the Export tab.
  2. 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.
  3. Upload the .zip exactly 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 with users.json, also works.
What a Slack export contains depends on the plan.
  • 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:

  1. 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’s chatMessage shape. Upload the JSON files or the whole .zip; several pages of results can be uploaded together.
  2. 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.
  3. 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.
If the organisation will not run an export for you: subject access.

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)

  1. Sign in at teams.live.com/dataexport (button below) with the personal Microsoft account. Work and school accounts are refused here.
  2. 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.
  3. Download the .tar, extract it, and upload messages.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.

  1. An archive you already downloaded. The Skype export was a .tar file. Extract it and upload messages.json. Media, if you requested it, sits in a media folder and can be added as evidence exhibits.
  2. 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.json shape. 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.

  1. 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.)
  2. 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.
  3. Upload the whole archive, or just the conversation you need. Inside Takeout/Google Chat/Groups/ each direct message or space is a folder holding messages.json and group_info.json. Select both files together, because the folder name is only an ID and the participants’ names live in group_info.json.
Takeout switched off? A Workspace administrator can disable Takeout for Chat. If the export refuses, ask the organisation: administrators can produce the same conversations from Google Vault as PST or mbox, which we handle in the white-glove service, or you can make a subject access request.

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)

  1. User SettingsData & PrivacyRequest all of my data (on mobile, Settings → Data & Privacy). Discord emails a download link within 30 days, and the link lasts 30 days.
  2. Upload the package .zip, or the contents of its messages folder: one folder per channel holding channel.json and messages.json (older packages use messages.csv), plus index.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.

Read this before using it. The tool needs a token. Running it with your own user token automates your account, which breaches Discord’s terms of service and can get the account terminated, and it hands the other side an easy provenance challenge. The compliant route is a bot token for a bot that a server administrator has added to the server. Whichever token is used, record who ran the export, when, and with which account, and keep the original JSON unedited.

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.

  1. Administrator: Viva Engage admin centreGovernance and complianceData export → choose the date range, and whether to include attachments → Export. The result is a .zip of CSV files.
  2. Upload Messages.csv from the archive.
  3. 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.

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.

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

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.

Try it on the demo →