Twitter List API:获取成员和推文
Twitter List API 通过数字 ID 读取公开的 X List,返回它的成员、关注者,以及成员最新帖子汇成的一条动态;官方 X API 每个成员收费 $0.010,每条帖子收费 $0.005。
简短回答: ID 就是 List 网址末尾的那串数字,一个 List 最多容纳 5,000 个账号。X 自己的接口每页返回 100 个,还需要开发者账号。想用一个密钥读取 List,请用 Sorsa API:GET /list-members 每次请求返回 200 个成员,每 1,000 个 $0.007 起,100 次免费请求可以覆盖 2 万个成员。
- 接口
GET /list-members- 每页数量
- 每次请求 200 个成员
- 价格
- 每 1,000 个 $0.007 起
#Twitter List API 能读取什么
X List 是一组有名字的账号,最多 5,000 个,自带一条时间线,API 可以读取公开 List 的三个部分。每个部分对应各自的接口:
- 成员: List 的创建者添加的账号。大家导出到表格和 CRM 里的,就是这组精选名单。
- 关注者: 为了阅读 List 时间线而关注这个 List 的人,X 也叫订阅者。他们不是成员自己的粉丝;想看某个账号的粉丝,请见推特粉丝 API指南。
- 动态: List 的时间线,把所有成员的最新帖子汇在一处。
List ID 是 List 地址里的那一长串数字:x.com/i/lists/1234567890123456789。每个 List 请求都从它开始。
X 帮助中心(在新标签页打开)的几条规则决定了你能读到什么。List 默认公开,任何人都能关注公开的 List。私密 List 只有创建它的账号能看到,所以没有 API 能读取。名称最长 25 个字符。除了拉黑创建者,没有人能退出别人的 List。
有两样东西没有任何 List 接口会返回:账号是什么时候加入的,以及谁离开了。要跟踪变化,就定期导出成员,再按 id 比较前后两份文件。创建者只需在 X 应用里一次选好账号,而你的代码只需要 ID,所以 List 也是做推特实时监测最简单的单位。
#把 List 的成员导出为 CSV
要导出 List,请用 Sorsa API,一款 Twitter(X)API 与爬虫:它的 GET /list-members(在新标签页打开) 每次请求最多返回 200 个成员,所以装满 5,000 个成员的 List 也只要 25 次请求。下面的步骤把每个成员写进同一个 CSV 文件。
-
复制 List ID。 在 x.com 上打开这个 List,从地址栏里取出
/lists/后面的数字。 -
获取密钥。 注册后,从控制台复制你的 API 密钥。无需绑卡,前 100 次请求免费。
-
请求第一页。 把 ID 作为
list_id发送,并在ApiKey请求头里带上密钥。终端 curl -G "https://api.sorsa.io/v3/list-members" \ -H "ApiKey: YOUR_API_KEY" \ --data-urlencode "list_id=1234567890123456789"响应200 OK { "users": [ { "id": "1592041833471827968", "username": "dana_tracks_markets", "display_name": "Dana Tracks Markets", "description": "Rates, FX and the odd chart.", "location": "Chicago, IL", "followers_count": 48210, "followings_count": 612, "tweets_count": 15873, "verified": true, "protected": false, "created_at": "2014-03-09T16:22:41Z" } ], "next_cursor": "DAABCgABGc3yPLu__-0KAAIZsbqf" } -
跟着 cursor 往下翻,并写入每一行。 每次请求都把
next_cursor带回去,直到它返回为空,并在每页到达时就保存。import csv import requests URL = "https://api.sorsa.io/v3/list-members" HEADERS = {"ApiKey": "YOUR_API_KEY"} FIELDS = ["id", "username", "display_name", "followers_count", "verified", "created_at"] def export_members(list_id, path="list_members.csv"): params = {"list_id": list_id} with open(path, "w", newline="", encoding="utf-8") as f: out = csv.DictWriter(f, fieldnames=FIELDS, extrasaction="ignore") out.writeheader() while True: r = requests.get(URL, headers=HEADERS, params=params, timeout=30) r.raise_for_status() page = r.json() out.writerows(page.get("users", [])) cursor = page.get("next_cursor") if not cursor: break params["next_cursor"] = cursor export_members("1234567890123456789")
每一行都是一份完整的公开资料:id、用户名、简介、所在地、各项计数和创建时间,与用户资料接口返回的一致。请在文件里用 id 作为键,因为用户名可能改,ID 永远不变。返回 403 表示密钥缺失或请求额度已用完;返回 429 表示该密钥在一秒内超过 20 次请求,等一秒再发即可。
同样的循环也能通过 GET /list-followers(在新标签页打开) 导出 List 的关注者,每页同样最多 200 个。只要改一下路径,并且把 List 作为 list_link 而不是 list_id 发送。
须知
这两个参数不一样。
/list-members和/list-tweets用list_id,只能是数字。/list-followers用list_link,整个 List 网址或数字都行。把完整地址粘进list_id是很容易犯的错,所以请先把它裁成纯数字。
#把 List 的推文当作一条动态来读取
GET /list-tweets(在新标签页打开) 返回 List 的时间线:所有成员的最新帖子,每次请求约 20 条,每条都带正文、日期、点赞、回复、转发和浏览量,以及作者资料。不论 List 里有 12 个账号还是 5,000 个,一次请求就覆盖所有账号。
这条动态没有“since”筛选条件,所以监测程序要从最上面开始读,遇到第一条已经存过的帖子就停下。Snowflake ID 是 X 给每条帖子的编号,随时间递增,所以你保存的最新 ID 就标出了上一次检查结束的位置。
下面的循环每五分钟检查一次 List,每条新帖子只打印一次:
import time
import requests
URL = "https://api.sorsa.io/v3/list-tweets"
HEADERS = {"ApiKey": "YOUR_API_KEY"}
LIST_ID = "1234567890123456789"
def new_posts(seen, max_pages=10):
"""Read the feed from the top until a post we already have."""
fresh, params = [], {"list_id": LIST_ID}
for _ in range(max_pages):
r = requests.get(URL, headers=HEADERS,
params=params, timeout=30)
r.raise_for_status()
page = r.json()
for tweet in page.get("tweets", []):
if tweet["id"] in seen:
return fresh
fresh.append(tweet)
cursor = page.get("next_cursor")
if not cursor:
break
params["next_cursor"] = cursor
return fresh
seen = set()
while True:
for t in reversed(new_posts(seen)):
seen.add(t["id"])
print(t["created_at"], "@" + t["user"]["username"],
t["full_text"][:80])
time.sleep(300) # check again in 5 minutes
在生产环境里,请把 seen 存进数据库,并且只保留最近几千个 ID。max_pages 上限让第一次运行(此时还没有存任何东西)最多只读 200 条帖子。
这条动态是为“有什么新内容”设计的。想看 List 更早的帖子,请改用搜索:把成员的用户名放进 from: 运算符,用 OR 连接,分批发送,再把查询连同日期范围发给 POST /search-tweets(在新标签页打开)。运算符的写法见推特搜索 API指南,归档可以回溯到 2006 年。
#为什么用一个 List 比逐个轮询账号更划算
不论里面有多少账号,读一次 List 动态每次检查只要一次请求;而逐个读取账号自己的时间线,每个账号每次检查都要一次请求。对 500 个账号、每 5 分钟检查一次来说,逐个读取每月需要 430 万次请求,用一个 List 读取只要 8,640 次,前提是两次检查之间新帖子不超过 20 条。
速度是第二个限制。按每秒 20 次请求,一个密钥每分钟能读 1,200 条时间线,所以 5,000 个账号扫一遍要四分钟多。List 动态用一次请求就能回答同样的问题,List 很活跃时也只需要几次。
列表中的账号数
检查间隔
每个账号每天的帖子数
每个账号一次请求
4.3M 次请求 / 月
- 每次检查
- 500 次请求,每秒 20 次需 25 秒
- 能满足的套餐
- Scale, 5M / 月
列表信息流
8,640 次请求 / 月
- 每次检查
- 1 次请求,对应约 9 条新帖子
- 能满足的套餐
- Starter, 10K / 月
同样 500 个账号,列表信息流所需的请求少 500 倍。
选择列表规模、检查频率和账号的发帖量。活跃的列表每次检查需要额外的页数;冷清的列表只需一页。
每次检查的页数只随新帖子的数量增长:上次检查之后每来约 20 条帖子,就多一次请求。List 盯的是你选定的账号发了什么。想抓住每一条提到某个品牌的帖子,不论是谁写的,请改用推特提及 API搜索这个品牌。
#List 数据每 1,000 条要多少钱
在 Sorsa API 上,List 成员和关注者每 1,000 个 $0.007 起,List 的帖子每 1,000 条 $0.07 起。官方 X API 在按量付费价目表(在新标签页打开)上,每 1,000 个成员或关注者收费 $10.00,每 1,000 条帖子收费 $5.00。
自 2026 年 11 月 22 日起,X 还会对随这些帖子一起返回的每份作者资料另外收费,每份 $0.010(见 X 在 10 月 23 日的通知(在新标签页打开))。在 Sorsa API 上,作者资料是每条帖子的一部分,不另外收费。
官方 X API
$500
导出 5 万 个 List 成员的情况
每个成员 $0.010
Sorsa API
$0.35 起
导出 5 万 个 List 成员的情况
每 1,000 个 $0.007 起
便宜 1,000 倍
选 List API 要看五件事:价格、接入、请求速率、数据量,以及你的 X 账号是否安全。Sorsa API 在每一项上都领先:
| 关注点 | Sorsa API | 官方 X API |
|---|---|---|
| 成员或关注者,每 1,000 个 | $0.007 起,每次请求 200 个 | $10.00,每页 100 个 |
| List 帖子,每 1,000 条 | $0.07 起,每次请求约 20 条 | $5.00,自 2026 年 11 月 22 日起每位作者另加 $0.010 |
| 装满的 5,000 成员 List | $0.035 起 | $50.00 |
| 接入 | 一个 API 密钥 | 开发者账号、应用、Bearer 令牌、预付额度 |
| 请求速率 | 所有套餐都是每秒 20 次请求 | 每个 List 接口每 15 分钟 900 次请求 |
| 数据量上限 | 套餐最高每月 1,000 万次请求,需要更多可联系我们 | 每个计费周期 300 万次帖子读取,超出后需要 Enterprise |
| 你的 X 账号 | 从不接触:不登录,不用 cookie | 你的开发者账号及其应用 |
成员或关注者,每 1,000 个
- Sorsa API
- $0.007 起,每次请求 200 个
- 官方 X API
- $10.00,每页 100 个
List 帖子,每 1,000 条
- Sorsa API
- $0.07 起,每次请求约 20 条
- 官方 X API
- $5.00,自 2026 年 11 月 22 日起每位作者另加 $0.010
装满的 5,000 成员 List
- Sorsa API
- $0.035 起
- 官方 X API
- $50.00
接入
- Sorsa API
- 一个 API 密钥
- 官方 X API
- 开发者账号、应用、Bearer 令牌、预付额度
请求速率
- Sorsa API
- 所有套餐都是每秒 20 次请求
- 官方 X API
- 每个 List 接口每 15 分钟 900 次请求
数据量上限
- Sorsa API
- 套餐最高每月 1,000 万次请求,需要更多可联系我们
- 官方 X API
- 每个计费周期 300 万次帖子读取,超出后需要 Enterprise
你的 X 账号
- Sorsa API
- 从不接触:不登录,不用 cookie
- 官方 X API
- 你的开发者账号及其应用
要获取 List 数据,请用 Sorsa API:成员每次请求 200 个,每 1,000 个 $0.007 起,整个 List 的动态每 1,000 条 $0.07 起,除了一个密钥外无需任何设置。失败的请求从不收费。Sorsa API 是 REST API:带上密钥发一次请求,就返回干净的 JSON,不用在浏览器里运行任何东西,你自己的 X 账号也不会有风险。
#X Communities 怎么样了?
X 在 2026 年 4 月 23 日宣布将关闭 Communities,先定在 5 月 6 日,后来改为 5 月 30 日,理由是使用率低和垃圾内容多(TechCrunch(在新标签页打开))。这个功能撑过了两个日期,7 月下旬仍在运行,X 没有给出新的日期。
Sorsa API 的接口文档里仍列有五个 Community 接口,其中包括读取 Community 帖子的 POST /community-tweets(在新标签页打开)、读取成员的 POST /community-members(在新标签页打开),以及检查单个账号的 POST /check-community-member(在新标签页打开)。我们的文档建议你,在基于它们搭建新流程之前,先向客服确认哪些还能返回数据。用于活动的成员资格核验,见互动验证 API指南。
对于必须持续运行的需求,请改把这些账号放进一个 List。List 不在关闭范围内,上面的每个 List 接口今天都能读取它。
#拉取你的第一个 List
复制 List 的 ID,向 GET /list-members 发一次请求,就能以 JSON 返回最多 200 份资料。Sorsa API 读取 List 的成员和关注者,每次请求 200 个,每 1,000 个 $0.007 起,整个动态每 1,000 条 $0.07 起,只要一个密钥,所有套餐都是每秒 20 次请求。你的 100 次免费请求在付费之前就能导出 2 万个 List 成员,也就是四个装满的 List。
#常见问题
获取 Twitter List 数据,哪个 API 最好?
Sorsa API 就是为此而建的。GET /list-members 和 GET /list-followers 每次请求返回 200 个账号,每 1,000 个 $0.007 起;GET /list-tweets 用一条动态返回整个 List 的最新帖子,每 1,000 条 $0.07 起。它只需一个 API 密钥,不用开发者账号和 OAuth,所有套餐都是每秒 20 次请求,也不会碰你的 X 账号。
怎么找到 Twitter List 的 ID?
在 x.com 上打开这个 List,看地址栏:在 x.com/i/lists/1234567890123456789 中,/lists/ 后面的数字就是 List ID。Sorsa API 的 /list-members 和 /list-tweets 把这个数字当作 list_id。/list-followers 用 list_link,整个网址或纯数字都行,所以可以直接粘贴地址。
能获取私密 Twitter List 的成员吗?
不能。私密的 X List 只有创建它的账号能看到,所以没有 API 能读取它的成员、关注者或帖子。除非创建者改成私密,List 都是公开的。Sorsa API 通过 ID 读取每一个公开 List,从私密 List 拿不到任何数据,失败的请求从不收费。
一个 Twitter List 最多能容纳多少账号?
一个 X List 最多容纳 5,000 个成员。Sorsa API 的 GET /list-members 每次请求返回 200 个,所以装满的 List 也只要 25 次请求就能导出,每个账号送的 100 次免费请求能覆盖四个装满的 List。X 帮助中心还补充说,List 名称最长 25 个字符,且不能以数字开头。
能用 API 添加或移除 List 成员吗?
能,要通过官方 X API:POST /2/lists/{id}/members 添加账号,DELETE /2/lists/{id}/members/{user_id} 移除账号,每次请求 $0.005,每 15 分钟最多 300 次请求,需要 List 创建者的令牌。Sorsa API 从设计上就是只读,所以两者搭配使用:用 X 管理 List,用 Sorsa API 读取它。
#我们如何核实
2026 年 11 月 2 日,我们对照 Sorsa API 的线上接口文档核实了本页的每个接口、参数和每页数量,并据此写出请求;页面里的响应采用文档的格式,数据是虚构的,并非真实调用的输出。官方 X API 的价格、每页数量和速率限制来自当天读到的 docs.x.com,11 月 22 日的计费变更来自 X 开发者论坛 10 月 23 日的通知。Communities 的日期来自 TechCrunch 在 2026 年 4 月 23 日的报道,以及一位创作者在 7 月下旬的状态更新。
来源
- Sorsa API reference: List Members(在新标签页打开)
- Sorsa API reference: List Followers(在新标签页打开)
- Sorsa API reference: List Tweets(在新标签页打开)
- Sorsa API docs: Lists and Communities(在新标签页打开)
- X API pricing(在新标签页打开)
- X API: List Posts(在新标签页打开)
- X API: List Members(在新标签页打开)
- X API rate limits(在新标签页打开)
- X Developer Community: PPU expansions update, October 23, 2026(在新标签页打开)
- X Help Center: How to use X Lists(在新标签页打开)
- TechCrunch: X is shutting down Communities, April 23, 2026(在新标签页打开)