Twitter shadowban: types and fixes
A Twitter shadowban is any of 5 limits X puts on who sees an account without telling its owner, from hiding its posts in search to keeping them out of recommendations for people who don't follow it.
Short answer: X sends no notice for any of the 5: search, the search box, threads or non-followers' feeds stop showing the account. Behavior limits lift once it stops; X's monthly Under the Hood report names the labels behind the rest. Sorsa API's GET /check-shadowban runs both search tests from $1.40 per 1,000 checks; 100 free requests need no card.
- Endpoint
GET /check-shadowban- Page size
- 2 tests per request
- Price
- from $1.40 per 1,000 checks
#What is a shadowban on X?
A shadowban on X (Twitter) is a limit on who can see an account or its posts that X applies without telling the owner. The account still posts and its followers still see it, but strangers stop finding it in search, in the search box, in reply threads or in recommendations. Two of those limits show from outside the account, and a free Twitter Shadowban Test reads both in one check.
X rejects the word itself. In its July 2018 post Setting the record straight on shadow banning (opens in a new tab), the company defined shadow banning as making content "undiscoverable to everyone except the person who posted it" and said it does not do that. Its rules describe the same effect under other names. X's page on how it enforces its rules (opens in a new tab) lists excluding posts from search and recommended notifications, removing them from the For You and Following timelines, keeping them to the author's profile and downranking them in replies.
So the real question is never whether X limits visibility: its own rules say it does. What you need to know is which limit you have, whether X told you, and how it ends. The gap is easy to miss because a shadowban changes nothing on your side of the screen.
#The 5 kinds of shadowban on X
X can hide an account in five places, and each kind of shadowban takes its name from the place. Four are the classic kinds people test for. The fifth, a label that keeps posts out of recommendations, is the one X now reports to the account itself.
Only the first two kinds can be measured from outside an account; the other three need a manual check or X's own report.
| Kind | What strangers stop seeing | Does X tell you? | How to check |
|---|---|---|---|
| Search ban | Your posts in X search, even for from:yourhandle | No | Outside test |
| Search suggestion ban | Your handle in the search box as they type it | No | Outside test |
| Ghost ban | Your replies inside threads | No | 2-minute logged-out check |
| Reply deboosting | Your replies above "Show more replies" | No | 2-minute logged-out check |
| Recommendation label | Your posts in For You, for people who don't follow you | Monthly, in Under the Hood | X's Under the Hood report |
Search ban
- What strangers stop seeing
- Your posts in X search, even for
from:yourhandle - Does X tell you?
- No
- How to check
- Outside test
Search suggestion ban
- What strangers stop seeing
- Your handle in the search box as they type it
- Does X tell you?
- No
- How to check
- Outside test
Ghost ban
- What strangers stop seeing
- Your replies inside threads
- Does X tell you?
- No
- How to check
- 2-minute logged-out check
Reply deboosting
- What strangers stop seeing
- Your replies above "Show more replies"
- Does X tell you?
- No
- How to check
- 2-minute logged-out check
Recommendation label
- What strangers stop seeing
- Your posts in For You, for people who don't follow you
- Does X tell you?
- Monthly, in Under the Hood
- How to check
- X's Under the Hood report
A search ban is the heaviest of the classic four: search returns none of the account's recent posts, even when someone searches with the from: operator. A search suggestion ban is lighter. The posts still appear in search, but the account stops coming up as people type its name, the same symptom X admitted in 2018 when an auto-suggest fault hid hundreds of thousands of accounts.
A ghost ban hides an account's replies from everyone else in a thread, and reply deboosting pushes them below "Show more replies", which is the downranking X's rules describe. To read every reply under a post yourself, see how to see comments on X. A recommendation label keeps posts out of For You for anyone who doesn't follow you; for most labels X's own wording is "hidden from recommendations to non-followers."
#How to check if you're shadowbanned on X
Run four checks in this order, because each one sees a part of X the others can't. The outside test works on any public account, yours or someone else's; the other three need the account's own login.
-
Look for a notice from X. Log in on the web and in the app. A message that the account is locked, limited or read-only means X has told you, and its steps come first. X's page on locked and limited accounts (opens in a new tab) says a limited state can filter your posts out of search results and notifications for a set time, with a countdown.
-
Run the outside test. Type the handle into the free test linked above. Sorsa Shadowban Checker reads X's live search the way a logged-out stranger does: it searches the account's recent posts, types its handle into the search box and reports each test as clean, banned or can't tell.
-
Check your replies as a stranger. Reply to a fresh post from a large account you don't follow, then open the thread in a logged-out window. A missing reply means a ghost ban; a reply that shows only after "Show more replies" means deboosting. Try two or three threads before you decide.
-
Open X's Under the Hood report. While logged in, go to x.com/i/jf/under_the_hood (opens in a new tab). It lists the labels X put on your posts and account last month; the next section explains them.
Four checks, in order. When all four come back clean, the drop in reach has another cause: the posts, the timing or the audience.
What a shadowban test can and can't see
A test run from outside an account can measure two things for certain: whether X search returns its recent posts, and whether the search box suggests its handle. It can't see a ghost ban or deboosting the way every reader does, because X ranks replies for each person reading the thread. A checker that claims to detect them from outside is guessing.
Judge any shadowban test by five things: it checks the account from outside, it shows its evidence, it says "can't tell" instead of guessing, it never asks for your X login, and it works on any public account. Sorsa Shadowban Checker meets all five. Each answer shows how many recent posts search returned, an unknown result names its reason (no recent posts, a private account, X not answering), and Sorsa API never touches your X account.
#X's Under the Hood report, label by label
Under the Hood is X's own monthly report of the labels it put on your posts and your account that can limit who sees them. X launched it in August 2026 and on September 19 added posts withheld in a country, TechCrunch reported (opens in a new tab). The code that builds the report is open source (opens in a new tab), so its rules can be read line by line.
Three rules in that code decide what you see. The account must be at least 365 days old, it needs 10 or more posts in the previous month, and a month's report opens 10 days after the month ends, so the October report appears around November 10. X calls the report "best-effort."
Every label in it does one of four things to a post or an account, and the way out depends on which. Pick a label from your report below, or type its name, to read X's own description and the exit X's code gives for it.
Or pick one of the labels people find most often:
SPAM_HIGH_RECALL
Post label
Hidden from people who don't follow you
- What X says it means
- “Post detected by automated systems as one that may contain spam.”
- What it does
- “Post hidden from recommendations to non-followers.”
- How it ends
- No appeal in the report. Look for what the labeled post shares with your other posts, such as links, repeated wording or mass mentions, and stop it. One labeled post in a month is noise.
17 labels: hidden from people who don't follow you
“Hidden from recommendations to non-followers.” Your followers still see the posts. Most have no appeal in the report: stop the behavior, or do the task X names (reset a password, pass a challenge, remove a post).
5 labels: behind a content warning
Media shown behind a warning and hidden from minors and logged-out visitors. Sensitive-media labels can be appealed from the post; mark such media yourself next time.
4 labels: kept to your profile, with a label
“Discoverability is restricted to the author's profile,” with a visible note on the post. Appeal from the post while the label is on it.
6 labels: not shown on X
The post is hidden everywhere or in some countries. The way out is in X's email, a copyright counter-notice or a country appeal form.
X's descriptions are quoted from its open-source label list; "how it ends" follows the appeal text in the same code.
An empty report is not an all-clear. It covers only the labels on X's public list, it never tests search, and it shows your own account for last month only. Account labels matter most, because they touch every post you publish; one labeled post in a month is noise. The full list of Under the Hood labels sits on the test's page, grouped by effect.
#What causes a shadowban on X?
X shadowbans accounts for behavior that looks automated or spammy, for media it treats as sensitive and for content other users report. Its search rules (opens in a new tab) list the behavior that gets an account filtered from search:
- posting the same or nearly the same post or link again and again;
- piling onto trending topics and hashtags that have nothing to do with the post;
- automated posts or replies, and bots that post on keywords;
- the same message from several accounts, including through a third-party app that posts for many accounts;
- following and unfollowing people aggressively;
- duplicate entries in contests.
Three more triggers come from X's other pages. Aggressive following or engagement (mass likes, reposts or quotes) puts an account into a limited state. Media X classes as sensitive, posted without the sensitive-media setting, can get the setting switched on for you and the account labeled. And reports from other users start most of the labels that keep a post to its author's profile.
In 2018 X also named account signals it weighs: whether the email is confirmed, how new the account is, whether it has a profile photo, and who mutes or blocks it. A brand-new account with no photo that replies at speed looks like a bot to those signals, whoever runs it. None of X's sources names a topic or an opinion as a trigger, and the 2018 post says outright that X doesn't limit accounts for political views.
#How long does a shadowban last on X?
X publishes no single duration for a shadowban. Each limit lasts as long as the mechanism behind it, and X's own pages name that mechanism for most of them.
Limits X tells you about end on a timer or a task; silent limits end when the behavior behind them stops, and labels show up month by month.
| Limit | How long it lasts | Where X says so |
|---|---|---|
| Limited state (a message at login) | A set time with a countdown, or sooner once you verify your phone or email | X Help, locked and limited accounts |
| Read-only account | Until you remove the post X flagged | X's label list (ReadOnly) |
| Compromised account | Until you reset the password | X's label list (Compromised) |
| Search ban, search suggestion ban, ghost ban, reply deboosting | No published duration; they ease once the behavior stops, so test again after 2 to 3 days | X's search rules |
| A label on a post | It stays on that post; next month's report shows whether new posts got it | Under the Hood |
| Account labels such as DoNotAmplify | "Pending further review" in X's words, with no date | X's label list |
Limited state (a message at login)
- How long it lasts
- A set time with a countdown, or sooner once you verify your phone or email
- Where X says so
- X Help, locked and limited accounts
Read-only account
- How long it lasts
- Until you remove the post X flagged
- Where X says so
- X's label list (ReadOnly)
Compromised account
- How long it lasts
- Until you reset the password
- Where X says so
- X's label list (Compromised)
Search ban, search suggestion ban, ghost ban, reply deboosting
- How long it lasts
- No published duration; they ease once the behavior stops, so test again after 2 to 3 days
- Where X says so
- X's search rules
A label on a post
- How long it lasts
- It stays on that post; next month's report shows whether new posts got it
- Where X says so
- Under the Hood
Account labels such as DoNotAmplify
- How long it lasts
- "Pending further review" in X's words, with no date
- Where X says so
- X's label list
People who post about their own shadowbans usually describe a few days to two weeks for the silent kinds, but X has never confirmed a number. Repeated violations can make a limit worse: X's help pages warn that they may lead to a permanent suspension.
How long does a ghost ban last?
A ghost ban follows the same rule as the other silent kinds: X attaches no timer to it, and it eases once the replying pattern that caused it stops. The only reliable way to see it lift is to repeat the logged-out thread check every two or three days on fresh threads.
#How to fix a shadowban on X
You fix a shadowban by removing its cause, not by waiting it out or paying for it. Find the kind, stop the trigger, clean up, use the appeal X offers for that limit, then test again.
-
Name the kind first. Run the four checks above: the fix for a label differs from the fix for a search ban.
-
Follow any notice X showed you. Verify your phone or email, remove the post X asks you to remove or reset your password; a limited state's countdown starts only after you continue.
-
Stop the trigger for 2 to 3 days. No bulk follows or unfollows, no repeated replies or links, no hashtag stuffing and no tool that posts, likes or follows for you.
-
Clean up recent posts and apps. Delete duplicate posts and replies, then open Settings and privacy, go to Apps and sessions and revoke the third-party apps (opens in a new tab) you no longer use.
-
Check your media setting. If you don't post sensitive media, open Settings and privacy, then Privacy and safety, then Your posts, and make sure "Mark media you post as containing material that may be sensitive" is off. X can switch it on and label the account, as its media settings page (opens in a new tab) explains.
-
Appeal where X allows it. Appeal a "limited visibility" label from the post itself, answer X's email for a removal or a country withholding, and contact X support if the account was limited by mistake.
-
Test again in 2 to 3 days. Run the outside test and the thread check again, and compare the next Under the Hood report.
How to avoid getting shadowbanned on X
Post like a person, not a script: original posts, replies that add something, a steady pace, no follow-unfollow loops and no groups that like and repost on a schedule. Mark sensitive media yourself when you post it, and keep third-party apps to the ones you trust. Those habits stay clear of every behavior on X's search-rules list.
#How to check shadowbans on many accounts
To check a list of accounts, use Sorsa API, a Twitter (X) API and scraper: its shadowban endpoint runs both outside tests on one account per request, at 20 requests per second on every plan, from $1.40 per 1,000 checks. Agencies check every account they manage, brands screen creators before a paid post alongside a fake follower audit, and campaign teams clean entrant lists before they verify engagement.
-
Get a key. Sign up and copy your API key from the dashboard. One key works, with no X developer account or approval.
-
Check one account. Send its username to GET /check-shadowban (opens in a new tab) with the key in the
ApiKeyheader.Terminal curl -G "https://api.sorsa.io/v3/check-shadowban" \ -H "ApiKey: YOUR_API_KEY" \ --data-urlencode "username=quickflip_deals_daily"Response200 OK { "username": "quickflip_deals_daily", "user_id": "1690441829930512384", "is_shadowbanned": true, "checks": { "search_ban": { "status": "banned", "tweets_found": 0 }, "search_suggestion_ban": { "status": "clean" } }, "account": { "protected": false, "possibly_sensitive": false, "statuses_count": 18240 }, "checked_at": "2026-11-02T09:14:05Z" } -
Loop over the list. Write one row per account; a 429 means you went past 20 requests a second, and a 404 means the account doesn't exist.
Python import csv import time import requests URL = "https://api.sorsa.io/v3/check-shadowban" HEADERS = {"ApiKey": "YOUR_API_KEY"} HANDLES = ["harborline_coffee_co", "quickflip_deals_daily", "nightowl_gamer_clips"] def check(handle): params = {"username": handle} r = requests.get(URL, headers=HEADERS, params=params) if r.status_code == 429: # over 20 requests a second time.sleep(1) r = requests.get(URL, headers=HEADERS, params=params) return r with open("shadowban.csv", "w", newline="", encoding="utf-8") as f: out = csv.writer(f) out.writerow(["username", "search", "suggestion", "checked_at"]) for handle in HANDLES: r = check(handle) if r.status_code == 404: # no such account out.writerow([handle, "not found", "", ""]) continue r.raise_for_status() d = r.json() c = d["checks"] out.writerow([handle, c["search_ban"]["status"], c["search_suggestion_ban"]["status"], d["checked_at"]])
Each answer carries both tests and the evidence behind them, so a "banned" can be explained to a client in one line.
| Field | What it tells you |
|---|---|
checks.search_ban.status | clean, banned or unknown |
checks.search_ban.tweets_found | How many recent posts search returned: the evidence |
checks.search_suggestion_ban.status | clean, banned or unknown |
reason | Why a test came back unknown, such as no_tweets; never a ban |
is_shadowbanned | true only when a test found a restriction |
account.possibly_sensitive, account.protected | Reported apart, never counted as a shadowban |
checked_at | When X was read; answers are kept for an hour |
checks.search_ban.status- What it tells you
clean,bannedorunknown
checks.search_ban.tweets_found- What it tells you
- How many recent posts search returned: the evidence
checks.search_suggestion_ban.status- What it tells you
clean,bannedorunknown
reason- What it tells you
- Why a test came back
unknown, such asno_tweets; never a ban
is_shadowbanned- What it tells you
trueonly when a test found a restriction
account.possibly_sensitive,account.protected- What it tells you
- Reported apart, never counted as a shadowban
checked_at- What it tells you
- When X was read; answers are kept for an hour
The official X API has no shadowban endpoint and no way to read search suggestions. Rebuilding just the search half from its recent search costs $0.005 per post read, up to $0.05 per account at its minimum of 10 posts a call, according to X's pricing (opens in a new tab). Sorsa API runs both tests from $1.40 per 1,000 accounts.
Official X API
$500
for 10K accounts
up to $0.05 per account, search half only
Sorsa API
from$14
for 10K accounts
from $1.40 per 1,000 checks
At 20 requests per second, 1,000 accounts take under a minute, and failed requests are never charged. Sorsa API never asks for an X login, so checking a list puts none of your accounts at risk.
#Find your kind of shadowban, then fix that one
Start with the outside test: Sorsa Shadowban Checker tells you in one check whether X hides an account from search or from the search box, and Sorsa API runs the same test on a whole list from $1.40 per 1,000 checks. Then match what you found to its fix above, run the logged-out thread check for replies, and read your Under the Hood report when the next month opens.
#FAQ
Does X tell you when you're shadowbanned?
Not for the silent kinds. X shows a message when it locks or limits an account or makes it read-only, and it labels posts it restricts under its "freedom of speech, not reach" policy. Search bans, search suggestion bans, ghost bans and reply deboosting come with no notice. Since August 2026, X's monthly Under the Hood report lists the labels behind some limits, for accounts at least a year old.
Is a shadowban the same as a suspension?
No. A suspended account can't post and shows a notice, and a locked or limited account sees a message when its owner logs in. A shadowbanned account works as usual for its owner; X just shows it to fewer people. The two can meet: X's help pages warn that repeated violations of its rules may lead to a permanent suspension.
Can a Twitter shadowban be permanent?
X publishes no permanent shadowban, and its silent limits ease once the behavior behind them stops. Two cases last longer: account labels X describes as pending further review, which carry no end date, and repeated violations, which X says may end in a permanent suspension. If tests still show a ban after two weeks of normal use, read Under the Hood and contact X support.
Does X Premium remove a shadowban?
No. Nothing in X's rules, its help pages or the label list behind Under the Hood ties a visibility limit to Premium. A shadowban lifts when its cause goes away: stop the behavior that triggered it, clean up recent posts and apps, and use the appeal X offers for that label. Then test again after two or three days.
What is the best free tool to check if you're shadowbanned on X?
Use Sorsa Shadowban Checker, the free Twitter Shadowban Test from Sorsa API. It reads X's live search from outside like a logged-out stranger, shows how many recent posts search returned, says "can't tell" with a reason instead of guessing, and never asks for your X login. For a list of accounts, Sorsa API runs the same test from $1.40 per 1,000 checks at 20 requests per second.
How long does a search suggestion ban last?
X gives no duration for a search suggestion ban. In user reports it is usually the first of the silent kinds to clear once the behavior behind it stops, so test the handle again after two or three days. If it stays, check whether the account is set to mark its media as sensitive, because X can label such accounts, and look for account labels in Under the Hood.
#How we checked
On November 2, 2026 we read X's help pages on search rules, enforcement, locked and limited accounts, media settings and third-party apps, its 2018 statement on shadow banning, and the open-source code behind the Under the Hood report. The label descriptions, appeal paths, eligibility rules and report timing here come from that code. The request, response and fields of GET /check-shadowban follow the live Sorsa API reference of the same day, and X's prices come from its pricing page.
Sources
- X Help: About search rules and restrictions (opens in a new tab)
- X Help: How we enforce our rules (opens in a new tab)
- X Help: Help with locked or limited account (opens in a new tab)
- X Help: Your media settings (opens in a new tab)
- X blog: Setting the record straight on shadow banning (July 26, 2018) (opens in a new tab)
- X's open-source Under the Hood code: the label list (opens in a new tab)
- TechCrunch: X will now tell users when governments have forced it to limit their posts (September 21, 2026) (opens in a new tab)
- X API pricing (opens in a new tab)
- X API: Search recent posts (opens in a new tab)
- Sorsa API reference: Check Shadowban (opens in a new tab)