作者:Sorsa 编辑部

核心要点: 检测 Twitter(X)上的虚假粉丝和机器人账号,靠的是账号元数据信号:创建日期极新、关注对粉丝比过高、很少或没有推文、默认头像、空简介,以及失效的资料链接。抽样 20 到 50 个粉丝;如果超过 20% 出现多个信号,说明污染已经很严重。

更新于 2026 年 7 月 6 日:对照当前按量付费定价刷新了成本数字。同时新增 100 次免费请求的起步选项,并重新核实了旧机器人检测工具(包括 Botometer)的存档状态。

Twitter 机器人检测归结为一个实际问题:哪些粉丝是真人,哪些是买来的、自动化的或废弃的?粉丝数容易灌水,难以信任。买来的粉丝、休眠账号和自动化垃圾都混在公开粉丝列表里,拖低互动率,扭曲一切建立在受众之上的分析。衡量这个问题的可靠办法,是读取每个账号暴露的元数据,对照已知机器人模式打分,再标记同时触发多个信号的账号。

Sorsa API 是 Twitter/X API 的替代服务商,一次调用就返回这些确切字段。调用一次粉丝接口最多拉取 200 份完整用户资料,每份都带着给账号打分所需的创建日期、粉丝和关注数、推文和点赞总数、头像 URL、简介和简介链接。在 Pro 套餐上,读取 5 万份粉丝资料约 $0.50;官方 X API 按每份资料读取 $0.010 算,同样的量约 $500。没有 OAuth 握手,也没有开发者账号审核:请求头里放一个密钥,所有套餐统一 20 次/秒,审计就能跑起来。

目录

什么算虚假粉丝或机器人账号? {#what-counts-as-a-fake-follower-or-bot-account}

虚假粉丝,就是任何撑起粉丝数、却不是一个可触达、活跃真人的账号:自动化机器人、买来的养号场账号、垃圾资料,以及长期休眠的账号。机器人特指由软件驱动的账号。这几类大量重叠,所以多数审计工具把它们归入同一个标签:虚假或低质。

定义很关键,因为定义决定了那个数字。多年来 Twitter 在监管申报里坚称,可变现日活跃用户中不到 5% 是虚假或垃圾账号,这个数字挂钩的是广告主能触达的那一小组账号。独立分析用不同样本和更宽的定义,得出的比例更高。据 CNN 报道,分析公司 Cyabra 估计垃圾和机器人账号约占 Twitter 用户群的 11% 到 14%;SparkToro 在 2022 年评审约 4.4 万个活跃账号,把其中 19.42% 标记为符合一个保守的虚假或垃圾定义。

平台在不断清理,所以粉丝数会自己变动。Social Media Today 报道,X 在 2025 年 10 月的一次清洗中移除了约 170 万个回复垃圾机器人,这属于对自动账号更广、持续打击的一部分。

对一次粉丝审计来说,这些平台级数字什么也决定不了。真正要紧的,是你眼前这一个账号的虚假率,而这正是元数据打分要衡量的。

账号元数据里的 Twitter 机器人检测信号 {#twitter-bot-detection-signals-in-account-metadata}

从元数据做 Twitter 机器人检测,靠的是给每个账号按一组信号打分,这些信号都与自动化和养号相关。具体包括:账号年龄、关注对粉丝比、推文和点赞量、头像和简介完整度、资料链接是否有效,以及用户名结构。没有哪个单一信号是决定性的。真正很可能虚假的,是同时触发多个信号的账号。

信号暗示什么账号字段
几天或几周前创建批量注册的账号created_at
关注数千、粉丝很少互关号或垃圾机器人followings_countfollowers_count
零或接近零推文为关注而建,不为发帖tweets_count
无点赞记录没有真实活动favourites_count
从未发过媒体低投入的自动账号media_count
默认或缺失头像无人打理profile_image_url
空简介或模板简介非真人资料description
简介无链接或死链一次性账号bio_urls
无置顶推文极简账号配置pinned_tweet_ids
随机用户名、名字加数字自动生成的用户名username

这些信号要合在一起看,不要孤立地看。一个两周大、默认头像、零推文的账号是强候选;一个三年大、简介完整、比例正常的账号几乎从来不是。给账号年龄和比例最大的权重,因为这两个信号是养号场跨数千账号廉价造假时最难伪造的。

这张表里的每个字段,都随 Sorsa 从资料、批量和粉丝接口返回的标准资料对象一起交付。这在实际操作上很关键:一次粉丝列表拉取就能拿到每个账号完整的信号集,不用再逐个资料去查第二遍。上面的字段名是粉丝接口文档里记录的响应键原文,所以打分逻辑可以直接映射到 JSON 上。

为什么那些受信任的机器人检测工具失效了 {#why-the-trusted-bot-detection-tools-stopped-working}

最有名的几个 Twitter 机器人检测器,都在 X 于 2023 年终止免费 API 访问时失效了。Botometer 是印第安纳大学的学术工具,已被停用,其存档版继任者只能给 2023 年 6 月之前采集的数据打分。SparkToro 同年下线了免费的虚假粉丝审计。这些工具全都评估不了近期创建的账号。

Botometer 是最典型的例子。印第安纳大学社交媒体观测站的作者们在 X 暂停免费数据访问后停用了原始工具,随后在 2024 年 2 月复活了一个受限版本 Botometer X。据他们自己说明,Botometer X 以存档模式运行在 2023 年 6 月前的数据上,对 2023 年 5 月 31 日之后创建的账号没有记录,给出的分数也可能不反映近期活动。底层的 BotometerLite 模型给账号元数据打分,用的正是上文那类信号,但团队指出这个模型早于现代生成式 AI,检测不了 AI 加持的机器人。

SparkToro 从商业角度讲了同一个故事。那个免费的虚假粉丝审计曾经估算出某个超高知名度账号近一半粉丝是虚假的。这个工具最终在 2023 年被关停,因为新的付费 API 不再提供这个功能所依赖的数据。

共同的线索是数据来源,而不是方法。每个通过官方 API 读取实时账号的工具,都在 API 新成本和访问限制落地那一刻,一并继承了这些限制。元数据打分本身依然管用;被掐断的是对待打分账号那种廉价、开放的访问。这就是重塑了整个生态定价的那次转变,我们在 X API 定价为何变化一文里做了分析。

如何审计任意公开账号的粉丝 {#how-to-audit-any-public-accounts-followers}

审计一个公开账号的粉丝,就是一页页拉取粉丝列表,对照元数据信号给每份资料打分,再要么全部检查、要么随机抽样几百个。每个账号一个标记数,加上整个受众的一个污染率,就足以据此决策。

  1. 拉取粉丝。 用用户名或用户 ID 调用粉丝接口。每页返回最多 200 份资料和一个 next_cursor。一直翻页到游标返回空,或者拿到有代表性的样本就停。
  2. 给每份资料打分。 把信号表套到每个账号上,数它触发了几个信号。
  3. 设一个阈值。 把触发三个或以上信号的账号当作很可能虚假,再拿几个你能肉眼核对的账号来调这个阈值。
  4. 汇总。 用被标记账号数除以已检查账号数,得到受众的污染率。

整个循环很短。下面是对着 Sorsa v3 API 的一个可运行版本,用 ApiKey 请求头认证:

python
import requests

BASE = "https://api.sorsa.io/v3"
HEADERS = {"ApiKey": "YOUR_API_KEY"}

def fetch_followers(username, pages=5):
    profiles, cursor = [], None
    for _ in range(pages):
        params = {"username": username}
        if cursor:
            params["next_cursor"] = cursor
        resp = requests.get(f"{BASE}/followers", headers=HEADERS, params=params)
        resp.raise_for_status()
        data = resp.json()
        profiles.extend(data["users"])
        cursor = data.get("next_cursor")
        if not cursor:
            break
    return profiles

def bot_signals(user):
    flags = []
    followers = user.get("followers_count", 0)
    following = user.get("followings_count", 0)
    if following > 1000 and followers < following / 20:
        flags.append("skewed_ratio")
    if user.get("tweets_count", 0) == 0:
        flags.append("no_tweets")
    if user.get("favourites_count", 0) == 0:
        flags.append("no_likes")
    if not user.get("description"):
        flags.append("empty_bio")
    if not user.get("bio_urls"):
        flags.append("no_bio_link")
    if "default_profile" in user.get("profile_image_url", ""):  # 启发式
        flags.append("default_avatar")
    return flags

followers = fetch_followers("targetaccount")
flagged = [u for u in followers if len(bot_signals(u)) >= 3]
rate = len(flagged) / len(followers) if followers else 0
print(f"Checked {len(followers)} followers, {len(flagged)} likely fake ({rate:.0%})")

阈值由你来定;那条比例规则和默认头像的字符串匹配,是刻意保守的起点,不是固定真理。成本很低,因为粉丝接口每次请求最多返回 200 份资料,只从额度里扣一次请求。审计一个 5 万粉丝的账号约 250 次请求,Pro 套餐上约 $0.50;同样的 5 万次资料读取在官方 X API 上接近 $500。

关于覆盖范围有两点提醒。私密(受保护)账号无法枚举,所以这套方法只覆盖公开账号。如果你只要粉丝列表本身、不需要打分,我们的拉取粉丝列表规模化抽取粉丝指南在翻页和导出上讲得更细。

规模化检查一份已知账号列表 {#checking-a-known-list-of-accounts-at-scale}

如果你手上已经有一份用户名或用户 ID 列表,比如抽奖参与者、候补名单注册者,或者某个竞品被标记的账号,就按批检查,别逐个查。一次批量资料查询每次请求最多返回 100 份完整资料,同一套信号打分逻辑在每份上都能跑。

机制和上面的审计循环一样,只是输入变了:不再翻页某个粉丝列表,而是把你的用户名每 100 个一组传给批量资料查询。一万个用户名是 100 次请求,Pro 套餐上约 $0.20。做活动相关工作时,这一步自然会和动作核验(参与者是否真的关注或转发了)配合,那正是筛查抽奖参与者的核心。而单靠元数据这一遍,就已经能在任何奖励发出之前剔除明显的机器人。

更深入:用户名历史与互动 {#going-deeper-username-history-and-engagement}

有两个有用的信号在基本资料对象之外。近期或反复的用户名变更,可能标记一个被回收或改用途的账号;互动率远低于账号粉丝数,则是买粉的典型迹象。这两个信号每个账号都要多花一次调用,所以留给经过初筛的短名单账号,别对整份列表跑。

第一个来自 About 接口,它返回账号所属国家,以及用户名变更总数(username_change_count)和最近一次变更日期(last_username_change_at)。一个上周刚改过名、背后还有几次更早变更的资料,哪怕其他信号看着干净,也值得再看一眼。

第二个是受众层面的。一个粉丝很多、但近期帖子几乎没有点赞或回复的资料,说明存在一个上升一级的同类问题:受众在纸面上,不在实际里。可以拉近期推文,把互动和粉丝数对比;也可以用免费的互动率计算器从近期推文里直接算,不用写代码。如果你想自己搭这个核查,我们对推文互动数据的概览讲了底层的回复、引用和转发接口。

账号元数据检测做不到什么 {#what-account-metadata-detection-cannot-do}

元数据打分是初筛,不是证据。它能可靠地浮现低投入的机器人和休眠账号,但确认不了意图,做得好的账号能骗过它。要给出有把握的判定,需要在资料信号之上再叠加行为分析和网络分析。

有四个局限值得直说:

  • 现代 AI 账号能骗过它。 自动账号现在可以带着完整简介、可信头像和稳定发帖,所以连 Botometer X 背后的 BotometerLite 模型,都被其作者标注为检测不了 AI 加持的机器人。据 Social Media Today,X 一直清洗自动账号到 2026 年,这说明问题依然活跃,而且还在演变,超出了简单启发式的能力范围。
  • 认证徽章现在什么都说明不了。 付费订阅取代了旧的认证系统,所以一个蓝勾什么都证明不了,证明不了账号背后是不是一个真实、活跃的真人。
  • 关注时间的尖峰在这里够不着。 要检测一批突然买入的粉丝,需要每个粉丝的关注日期,而标准粉丝列表里没有这个字段。Sorsa 只在七天新粉丝接口里对加密索引的账号暴露关注时间,所以这不是对任意账号都通用的信号。
  • 没有单一的机器人分数。 没有哪个元数据 API 会返回一个写着“机器人”的数字。那个分数是你自己从信号里拼出来、并按自己的容忍度校准的。

这些都不让方法本身变弱,只是让它更诚实:一个快速、便宜、能抓住大部分低质账号、并在需要更深核查时给你提示的风险分数。

一次粉丝审计的成本:Sorsa 与官方 X API {#what-a-follower-audit-costs-sorsa-vs-the-official-x-api}

批量读取粉丝资料,各服务商的定价差别很大。官方 X API 对每份抓取的资料收费,所以一次大审计的成本会线性涨到几百美元。按请求计费的 API 无论返回多少份资料都只按一次调用收费,把同样审计的成本压到几美分。

官方 X API(按量付费)Sorsa API
计费单位按抓取的资料按请求
读取 5 万份粉丝资料约 $500约 $0.50(Pro)
每请求资料数各自单独计费最多 200(粉丝)或 100(批量),只收一次
配置开发者账号,应用审核密钥几分钟到手,无需审批
账号元数据字段
移除或屏蔽被标记账号能(有写入权限)不能(只读)

诚实的取舍在写入权限上。官方 API 能发帖、关注和移除账号;Sorsa 从设计上只读,所以实际的屏蔽和清理要在 X 界面里做,或者走官方 API。但在读取这一侧,也就是规模化取回并给粉丝元数据打分,按请求计费在价格和配置上都胜出:请求头里一个 API 密钥,所有套餐统一 20 次/秒,没有审批队列。这让它成为任何要跑不止一次的审计更划算的底座。两张完整表都是公开的:见当前 X API 定价Sorsa 的按请求计费套餐

团队在哪些场景跑粉丝审计 {#where-teams-run-follower-audits}

有三类任务驱动了大部分粉丝审计:付费投放前核查一个网红、筛查一次抽奖或代币空投的参与者,以及掂量一个竞品的真实受众。三者归结到同一步,都是对照元数据信号给一份粉丝列表打分,只在结果怎么用上有区别。

网红核查最常见。品牌在发付费帖之前先查创作者的粉丝,因为受众灌了水,就意味着花钱买来的触达根本不存在,这也是网红受众分析的核心。抽奖和空投筛查则过滤掉机器人参与者,让奖励落到真实参与者手里。竞品工作用同样的审计来判断对手的关注有多少是真的,这份结果直接喂给竞品受众分析

有一个我们常见的模式:某家中型网红营销机构在签下一个活动之前,会先筛查每位创作者的受众。他们拉取创作者的粉丝,用上面这套信号给每份资料打分,一旦受众虚假粉丝比例越过阈值,就直接放弃这位创作者。整套流程跑在按请求计费的 API 上,每次创作者审计只要几美分,也不需要 X 开发者账号。正因为便宜,这道核查能嵌进常规的交易审查,而不会因为预算被砍掉。同样的例程对准抽奖参与者,就能让奖池不流向机器人账号。

如何开始 {#getting-started}

有两个免费工具,能让你在写代码之前先试试这套方法。最近新增粉丝在浏览器里列出某个账号最新的粉丝;在线试用工具 Playground 从一个表单运行任意接口,包括粉丝调用。两者都用一个 Sorsa 密钥拉取实时数据。

准备好把完整审计写成脚本时,配置很简单。粉丝和批量接口返回信号表里的元数据,所有套餐统一 20 次/秒,密钥几分钟就能激活,无需排队审批。注册即送 100 次免费请求,无需绑卡,永不过期,覆盖全部 40 个接口,足够读取多达 2 万份资料,在付费前审计一个中型账号。之后按用量付费,粉丝接口每 1,000 份资料读取 $0.01 起,因为一次请求最多返回 200 份资料,只从额度里扣一次。

常见问题 {#frequently-asked-questions}

怎么判断一个 Twitter 粉丝是不是虚假的?

看这个账号的元数据是否同时出现多个机器人信号。典型的有:创建日期极新、关注数远高于粉丝数、很少或没有推文、没有点赞、默认头像、空简介。单个信号本身很弱。同时触发三个或以上的账号很可能是虚假的;抽样 20 到 50 个粉丝,就能看出更大范围的受众是否被污染。

Botometer 在 2026 年还能用吗?

原始版本不能用了。X 于 2023 年终止免费 API 访问后,印第安纳大学停用了实时版 Botometer,换成了 Botometer X,一个只给 2023 年 6 月前采集的数据打分的存档工具。它对 2023 年 5 月 31 日之后创建的账号没有记录,分数也不反映近期活动,所以评估不了新账号或近期活跃的账号。

Twitter 粉丝里虚假的占多大比例?

没有权威数字,估计值随定义大幅波动。Twitter 长期在监管申报里称,可变现日活跃用户中不到 5% 是垃圾或虚假账号;独立分析给出的范围从约 10% 到 20% 的账号不等,有些高得多。对一个具体决策唯一要紧的数字,是你审计的那个特定账号的虚假率。

不用官方 X API 能审计虚假粉丝吗?

能。只读数据 API 返回的资料元数据和官方 API 一样,不需要 OAuth,也不需要开发者账号审核。Sorsa 的粉丝接口每次请求最多拉取 200 份完整资料,每份都带着打分需要的创建日期、关注数、推文总数、头像和简介。所以你用请求头里一个 API 密钥,就能审计任意公开账号的粉丝。

审计一个大型粉丝群要花多少钱?

在按请求计费的 API 上只要几美分。通过 Sorsa 的粉丝接口读取 5 万份粉丝资料约 250 次请求,$199 的 Pro 套餐上约 $0.50,因为每次请求最多返回 200 份资料,只算一次。同样的 5 万次资料读取在官方 X API 上按每份 $0.010 计,约 $500,因为官方 API 对每份资料单独收费。

基于元数据的机器人检测准确吗?

用于初筛可靠,用作证据不可靠。账号年龄、比例和活跃度信号能很好地抓住低投入机器人和休眠账号。但带完整简介、稳定发帖的现代 AI 账号能骗过它们,付费的认证徽章也不再代表真实性。把一次元数据审计当作可据以行动的风险分数,需要给出决定性判定时,再叠加行为分析或网络分析。


审校:Keksich(Sorsa 创始人,X API 研究者)

本指南取材于我们团队运营 Sorsa 粉丝和资料接口的一线工作、线上 Sorsa API v3 文档,以及 2026 年 6 月核查的外部来源:印第安纳大学社交媒体观测站关于 Botometer X 存档状态的说明、CNN 关于第三方机器人比例估计的报道,以及 Social Media Today 关于 X 账号清洗的报道。SparkToro 下线虚假粉丝审计的公开通知,用于确认该工具状态。成本数字于 2026 年 7 月对照当前 Sorsa 和官方 X API 定价重新核实。