跳到正文

Twitter 学术研究 API 被什么取代了

官方没有任何东西取而代之:X 在 2023 年关闭了免费的学术研究通道,如今不提供学术层级,所以研究者要按标准价每条帖子 $0.005 付费,除非欧盟的研究符合《数字服务法》的条件。

  • 更新于
  • 发布于
  • 阅读约 10 分钟

简短回答: 从 2021 年 1 月到 2023 年春季,该通道向获批的研究者免费提供全量存档搜索和每月 1,000 万条帖子。官方 X API 现在每 1,000 条帖子收费 $5.00,每月上限 300 万条。想采集研究语料,请用 Sorsa API:全量存档搜索每 1,000 条推文 $0.07 起,另有学术访问,还有 100 次免费请求。

接口
POST /search-tweets
每页条数
每次请求约 20 条推文
价格
每 1,000 条 $0.07 起

#什么取代了 Twitter 学术研究 API

没有任何项目取代 Twitter 学术研究 API。2026 年 9 月,一位 X 开发者关系工程师在官方论坛上说得很直白:“目前没有单独的学术或免费研究层级”(在新标签页打开),对学生和教师而言,按量付费是自助获取数据的途径。

这个通道本身于 2021 年 1 月 26 日开放。获批的学者可以免费使用追溯到 2006 年的全量存档搜索、每月 1,000 万条帖子和 1,024 个字符的查询。它曾是成千上万篇论文的数据来源,也是 academictwitteR 和 twarc 等工具的基础。

终结分两步走。2023 年 2 月,Twitter 宣布将停止免费的 API 访问。2023 年 3 月 30 日,它推出了付费层级(在新标签页打开),宣布旧的访问级别“在未来 30 天内”下线,并告诉学者它正在“寻找新的方式继续服务这一群体”。此后没有新的项目出现,学术密钥在 2023 年年中前陆续失效。当年 12 月发布的一项针对 167 名研究者的调查(在新标签页打开)统计,有 100 多个项目被取消、搁置或转到其他平台。

把当年和现在放在一起,差距最明显。

研究者得到什么学术研究通道,2021 至 2023 年官方 X API,2026 年 11 月
每 1,000 条帖子的价格免费$5.00;从 11 月 22 日起,附带每条帖子的作者信息则为 $15.00
每月上限1,000 万条帖子300 万次帖子读取,超出后只能走 Enterprise,约 4.2 万美元/月起
存档追溯到 2006 年追溯到 2006 年
谁能使用获批的学术研究者任何拥有开发者账号并预付额度的人
  • 每 1,000 条帖子的价格

    学术研究通道,2021 至 2023 年
    免费
    官方 X API,2026 年 11 月
    $5.00;从 11 月 22 日起,附带每条帖子的作者信息则为 $15.00
  • 每月上限

    学术研究通道,2021 至 2023 年
    1,000 万条帖子
    官方 X API,2026 年 11 月
    300 万次帖子读取,超出后只能走 Enterprise,约 4.2 万美元/月起
  • 存档

    学术研究通道,2021 至 2023 年
    追溯到 2006 年
    官方 X API,2026 年 11 月
    追溯到 2006 年
  • 谁能使用

    学术研究通道,2021 至 2023 年
    获批的学术研究者
    官方 X API,2026 年 11 月
    任何拥有开发者账号并预付额度的人

X 论坛对每一个关于学术访问的新问题,给出的都是同一个答复:加入标准的按量付费 API,或者,如果研究符合条件,就依据欧盟《数字服务法》第 40 条申请。

#2026 年获取 X 研究数据的三条途径

2026 年,研究者有三条可行的途径获取 X 数据:按标准价格使用官方 X API;针对欧盟系统性风险研究的欧盟研究者访问;以及 Sorsa API,一款为非商业研究提供学术访问的 Twitter(X)API 与爬虫。

官方 X API 按量付费 适用对象 有开发者账号 并有额度的人 价格 每 1,000 条推文 $5.00 自 11 月 22 日起,含作者 每 1,000 条推文 $15.00 上限 每月 300 万条推文 欧盟研究者访问 DSA 第 40 条 适用对象 研究欧盟 系统性风险的研究者 方式 EU Data Access Portal, 自 2025 年 10 月 29 日开放 非公开数据 需由国家协调机构 认定资质 Sorsa API 学术访问 适用对象 非商业研究, 不限学科 价格 每 1,000 条推文 $0.07 起 学术访问 获批的申请或 大幅折扣 存档和速度 可追溯到 2006 年, 每秒 20 次请求
只有欧盟这条途径是专为研究者保留的,而且只限于欧盟系统性风险的研究。Sorsa API 的学术访问涵盖任何学科。

官方 X API,按量付费

官方 X API 以每条帖子 $0.005、每个用户资料 $0.010(在新标签页打开) 的价格出售数据,使用预付额度,其全量存档搜索可追溯到 2006 年。你需要一个获批的开发者账号、一个项目、一个应用及其密钥。按量付费的上限是每月 300 万次帖子读取;超出后只能签 Enterprise 合同。

有两个细节对研究预算冲击最大。从 2026 年 11 月 22 日起,作者和其他扩展对象会像直接读取一样计费(在新标签页打开),所以一条带作者资料的帖子成本为 $0.015。而且 X 不为伦理委员会出具信函(在新标签页打开):各机构只能依据公开条款和已付费层级的证明。

《数字服务法》下的欧盟研究者访问

《数字服务法》第 40 条要求包括 X 在内的超大型平台,向研究欧盟系统性风险的研究者提供数据。第 40(12) 条涵盖公开可访问的数据,面向满足其条件的大学和非营利机构的研究者。第 40(4) 条涵盖非公开数据,面向“经审核的研究者”,由各国的数字服务协调员通过 2025 年 10 月 29 日开通的欧盟数据访问门户(在新标签页打开)批准。

这条途径是真实存在的,但很窄。比如研究油价或品牌情绪的论文就不符合条件,而在 X 的论坛上,一位请求被拒的博士生说自己没有得到任何反馈。

提供学术访问的 Sorsa API

Sorsa API 让研究者通过一个 API 密钥使用同一份存档:用 X 的运算符搜索,追溯到 2006 年;按 ID 每次 100 条获取帖子;时间线、回复、引用和粉丝列表;不需要开发者账号。每条推文都附带作者的完整资料,不额外收费,每个密钥都是每秒 20 次请求。

对任何学科的非商业研究,Sorsa API 另有围绕你的研究量身定制的学术访问:为你的项目授予请求额度,或在套餐上给予大幅折扣。博士和硕士研究生、博士后、教师、科研人员以及 NGO 或新闻编辑部的研究者,可用机构邮箱申请,团队中会有专人阅读每一份申请。

#如何用 Sorsa API 采集研究语料

研究语料是你的分析所依据的那批帖子,这里是指 2022 年 7 月所有谈论热浪的英文帖子。采集它只需要一个密钥、一次测试请求,以及一个会记录自己所做操作的简短脚本。

  1. 获取你的 API 密钥。 用机构邮箱注册:账号自带 100 次免费请求,无需绑卡,密钥可用于所有接口。

  2. 测试你的日期范围。 用 since: 和 until: 运算符发一次搜索,在规划完整采集之前,先看看返回的内容。

    Terminal
    curl -X POST "https://api.sorsa.io/v3/search-tweets" \
      -H "ApiKey: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"query": "\"heat wave\" lang:en since:2022-07-01 until:2022-08-01",
           "order": "latest"}'
    
    Response200 OK
    {
      "tweets": [
        {
          "id": "1549368207425953792",
          "full_text": "Third day above 40C. Cooling centers open until 10 pm.",
          "created_at": "2022-07-19T12:41:07Z",
          "lang": "en",
          "likes_count": 212,
          "retweet_count": 64,
          "reply_count": 18,
          "quote_count": 5,
          "view_count": 48210,
          "conversation_id_str": "1549368207425953792",
          "is_reply": false,
          "user": {
            "id": "1203345678901234567",
            "username": "heatwave_watch_desk",
            "display_name": "Heat Watch Desk",
            "followers_count": 15420,
            "created_at": "2019-12-07T09:15:00Z",
            "location": "London",
            "verified": false
          }
        }
      ],
      "next_cursor": "DAACCgACGW5vTq3AJxAKAAMZbm9Ord-x8AgABAAAAAIA"
    }
    
  3. 采集每一页,并记录这次运行。 POST /search-tweets(在新标签页打开) 接口每页返回约 20 条帖子,以及指向下一页的 next_cursor;脚本沿着它一直翻页,直到返回为空,并在数据旁边写一份清单文件。

    collect_study.py
    import json, time, requests
    from datetime import datetime, timezone
    
    URL = "https://api.sorsa.io/v3/search-tweets"
    KEY = "YOUR_API_KEY"
    QUERY = '"heat wave" lang:en since:2022-07-01 until:2022-08-01'
    
    manifest = {
        "provider": "Sorsa API (https://api.sorsa.io)",
        "endpoint": "POST /v3/search-tweets",
        "query": QUERY,
        "order": "latest",
        "collected_at": datetime.now(timezone.utc).isoformat(),
    }
    ids, cursor = [], None
    with open("posts.ndjson", "w", encoding="utf-8") as out:
        while True:
            body = {"query": QUERY, "order": "latest"}
            if cursor:
                body["next_cursor"] = cursor
            r = requests.post(URL, headers={"ApiKey": KEY}, json=body)
            if r.status_code == 429:  # above 20 requests per second
                time.sleep(1)
                continue
            r.raise_for_status()  # 403: missing key or no requests left
            page = r.json()
            for tweet in page.get("tweets", []):
                out.write(json.dumps(tweet, ensure_ascii=False) + "\n")
                ids.append(tweet["id"])
            cursor = page.get("next_cursor")
            if not cursor:
                break
    
    manifest["posts"] = len(ids)
    with open("post_ids.txt", "w") as f:
        f.write("\n".join(ids))
    with open("manifest.json", "w") as f:
        json.dump(manifest, f, indent=2)
    
  4. 在完整采集之前申请学术访问。 趁免费请求覆盖试点阶段,在学术研究页面带上你研究的范围提交申请;获批的访问会出现在同一个账号和密钥上。

    须知

    今天采集的帖子带的是今天的点赞数和浏览数,以及作者当前的资料,即使它是 2014 年写的。已删除的帖子和受保护的账号永远不会返回,所以 2022 年采集到的一份列表,现在重新采集会更小。请把这两点都写进你的局限性部分。

如果是按月拆分的多年期采集,Twitter 历史数据指南介绍了回填时间窗口。如果要根据 ID 列表重建已发布的数据集,可以通过 POST /tweet-info-bulk(在新标签页打开) 用推文 ID 还原数据,每次请求 100 条帖子。

#一项研究的推文要花多少钱

通过存档搜索采集 100 万条推文的语料,在 Sorsa API 上 $70 起,在官方 X API 上是 $5,000,一旦把作者也计费就是 $15,000。切换规模,看看你的研究要花多少。

语料规模

官方 X API

$5,000

100 万条推文的存档搜索

每条帖子 $0.005

Sorsa API

$70 起

100 万条推文的存档搜索

每 1,000 条 $0.07 起

其他研究设计同样适用这套预算逻辑。按帖子 ID 重建已发布的数据集,每 1,000 条帖子 $0.014 起,而官方 X API 是 $5.00。构建粉丝网络,每 1,000 个用户资料 $0.007 起,而官方是 $10.00。带“起”字的价格是最低的单次请求费率;学术访问还能进一步降低研究的支出。

时间对毕业论文的进度同样重要。按每秒 20 次请求计算,通过搜索获取 100 万条推文约需 42 分钟,按 ID 获取 100 万条帖子约需 8 分钟。

#让你的数据经得起评审

评审人和伦理委员会对 X 数据问的是同样三件事:数据从哪里来,别人能不能重建它,以及它漏掉了什么。采集过程中保留的记录可以回答这三个问题。

1 查询 词、运算符 和日期窗口 2 收集 /search-tweets 逐页翻到 游标结束 3 保存 posts.ndjson post_ids.txt manifest.json 4 发布 方法部分的段落 和推文 ID 5 重建 /tweet-info-bulk 每次请求 100 条推文 manifest.json 记录了 查询、窗口、 接口和 收集时间(UTC)。
保留查询、时间窗口、采集时间和帖子 ID,任何人以后都能重建你的语料。

在下面填写你的研究信息,即可得到一段可用于方法部分的数据采集说明。

数据采集,用于你的方法部分

帖子通过 Sorsa API (https://api.sorsa.io,一个面向 X (Twitter) 公开数据的独立 API) 采集,使用其全量归档搜索,查询为 "heat wave" lang:en 发布时间为 1 July 2022 至 31 July 2022 (UTC)。采集于 2 November 2026。互动数据和作者资料截至该日期,在此之前被删除或设为受保护的帖子未被返回。帖子 ID 和采集脚本均可提供,因此可以重建该语料库。

请与你的数据一并保存: 查询词、时间窗口、采集时间、接口 (POST /v3/search-tweets) 和帖子 ID 列表。

段落会随你输入更新;请把它复制到方法部分,并把清单与数据一并保存。

伦理委员会通常会问一小串问题。Sorsa API 的回答如下:

  • 什么数据? 只有公开的帖子和用户资料:没有受保护的账号,没有私信。
  • 是否与用户有任何互动? 没有。Sorsa API 是只读的:从不发帖、点赞、关注或发消息。
  • 用了谁的 X 账号? 没有用任何账号:Sorsa API 从不索要你的 X 登录信息。
  • 服务商保留什么? 请求日志保留一年,完整响应保留 30 天。X 永远不会知道是谁在请求。
  • 需要什么书面材料? 应要求,团队会为你的伦理委员会写一封关于数据来源的简短信函。

共享需遵循 X 的开发者政策(在新标签页打开):发布帖子 ID 和用户 ID,而不是完整帖子。该政策规定,未经 X 书面许可,每个主体每 30 天共享的帖子 ID 上限为 150 万个,同时允许学术研究者为 X 书面批准的非商业研究或同行评审共享 ID。对于为训练模型而构建的数据集,机器学习用的 Twitter 数据集指南介绍了训练条款。

#如何为学术研究选择 Twitter API

对一项研究来说,重要的检验项有:每 1,000 条帖子的价格、每条帖子带什么、存档深度、高于语料规模的月度上限、学生一天内能完成的配置、速度,以及学术优惠。Sorsa API 每一项都能用数字满足,而且由于它是只读的,没有人的 X 账号会面临风险。

检验项Sorsa API官方 X API
每 1,000 条推文的价格,存档搜索$0.07 起$5.00(11 月 22 日起,带作者为 $15.00)
每 1,000 条帖子的价格,按 ID 获取$0.014 起$5.00
每条帖子的作者资料包含11 月 22 日起按用户读取计费
存档追溯到 2006 年追溯到 2006 年
每月上限你的套餐或约定的学术访问300 万次帖子读取,超出后走 Enterprise
配置一个 API 密钥,无需开发者账号开发者账号、项目、应用、密钥
速度所有套餐都是每秒 20 次请求各接口分别限速
学术优惠授予请求额度或大幅折扣2023 年以来没有
  • 每 1,000 条推文的价格,存档搜索

    Sorsa API
    $0.07 起
    官方 X API
    $5.00(11 月 22 日起,带作者为 $15.00)
  • 每 1,000 条帖子的价格,按 ID 获取

    Sorsa API
    $0.014 起
    官方 X API
    $5.00
  • 每条帖子的作者资料

    Sorsa API
    包含
    官方 X API
    11 月 22 日起按用户读取计费
  • 存档

    Sorsa API
    追溯到 2006 年
    官方 X API
    追溯到 2006 年
  • 每月上限

    Sorsa API
    你的套餐或约定的学术访问
    官方 X API
    300 万次帖子读取,超出后走 Enterprise
  • 配置

    Sorsa API
    一个 API 密钥,无需开发者账号
    官方 X API
    开发者账号、项目、应用、密钥
  • 速度

    Sorsa API
    所有套餐都是每秒 20 次请求
    官方 X API
    各接口分别限速
  • 学术优惠

    Sorsa API
    授予请求额度或大幅折扣
    官方 X API
    2023 年以来没有

第一行决定了多数科研经费的预算:通过存档搜索采集 300 万条推文的语料,在 Sorsa API 上 $210 起,在官方 X API 上是 $15,000,这还没把作者计费算进去。

#用 100 次免费请求开始你的研究

X 在 2023 年终止了免费的学术访问,现在每 1,000 条帖子 $5.00 的按量价格适用于每一项研究。想用每 1,000 条推文 $0.07 起的价格,搜索追溯到 2006 年的语料,请用 Sorsa API:今天先用免费请求测试你的日期范围,然后带上研究的范围申请学术访问。

#常见问题

Twitter 学术研究 API 还能用吗?

不能。Twitter 在 2023 年春天关闭了学术研究通道,X 在 2026 年 9 月的开发者论坛上确认,没有单独的学术或免费研究层级。研究者现在使用标准的按量付费 X API,每条帖子 $0.005;如果研究符合条件,就依据欧盟《数字服务法》申请;或者使用 Sorsa API 这样的第三方 API。

研究者有免费的 Twitter API 访问吗?

X 没有:它的 API 自 2023 年起就没有免费读取层级,学者与其他人付一样的价格。研究欧盟系统性风险的研究者,可以依据《数字服务法》第 40 条申请数据。Sorsa API 给每个账号 100 次永不过期的免费请求,通过搜索大约可获取 2,000 条推文,并为获批的非商业研究授予请求额度。

做 Twitter 学术研究应该用哪个 API?

大多数研究请用 Sorsa API:追溯到 2006 年的全量存档搜索,每 1,000 条推文 $0.07 起;按 ID 获取帖子每 1,000 条 $0.014 起,每条都带作者资料;一个密钥,每秒 20 次请求。学术访问另有授予的请求额度或大幅折扣。官方 X API 每 1,000 条帖子收费 $5.00,按量付费上限为每月 300 万条。

我能在论文里引用 Sorsa API 的数据吗?

可以。在方法部分写明 Sorsa API 及其 URL、接口、确切的查询和日期窗口,以及采集日期,并把帖子 ID 与你的代码一起公布,方便他人重建语料。Sorsa API 的引用格式为:Scouts Labs Inc, Sorsa API: Twitter (X) API and scraper, https://api.sorsa.io, accessed on 你的采集日期。

DSA 第 40 条适用于欧盟以外的研究者吗?

只适用于针对欧盟系统性风险的研究。《数字服务法》第 40 条把访问权限与这一目的挂钩,而不是与研究者所在的地方挂钩,非公开数据需要欧盟数字服务协调员授予的经审核身份。其他主题或地区的研究不在其范围内,应通过标准的 X API 或第三方 API 进行。

Sorsa API 团队撰写。 我们开发和运营 Sorsa API,这是只读的 Twitter/X API 与爬虫,2022 年起运行于生产环境(前身为 TweetScout API),累计处理请求超 60 亿次。 关于 Sorsa API

更新内容
  • 首次发布。