Bulk unsend your messages in Instagram DM conversations.
unInsta uses Instagram's internal API to iterate through all your messages in a conversation and unsend them one by one, with built-in rate limiting to avoid triggering Instagram's abuse detection.
- Unsend all your messages in the currently open DM conversation
- Set a boundary to only unsend messages newer than a specific date or message
- Auto-detects authentication from your active Instagram session
- Proactive rate limiting with jittered delays
- Floating panel with real-time log and progress tracking
- Works with Instagram's light and dark themes
Pick one of the two methods below -- you don't need both.
Install directly from Mozilla Add-ons.
- Go to the latest release
- Download
uninsta-extension.zip - Unzip the file
- Navigate to
chrome://extensions - Enable "Developer mode"
- Click "Load unpacked" and select the unzipped folder
- Install Tampermonkey for your browser
- Go to the latest release
- Download
uninsta.user.js - Open Tampermonkey dashboard, click the "Utilities" tab
- Under "Import from file", select the downloaded file
- Open Instagram and navigate to a DM conversation
- Click the unInsta trigger button in the chat header (or the extension icon in the toolbar)
- Optionally set a boundary (date or pick a specific message)
- Click "Unsend All"
- Watch the progress in the log panel
unInsta runs as a content script on instagram.com/direct/*. On load, it intercepts Instagram's own API requests to capture authentication credentials. When you click "Unsend All", it:
- Reads your user ID from cookies
- Extracts the thread ID from the URL
- Fetches messages page by page via Instagram's REST API
- Filters to only your own messages
- Sends a delete request for each message with a ~3.5s jittered delay between requests
- Handles rate limits (HTTP 429) automatically by backing off and retrying
- OS: Any (Linux, macOS, Windows)
- Node.js: v22 or later (download)
- npm: Included with Node.js (v10+)
git clone https://github.com/dustfeather/uninsta.git
cd uninsta
npm install
npm run buildnpm run build runs TypeScript type-checking (tsc --noEmit) then executes the build script (tsx scripts/build.ts), which uses esbuild to bundle and minify each entry point.
dist/uninsta-extension.zip-- Chrome/Edge extensiondist/uninsta-extension.xpi-- Firefox extensiondist/uninsta.user.js-- Tampermonkey userscriptdist/extension/-- Unpacked extension directory
Inspired by Undiscord by victornpb, which does the same thing for Discord messages.

