Back to blog

How to Delete All Messages in a Discord Channel (2026 Guide)

Discord has no "clear channel" button. I have been running moderation tooling long enough to watch that single missing feature generate the same panicked question thousands of times, usually about four minutes after a spam wave hits.

The advice you find is mostly half right. The most popular answer — clone the channel, delete the original — works, and it also quietly breaks things you had working. Nobody warns you, because the person writing the answer never had a webhook in that channel.

Here is the complete picture, including the part everyone skips.

In this guide

The short answer

There are exactly two ways to empty a Discord channel, and the choice is about identity, not speed.

  • Delete the messages in place. The channel keeps its ID, permissions, webhooks, and position. Messages under 14 days old go fast; older ones go slowly, one at a time.
  • Delete and recreate the channel. Instant, clears history of any age, but the new channel has a new ID — so every webhook and bot setting pointing at the old one stops working silently.

My opinion, stated plainly: purge in place unless you have checked what is wired to that channel. The recycle option is faster and it is the one I see people regret.

Both methods run through a slash command, which means you need a bot in the server first. If you already have BetterAntispam installed, skip to Method 1. If not, the next section is the two-minute version.

Before you start: get the commands

Discord gives regular users no bulk-delete tool at all, so every method in this guide is a command that a bot adds to your server. Here is the whole setup, start to finish.

Step 1 — Check that you are allowed to do this

Two different permissions are involved, and people trip over this constantly:

What you are doingPermission you need
Adding the bot to the serverManage Server
Running /purge or /nuke afterwardsAdministrator

Server owners already have both. If you have neither, you will need an admin to do this part for you — there is no workaround, and that is deliberate on Discord's side.

Step 2 — Add the bot to your server

Click Add BetterAntispam to Discord. Discord opens its own authorization screen, where you:

  1. Pick your server from the dropdown at the top
  2. Read the permission list Discord shows you
  3. Press Authorize

You land back on our site when it is done, and the bot appears in your member list.

Do not uncheck the permissions. Cleanup needs Manage Messages and Read Message History to work at all, and recycling a channel additionally needs Manage Channels. Remove them and the commands below fail with a permission error instead of doing anything. If you want to tighten the bot's access later, do it with channel-level overrides rather than at the invite screen — Discord's permissions FAQ explains how roles and per-channel overrides combine.

Step 3 — Confirm the commands actually showed up

Open any channel and type a single / character. A command menu appears above the message box. Type purge and you should see /purge listed with BetterAntispam's name next to it.

If nothing appears, it is almost always one of two things: Discord has not finished syncing the commands yet (wait about a minute), or your client is stale (press Ctrl+R, or Cmd+R on Mac, to reload). Commands are registered server-wide, so once they appear they work in every channel the bot can see.

Step 4 — Run /setup before you delete anything

/setup walks you through the protection options, and it is where you choose a log channel.

Do this before your first purge. The log channel is where BetterAntispam posts the transcript of everything it deleted, and that transcript is the only record you will have afterwards. There is no way to generate it retroactively — a point I come back to in keeping a transcript, because it is the step people skip and later wish they had not.

Step 5 — You are ready

That is the setup. Everything from here on is a command you type into the channel you want cleaned. New to slash commands generally? Discord's overview of apps covers how they work under the hood.

Why the 14-day rule exists

Bots can delete messages older than 14 days — they just cannot do it quickly.

Discord's API gives bots two different tools. The bulk delete endpoint removes up to 100 messages in one call and flatly refuses anything older than 14 days. The single-message endpoint works on a message of any age, one at a time.

So old messages are not off limits. They are rate-limited. Discord's rate limit rules mean each individual delete needs a pause of roughly a second and a half. A thousand messages older than two weeks is about 25 minutes of steady work.

That is the real tradeoff — not "impossible," but "slow enough that you need to decide whether it is worth it."

BetterAntispam splits the job automatically. Anything under 14 days goes out in batches of 100. Anything older falls back to paced single deletes with rate-limit retries. When a purge looks frozen on an old channel, this is almost always what is happening.

This is the single most common support question we get about cleanup. The command is not stuck. It is obeying a Discord limit that no bot can bypass.

Method 1: Delete the messages, keep the channel

Go to the channel you want cleared, type /purge, and press Enter. This is the right default.

/purge
/purge limit:200

/nuke and /purge are the same engine in BetterAntispam with identical options — use whichever name you remember. Leave limit off to target the channel's history, or set it from 1 to 1000 to cap how much gets removed.

You run the command in the channel you want emptied. There is no channel argument, which is a small safety feature: you cannot accidentally wipe a channel you are not looking at.

What you need (all covered if you followed the setup above):

  • The person running it needs Administrator
  • The bot needs Manage Messages and Read Message History in that channel

Before deleting anything, the bot samples the channel and shows a confirmation with three choices: purge the messages, recycle the channel, or cancel. Nothing is destroyed until you pick one, so running the command is safe on its own — you get a chance to back out.

If you are cleaning up mid-incident, pair this with a channel lock first so the spam stops arriving while you work — see locking down a Discord server during a raid.

[IMAGE: discord-purge-confirmation.png — the /purge confirmation card showing message count, estimated time, and the three action buttons. Alt: "BetterAntispam /purge confirmation showing 847 messages found and buttons for Purge, Recycle, and Cancel."]

Method 2: Recycle the channel

Recycling deletes the channel and immediately recreates it with the same name, permissions, and category placement. Discord's own UI calls the manual version Clone Channel.

It is instant and age-proof, which is why it gets recommended everywhere. Here is what those recommendations leave out.

A recycled channel has a new channel ID. The name looks identical. The ID does not carry over, and most integrations are wired to the ID:

  • Webhooks do not survive. GitHub notifications, uptime monitors, RSS feeds, Zapier and n8n automations all stop. No error message, just silence.
  • Bot configuration breaks. Log channels, welcome channels, ticket categories, starboards, and level-up announcements are almost always stored by ID.
  • External scripts that hardcode the channel start failing.

The failure mode is what makes this genuinely nasty. Nothing announces itself. You notice three days later that your mod log has been empty the whole time.

Recycling needs Manage Channels for the bot, and it fails if your server has hit Discord's 500-channel limit.

Rule of thumb I would give anyone: recycling a memes channel is fine. Recycling your logging channel is a mistake you will pay for later.

How BetterAntispam picks for you

Rather than making you estimate, the bot scans the channel first and recommends recycling when purging would genuinely drag. It suggests recycle when any of these is true:

ConditionThreshold
Messages older than 14 daysMore than 120
Messages found in the scanMore than 2,500
Estimated purge timeOver about 28 seconds

Those are the actual numbers from the cleanup engine, not rounded marketing figures.

The recommendation is still only a recommendation. If the channel has webhooks attached, choose purge and let it take its time. The bot does not know what is wired to that channel. You do. That is a limitation worth stating rather than hiding.

Keeping a transcript

When BetterAntispam finishes a purge or recycle, it attaches a transcript of the removed messages to the cleanup log entry.

This is the part most guides skip, and I think it matters more than the deletion itself.

After a raid, the spam is worthless but the pattern is not — which accounts posted, in what order, with what links, at what interval. That is the evidence you need to close the entry point and to file a report with Discord. Wipe the channel with no transcript and you have destroyed the only record of how the attack actually worked.

Discord's own raid protection guidance leans on identifying raiders before removing them, and the audit log only retains entries for 45 days. A transcript is your own copy.

Set up a log channel through /setup or /logging before you need it. There is no way to reconstruct this after the fact.

Recovering messages you deleted by mistake

You can often get them back with /snipe, which is not what most articles will tell you.

The standard answer is "deleted messages are gone forever." For messages deleted while a bot was watching, that is wrong. BetterAntispam keeps a short-term record of recent deletions:

/snipe

You get a browsable list filtered by time range — last hour, 6 hours, 24 hours, 3 days, a week, two weeks, a month, all of it, or a custom window — and you can restore individual messages from it.

Two honest limits:

  • The free tier previews and restores up to 50 messages. Restoring everything at once is a Shield (premium) feature.
  • Honeypot channels are deliberately excluded, because re-posting what a trap channel caught would defeat its purpose. If you are not using honeypots yet, they are covered in the honeypot section of the raid playbook.

What genuinely cannot be recovered: messages deleted before the bot joined, and any history removed by recycling the channel. Recycling is permanent.

Deleting one person's messages instead

If a single account caused the mess, clearing the whole channel is the wrong tool — you will delete the real conversation along with the spam.

Ban the account with a message-deletion window instead:

/ban user:@spammer purge_days:1 reason:spam

purge_days tells Discord how far back to remove that account's messages as part of the ban, up to 7 days. One action, targeted, and the surrounding conversation survives.

This is the correct move after most spam incidents. Reach for a full channel wipe only when the damage is spread across many accounts. If you are getting hit repeatedly by the same kind of account, the real fix is upstream — see tuning detection so it does not catch real members.

Automating cleanup with /autonuke

/autonuke settings schedules recurring cleanup so you stop doing this by hand. It is the feature I would set up first, and almost nobody knows it exists.

Some channels simply do not need history — bot-command channels, notification dumps, spam-bait channels, temporary event channels. Auto-nuke keeps them tidy on a timer.

How it works

Open /autonuke settings and you get a three-page dashboard: Overview, Channels, and Whitelist.

For each channel you add, you set two things:

  • A message limit — how many recent messages to keep. This is the part people misread. It is not "delete this many." Setting 50 keeps the newest 50 messages and deletes everything older. Setting 0 deletes everything.
  • An interval — how often the cleanup runs, written as 12h, 7d, 2w, 1M, and so on.

So a limit of 50 on a 7d interval gives you a rolling window: the channel always shows roughly the last 50 messages and never grows past that.

The whitelist is the feature worth knowing

The Whitelist page lets you exempt specific roles and users from the purge. Their messages survive every cycle.

This turns auto-nuke into something more useful than a timer. Pin-worthy staff announcements in a busy channel stay put while member chatter rotates out. I use it for bot-command channels where the staff instructions at the top need to persist but nobody's /rank spam does.

Free tier limits, stated plainly

LimitFreeShield
Monitored channels1More
Minimum interval7 daysFaster

One channel on a weekly cycle is genuinely enough for most servers — point it at your bot-commands channel and forget about it. If you need three channels cleaned every 12 hours, that is a paid feature and I would rather say so here than have you discover it in the dashboard.

What to expect on old channels

Auto-nuke inherits the same 14-day constraint as manual purging. When a cycle hits a large backlog of messages older than two weeks, it deletes a bounded number and defers the rest to the next cycle, telling you how many were deferred. This is deliberate — the alternative is one cleanup cycle stalling for hours against Discord's rate limits.

Each cycle also posts its own transcript to your log channel, so scheduled cleanup does not mean losing the record.

[IMAGE: discord-autonuke-dashboard.png — the /autonuke Channels page showing one configured channel with keep-count and interval. Alt: "BetterAntispam autonuke dashboard showing #bot-commands set to keep 50 messages every 7 days."]

Which method to use

SituationDo this
Recent spam, channel has webhooks or bot config/purge in place
Whole history must go, nothing wired to the channelRecycle
One account caused it/ban with purge_days
Channel that never needs historySchedule /autonuke
A few old messages, channel ID must stayDelete by hand

Permissions reference

ActionRunner needsBot needs
/purge, /nuke (purge)AdministratorManage Messages, Read Message History
/purge, /nuke (recycle)AdministratorManage Channels as well
/autonuke settingsAdministratorManage Messages, Read Message History
/snipe restoreManage MessagesManage Messages, Send Messages
/ban with purge_daysBan MembersBan Members

If you are unsure how Discord permissions interact here, Discord's four steps to a safer server is a solid primer on roles and server-wide 2FA.

Deleting messages manually

For a handful of old messages in a channel whose ID cannot change, doing it by hand is still valid. Hover a message, click the three dots, choose Delete Message. Holding Shift while clicking skips the confirmation.

Past a few dozen messages this stops being realistic.

Do not use third-party "message cleaner" tools that ask for your account token. Handing over a user token violates Discord's terms of service and is one of the most common ways accounts get stolen. No cleanup job is worth losing your account over.

Get cleanup off your to-do list

If you are reading this because a channel is currently a mess, the fastest path out is:

  1. Add BetterAntispam to your server — takes about a minute, full steps here
  2. Run /setup and pick your protection options and a log channel
  3. Run /purge in the affected channel, then choose purge or recycle at the confirmation
  4. Set /autonuke on any channel that does not need history

Cleanup, /snipe recovery, single-channel auto-nuke, and the core antispam, anti-raid, and anti-nuke protection are all on the free invite. Bulk slowmode, snipe restore-all, and multi-channel auto-nuke are the paid extras.

And honestly — if a channel needed a full wipe, something upstream let the spam in. Cleanup is the symptom. The raid incident playbook covers the cause.

FAQ

Do I need a bot to delete all messages in a channel?

For anything beyond a handful of messages, yes. Discord's own client has no bulk-delete or "clear channel" option for regular users — the only native way to remove many messages at once is to delete the channel itself. Bots get access to an API endpoint the app does not expose, which is why every real answer to this question involves one.

How do I get the /purge command?

Add a bot that provides it, then type / in any channel to see it. The setup section above walks through it in five steps. You need Manage Server to add a bot and Administrator to run the cleanup commands.

Why can't I see the slash commands after inviting the bot?

Discord takes a moment to sync commands to your client. Wait about a minute, then reload with Ctrl+R (Cmd+R on Mac). If they still do not appear, re-invite the bot and make sure you did not uncheck permissions on the authorization screen.

Why did my purge slow to a crawl?

It hit messages older than 14 days. Discord's bulk endpoint refuses those, so they are deleted one at a time with rate-limit pacing. Let it run, or recycle the channel if speed matters more than keeping the channel ID.

Can I recover messages after deleting them?

Often yes, using /snipe, within the retained window and up to 50 messages on the free tier. Messages lost to a channel recycle are gone permanently.

Does deleting a channel delete its messages?

Yes, irreversibly. That is what makes recycling fast and also what makes it a one-way door.

Can I clear a Discord channel on mobile?

Slash commands work normally in the mobile app, so /purge works fine there. Discord has no native mobile option for clearing a channel.

How many messages can one command delete?

limit accepts up to 1000 per run. Leave it off to target the channel's history — the bot will recommend recycling if purging would take too long.

What is the difference between /nuke and /autonuke?

/nuke is a one-time cleanup you trigger yourself. /autonuke is a recurring schedule that keeps chosen channels trimmed automatically. Despite the shared name they are separate systems.

Does /autonuke delete pinned or staff messages?

Only if you let it. Add the relevant roles or users to the auto-nuke Whitelist and their messages are excluded from every cycle.

Is AutoMod enough on its own?

For blocking bad messages before they post, Discord's AutoMod is genuinely good and you should turn it on first. It does not clean up messages already posted, and it cannot see join patterns or destructive admin actions — those need a separate layer.

BetterAntispam on Nick LaunchesFeatured on ToolFameFeatured on Startup FameVerified on DANG!ToolpilotToolpilotFeatured on SaaSGrowFeatured on ShowMeBestAIFazierSubmit AI ToolsFeatured on Twelve ToolsFeatured on Wired BusinessFeatured on Findly.toolsListed on Turbo0Featured on SaaSFameFeatured on neeed.directoryFeatured on Dofollow.ToolsGood AI ToolsAI Agents DirectoryAura++SideProjectorsFoundrListShinyLaunchStartup FastNextGen ToolsFind-Us-HereDeepLaunchAcid ToolsStartupBaseNewToolUFindWhatsYourHoursOpenHuntsMarketingDBStartup InspireStarter BestTiny StartupsFeatured on aitoolfame.comFeatured on IndieHuntShinyLaunchLaunched on LaunchPandaFeatured on WhatsthebigdataFeatured on Yo.directoryAs seen on Launch Llama Newsletterbetterantispam.com Domain RatingVerified DR - Verified Domain Rating for betterantispam.comFeatured on ToolfioBetterAntispam | Firsto LaunchFeatured on DailyPingsFeatured on DanielLaunchesFeatured on ShipBoostFeatured on AgentWork.ToolsFeatured on SaaSCityFeatured on WayfindioFeatured on DodoDirectoryFeatured on TinyLaunchpadFeatured on ListMySaaSVerified on directreeFeatured on Submit HuntFeatured on VibeCodingListFeatured on NoonlaunchFeatured on LaunchItListed on MaidensailVerified on Endors — BetterAntispamMarked on IndieAscentListed on CurlShipListed on PublishYourSaaS