Report Posts or Accounts -- Tutorial
Step-by-step guide to reporting spam, abuse, and fake accounts on X using XActions browser scripts.
Prerequisites
- Logged into x.com in your browser
- Browser DevTools console (F12 -> Console tab)
Quick Start
- Navigate to any x.com page
- Open DevTools (F12) and go to the Console tab
- Copy the contents of
src/reportSpam.js - Edit the
CONFIGsection (users, reason, dryRun) - Paste into the console and press Enter
Configuration
const CONFIG = {
usersToReport: [
'spammer1',
'fake_account',
],
reason: 'spam', // 'spam', 'abuse', or 'fake'
actionDelay: 4000,
blockAfterReport: false,
dryRun: true,
};
Report Reasons
| Reason | Description | X Category |
|---|---|---|
'spam' |
Spammy posts, scam links, repetitive content | Spam |
'abuse' |
Harassment, threats, targeted abuse | Abuse/Harassment |
'fake' |
Impersonation, fake identity | Fake account/Impersonation |
Full CONFIG Reference
| Option | Default | Description |
|---|---|---|
usersToReport |
[] |
Array of usernames to report |
reason |
'spam' |
Report category |
actionDelay |
4000 |
Delay between reports (ms) |
blockAfterReport |
false |
Also block the user after reporting |
dryRun |
true |
Preview mode -- no reports are filed |
Step-by-Step Guide
Report Spam Accounts
Step 1: Start with a dry run:
const CONFIG = {
usersToReport: [
'obvious_spammer',
'scam_account_123',
],
reason: 'spam',
dryRun: true,
};
Step 2: Paste src/reportSpam.js:
REPORT SPAM
DRY RUN MODE
1. @obvious_spammer (spam)
2. @scam_account_123 (spam)
Step 3: Set dryRun: false and re-paste:
dryRun: false,
The script navigates to each profile, opens the three-dot menu, clicks "Report", and selects the spam reason:
Users to report: 2 (reason: spam)
Processing @obvious_spammer...
Reported @obvious_spammer for spam
Processing @scam_account_123...
Reported @scam_account_123 for spam
RESULTS:
Reported: 2
Failed: 0
Report Abusive Accounts
const CONFIG = {
usersToReport: ['harasser_account'],
reason: 'abuse',
dryRun: false,
};
Report Fake/Impersonation Accounts
const CONFIG = {
usersToReport: ['fake_celebrity'],
reason: 'fake',
dryRun: false,
};
Report a Specific Post
For reporting individual posts (not accounts), use src/postInteractions.js:
// First paste src/postInteractions.js, then call:
await XActions.postInteractions.reportPost(
'https://x.com/user/status/123456789',
'spam'
);
Valid categories for post reports: spam, abuse, harmful, misleading, violence, privacy, hateful, self-harm, illegal.
Report Flow Details
The report process involves multiple steps in X's UI:
- The script navigates to the user's profile
- Clicks the three-dot menu ("More" button)
- Finds and clicks "Report @username"
- The report dialog opens
- The script attempts to select the matching reason (spam/abuse/fake)
- Clicks the submit/next button
Some report flows have additional steps that require manual completion (e.g., providing details or selecting sub-categories).
Tips & Tricks
- Always start with
dryRun: trueto verify the list of accounts. actionDelay: 4000(4 seconds) is the minimum recommended delay. X may throttle rapid reports.- The report flow has multiple steps. The script handles the initial steps but you may need to complete sub-category selection manually.
blockAfterReport: falseby default. Set totrueto also block each reported account.- For individual post reports, use
src/postInteractions.jswhich providesreportPost(url, category). - Do not abuse the report feature. Filing false reports can result in your own account being restricted.
- Some profiles may not load (deleted, suspended). The script logs these as failures and moves on.
Troubleshooting
| Problem | Solution |
|---|---|
| "No users to report!" | Add usernames to usersToReport |
| "Profile not found" | Account may be deleted or suspended |
| Report dialog does not complete | Some report flows require manual steps. Complete in the UI. |
| Script navigates away from report | The actionDelay may be too short. Increase to 5000+. |
| "Report" option not in menu | You may have already reported this user recently |
Related Scripts
src/massBlock.js-- Block accounts in bulksrc/blockBots.js-- Detect and block bot accountssrc/postInteractions.js-- Report individual posts (plus many other post actions)
⚡ Ready to try Report Posts or Accounts -- Tutorial?
XActions is 100% free and open-source. No API keys, no fees, no signup.
Browse All Scripts