适用于任意账号的 Twitter 数据分析 API
X 上每条公开帖子都带有六项互动数据(点赞、转发、回复、引用、浏览量和书签),数据分析 API 可以读取任意账号的这些数据。官方 X API 对返回的每条帖子收费 $0.005。
简短回答: 这六项数据都是公开的,所以 API 可以读取不属于你的帖子的这些数据。链接点击、资料点击和帖子带来的关注,则只有作者能在 X 自带的数据分析里看到,保留 30 天。Sorsa API 的 POST /tweet-info-bulk 每次请求为 100 条帖子返回全部六项数据,每 1,000 条 $0.014 起,100 次免费请求可覆盖 1 万条帖子。
- 接口
POST /tweet-info-bulk- 每页条数
- 每次请求 100 条帖子
- 价格
- 每 1,000 条 $0.014 起
#Twitter 数据分析 API 返回什么
Twitter 数据分析 API 是一个接口,它以 JSON 而不是仪表盘的形式,返回 X 帖子和账号背后的数字:每条帖子的互动数据,每个账号的粉丝数和发帖总数,以及可供你统计的帖子本身。它能返回什么,取决于一条界线:任何人都能读取的公开数字,和只有作者能看到的私有数字。
想先在浏览器里查看某个账号的互动率,免费的 Twitter 互动率计算器会读取它最新的帖子。本指南的其余部分用代码完成同样的事,适用于任意数量的账号和帖子。
下表把每个数字对应到携带它的字段。Sorsa API 在返回的每条帖子上都带有六项公开数据;官方 X API 把它们放在 public_metrics 下,把私有数据放在 non_public_metrics 下。
| 指标 | Sorsa API 字段 | 官方 X API 字段 | 谁能读取 |
|---|---|---|---|
| 点赞 | likes_count | like_count | 任何人 |
| 转发 | retweet_count | retweet_count | 任何人 |
| 回复 | reply_count | reply_count | 任何人 |
| 引用 | quote_count | quote_count | 任何人 |
| 浏览量 | view_count | impression_count | 任何人 |
| 书签 | bookmark_count | bookmark_count | 任何人 |
| 链接点击 | 无 | url_link_clicks | 作者 |
| 资料点击 | 无 | user_profile_clicks | 作者 |
点赞
- Sorsa API 字段
likes_count- 官方 X API 字段
like_count- 谁能读取
- 任何人
转发
- Sorsa API 字段
retweet_count- 官方 X API 字段
retweet_count- 谁能读取
- 任何人
回复
- Sorsa API 字段
reply_count- 官方 X API 字段
reply_count- 谁能读取
- 任何人
引用
- Sorsa API 字段
quote_count- 官方 X API 字段
quote_count- 谁能读取
- 任何人
浏览量
- Sorsa API 字段
view_count- 官方 X API 字段
impression_count- 谁能读取
- 任何人
书签
- Sorsa API 字段
bookmark_count- 官方 X API 字段
bookmark_count- 谁能读取
- 任何人
链接点击
- Sorsa API 字段
- 无
- 官方 X API 字段
url_link_clicks- 谁能读取
- 作者
资料点击
- Sorsa API 字段
- 无
- 官方 X API 字段
user_profile_clicks- 谁能读取
- 作者
浏览量同样是公开的。X 自己的指标文档(在新标签页打开)把展示次数列为公开指标,普通的 bearer 令牌就能读取任意帖子的这一项;同一个人看到一条帖子两次,算作两次展示。
私有数字有三条途径,都与写下这条帖子的账号绑定。第一条是 x.com 上的数据分析仪表盘。第二条是官方 X API 的 GET /2/tweets/analytics(在新标签页打开):最多 100 个你自己的帖子 ID,返回汇总值或按小时、天、周划分的序列,需用你账号的 OAuth 令牌签名。第三条是 X 的企业版 Engagement API(在新标签页打开),需要签订销售合同。非公开指标只涵盖最近 30 天的帖子。
对于公开数据,官方 X API 在开发者账号和应用就绪之后,对每次读取的每条帖子收费 $0.005,也就是每 1,000 条 $5.00(X API 价格(在新标签页打开))。从 2026 年 11 月 22 日起,读取一条带作者信息的帖子要 $0.015(X 的通知(在新标签页打开))。那里账号的时间线只到最近 3,200 条帖子(在新标签页打开),按量付费的上限是每月 300 万次帖子读取。
#用 Sorsa API 获取任意账号的互动指标
要获取不属于你的账号的互动指标,请用 Sorsa API,一款 Twitter(X)API 与爬虫:它返回的每条帖子都带有全部六项数据和作者的完整资料,每 1,000 条帖子 $0.014 起,而官方 X API 是 $5.00。一个 ApiKey 请求头取代了开发者账号和 OAuth,所有套餐都是每秒 20 次请求,也不会涉及你自己的 X 账号。
最快的入手方式是账号的时间线:一次请求返回它最新的帖子及其数据,游标则指向更早的帖子。游标是 API 随每一页返回的令牌;把它发回去,就能得到下一页。
-
获取密钥。 注册后,从控制台复制 API 密钥。账号里已经有 100 次免费请求。
-
拉取账号的帖子。 把用户名发给
POST /user-tweets(在新标签页打开)。每页最多 20 条帖子,按从新到旧排列,带有各项数据和作者的资料。Terminal curl -X POST "https://api.sorsa.io/v3/user-tweets" \ -H "ApiKey: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"username": "harborline_roasters"}'Response200 OK { "tweets": [ { "id": "2116184394037384839", "full_text": "Winter blend ships Monday. First 200 orders get a tin.", "created_at": "2026-10-30T15:04:11Z", "lang": "en", "likes_count": 212, "retweet_count": 31, "reply_count": 24, "quote_count": 6, "view_count": 9640, "bookmark_count": 41, "is_reply": false, "is_quote_status": false, "conversation_id_str": "2116184394037384839", "user": { "id": "1503315520518280839", "username": "harborline_roasters", "display_name": "Harborline Roasters", "followers_count": 8450, "followings_count": 312, "tweets_count": 3921, "verified": false } } ], "next_cursor": "DAABCgABG5xQ2bW8AAAKAAIbmN8T0ZbQ6QgAAwAAAAIAAA" } -
翻页回溯到你需要的日期。 在下一次请求体里带上
next_cursor,当它返回为空,或帖子早于你的起始日期时停止。下面的循环把每条帖子作为一行写入 CSV 文件。import csv import requests API = "https://api.sorsa.io/v3/user-tweets" HEADERS = {"ApiKey": "YOUR_API_KEY"} FIELDS = ["id", "created_at", "likes_count", "retweet_count", "reply_count", "quote_count", "view_count", "bookmark_count"] def account_posts(username, since="2026-10-01"): body, rows = {"username": username}, [] while True: r = requests.post(API, headers=HEADERS, json=body, timeout=30) r.raise_for_status() data = r.json() page = data.get("tweets", []) rows += [t for t in page if t["created_at"] >= since] old = all(t["created_at"] < since for t in page) if not data.get("next_cursor") or old: return rows body["next_cursor"] = data["next_cursor"] posts = account_posts("harborline_roasters") with open("metrics.csv", "w", newline="") as f: w = csv.DictWriter(f, fieldnames=FIELDS, extrasaction="ignore") w.writeheader() w.writerows(posts) print(len(posts), "posts written") -
把每次运行保存为快照。 帖子发出后,各项数据还会继续增长,所以请把每次拉取连同日期一起保存(帖子 ID、采集时间、六项数据)。相隔一天的两份快照,能显示哪些帖子仍在增长,而一个月内某项数据随
created_at的变化曲线,则能显示账号的帖子触达范围是在变大还是缩小。
429 状态码表示一秒内超过了 20 次请求:等一秒再重新发送。403 表示密钥缺失或请求额度已用完,401 表示密钥错误;失败的请求不会计费。
#保持指标最新:每次刷新 100 条已追踪的帖子
一旦知道要追踪哪些帖子,就可以按 ID 刷新它们的数据:POST /tweet-info-bulk(在新标签页打开) 最多接收 100 个帖子链接或 ID,一次请求就返回每条帖子当前的数据,每 1,000 条帖子 $0.014 起。这样读取 100 万条帖子的指标,$14 起。
账号时间线的第一页,免费完成了其中一部分工作:它已经包含最新 20 条帖子的当前数据。一个每天发两条帖子的账号,用这一次请求就能保证最近 10 天的帖子都是最新的;只有更早的帖子才需要批量调用。
curl -X POST "https://api.sorsa.io/v3/tweet-info-bulk" \
-H "ApiKey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"tweet_links": ["2116184394037384839", "2115861688481928839"]}'
在 Python 里,把你的 ID 列表切成每 100 个一片,每一片作为 tweet_links 发送;响应是一个 tweets 数组,没有游标。
HEADERS = {"ApiKey": "YOUR_API_KEY"}
def refresh(ids):
out = []
for i in range(0, len(ids), 100):
r = requests.post(
"https://api.sorsa.io/v3/tweet-info-bulk",
headers=HEADERS, json={"tweet_links": ids[i:i + 100]},
timeout=60)
r.raise_for_status()
out += r.json().get("tweets", [])
return out
下面的卡片对比了对一份帖子列表的一遍处理:每条帖子的六项数据,各读取一次。
官方 X API
$5,000
100 万条帖子的指标
每条帖子 $0.005
Sorsa API
$14 起
100 万条帖子的指标
每 1,000 条 $0.014 起
#通过 API 获取回复、引用和转发者
数据告诉你有多少人互动;另外三个接口则告诉你这些人是谁、写了什么。每个接口都接收帖子链接或 ID,每条回复和引用都以完整帖子的形式返回,带有它自己的数据和作者。
| 你需要 | Sorsa API 接口 | 返回内容 |
|---|---|---|
| 一条帖子下的回复 | /comments(在新标签页打开) | 每页最多 20 条回复,按 Relevance、Recency 或 Likes 排序 |
| 一条帖子的引用帖 | /quotes(在新标签页打开) | 每页最多 20 条引用,含附加的文字 |
| 转发了它的账号 | /retweeters(在新标签页打开) | 带粉丝数的用户资料,按从新到旧排序 |
| 多个账号的汇总数据 | /info-batch(在新标签页打开) | 每次请求最多 100 个用户资料 |
一条帖子下的回复
- Sorsa API 接口
/comments(在新标签页打开)- 返回内容
- 每页最多 20 条回复,按 Relevance、Recency 或 Likes 排序
一条帖子的引用帖
- Sorsa API 接口
/quotes(在新标签页打开)- 返回内容
- 每页最多 20 条引用,含附加的文字
转发了它的账号
- Sorsa API 接口
/retweeters(在新标签页打开)- 返回内容
- 带粉丝数的用户资料,按从新到旧排序
多个账号的汇总数据
- Sorsa API 接口
/info-batch(在新标签页打开)- 返回内容
- 每次请求最多 100 个用户资料
每个接口回答的是不同的问题。按 Likes 排序的回复,会把点赞最多的回答放在第一页,所以一次请求就能看出受众对一条帖子的反应。引用帖带有人们添加的评论,是分析语气或情感的原始素材。转发者的粉丝数加起来,就是一条帖子间接触达的受众。
BASE = "https://api.sorsa.io/v3"
HEADERS = {"ApiKey": "YOUR_API_KEY"}
def pages(path, body, key, limit=10):
for _ in range(limit):
r = requests.post(f"{BASE}/{path}", headers=HEADERS,
json=body, timeout=30)
r.raise_for_status()
data = r.json()
yield from data.get(key, [])
if not data.get("next_cursor"):
return
body = {**body, "next_cursor": data["next_cursor"]}
post = "https://x.com/harborline_roasters/status/2116184394037384839"
top = list(pages("comments", {"tweet_link": post, "order_by": "Likes"},
"tweets", limit=1))[:5]
quotes = list(pages("quotes", {"tweet_link": post}, "tweets"))
fans = list(pages("retweeters", {"tweet_link": post}, "users"))
reach = sum(u.get("followers_count", 0) for u in fans)
print(len(quotes), "quotes,", len(fans), "retweeters,", reach, "reach")
在官方 X API 上,引用帖来自 GET /2/tweets/:id/quote_tweets,每条 $0.005,转发者来自 GET /2/tweets/:id/retweeted_by,每条 $0.010,也就是每 1,000 个账号 $10.00。这两个接口每 15 分钟各允许 75 次请求(X API 速率限制(在新标签页打开))。回复在那里没有专门的接口:它们要通过对 conversation_id 的搜索获得,而近期搜索只能回溯 7 天。
有两项任务在各自的页面里讲解。想检查某个账号是否关注、转发、引用或回复过,Twitter 核验 API指南一次检查就能回答。想不用写代码就阅读一条帖子的回复,请看如何查看 X 上的评论。
#如何用 API 数据计算互动率
互动率是与一条帖子发生互动的人所占的比例,API 字段让你能算出两种常见版本。按浏览量计算:把点赞、转发、回复和引用相加,除以浏览量,再乘以 100。按粉丝数计算:用同样的总和除以作者的 followers_count,每条帖子的 user 对象里都带有这个字段。
以上面响应中的帖子为例:212 个点赞、31 次转发、24 条回复和 6 次引用,合计 273 次互动。除以 9,640 次浏览,是 2.83%;除以 8,450 个粉丝,是 3.23%。Twitter 互动率计算器使用同样的两个公式,所以你的代码和这个免费工具对任何账号的结果都是一致的。
from statistics import median
def engagement(posts):
followers = posts[0]["user"]["followers_count"]
for t in posts:
acts = (t["likes_count"] + t["retweet_count"]
+ t["reply_count"] + t["quote_count"])
views = t["view_count"] or 1
t["er_views"] = round(100 * acts / views, 2)
t["er_followers"] = round(100 * acts / followers, 2)
return median(t["view_count"] for t in posts)
在互动率旁边,请同时报告浏览量中位数。一条爆款帖子能把平均值抬高好几个月,而中位数反映的是一条普通帖子的表现。发布不足两天的帖子,请不要计入中位数,因为它们的浏览量还在上涨。
须知
浏览量统计的是屏幕,而不是人。每次帖子出现在屏幕上,X 就计一次展示,所以一位读者两次滑过同一条帖子,就会增加两次浏览。比较不同账号的按浏览量计算的互动率时,请选规模相近的账号,而用粉丝互动率来比较受众。
#X 数据分析管道每月的费用
数据分析管道的成本取决于三个数字:你追踪多少个账号,每个账号每天发布多少条帖子,以及每条帖子你要重读多少天。拖动滑块,看看两家 API 一个月的费用。
每天约 6 秒的请求量(每秒 20 次请求):每个账号一页时间线,更早的帖子按 ID 每次请求 100 条。
每个账号每天一页时间线,更早的帖子每次请求刷新 100 条;官方 X API 每返回一条帖子就重新计费 $0.005。
差距来自计费单位。官方 X API 对返回的每条帖子计费,你每天重读一次就再计一次,并且上限为每月 300 万次帖子读取;超过后,就只剩下约 4.2 万美元/月起的 Enterprise 合同。Sorsa API 按请求计费,一次请求按 ID 最多带 100 条帖子,从时间线读取则最多 20 条。
要为竞争对手、客户或创作者搭建仪表盘,请选 Sorsa API:推文指标每 1,000 条帖子 $0.014 起,而不是 $5.00。所有套餐都是每秒 20 次请求,一个 API 密钥取代了开发者账号,同一个密钥还能读取回复、引用、转发者以及追溯到 2006 年的搜索。它是只读的,所以从不触碰你的 X 账号。
#分析一个话题,而不只是一个账号
互动分析同样适用于一场讨论:先搜索关于某个话题的帖子,再按它们的数据排序。POST /search-tweets(在新标签页打开) 支持 X 自己的搜索运算符,每页返回约 20 条帖子,带有全部六项数据和作者,并可回溯到 2006 年。
curl -X POST "https://api.sorsa.io/v3/search-tweets" \
-H "ApiKey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "\"cold brew\" min_faves:50 lang:en", "order": "popular"}'
在查询里加上 since: 和 until:,就能限定日期窗口。按作者汇总互动数,可以看出谁在带动这个话题;在相同日期内对每个品牌各跑一次查询,则可得出声量份额。Twitter 搜索 API指南介绍了这些运算符,而 Twitter 竞品分析把同样的数据变成基准对比。
#今天就从一个账号开始
任何公开帖子的点赞、转发、回复、引用、浏览量和书签,都可以通过 API 读取,对任何账号都一样;只有点击和关注仍归作者所有。Sorsa API 返回全部六项数据和作者的资料,按 ID 每次请求 100 条帖子,每 1,000 条 $0.014 起,而官方 X API 是 $5.00。用上面的循环拉取一个账号最近一个月的数据,每天刷新一次,100 次免费请求就能覆盖你的前 1 万条帖子。
#常见问题
能获取其他账号的 Twitter 数据分析吗?
能,所有公开的数字都可以。任何公开账号每条帖子的点赞、转发、回复、引用、浏览量和书签,以及它的粉丝数和发帖总数,都可以在不经账号主人的情况下读取。链接点击、资料点击和帖子带来的关注,则只有作者能看到。想在浏览器里比较两个账号,请用比较 Twitter 账号;账号多的话,用 API 通过代码来完成。
官方 X API 会返回任意推文的浏览量吗?
会。X 把展示次数列为公开指标:通过官方 X API,用 bearer 令牌读取任何帖子,都会附带 public_metrics.impression_count,每条帖子 $0.005。Sorsa API 在每条帖子上以 view_count 返回同一个数字,每 1,000 条帖子 $0.014 起。只有区分自然浏览与推广浏览,以及点击数据,才需要作者本人的登录。
API 能显示谁点赞了一条推文吗?
不能,对于不属于你的帖子,没有任何 API 可以列出点赞者。X 在 2024 年 6 月把点赞设为私密,其点赞用户接口每条帖子最多只返回 100 个用户,且是历史总计(X 的点赞文档(在新标签页打开))。点赞数仍然是公开的:Sorsa API 在每条帖子上以 likes_count 返回它,而 /retweeters、/quotes 和 /comments 能指出其他互动背后的人。
做 Twitter 数据分析,最好的 API 是什么?
对不属于你的账号做分析,选 Sorsa API:每条帖子都附带点赞、转发、回复、引用、浏览量、书签和作者资料,每 1,000 条帖子 $0.014 起,而官方 X API 是 $5.00。所有套餐都是每秒 20 次请求,只需要一个 API 密钥,不需要开发者账号,还附带回复、引用和转发者。你自己帖子上的点击数据,则留在 X 自带的数据分析里。
Twitter 互动 API 要花多少钱?
在 Sorsa API 上,按 ID 获取帖子指标每 1,000 条帖子 $0.014 起,时间线、回复和引用每 1,000 条 $0.07 起,因为一次请求分别返回 100 条或 20 条。官方 X API 对每 1,000 条帖子收费 $5.00,对每 1,000 个转发者收费 $10.00,从 2026 年 11 月 22 日起,带作者的帖子每 1,000 条收费 $15.00。Sorsa API 的 100 次免费请求无需绑卡,永不过期。
#我们如何核实
2026 年 11 月 2 日,我们把本指南中的每个接口、参数和响应字段,与在线的 Sorsa API 参考文档(45 个接口)及其 /user-tweets、/tweet-info-bulk、/comments、/quotes 和 /retweeters 的文档页面做了比对。请求和响应使用的是演示账号。官方 X API 的指标、分析接口、价格和速率限制来自 docs.x.com,11 月 22 日的计费变更则来自 X 的开发者论坛,均在同一天阅读。费用是我们根据两家价目表自行计算的。
资料来源
- Metrics, X API documentation(在新标签页打开)
- Get Post Analytics, X API reference(在新标签页打开)
- Engagement API, X Enterprise documentation(在新标签页打开)
- X API pay-per-usage pricing(在新标签页打开)
- X API PPU expansions update, October 23, 2026(在新标签页打开)
- Rate limits, X API documentation(在新标签页打开)
- Timelines, X API documentation(在新标签页打开)
- Likes, X API documentation(在新标签页打开)
- User Tweets, Sorsa API reference(在新标签页打开)
- Tweet Data (Batch), Sorsa API reference(在新标签页打开)