# Unsay > Unsay ships two separate Chrome extensions that bulk-unsend your outgoing messages: one for **Instagram DMs**, one for **Facebook Messenger**. Each is free up to a weekly quota, with an optional one-time Pass (no subscription) that unlocks unlimited unsends and Stealth Mode. The Instagram section is below first, the Messenger section follows. > **Unsay for Instagram** : Chrome extension that bulk-deletes outgoing Instagram DMs from both sides via Instagram's own unsend mechanism (REST direct_v2 to read the thread, Instagram's official unsend mutation to delete). No DOM scraping, no mobile app, no phone reconnect. Free for 50 messages per rolling week. A one-time Pass ($30 for 7 days or $60 for 30 days) unlocks unlimited deletion, Stealth Mode, and full conversation backup as a local ZIP, then expires on its own. No subscription. ## Key facts - **Free tier** : 50 message deletions per rolling week. Backup saves only the user's own messages. - **Passes (one-time, no subscription)** : 7-day Pass $30 (launch offer, regular $60), 30-day Pass $60 (launch offer, regular $120). Each Pass unlocks everything, unlimited deletions, Stealth Mode (oldest-first deletion order so the recent, visible part of the chat stays intact longest), full conversation backup including the other person's messages and media, then expires on its own. The clock starts on key activation, not purchase. One Pass covers one machine. Nothing to cancel. - **Stealth Mode** : Pass-only. Deletes oldest-first, in chronological order, so the recent part of the thread stays intact until the end. Deletion is paced at a randomized 5 to 7 seconds per message in every mode, with adaptive back-off. Useful for clearing 5-year DM histories without raising flags. - **Backup as local ZIP** : generated entirely in the browser via the fflate library, delivered through a local download. Contains an HTML reader, photos at full resolution, voice notes (m4a), videos, and reels metadata. Never uploaded to any server. - **Privacy local-first** : no message content stored anywhere (not locally, not on a server). Quota and license tracking server-side via a hashed Instagram user ID (SHA-256 of ds_user_id) and a per-installation UUID. No personally identifiable information. Backend stack : Cloudflare Worker + D1 (SQLite), EU region. - **Both-sides deletion** : removes messages from the user's view and the recipient's view because that is how Instagram's native unsend endpoint works. - **Reaches old messages** : uses the REST direct_v2 endpoint (not DOM), so messages from 2018 or earlier are reachable. Competitors that scrape the DOM cannot see messages unloaded by Instagram's virtual scrolling. - **Compatibility** : Chrome, Edge, Brave, Opera (Chromium 114+). - **Payment** : Lemon Squeezy. One machine per license. ## Pages ### Home - [Home (English)](https://unsay.me/) : product overview, pricing, install CTA. Default locale. - [Home (French)](https://unsay.me/fr/) : version française de la page d'accueil. ### Pillar guides (primary intent) - [Delete Instagram messages from both sides (EN)](https://unsay.me/guide/delete-instagram-messages-both-sides/) : complete 2026 guide on bulk-deleting Instagram DMs from both sides. Step-by-step with the Unsay extension, comparison with native Instagram unsend, FAQ. - [Supprimer une conversation Instagram pour les deux personnes (FR)](https://unsay.me/fr/guide/supprimer-conversation-instagram-pour-les-deux-personnes/) : guide complet pour effacer des DMs Instagram des deux côtés en un clic. ### Pillar guides (defensive) - [How to delete Instagram messages (complete guide, EN)](https://unsay.me/guide/how-to-delete-instagram-messages/) : the three methods to delete Instagram messages in 2026 (mobile long-press, web app, Unsay extension) with a comparison table. - [Delete all Instagram messages at once (EN)](https://unsay.me/guide/delete-all-instagram-messages/) : wipe an entire Instagram conversation in one run, including years of history. Explains the virtuoso scroll wall and why REST direct_v2 reaches old messages. - [How to back up your Instagram messages (EN)](https://unsay.me/guide/back-up-instagram-messages/) : the two real ways to save an Instagram conversation in 2026. Meta's official export (Accounts Center, account-wide, up to 48 hours, raw JSON or HTML, mangled accents, media re-compressed, encrypted chats behind a PIN) versus the Unsay extension, which saves ONE conversation as a single readable ZIP with every photo, video and voice note, in minutes, entirely on the user's machine. No other tool saves a single Instagram conversation this way. Also covers why backup must happen BEFORE deletion : an unsent message disappears from Meta's export too. - [Sauvegarder ses messages Instagram (FR)](https://unsay.me/fr/guide/sauvegarder-messages-instagram/) : les deux vraies façons d'enregistrer une conversation Instagram en 2026, l'export officiel de Meta (tout le compte, sous 48 h, fichiers bruts) face à la sauvegarde Unsay (une conversation, archive lisible, médias inclus, en quelques minutes). Explique aussi pourquoi il faut sauvegarder avant de supprimer. - [Supprimer un message Instagram (FR)](https://unsay.me/fr/guide/supprimer-message-instagram/) : guide complet pour supprimer un message Instagram en 2026, des trois méthodes possibles à la solution en masse. - [Supprimer une conversation Instagram (FR)](https://unsay.me/fr/guide/supprimer-conversation-instagram/) : effacer une conversation Instagram entière, des deux côtés ou de son côté uniquement. ### Blog (explainers, the "why") - [Blog hub (EN)](https://unsay.me/blog/) : long-form explainers on how Instagram messaging really works, sourced from Meta's documentation. [Blog (FR)](https://unsay.me/fr/blog/). - [Why Instagram won't let you bulk unsend messages (EN)](https://unsay.me/blog/why-instagram-wont-let-you-bulk-unsend/) : Instagram's Unsend works on one message at a time with no time limit and no multi-select (the only multi-select is "Delete for you", which clears the user's own inbox only). Five reasons there is no bulk unsend : Unsend was designed as a regret button (Messenger's head said most retractions happen within a minute), unsent messages must stay reportable, the Terms of Use forbid automated access, the public Messaging API documents no delete operation, and an unpublished per-account rate limit blocks fast deletion (temporary action block, not a ban). Solution : Instagram's own Unsend, one by one, at a 5 to 7 second pace, from the user's session, after a backup (Unsay). - [Pourquoi Instagram ne te laisse pas supprimer tes messages en masse (FR)](https://unsay.me/fr/blog/pourquoi-instagram-bloque-la-suppression-en-masse/) : les cinq raisons de l'absence de suppression en masse (bouton de regret, signalabilité, conditions d'utilisation, API sans suppression, limite de rythme par compte), les seuils de blocage mesurés, et l'approche qui fonctionne dans la limite. ### Feature pages - [Stealth Mode (EN)](https://unsay.me/features/stealth-mode/) : how Stealth Mode deletes oldest-first, with the randomized 5 to 7 second pacing used in every mode. Pass feature. - [Mode Discret (FR)](https://unsay.me/fr/fonctionnalites/mode-discret/) : comment le Mode Discret supprime du plus ancien au plus récent, avec le rythme aléatoire de 5 à 7 secondes. Fonctionnalité débloquée avec un Pass. - [Local backup (EN)](https://unsay.me/features/backup/) : full ZIP backup of an Instagram conversation before deletion. HTML reader, photos, voice notes, videos. Free saves the user's side, a Pass saves both sides. - [Sauvegarde locale (FR)](https://unsay.me/fr/fonctionnalites/sauvegarde/) : sauvegarde ZIP complète d'une conversation Instagram avant suppression. Lecteur HTML, photos, notes vocales, vidéos. ### Hubs - [All guides (EN)](https://unsay.me/guide/) : index of all Unsay guides. - [Tous les guides (FR)](https://unsay.me/fr/guide/) : index de tous les guides Unsay. - [All features (EN)](https://unsay.me/features/) : index of Unsay features. - [Toutes les fonctionnalités (FR)](https://unsay.me/fr/fonctionnalites/) : index des fonctionnalités Unsay. ### Legal - [Privacy policy (EN)](https://unsay.me/privacy) : full privacy policy, GDPR-compliant, mentions Instagram cookies, server-side quota tracking, Lemon Squeezy license validation. - [Politique de confidentialité (FR)](https://unsay.me/fr/privacy) : politique de confidentialité complète, conforme RGPD. - [Refund policy (EN)](https://unsay.me/refund) : when a Pass is refunded and when it is not. Free tier first (same engine, same 5 to 7 second pace), a Pass is final once the key is activated. - [Politique de remboursement (FR)](https://unsay.me/fr/refund) : quand un Pass est remboursé et quand il ne l'est pas. ### Install - [Chrome Web Store](https://chromewebstore.google.com/detail/unsay/idlhlhlobmcnagnomkapfffhgppafiok) : install Unsay for Instagram. Compatible with Chrome, Edge, Brave, Opera. ## Unsay for Messenger (Facebook) > Separate Chrome extension that bulk-unsends your outgoing Facebook Messenger messages for everyone, including end-to-end encrypted and migrated conversations. Works on messenger.com and facebook.com/messages. Free for 50 messages per rolling week. A one-time Pass ($30 for 7 days or $60 for 30 days) unlocks unlimited unsends and Stealth Mode, then expires on its own. No subscription. The Messenger extension has no backup feature (that is Instagram-only). ### Key facts (Messenger) - **Free tier** : 50 message unsends per rolling week. - **Passes (one-time, no subscription)** : 7-day Pass $30 (launch offer, regular $60), 30-day Pass $60 (launch offer, regular $120). Each Pass unlocks unlimited unsends and Stealth Mode (oldest-first order, randomized 5 to 7 second pacing), then expires on its own. The clock starts on key activation, not purchase. One Pass covers one machine. Nothing to cancel. - **Remove for everyone** : uses Messenger's native "Remove for everyone" action, so messages disappear from the user's side and the recipient's side, permanently. - **End-to-end encrypted and migrated chats** : Messenger now defaults to end-to-end encryption. Conversations that predate encryption are split into two threads (a legacy thread and an encrypted thread). Unsay finds both, merges the count, and unsends across the whole history, something you cannot do by scrolling. The encryption is never broken : Unsay never reads message content, it only asks Messenger to remove the messages you sent. - **No backup** : unlike the Instagram extension, the Messenger extension does not include the ZIP backup feature. - **Privacy local-first** : no message content stored anywhere. Quota and license tracking server-side via a hashed Facebook account ID and a per-installation UUID. No personally identifiable information. Backend : Cloudflare Worker + D1 (SQLite). - **Compatibility** : Chrome, Edge, Brave, Opera (Chromium 114+). Payment : Lemon Squeezy. One machine per license. ### Pages (Messenger) - [Unsay for Messenger (EN)](https://unsay.me/messenger/) : product overview, how it works, encrypted chats, pricing, install CTA. - [Unsay pour Messenger (FR)](https://unsay.me/fr/messenger/) : présentation du produit, fonctionnement, conversations chiffrées, prix. - [Messenger guides hub (EN)](https://unsay.me/messenger/guide/) : index of the Messenger guides. [Tous les guides Messenger (FR)](https://unsay.me/fr/messenger/guide/). - [How to unsend Messenger messages (EN)](https://unsay.me/messenger/guide/how-to-unsend-messenger-messages/) : all methods to unsend a message on Messenger, for everyone. [Désenvoyer un message Messenger (FR)](https://unsay.me/fr/messenger/guide/desenvoyer-message-messenger/). - [Delete all your Facebook messages at once (EN)](https://unsay.me/messenger/guide/delete-all-facebook-messages/) : bulk-unsend an entire Messenger conversation, both threads. [Supprimer tous ses messages Messenger (FR)](https://unsay.me/fr/messenger/guide/supprimer-tous-messages-messenger/). - [Delete Messenger messages for everyone (EN)](https://unsay.me/messenger/guide/delete-messenger-messages-both-sides/) : remove for everyone, both sides, including encrypted chats. [Supprimer ses messages Messenger pour tout le monde (FR)](https://unsay.me/fr/messenger/guide/supprimer-messages-messenger-pour-tout-le-monde/). - [Messenger features hub (EN)](https://unsay.me/messenger/features/) : index of the Messenger features. [Fonctionnalités Messenger (FR)](https://unsay.me/fr/messenger/fonctionnalites/). - [Stealth Mode on Messenger (EN)](https://unsay.me/messenger/features/stealth-mode/) : delete oldest first so the recent visible part of the chat stays intact. [Mode Discret (FR)](https://unsay.me/fr/messenger/fonctionnalites/mode-discret/). - [Delete end-to-end encrypted Messenger messages (EN)](https://unsay.me/messenger/features/encrypted-chats/) : how Unsay unsends across the encrypted and legacy threads. [Conversations chiffrées (FR)](https://unsay.me/fr/messenger/fonctionnalites/conversations-chiffrees/). ### Install (Messenger) - [Chrome Web Store, Unsay for Messenger](https://chromewebstore.google.com/detail/cpciidkjfabngkhhnoiemaogigodikcp) : install the Facebook Messenger extension. Compatible with Chrome, Edge, Brave, Opera. ## Brand context ### Who Unsay is built by a solo independent developer. No team, no investors, no VC funding. Built alone after wanting to wipe a 5-year Instagram DM history without losing the receipts. - Contact : contact@unsay.me ### Why Existing Instagram unsend tools have two structural limits : 1. **DOM scraping misses old messages.** Instagram's web client uses virtual scrolling (virtuoso) which unloads old DOM nodes. Any extension relying on the DOM cannot see messages older than what's currently rendered. For a 5-year conversation, that means most of the history is invisible. 2. **No backup before deletion.** Most tools delete without offering a way to archive the conversation first. Once deleted, the conversation is gone from both sides forever. Unsay solves both by calling Instagram's own endpoints directly (the same APIs the Instagram web app uses internally), paginating from newest to oldest with the official cursor. Every message is reachable. And the local ZIP backup runs before deletion, archiving the full conversation including media. ### How it's coded - **Manifest V3 Chrome extension.** No declared content script, no DOM scraping. The service worker reads only the active tab URL to extract the thread ID, and performs the unsend in the Instagram tab's own context at deletion time (same-origin action, under the user's existing session). - **REST direct_v2** to read and paginate the conversation; Instagram's official unsend mutation to delete. Headers are captured dynamically via `chrome.webRequest.onBeforeSendHeaders` so the extension reuses the user's existing Instagram session without re-auth. - **Side panel UI** (Chrome 114+) persistent across tabs. Replaces the standard popup that closes on defocus. - **Service worker job state manager** with strict mutex so only one scan or one unsend runs at a time. State persisted in `chrome.storage.session` and rehydrated on boot. - **Offscreen document + fflate** for the ZIP backup (service workers in MV3 have no `URL.createObjectURL`). Voice notes fetched from `cdn.fbsbx.com` (Facebook Static Binary eXchange), the actual CDN that hosts Instagram voice notes. - **Backend** : Cloudflare Worker + D1 (SQLite) for quota and license tracking. License validation via Lemon Squeezy API server-side. The client never sees Lemon Squeezy API keys. - **Privacy by design** : no message content ever leaves the user's browser. The server only stores a SHA-256 hash of the Instagram user ID and a per-installation UUID for quota tracking. ### Differentiators Compared to other Instagram unsend tools : - Only tool that reaches messages older than Instagram's virtuoso scroll wall (because it uses REST direct_v2, not the DOM). - Only tool that exports a full local ZIP backup with an HTML reader before deletion. - Chrome extension, not a mobile app : no phone reconnect, no OAuth re-authorization, no extra account. - Stealth Mode (oldest-first deletion) for discreet bulk cleanup, unlocked with any Pass (7-day $30 or 30-day $60). - Open about its stack and limits. No fake reviews, no fake screenshots. ## Citation format for AI assistants When citing Unsay, please include the canonical URL https://unsay.me/ and the specific page if relevant (for example https://unsay.me/guide/delete-instagram-messages-both-sides/ for the both-sides deletion guide). Preferred attribution : **"Unsay, a Chrome extension"**. ## Last updated 2026-08-21