How to Export Slack Messages (2026 Guide)
Exporting Slack data sounds simple until you hit the plan-tier rules. Free, Pro, and Business+ workspaces get the Standard Export tool, public channels only. Business+ can apply for a more comprehensive export. Enterprise Grid has Corporate Export with private channels and DMs included. Here’s the full breakdown for 2026, including what’s actually inside the JSON files.
1. Run a Standard Export
Standard Export is the default for Free, Pro, and Business+ workspaces. Workspace Owners (and on some plans, Workspace Admins) can run it.
- In your browser, go to
your-workspace.slack.com/services/export(replaceyour-workspacewith your subdomain). - Sign in if prompted. You must be a Workspace Owner.
- Pick a date range:
- Today
- Last 7 days
- Last 30 days
- A custom range
- Click Start Export.
- When the export finishes processing (a few minutes for small workspaces, hours for large ones), Slackbot sends you a DM with a download link.
- Download the ZIP and extract.
What’s included:
- Messages from all public channels in the date range.
- A
channels.jsonfile listing all public channels. - A
users.jsonfile with workspace user data. - A
integration_logs.jsonfile (Pro and above). - Files are referenced by URL: the actual file binaries aren’t bundled. URLs require a logged-in Slack session to download.
What’s not included in Standard Export:
- Private channels
- Direct messages and group DMs
- Connect channels you don’t own
- Files (just URLs to them)
On Free workspaces, exports cover the last 90 days of public channel history. Pro and Business+ have full history retention.
2. Apply for Corporate Export (Business+ and Enterprise Grid)
If you need private channels and DMs, typically for compliance, eDiscovery, or legal hold, you need Corporate Export (also called Compliance Export in some regions). It is not self-serve. You apply.
- Go to
your-workspace.slack.com/account/team. - Click the Settings tab.
- Scroll to Exports.
- Click Apply for Corporate Export.
- Submit the form with:
- Legal or business justification
- Compliance framework (HIPAA, GDPR, FINRA, etc.)
- Authorized contact information
- Slack’s policy team reviews manually. Approval can take days to weeks.
Once approved:
- The export tool now covers public channels, private channels, group DMs, and 1:1 DMs.
- You can schedule recurring exports: daily, weekly, or monthly.
- Standard Export is disabled on the workspace once Corporate Export is enabled. The two are mutually exclusive.
Corporate Export is included with Business+ (by application) and Enterprise Grid (with broader admin tooling and the Discovery API on top).
3. Use the Discovery API (Enterprise Grid)
Enterprise Grid plans get access to the Discovery API, which is the most flexible export option for compliance and DLP integrations.
The Discovery API lets approved Org Admins:
- Pull messages from any channel or DM in the org
- Capture deleted messages and message edit history
- Stream changes in near-real-time to compliance vendors (Smarsh, Theta Lake, Global Relay, Onna)
- Filter by user, channel, date range, content type
This isn’t a UI tool, you (or a vendor) call it through HTTP. It’s the foundation that enterprise DLP and archive products build on top of.
4. Export an Individual Channel
The official tools are workspace-wide. For a single channel, you have a few options.
Option A, conversations.history API:
- Get the channel ID (right-click the channel > Copy link, the ID is at the end of the URL).
- Call
https://slack.com/api/conversations.history?channel=CHANNEL_IDwith a Slack app token. - Paginate through
next_cursoruntil you have all messages. - Optionally call
conversations.repliesfor each message with replies to capture threads.
This requires building a small script and creating a Slack app with the right scopes (channels:history, groups:history, im:history, mpim:history).
Option B, Marketplace tools:
Apps like ExportSlack, Slackdump (open source), and Onna offer channel-level exports without code. Some are free with limits, some paid.
Option C, Workflow Builder + Sheet:
Build a workflow that triggers on each new message in a channel and appends it to a Google Sheet. Limited (no historical messages, only new ones), but gives you a live archive.
Option D, Manual copy:
Open the channel, scroll to the start, copy-paste the messages. Practical only for short threads. Slack also lets you click a message’s three-dot menu > Copy text or Copy link for individual messages.
5. What’s Inside a Slack Export
The Standard and Corporate Export ZIPs share a structure.
slack-export-2026-05-10/
channels.json ← list of public channels
groups.json ← private channels (Corporate Export only)
mpims.json ← group DMs (Corporate Export only)
dms.json ← 1:1 DMs (Corporate Export only)
users.json ← user metadata
integration_logs.json ← app and integration history
general/
2026-05-09.json
2026-05-10.json
random/
2026-05-09.json
...
Each daily JSON file is an array of message objects. A typical message looks like:
{
"type": "message",
"user": "U12345",
"text": "Hello team",
"ts": "1715290000.000200",
"thread_ts": "1715289000.000100",
"reply_count": 3,
"reactions": [...],
"files": [{"url_private": "..."}]
}
To make the data readable, run it through a viewer, open-source tools like slack-export-viewer spin up a local web UI, or paid services like ViewExport offer a hosted viewer with search.
6. Data Retention and What Gets Exported
Two related but separate settings:
- Retention: how long Slack keeps data. Configured under Settings & administration > Workspace settings > Message retention & deletion. Defaults to keep everything; can be set to delete after N days.
- Export: what’s pulled out at export time. Only includes data that hasn’t been deleted by retention rules.
If your workspace has aggressive retention (say, 30 days), an export only covers the last 30 days, even if you select a longer range.
Quick Reference
| Plan | Standard Export (public channels) | Corporate Export (all channels + DMs) | Discovery API |
|---|---|---|---|
| Free | Last 90 days | Not available | Not available |
| Pro | Yes, full history | Not available | Not available |
| Business+ | Yes, full history | By application | Not available |
| Enterprise Grid | Yes (or Corporate Export) | Yes | Yes |
Which Method Should You Use?
- Workspace Owner needing public channel history? Standard Export from
/services/export. - Compliance team on Business+? Apply for Corporate Export, expect a manual review.
- Enterprise compliance with DLP vendor? Discovery API through your archive provider.
- Single channel for offboarding or audit? Open-source tool like Slackdump, or a quick
conversations.historyscript. - One thread for a doc? Manual copy of the message link, paste into your destination.
Stop Treating Slack History as a Black Box
Exports give you the raw data. The harder problem is making sense of it. Carly is an AI assistant that connects to 200+ apps including Slack and handles the repetitive work, pulling decisions, action items, and follow-ups out of conversations and turning them into structured tasks across the rest of your stack.
More on Slack: How to archive a channel in Slack · How to create a private channel in Slack · How to pin a message in Slack · How to connect Slack to an AI agent
Ready to automate your busywork?
Carly schedules, researches, and briefs you—so you can focus on what matters.
Get Carly Today →Or try our Free Group Scheduling Tool or Free Booking Page