Twitter censorship (shadowban) checker

Twitter heavily censors a large number of their users. And, despite what you might have heard, it's not just conservatives. They censor all types of users: liberals, conservatives, sports fans, music fans, celebrity fans, and on and on. Despite what Twitter says, it's not just a small percentage of users, and it's not about bots. In fact, Twitter tends to elevate bot-like replies (like lone pics).

For instance, on most threads to U.S. government or elected officials' accounts, around 20% to 50% of the tweets are censored:

Date Handle Avg hidden Max hidden Min hidden # pages checked Total # replies Total # hidden
Apr 22, 2018 @gopleader 52% 83% 25% 6 172 72
Apr 22, 2018 @sentomcotton 36% 47% 29% 7 299 106
Apr 23, 2018 @epascottpruitt 31% 64% 17% 6 387 107
Apr 23, 2018 @stevenmnuchin1 38% 54% 21% 10 135 54
Apr 24, 2018 @nancypelosi 36% 36% 36% 1 46 17
Apr 25, 2018 @ajitpaifcc 40% 60% 15% 19 369 154
Apr 27, 2018 @repjerrynadler 43% 100% 0% 6 28 13
May 2, 2018 @marshablackburn 33% 47% 17% 5 208 66
May 2, 2018 @tedlieu 48% 48% 48% 1 25 12
May 3, 2018 @tedcruz 32% 32% 32% 1 49 16
May 3, 2018 @repswalwell 33% 37% 28% 2 125 41
May 17, 2018 @sendougjones 9% 28% 0% 7 116 28
May 17, 2018 @stevedaines 22% 50% 0% 6 68 17
May 21, 2018 @statedeptspox 33% 60% 0% 10 219 71
May 26, 2018 @stevekingia 40% 55% 29% 8 375 144

(The table shows that 6 @repjerrynadler reply pages were checked. He received 28 replies on those pages. 13 of the 28 replies were hidden by Twitter. On one thread, all the replies were hidden. The percentages aren't exact due to cases where Twitter shows more or fewer replies than noted, rounding, etc. Threads with over 200 replies were omitted for the reason described below.)

Not only is Twitter censoring a large number of their users, they're deceiving them into thinking they aren't being shadowbanned.

To find out if you're impacted or to see which tweets to newsmakers are censored, download our open source shadowban checker. It's an easy installation on Windows: just download and run.

See the sample Twitter censorship reports produced by the application. Or, help fund past and future development. Or, sign the anti-censorship petition. You can also help by spreading awareness of what Twitter is doing. Contact the media and organizations that oppose censorship and urge them to cover this issue (in a fact-based way). You can also run the checker with your account or others and post the results to raise awareness of what Twitter is doing.


On reply pages, Twitter puts tweets in one of three sections:

  • "HighQuality": these replies are visible to all and are probably shown on the recipient's Notifications page.
  • "LowQuality": these are hidden behind a "Show more replies" link that few probably click. They probably aren't shown on the recipient's Notifications page.
  • "AbusiveQuality": these are like "LowQuality" tweets but fare even worse: they're hidden behind a second link.

"LowQuality", etc. are the terms Twitter uses in their HTML.

Twitter also suppresses and elevates replies. For instance, a tweet that was the 10th reply in date order might appear in position 100 on the reply page, or vice versa. In some cases, "LowQuality" is apt. However, in many other cases, Twitter elevates low-quality replies and suppresses or hides higher-quality replies.

A key part of shadowbanning someone is to lie to them. If you reply to someone and look at the reply page, everything will look fine. However, if you then log in as another user and view the same page, your reply might be hidden behind the "Show more replies" button, might be dozens of tweets down the page, or might not be visible at all.

Our app works using "browser automation" (specifically, Selenium WebDriver). The app automates an installation of Firefox, first logging in using a testing account and then surfing Twitter. The app sees Twitter's reply pages exactly as a real user would, and it collects information on which tweets were hidden, elevated, or suppressed. It then writes reports like those linked above.

One so-far unsolved issue with the checker is that Twitter seems to only show a maximum of around 200 tweets on reply pages, even when there were many more replies. That issue was only discovered after running some of the reports linked above.

Limiting the number of replies is reasonable to some extent: Twitter's HTML is full of so much unnecessary cruft that loading thousands of replies might crash someone's computer. It also saves requests to Twitter's servers.

It also gives Twitter some degree of deniability: they can point to the foregoing as their reason for not showing all replies.

Because of this, there's no way to get tweets that would have been hidden if the thread had had fewer replies. If a user's tweet isn't in the thread, that could be because it would have been hidden, but it could also be because it wasn't what Twitter considers a top tweet. The next version of the app will take this into account.

Please check out the reports, download the checker, and help spread the word about this project.