Check Shadowban and Reply Visibility
Check People account search, default Top post search using from:username, and sampled reply visibility. Only an API key is required. The default response contains screen_name and five boolean/null flags: true means suspected restriction, false means no evidence in the checks performed, and null means inconclusive or skipped. Set details: true to add the complete evidence under data.details without changing the compact fields.
Reply checks are enabled by default and sample up to two original replies to other accounts from the last seven days. A reply must actually be found behind an explicit folded-replies cursor, such as Show probable spam, before suspecting Reply Deboosting. Ghost Ban requires an accessible parent, completed conversation traversal, and direct verification that the reply still exists. Incomplete pagination, inaccessible parents, absent samples and malformed placement are inconclusive. Account search checks People results rather than search suggestions. These are observations from one query account, not confirmation of X internal enforcement or account-wide visibility.
{
"code": 200,
"msg": "success",
"data": {
"screen_name": "example_user",
"shadow_ban": false,
"account_search_ban": false,
"search_ban": false,
"ghost_ban": false,
"reply_deboosting": false
}
}
/twitter/shadowban/checkAuthorizationBearer token · headerrequiredapplication/jsonscreen_namestringrequiredmax_pagesintegercheck_repliesbooleantruefalsedetailsbooleantruefalsereply_sample_sizeintegerreply_idsstring[]codeintegerrequiredmsgstringrequireddataShadowbanCheckDatarequiredShow propertiesHide properties
screen_namestringrequiredshadow_banboolean | nullrequiredaccount_search_banboolean | nullrequiredsearch_banboolean | nullrequiredghost_banboolean | nullrequiredreply_deboostingboolean | nullrequireddetailsShadowbanCheckEvidenceShow propertiesHide properties
screen_namestringrequireduser_idstring | nullrequiredchecked_atstring<date-time>requiredstatusstringrequiredsuspectedno_evidenceinconclusivesuspected_shadowbanboolean | nullrequiredaccount_searchShadowbanSearchEvidencerequiredShow propertiesHide properties
statusstringrequiredvisiblenot_foundinconclusivequerystringrequiredpages_checkedintegerrequiredmatched_idsstring[]requiredreasonstringrequiredbaseline_post_idsstring[]post_searchShadowbanSearchEvidencerequiredShow propertiesHide properties
statusstringrequiredvisiblenot_foundinconclusivequerystringrequiredpages_checkedintegerrequiredmatched_idsstring[]requiredreasonstringrequiredbaseline_post_idsstring[]reply_visibilityShadowbanReplyVisibilityrequiredShow propertiesHide properties
statusstringrequiredvisiblehiddendeboostedinconclusivemixedskippedsample_countintegerrequiredreasonstringrequiredsamplesShadowbanReplySample[]requiredShow propertiesHide properties
ShadowbanReplySamplereply_idstringrequiredparent_tweet_idstring | nullrequiredstatusstringrequiredvisiblehiddendeboostedinconclusivereasonstringrequiredpages_checkedintegerrequiredreply_accessibleboolean | nullrequiredparent_accessiblebooleanrequiredmatched_entry_idstringfolded_cursor_typestringfolded_action_textstringghost_banShadowbanReplySummaryrequiredShow propertiesHide properties
statusstringrequiredsuspectedno_evidenceinconclusivesuspectedboolean | nullrequiredchecked_repliesintegerrequiredaffected_reply_idsstring[]requiredreasonstringrequiredreply_deboostingShadowbanReplySummaryrequiredShow propertiesHide properties
statusstringrequiredsuspectedno_evidenceinconclusivesuspectedboolean | nullrequiredchecked_repliesintegerrequiredaffected_reply_idsstring[]requiredreasonstringrequiredlimitationsstringrequiredcodeintegerrequiredmsgstringrequireddataobject | any[]requiredShow propertiesHide properties
objectanyanycodeintegerrequiredmsgstringrequireddataobject | any[]requiredShow propertiesHide properties
objectanyanycodeintegerrequiredmsgstringrequireddataobject | any[]requiredShow propertiesHide properties
objectanyanycodeintegerrequiredmsgstringrequireddataobject | any[]requiredShow propertiesHide properties
objectanyanycodeintegerrequiredmsgstringrequireddataobject | any[]requiredShow propertiesHide properties
objectanyanycodeintegerrequiredmsgstringrequireddataobject | any[]requiredShow propertiesHide properties
objectanyanycodeintegerrequiredmsgstringrequireddataobject | any[]requiredShow propertiesHide properties
objectanyanycodeintegerrequiredmsgstringrequireddataobject | any[]requiredShow propertiesHide properties
objectanyanycodeintegerrequiredmsgstringrequireddataobject | any[]requiredShow propertiesHide properties
objectanyany⚡Interactive Console / Try APIPOSTLive Console
https://api.twexapi.ioThis endpoint queries public Twitter data — no Twitter account or Cookie required! Simply enter your TwexAPI Platform Key (Bearer Token) in the "API Authorization" section below to test.
Configure parameters in the Request tab and click Send Request below.
curl -X POST "https://api.twexapi.io/twitter/shadowban/check" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"screen_name": "example_user"
}'const response = await fetch("https://api.twexapi.io/twitter/shadowban/check", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"screen_name": "example_user"
})
});import requests
response = requests.post(
"https://api.twexapi.io/twitter/shadowban/check",
headers={
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
json={
"screen_name": "example_user"
},
){
"code": 200,
"msg": "string",
"data": {
"screen_name": "string",
"shadow_ban": true,
"account_search_ban": true,
"search_ban": true,
"ghost_ban": true,
"reply_deboosting": true,
"details": {
"screen_name": "string",
"user_id": "string",
"checked_at": "2019-08-24T14:15:22Z",
"status": "suspected",
"suspected_shadowban": true,
"account_search": {
"status": "visible",
"query": "string",
"pages_checked": 0,
"matched_ids": [
"string"
],
"reason": "string",
"baseline_post_ids": [
"string"
]
},
"post_search": {
"status": "visible",
"query": "string",
"pages_checked": 0,
"matched_ids": [
"string"
],
"reason": "string",
"baseline_post_ids": [
"string"
]
},
"reply_visibility": {
"status": "visible",
"sample_count": 0,
"reason": "string",
"samples": [
{
"reply_id": "string",
"parent_tweet_id": "string",
"status": "visible",
"reason": "string",
"pages_checked": 0,
"reply_accessible": true,
"parent_accessible": true,
"matched_entry_id": "string",
"folded_cursor_type": "string",
"folded_action_text": "string"
}
]
},
"ghost_ban": {
"status": "suspected",
"suspected": true,
"checked_replies": 0,
"affected_reply_ids": [
"string"
],
"reason": "string"
},
"reply_deboosting": {
"status": "suspected",
"suspected": true,
"checked_replies": 0,
"affected_reply_ids": [
"string"
],
"reason": "string"
},
"limitations": "string"
}
}
}{
"code": 400,
"msg": "max_pages must be an integer from 1 to 3",
"data": {}
}{
"code": 0,
"msg": "string",
"data": {}
}{
"code": 0,
"msg": "string",
"data": {}
}{
"code": 0,
"msg": "string",
"data": {}
}{
"code": 0,
"msg": "string",
"data": {}
}{
"code": 0,
"msg": "string",
"data": {}
}{
"code": 0,
"msg": "string",
"data": {}
}{
"code": 0,
"msg": "string",
"data": {}
}{
"code": 0,
"msg": "string",
"data": {}
}