Free · no login · evidence for every result
Twitter shadowban check: is the account hidden from search?
Enter an X username. We look the account up, then search X for its own posts. If the account has posts but search returns none of them, its posts are being hidden from search: the most common kind of shadowban. You see the evidence, not just a verdict.
How the check works
- Does the account exist? We read the public profile. A username that doesn't exist, a suspended account and a protected account are reported as exactly that, because none of them can be tested for a search ban.
- Does search show its posts? We run the X search
from:username, sorted by latest. If the profile has posts and search finds at least one, the account isn't search-banned, and we link the post we found. If the profile has posts and search finds nothing, that's the search-ban signal.
That is two lookups per check, the same ones you could do by hand in a logged-out browser, done consistently and in a few seconds. It is an outside observation, not X's verdict: X doesn't publish shadowban status for any account.
The four things people call a shadowban
“Shadowban” is used for several different restrictions. Only one of them can be tested reliably from outside, and this tool tells you which one it checked rather than giving a blanket answer.
| Type | What you notice | Checked here? |
|---|---|---|
| Search ban | Your posts don't come back when people search, even for from:yourname. | Yes — this is what the tool checks. |
| Search suggestion ban | Your account doesn't appear in the search box's autocomplete when someone types your name. | No — autocomplete varies by viewer and isn't exposed as data. |
| Reply deboosting (ghost ban) | Your replies are collapsed under “show more replies” or hidden for people who don't follow you. | No — depends on the viewer and X's ranking. |
| Suspension / restriction | The account is suspended, or shows a warning interstitial. Not a shadowban: it's visible and announced. | Suspended accounts are reported as such. |
If the result says “search ban likely”
- Confirm it by hand once. Open a private window, go to X search, type
from:yournameand choose the Latest tab. A brand-new post can take a few minutes to be searchable, so test with one that's at least an hour old. - Look for the trigger. X's rules and its platform-manipulation policy describe what gets reach limited: bursts of identical replies, mass following and unfollowing, repeated links, and automation that behaves like spam. Stop the behaviour first; nothing else helps while it continues.
- Clean up the profile. Confirm your email and phone, remove links that look like spam, and check that the account isn't labelled sensitive in its settings.
- Wait, then re-check. Check again every few days. Repeated checks every few minutes don't change anything and use up your free checks.
Watching more than one account?
Agencies and brands run this check across every account they manage, on a schedule. Here are the same two steps with the TwitterAPI.io API: one profile lookup and one search per account, each a single pay-as-you-go call (a search that returns nothing is charged the $0.00015 minimum; see pricing).
import requests
HEADERS = {"X-API-Key": "YOUR_API_KEY"}
BASE = "https://api.twitterapi.io/twitter"
def search_visible(username: str) -> str:
"""Same two steps as the tool: does the account exist, and does search show its posts?"""
user = requests.get(f"{BASE}/user/info", headers=HEADERS,
params={"userName": username}, timeout=20).json()
data = user.get("data") or {}
if not data:
return "not_found"
if data.get("unavailable"):
return "unavailable" # suspended or unavailable; see unavailableReason
if not data.get("statusesCount"):
return "no_tweets" # nothing to find, so nothing to conclude
found = requests.get(f"{BASE}/tweet/advanced_search", headers=HEADERS,
params={"query": f"from:{username}", "queryType": "Latest"},
timeout=20).json()
return "visible" if found.get("tweets") else "hidden_from_search"
for name in ["your_brand", "your_ceo", "your_support_account"]:
print(name, search_visible(name))Get a free API key →Questions
How do I know if I'm shadowbanned on Twitter?
Search X for from:yourname while logged out, or run the check above. If your account has posts but that search shows none of them, your posts are hidden from search, which is the most common form of shadowban. X doesn't send a notification for it.
Is this an official result from X?
No. X doesn't publish shadowban status for any account. This tool reports what anyone can observe from outside: whether the account's own posts come back in X search. Treat it as strong evidence, not X's verdict.
Does it detect reply deboosting or a ghost ban?
No. Hidden or collapsed replies depend on who is viewing and on X's ranking, so they can't be tested reliably from one outside request. This tool checks search visibility only and says so in every result.
How long does a Twitter shadowban last?
X doesn't publish a duration. Reports from affected users range from a couple of days to a few weeks, usually ending sooner when the behaviour that triggered it stops. Check again every few days rather than every few minutes.
Is the check free? Do you store my searches?
Yes, 20 checks a day per visitor without signing in, more with a free Google sign-in. We log each check (time, username checked, result) to prevent abuse; we don't sell or publish them. Results for the same username are reused for up to 15 minutes.