Guide · Updated May 2026

How to delete all Instagram messages at once.

Instagram limits native unsend to one message at a time. There is no bulk option, no select-all, no date filter. This guide walks you through the 2026 method that actually works on threads up to 16,000 messages, why old DOM-scroll extensions miss most of your history, and how to back up the conversation before you erase it.

Free Chrome extension. Audited by Google. Nothing leaves your computer.

60-second answer

You can't delete all your Instagram messages at once from the Instagram app or the website. Meta only ships single-message unsend in the official UI. To actually bulk-delete an Instagram DM thread in 2026, install the free Unsay Chrome extension, open the conversation on instagram.com, click the side panel icon, click Scan, then click Unsend.

Unsay queues every message you ever sent and unsends them one by one at the same rate the app uses, about 6 seconds per message. The recipient gets no notification. The messages disappear from both sides, permanently. It works on regular DMs and group chats, on Chrome, Edge, Brave, and Opera.

Definition

Bulk unsend means programmatically calling Instagram's official unsend endpoint on every message in a thread, sequentially, with a safe delay. Same action as long-press + Unsend in the app, just repeated automatically.

1 msg/tapNative Instagram limit
5 to 7 sUnsay delay between unsends
16,431Largest thread stress-tested
0Notifications to recipient

Why Instagram native unsend doesn't scale

Open the Instagram app, long-press one of your messages, tap Unsend, confirm. The message disappears. Now repeat that 16,000 times. At 5 seconds per tap, that's a little over 22 hours of continuous thumb work, assuming you never miss, never scroll past, and never get bored. Instagram knows this. The friction is intentional.

There is no select-all gesture. There is no date range. There is no "delete this entire conversation from my side" option short of leaving a group chat or blocking the recipient, both of which are obvious to the other person. Even the official "Download your information" export gives you a copy of your DMs but does not delete them. Deletion is single-touch, by design.

For users with years of DM history, the 6 main scenarios are basically impossible by hand: cleaning a thread with an ex, wiping a long group chat, deleting a recruiter conversation, removing political takes from 2019, scrubbing a leaked-screenshot risk, or just decluttering an old inbox. The bulk delete Instagram doesn't ship is exactly what people need most.

Why DOM-scroll extensions miss old messages (the virtuoso wall)

If you search "bulk delete Instagram DMs" you will find older extensions that auto-scroll the chat window and click each "Unsend" button via the DOM. They look reasonable. They do not work on long threads, and most users only realize this after running them for an hour and seeing the count plateau at a fraction of the real total.

The reason is a frontend technique called virtual scrolling. The Instagram web client uses the open-source library Virtuoso to render only the messages currently inside the viewport. As you scroll up, the messages you scrolled past are torn out of the DOM to save memory. Only a small window of bubbles ever exists in the page at one time. An automated script that "reads" the DOM literally cannot see the messages that have already been recycled.

Definition

Virtual scrolling: a rendering optimization where only the visible portion of a long list is kept in the DOM. Old items are destroyed when they leave the viewport. Common in feeds, chats, and tables with thousands of rows.

Result: a DOM-scroll extension that walks "from top to bottom" will keep finding new messages as it scrolls, then stop, because Instagram has unmounted the bottom of the thread to prevent the page from crashing. The extension thinks it deleted everything. It actually deleted maybe 200 to 500 messages out of 8,000. The rest are still sitting on Meta's servers, ready to be screenshotted whenever someone scrolls back.

How Unsay reaches every message

Unsay does not touch the DOM. It uses the same connection the Instagram app and the official web client use under the hood. It walks the conversation from the most recent message back to the very first one your account ever sent in that thread, with no gaps and no virtual scrolling getting in the way.

The extension reuses your existing logged-in Instagram session, the same one your browser already has. Your password is never read, written, or stored. There is no separate account, no OAuth, no server-side relay.

In plain English

Instead of asking the page "what messages can you see?", Unsay asks Instagram directly for the next batch of messages in this thread, then loops. The DOM never matters. Unsay sees everything you ever sent, in order, until there is nothing left.

Once the scan finishes, Unsay holds a list of message IDs. It then unsends them one at a time, with a randomized 5 to 7 second pause between each. That cadence matches the behavior of a fast human user, so Instagram does not flag anything unusual. Stress tests on a 16,431-message thread completed with zero errors and zero account flags.

Step-by-step : delete all Instagram messages in 6 steps

Total active time for a 500-message thread: about 50 minutes background, 2 minutes of clicks. You can close Chrome at any point, the job state is persisted and resumes when you reopen the side panel.

  1. Install Unsay from the Chrome Web Store

    Open the Unsay listing and click Add to Chrome. The extension is free, 0 dollars, no signup. Same install works on Edge, Brave, and Opera since they all use the Chromium engine.

  2. Open the Instagram DM thread you want to clean

    Go to instagram.com, log in if you aren't already, and open the conversation. Stay in a regular Chrome window, not Incognito (extensions don't run there). The thread must be open in the active tab.

  3. Open the Unsay side panel

    Click the Unsay icon (a small "u" with three trailing dots) in your Chrome toolbar. A side panel slides in on the right of the window. Unlike a popup, it stays open while you click around, change tabs, or scroll the conversation.

  4. Click Scan to count every message you sent

    Unsay walks the thread from newest to oldest. For a 1,000-message thread, scanning takes about 30 seconds. The side panel shows the running total and the date of the oldest message reached so far. Other participants' messages are counted as context but never marked for deletion.

  5. Pick what to delete and, optionally, back up first

    Choose a date range: everything, last 30 days, last 6 months, last year, or a custom date range. If you want a copy of the conversation as evidence, click Back up this conversation before continuing. Unsay saves a single ZIP to your Downloads/ folder with an HTML viewer plus all media. Free saves your messages only; a Pass saves the full conversation both sides.

  6. Click Unsend and let it run

    Confirm in the modal. Unsay starts unsending one message every 5 to 7 seconds. A sticky progress bar shows current progress and ETA. You can pause, resume, or stop at any time, and you can close Chrome entirely, the job state persists. When it finishes, the side panel shows the final count and a summary.

Back up the conversation before mass deletion

Mass deletion is permanent. Once Unsay completes an unsend, that message is gone from both sides of the conversation and from Meta's servers within their normal retention window. There is no undo button, no trash folder, no "recover deleted messages" feature in the Instagram app. If the conversation has any value to you, sentimental, legal, or just memory-keeping, back it up first.

Unsay can package the full conversation as a single ZIP archive in your Downloads/ folder: a self-contained HTML viewer that opens in any browser, plus every photo, video, voice note, and shared reel cached locally as real files (not expiring CDN links). Voice notes get their waveform rendered. Photos open in a lightbox. Shared reels keep their captions. The HTML is human-readable and works offline, forever, with no server dependency.

Read next : Delete Instagram messages from both sides, how it actually works

The companion guide on what "deleted from both sides" really means at the Meta backend layer, when messages truly disappear, and the edge cases you should know about (forwarded screenshots, push notifications already delivered, archived snapshots).

FAQ

Can you delete all Instagram messages at once from the app ?

No. The Instagram mobile app and the instagram.com web client only support unsending one message at a time via long-press. There is no bulk option in any official Meta interface as of 2026. A browser extension like Unsay is currently the only way to bulk-delete a thread without 22 hours of manual taps.

Does deleting Instagram DMs work on group chats ?

Yes. Unsay treats group threads identically to one-on-one threads. Only your own messages are unsent; other participants' messages are never touched. The other members get no notification.

How long does it take to delete 10,000 Instagram messages ?

About 16 hours of runtime, at 5 to 7 seconds per message. You don't have to babysit it. Unsay persists job state, so you can close Chrome, sleep your laptop, and resume the next day. A 1,000-message thread finishes in about 1h40, a 100-message thread in about 10 minutes.

Will Instagram detect and ban my account ?

No reported account flags in over a year of testing, including a 16,431-message stress test. Unsay's 5 to 7 second randomized delay keeps the pace human-like, so Instagram does not detect anything unusual. It uses the same Instagram session your browser already has.

What if I just want to delete messages from one specific person ?

Open that person's DM thread and run the same scan. Unsay only deletes within the open thread, so targeting one contact is just a matter of choosing which thread you open.

About Unsay