Why DM Deletion on X Is Harder Than It Looks
When X overhauled its platform under new ownership, mass cleanup became harder across the board. Tweets and likes are already painful to bulk-delete. DMs are a different category of problem entirely.
The core issue: X treats each DM conversation as an individual object. There is no checkbox, no select-all, no batch delete exposed in the native interface. You open each conversation, find the settings menu, choose delete, confirm. On a 500-conversation inbox, that is 2,000 clicks minimum and an afternoon you are not getting back.
There is also a deeper technical reason this stays hard. Twitter's API, which developers used to automate cleanup tasks, went through two major access restriction waves starting in 2023. By 2026, the free API tier provides read-only access to basic endpoints and offers essentially nothing useful for DM management. Authenticated write access to DMs requires at minimum a Basic plan at $100/month, and even then, rate limits on DM deletion are aggressive enough to make bulk operations impractical for personal use.
The third complication is one most users discover too late: X does not delete DMs symmetrically. When you delete a conversation, you remove it from your inbox only. The other person still has their copy. This is not a bug in any tool. It is X's intentional design, and it applies regardless of the method you use.
Understanding these three constraints (interface friction, API gatekeeping, and one-sided deletion) separates realistic expectations from frustration. The good news is that browser-based tools sidestep the API problem entirely. For more context on how X approaches bulk deletion across different content types, the X Cleaner blog covers the full picture.
Method 1: Manual Deletion Through the X Interface
Let's establish the baseline. For very small inboxes, under 30 conversations, manual deletion is perfectly reasonable. Here is exactly how the current X interface handles it.
- Open Messages from the left sidebar on x.com
- Click a conversation to open it
- Click the information icon (i) or settings icon in the top-right corner
- Select Leave conversation or Delete conversation depending on the conversation type
- Confirm, navigate back to the inbox, and repeat
That cycle takes roughly 15 to 20 seconds per conversation when you are moving efficiently. Deleting 100 conversations: about 30 minutes. Deleting 500: over 2 hours. Deleting a decade of DMs from an active account? Do the arithmetic yourself.
There are also frustrating edge cases that add time. Group conversations have a slightly different deletion flow from one-on-one threads. Message requests (DMs from people you do not follow) live in a separate tab and must be managed independently. Older messages may not appear until you scroll far enough to trigger X's lazy loading, which can add several minutes to a large inbox session.
The manual method also breaks down if X logs you out mid-session (common on long browser sessions), if mobile app behavior diverges from desktop, or if a misclick opens a conversation instead of navigating to the delete option. For anything beyond a handful of threads, this is not a real solution. It is the fallback you use when nothing else is available, not the approach you plan around.
Method 2: The X API Route (And Why It Fails Most Users)
The developer's instinct is to reach for the API. In theory, it is elegant: authenticate with OAuth 2.0, call the DM deletion endpoint, paginate through conversation IDs, loop through delete calls, done. In practice, in 2026, this route is a dead end for the vast majority of users.
Here is what the API access tiers actually look like for DMs:
- Free tier: No write access to DMs. Read access is extremely limited. DM management endpoints are unavailable.
- Basic tier ($100/month): Some DM read access, restricted write access, rate limits that allow only a few hundred delete operations per 15-minute window at best.
- Pro tier ($5,000/month): Full access, but obviously not a realistic option for personal inbox cleanup.
Even with paid API access, the implementation is not trivial. DM conversation IDs are not easily exported, so you must first paginate through all your conversations to retrieve them, then loop through deletion calls while handling rate limit errors, token expiry, and pagination state. This is a multi-hour engineering project just to clear old messages.
Several GitHub scripts from 2023 and 2024 that automated this process are now either broken (API endpoints have changed) or triggering account lockouts because X flags unusual programmatic API activity as suspicious behavior. Running them in 2026 is a gamble with your account's standing.
The API route is technically possible if you have the budget and the engineering time. For everyone else, it is not a practical option. This gap is exactly why browser-based tools like X Cleaner became the default approach for people who actually need to get this done without a developer budget or months of lead time.
Method 3: X Cleaner, the Browser Extension That Actually Scales
X Cleaner is a free Chrome extension that mass-deletes DMs (along with tweets, likes, retweets, and bookmarks) by operating directly inside your authenticated browser session. No API key. No external server. No credentials transmitted anywhere outside your own browser tab.
The underlying logic is straightforward: your browser already has authenticated access to X via your logged-in session. The extension piggybacks on that session to interact with X's web interface at a speed that would take a human hours to match. Because it runs inside the browser, it uses the same authenticated calls the X web app makes internally, bypassing the API paywall entirely.
For DMs specifically, the extension navigates to your Messages inbox, processes each conversation, and triggers the deletion action programmatically. It handles the scrolling and lazy loading that stalls manual users. No OAuth setup. No token generation. No code. The extension installs from the Chrome Web Store in about 30 seconds, and once you are on x.com and logged in, the setup to start a DM deletion run is three clicks.
This approach has a significant structural advantage over API-based scripts: it operates against the live X web interface, not against API documentation that may lag behind actual product changes. When X updates its frontend, the extension is updated to match. When the API changes, API-based scripts break silently and need to be rewritten.
There are no paywalls, no deletion limits, and no accounts required beyond your existing X login. For a full overview of every content type the tool handles, the X Cleaner homepage covers what the extension can and cannot delete across tweets, DMs, likes, and beyond.
Step-by-Step: Clearing Your DM Inbox with X Cleaner
Here is the exact process to mass delete your X DMs. Total setup time is under five minutes.
- Install the extension: Search for X Cleaner on the Chrome Web Store and click Add to Chrome. No registration, no email, no account creation.
- Log in to X: Navigate to x.com and confirm you are logged into the account whose DMs you want to delete. The extension reads your existing session automatically.
- Open the panel: Click the extension icon in your Chrome toolbar. Your logged-in account will be detected automatically.
- Select Direct Messages as the content type: Choose DMs from the deletion type selector. You can queue multiple content types for back-to-back runs if you also want to clear out old tweets or retweets in the same session.
- Set date filters if needed: If you only want to delete DMs older than a specific date, configure that before starting. This is useful for preserving recent conversations while wiping everything older.
- Start the run: Click Start. The extension works through your inbox automatically. You can leave the tab open in the background and do something else.
A few things to watch for during a run. Keep the x.com tab open and stay logged in. If your inbox is very large, the run may require multiple passes, since X's lazy loading means conversations must be scrolled into view before they can be processed. The tool handles this automatically, but a large inbox takes proportionally longer than a small one.
If the counter pauses briefly, that is typically X's own rate-limiting behavior on their server side. The extension will resume automatically after a short wait, without any action required from you.
Speed, Scope, and Realistic Expectations
The first question everyone asks: how fast is this actually? The extension can process up to 3,200 deletions per hour across all content types. For DMs specifically, speed depends on a factor that does not apply to tweets or likes: conversation load time driven by X's lazy loading in the Messages inbox.
Conversations are not all rendered in the browser DOM at once. The extension has to scroll the inbox, wait for conversations to load, then process them in sequence. This makes DM deletion somewhat slower than tweet deletion on a per-item basis, but still dramatically faster than doing it manually.
Here is a realistic estimate by inbox size:
- Under 100 conversations: Typically completed in under 10 minutes
- 100 to 500 conversations: Expect 20 to 45 minutes depending on connection speed and X server response time
- 500 to 2,000 conversations: Plan for 1 to 2 hours, possibly split across two sessions
- Over 2,000 conversations: Run overnight or break it into multiple sessions across different days
One factor that affects total time: message requests. DMs from people you do not follow sit in a separate tab from your main inbox and are handled as a separate queue. Public accounts often accumulate large volumes of spam in this folder. If yours is substantial, add that to your time estimate.
The extension is free with no deletion caps. You are not paying per conversation or per run, and there is no monthly limit on what you can clear. Speed is limited only by X's own rate-limiting behavior, not by the tool itself.
One Crucial Caveat: DM Deletion on X Is Always One-Sided
This point is important enough to have its own section, because many users discover it after completing a deletion run and assume something went wrong.
When you delete a DM conversation on X, you delete it from your inbox only. The person on the other end still has their copy of the conversation. This is not a limitation of any particular tool or method. It is how X designed DM deletion to work, and it applies equally to manual deletion, API calls, and browser extension automation.
There is no mechanism to remove a message from someone else's inbox without action on their account. X has operated this way since the early days of Twitter, and that policy has not changed.
What this means in practice:
- Once you delete a conversation, you will no longer see it when you log in to X. From your perspective, it is gone.
- The recipient still has the conversation in their inbox unless they delete it on their end.
- If you are deleting for privacy reasons, understand that the other party's copy is outside your control.
- X's own servers may retain message data for a period after front-end deletion, governed by X's data retention policies rather than by any deletion tool.
For the most common use cases (decluttering your inbox, removing yourself from old threads, clearing out spam and message requests), one-sided deletion is completely sufficient. If your goal is to ensure old messages are gone from both parties' views, the only reliable path is to ask the other person to delete their copy as well.
This caveat applies to every method covered in this article. It is a property of how X works at the platform level, not something any tool can override.
Frequently Asked Questions
Can I mass delete DMs on X without a developer account or API key?
Yes. X Cleaner operates entirely within your browser using your existing logged-in session on x.com. It does not require API access, a developer account, or any credentials beyond your normal X login. The extension is free to install from the Chrome Web Store and starts working immediately after you log in to your account, with no configuration required.
Does deleting a DM on X remove it for both people in the conversation?
No. X deletes DMs one-sidedly by design. When you delete a conversation, it disappears from your inbox only. The other person still sees it on their end. This is true regardless of the method you use: manual deletion, API calls, or a browser extension. It is X's architecture, not a limitation of any specific tool.
How many DMs can X Cleaner delete per hour?
X Cleaner processes up to 3,200 deletions per hour across all content types. DM deletion runs slightly slower than tweet deletion in practice because X's Messages inbox uses lazy loading, requiring conversations to be scrolled into view before they can be processed. For most users, several hundred conversations can be cleared in under 30 minutes.
Is it safe to use a browser extension to delete my DMs?
X Cleaner runs entirely inside your browser tab and uses your existing authenticated session. It does not transmit your login credentials, message contents, or personal data to any external server. Your DMs are never read or stored by the extension. The tool performs the same browser-level actions you would perform manually, just at a dramatically higher speed.
Can I delete DMs from only one specific person rather than my entire inbox?
For targeting a single conversation, the fastest approach is X's native interface: locate that specific thread manually, open it, and delete it. X Cleaner is optimized for bulk operations across your full inbox. You can narrow the scope using date filters before starting a run, but single-conversation targeting is more efficiently handled through X's built-in UI.
What happens to DMs from accounts that have been suspended or deleted?
DMs from suspended or deleted accounts remain in your inbox until you take action. X does not automatically remove these conversations when an account is suspended or deactivated. A deletion run will process them exactly like any other conversation and clear them from your inbox, regardless of the current status of the account on the other end.