检测 Shadowban 与回复可见性
检测 People 账号搜索、使用 from:用户名 的默认 Top 帖子搜索,以及回复可见性。仅需 API Key。默认返回 screen_name 和五个 boolean/null 标记:true 表示发现疑似限制,false 表示本次检查未发现异常,null 表示无法判断或该项未检测。传 details: true 后,完整证据放在 data.details,简化字段保持不变。
默认启用回复检查,最多取样两条最近七天内对其他账号的原创回复。只有实际加载折叠入口并找到目标回复,才判断为疑似 Reply Deboosting,例如位于 Show probable spam 区域。Ghost Ban 要求原帖可访问、回复列表查完,且直接查询确认回复仍存在。分页未查完、原帖不可访问、没有合适样本或位置结构异常时返回无法判断。账号搜索检查的是 People 结果,不是下拉搜索建议。结果来自一个查询账号的观察,不代表确认 X 内部处罚或整个账号的全部可见性。
{
"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
}
}
返回 API 接口列表
/Search Endpoints
POST
/twitter/shadowban/checkAPI 鉴权
AuthorizationBearer token · header必填TwexAPI 平台的全局身份凭据 (Bearer Token)。所有接口调用均需在 Header 中携带:Authorization: Bearer <YOUR_TWEXAPI_KEY>。可在 TwexAPI 用户控制台获取。
请求体
必填application/jsonscreen_namestring必填用户名可带 @ 和首尾空格;包含 1–15 个字母、数字或下划线。不接受主页 URL。
matches ^\s*@?[A-Za-z0-9_]{1,15}\s*$
max_pagesinteger每项搜索、回复取样和每个原帖回复列表的最大检查页数,范围 1–3。必须传 JSON 整数,不接受 null 或数字字符串。
min 1 · max 3 · default: 2
check_repliesboolean是否检测 Ghost Ban 和 Reply Deboosting。设为 false 时,综合结果只考虑账号和帖子搜索;两项回复标记为 null。
default: true
允许值:
truefalsedetailsboolean将原来的完整诊断结果放在 data.details。默认的六个字段保持相同类型;该选项只改变返回内容。
default: false
允许值:
truefalsereply_sample_sizeinteger自动取样的近期回复数量上限,范围 1–3。不限制显式传入的 reply_ids。
min 1 · max 3 · default: 2
reply_idsstring[]可选的 1–3 个数字形式的推文 ID 字符串,用于指定回复而非自动取样。回复必须由目标账号发给其他账号;重复 ID 只检查一次。不接受 URL 或 JSON 数字。
min items 1 · max items 3
响应结果
200true:疑似受限;false:本次检查未发现异常;null:无法判断或未检测。
codeinteger必填msgstring必填dataShadowbanCheckData必填展开属性折叠属性
screen_namestring必填用户名可带 @ 和首尾空格;包含 1–15 个字母、数字或下划线。不接受主页 URL。
shadow_banboolean | null必填启用检查项的综合结果。任一项有疑似限制时为 true;没有正面证据但有未完成项时为 null。 true:疑似受限;false:本次检查未发现异常;null:无法判断或未检测。
account_search_banboolean | null必填疑似未出现在 People 账号搜索结果中。 true:疑似受限;false:本次检查未发现异常;null:无法判断或未检测。
search_banboolean | null必填疑似未出现在 from:用户名 的默认 Top 帖子搜索结果中。 true:疑似受限;false:本次检查未发现异常;null:无法判断或未检测。
ghost_banboolean | null必填疑似回复被隐藏:直接查询仍可读取,但在完整检查的原帖回复列表中找不到。 true:疑似受限;false:本次检查未发现异常;null:无法判断或未检测。
reply_deboostingboolean | null必填取样回复只有加载明确的折叠回复区域后才出现。 true:疑似受限;false:本次检查未发现异常;null:无法判断或未检测。
detailsShadowbanCheckEvidence将原来的完整诊断结果放在 data.details。默认的六个字段保持相同类型;该选项只改变返回内容。
展开属性折叠属性
screen_namestring必填user_idstring | null必填checked_atstring<date-time>必填statusstring必填允许值:
suspectedno_evidenceinconclusivesuspected_shadowbanboolean | null必填true:疑似受限;false:本次检查未发现异常;null:无法判断或未检测。
account_searchShadowbanSearchEvidence必填展开属性折叠属性
statusstring必填允许值:
visiblenot_foundinconclusivequerystring必填pages_checkedinteger必填min 0
matched_idsstring[]必填reasonstring必填baseline_post_idsstring[]post_searchShadowbanSearchEvidence必填展开属性折叠属性
statusstring必填允许值:
visiblenot_foundinconclusivequerystring必填pages_checkedinteger必填min 0
matched_idsstring[]必填reasonstring必填baseline_post_idsstring[]reply_visibilityShadowbanReplyVisibility必填展开属性折叠属性
statusstring必填允许值:
visiblehiddendeboostedinconclusivemixedskippedsample_countinteger必填min 0
reasonstring必填samplesShadowbanReplySample[]必填展开属性折叠属性
Array of
ShadowbanReplySamplereply_idstring必填parent_tweet_idstring | null必填statusstring必填允许值:
visiblehiddendeboostedinconclusivereasonstring必填pages_checkedinteger必填min 0
reply_accessibleboolean | null必填parent_accessibleboolean必填matched_entry_idstringfolded_cursor_typestringfolded_action_textstringghost_banShadowbanReplySummary必填展开属性折叠属性
statusstring必填允许值:
suspectedno_evidenceinconclusivesuspectedboolean | null必填true:疑似受限;false:本次检查未发现异常;null:无法判断或未检测。
checked_repliesinteger必填min 0
affected_reply_idsstring[]必填reasonstring必填reply_deboostingShadowbanReplySummary必填展开属性折叠属性
statusstring必填允许值:
suspectedno_evidenceinconclusivesuspectedboolean | null必填true:疑似受限;false:本次检查未发现异常;null:无法判断或未检测。
checked_repliesinteger必填min 0
affected_reply_idsstring[]必填reasonstring必填limitationsstring必填400请求参数无效
codeinteger必填msgstring必填dataobject | any[]必填展开属性折叠属性
Any of:
object
objectany[]
Array of
anyany401身份认证失败
codeinteger必填msgstring必填dataobject | any[]必填展开属性折叠属性
Any of:
object
objectany[]
Array of
anyany403认证、额度或查询权限不足
codeinteger必填msgstring必填dataobject | any[]必填展开属性折叠属性
Any of:
object
objectany[]
Array of
anyany404上游资源不存在
codeinteger必填msgstring必填dataobject | any[]必填展开属性折叠属性
Any of:
object
objectany[]
Array of
anyany429达到速率限制
codeinteger必填msgstring必填dataobject | any[]必填展开属性折叠属性
Any of:
object
objectany[]
Array of
anyany500服务器错误
codeinteger必填msgstring必填dataobject | any[]必填展开属性折叠属性
Any of:
object
objectany[]
Array of
anyany502上游服务错误
codeinteger必填msgstring必填dataobject | any[]必填展开属性折叠属性
Any of:
object
objectany[]
Array of
anyany503服务暂时不可用
codeinteger必填msgstring必填dataobject | any[]必填展开属性折叠属性
Any of:
object
objectany[]
Array of
anyany504上游请求超时
codeinteger必填msgstring必填dataobject | any[]必填展开属性折叠属性
Any of:
object
objectany[]
Array of
anyany⚡交互式测试POST
⚡交互式测试 / Try APIPOSTLive Console
🌐目标服务器:
https://api.twexapi.io● 生产环境就绪
🔍
公开数据读取(仅需 TwexAPI 平台密钥,无需 Twitter Cookie)
本接口为公开推特数据检索/查询,无需任何推特账号或 Cookie!仅需在下方「API 鉴权」中输入您的 TwexAPI 平台密钥 (Bearer Token) 即可直接发起测试。
🔑API 鉴权
📝请求体application/json
📡
暂无响应数据
请在「请求配置」中确认参数后,点击底部的「发送请求」按钮。
请求示例
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": {}
}