跳到正文

面向学术研究的 Twitter/X API 与爬虫

搜索可回溯到 2006 年的全量历史数据,每次补全 100 个推文 ID,拉取时间线、回复和粉丝。学术访问权限按你的研究定制:从为项目赠送请求到大幅折扣。

用于 ,需要约

约 2 小时完成采集(每秒 20 次请求)
$15,000官方 X API
$210 起Sorsa API,未计学术优惠

学术访问权限还能更优惠:按你的研究定制,从赠送请求到大幅折扣。

用这个计划申请

学术访问权限,围绕你的研究定制

为你的研究赠送请求

我们把项目所需的请求添加到你的 Sorsa API 账号。

套餐大幅折扣

适合长期或大型项目:任意套餐享学术价格。

每个获批项目都能获得

  • 全部接口
  • 每秒 20 次请求
  • 与所有用户相同的文档和 API
  • 团队快速回复

谁可以申请

  • 博士生
  • 硕士生
  • 教师
  • 博士后
  • 科研人员
  • NGO 和新闻机构研究人员

任何学科的非商业研究,使用机构邮箱申请。

申请大约需要两分钟。在此期间,你的 100 次免费请求可用于所有接口。

申请学术访问权限

研究需要的每种方法

一个 API 密钥,同样的接口,既能查 2006 年,也能查今天早上。

  • 历史搜索

    关键词语料、事件窗口、长时间序列。

    "heat wave" lang:en since:2022-07-01 until:2022-08-01 -filter:nativeretweets

    每次请求约 20 条推文,可回溯到 2006 年

  • 按 ID 获取推文

    补全共享数据集,或复现已发表的语料。

    POST /tweet-info-bulk {"tweet_links": [100 IDs]}

    每次请求 100 条推文,每条都带作者

  • 账号时间线

    政治人物、记者或机构的固定样本。

    from: 加日期,或用 /user-tweets 获取账号的完整历史

    每次请求约 20 条推文,没有 3,200 条上限

  • 对话

    回复树、引用链、转发用户。

    /comments, /quotes, /retweeters

    每次请求约 20 条

  • 网络

    任意公开账号的粉丝和关注。

    /followers?username=…

    每页 200 份资料

  • 用户资料和账号背景

    每次 100 份用户资料;“关于此账号”中的国家、用户名变更和认证状态。

    /info-batch, /about

    每次请求 100 份资料

  • 列表、社区、Space

    一个 X 列表可盯住最多 5,000 个账号;社区推文和成员;Space 元数据。

    /list-tweets?list_id=…

    每次请求约 20 条推文

搜索运算符、分页和每页条数见文档:历史数据、搜索运算符、按 ID 获取推文。

每条推文都带着它的变量

Coastal Climate Lab@coastal_climate_lab

回复 @heat_records_archive

我们的开放数据集发布了:120 万条关于 2022 年欧洲热浪的推文,附推文 ID 和补全代码。#heatwave

每日推文数,2022 年 6 月至 8 月

2023 年 8 月 18 日上午 10:42

9.64 万 次查看211 次收藏

42 条回复318 次转发27 条引用1,200 个赞

userusername、followers_count、created_at、verified、location
conversation_id_strin_reply_to_tweet_id在推文串中的位置
full_textlang全部正文及其语言
entities媒体和链接
created_at发布时间,精确到秒
view_countbookmark_count查看数和收藏数
likes_countretweet_countreply_countquote_count当前的互动数据
旧推文的字段和今天的一样。

设计研究时请考虑这些限制

  • 已删除的推文和受保护账号不会返回。补全后的列表会比原始列表小。

  • 数量是当前的。点赞、查看和粉丝数都是采集时的数值;如需随时间变化的数量,请定时采集并保留每次快照。

  • 用户资料是当前的。2014 年的推文附带的是作者现在的资料。

  • 需要轮询,没有数据流。新推文在你请求时才返回;一次请求可读取最多 5,000 个账号的 X 列表。

  • 无法获取:谁点赞了推文、用户的点赞或收藏、私信、过去的粉丝列表。

在规划完整采集之前,先用免费请求试试你的日期范围。

从 ID 列表到数据集

rehydrate.py
import csv, json, time, requests

URL = "https://api.sorsa.io/v3/tweet-info-bulk"
KEY = "YOUR_API_KEY"
ids = [row[0] for row in csv.reader(open("tweet_ids.csv"))]

with open("tweets.ndjson", "w") as out:
    for i in range(0, len(ids), 100):
        while True:
            r = requests.post(URL, headers={"ApiKey": KEY},
                              json={"tweet_links": ids[i:i + 100]})
            if r.status_code != 429:
                break
            time.sleep(1)  # 20 requests per second per key
        r.raise_for_status()
        for tweet in r.json()["tweets"]:
            out.write(json.dumps(tweet) + "\n")
  • 100 万个 ID 大约需要八分钟(每秒 20 次请求)。
  • 失败的请求不收费。
  • 用 AI 助手写代码?把我们的文档文件交给 Claude Code、Cursor 或 Codex,或连接 MCP 服务器。用 AI 构建

写给伦理委员会和方法部分

审查者会问什么

什么数据?
只有公开推文和用户资料。没有受保护账号,没有私信。
有任何互动吗?
没有。Sorsa API 是只读的:从不发推、点赞、关注或发消息。
用谁的账号?
不涉及任何 X 账号或登录,无论是你的还是别人的。
服务商保留什么?
你发出了哪些请求,保留一年;完整响应,保留 30 天。
谁知道这个项目?
X 不会知道是谁在查询:你的密钥、账号和身份都只留在我们这里。
你的副本存在哪里?
按你的数据管理计划存放。它属于你。
需要书面材料吗?
如有需要,我们可以为你的伦理委员会写一封关于数据来源的简短信函。

方法段落

2.1 数据采集

推文通过 Sorsa API(https://api.sorsa.io)采集,这是一个面向 X(Twitter)公开数据的独立 API,采集方式为对 2024 年 1 月 1 日至 3 月 31 日进行全量历史搜索。

申请学术访问权限

大约两分钟。团队会有专人阅读每份申请,并通过邮件回复。

接下来会发生什么

  1. 1

    提交表单。

  2. 2

    我们阅读申请。

    如有不清楚的地方,我们会询问。

  3. 3

    我们确定访问权限。

    研究所需的请求或大幅折扣,覆盖研究的整个周期。

  4. 4

    你开始采集。

    访问权限会出现在你的 Sorsa API 账号上;每个密钥都是每秒 20 次请求。

在此期间,你的 100 次免费请求可用于所有接口。从 100 次免费请求开始

更喜欢邮件?用机构邮箱写信到 contacts@sorsa.io。

1关于你

你的大学或研究机构邮箱。

大学、研究所或组织

身份

教师主页、实验室页面、ORCID 或 Google Scholar。

2你的研究

两到五句话就够了。

需要的数据
大约多少条推文或用户资料?
时间安排
什么时候需要数据?
项目持续多久?
项目的资金来源是什么?选填

这有助于我们设计方案,但不会决定结果。

这些信息只用于审核申请和回复你。隐私政策

或用机构邮箱发邮件到 contacts@sorsa.io。

研究人员常问的问题

大学和研究机构的博士生、硕士生、教师、博士后和科研人员,任何学科的非商业研究都可以。请使用机构邮箱申请。

按你的研究定制的访问权限:从把所需请求赠送到你的账号,到套餐大幅折扣。全部接口,每秒 20 次请求,文档和支持与所有客户相同。

团队会有专人阅读申请并通过邮件回复。如有不清楚的地方我们会询问;然后和你确定用量和周期,并把访问权限添加到你的 Sorsa API 账号。

可以。每个账号都有 100 次免费请求:无需绑卡,永不过期,可用于所有接口。最多可获取 1 万条按 ID 的推文或 2 万份粉丝资料,足够试跑你的查询。

用你常用的邮箱申请,并附上教师主页、实验室页面、ORCID 或 Google Scholar 链接,方便我们核实你的所属机构。

到 2006 年。全量搜索支持 X 自己的运算符:from:、to:、since:、until:、lang:、精确短语、话题标签和互动筛选。账号时间线可回溯到第一条推文,没有 3,200 条上限。

可以:每次请求 100 个 ID,每条推文都带作者的完整资料。100 万个 ID 需要 1 万次请求,以每秒 20 次请求计大约八分钟。原始采集之后被删除或设为私密的推文不会返回,所以推文数会少于 ID 数。

已删除的推文、受保护账号、私信、点赞某条推文的用户列表、用户的点赞和收藏,以及过去的粉丝列表。数量和用户资料都是采集时的状态。没有数据流:需要轮询,一次请求可读取最多 5,000 个账号的 X 列表。

数据是公开推文和用户资料;Sorsa API 是只读的,从不发推、点赞、关注或发消息;不涉及任何 X 账号或登录;你也不会联系数据中涉及的人。我们保留你的请求日志一年,完整响应 30 天。如有需要,我们可以写一封关于数据来源的简短信函。

请分享推文 ID 和采集代码:任何人都可以补全并核查你的工作。能分享多少其他内容,取决于你的伦理批准和数据管理计划。

在方法部分写:“数据通过 Sorsa API(https://api.sorsa.io)采集,这是一个面向 X(Twitter)公开数据的独立 API。”BibTeX 见本页第 5 节。

可以。你的账号可以有多个 API 密钥:给每个人一个,并在控制台查看各密钥的用量。

可以。在申请中说明,我们会为你的项目安排发票。

X 在 2023 年关闭了 Academic Research 通道。它的按量付费 API 每条帖子收 $0.005,每份用户资料收 $0.010;依据《数字服务法》的欧盟通道只涵盖针对欧盟系统性风险的研究,且需单独申请。Sorsa API 适用于任何学科和主题,一个密钥,无需 X 开发者账号。

TwitterAPI.io 在你付费后退还研究项目一半的花费,最多 $200。Sorsa API 在你采集之前就按研究定制访问权限,从赠送请求到大幅折扣。

那么套餐更合适:每 1,000 条推文 $0.014 起,所有套餐都包含全部接口。用量更大时,请联系销售。

面向学术研究的 Twitter/X API 与爬虫

按你的研究定制的学术访问权限,从赠送请求到大幅折扣。

学术访问权限,围绕你的研究定制

  • 为你的研究赠送请求我们把项目所需的请求添加到你的 Sorsa API 账号。
  • 套餐大幅折扣适合长期或大型项目:任意套餐享学术价格。
申请学术访问权限

研究需要的每种方法

一个 API 密钥,同样的接口,既能查 2006 年,也能查今天早上。

每条推文都带着它的变量

Coastal Climate Lab@coastal_climate_lab
user

回复 @heat_records_archive

in_reply_to_tweet_id

我们的开放数据集发布了:120 万条关于 2022 年欧洲热浪的帖子,附帖子 ID 和还原完整内容的代码。#heatwave

full_text

2023 年 8 月 18 日上午 10:42

created_at

42 回复318 转推27 引用1.2K 赞

likes_count …

旧推文的字段和今天的一样。

从 ID 列表到数据集

rehydrate.py
import csv, json, time, requests

URL = "https://api.sorsa.io/v3/tweet-info-bulk"
KEY = "YOUR_API_KEY"
ids = [row[0] for row in csv.reader(open("tweet_ids.csv"))]

with open("tweets.ndjson", "w") as out:
    for i in range(0, len(ids), 100):
        while True:
            r = requests.post(URL, headers={"ApiKey": KEY},
                              json={"tweet_links": ids[i:i + 100]})
            if r.status_code != 429:
                break
            time.sleep(1)  # 20 requests per second per key
        r.raise_for_status()
        for tweet in r.json()["tweets"]:
            out.write(json.dumps(tweet) + "\n")
  • 100 万个 ID 大约需要八分钟(每秒 20 次请求)。
  • 失败的请求不收费。
  • 用 AI 助手来写? 用 AI 构建

写给伦理委员会和方法部分

什么数据?

只有公开推文和用户资料。没有受保护账号,没有私信。

有任何互动吗?

没有。Sorsa API 是只读的:从不发推、点赞、关注或发消息。

用谁的账号?

不涉及任何 X 账号或登录,无论是你的还是别人的。

服务商保留什么?

你发出了哪些请求,保留一年;完整响应,保留 30 天。

谁知道这个项目?

X 不会知道是谁在查询:你的密钥、账号和身份都只留在我们这里。

你的副本存在哪里?

按你的数据管理计划存放。它属于你。

需要书面材料吗?

如有需要,我们可以为你的伦理委员会写一封关于数据来源的简短信函。

申请学术访问权限

大约两分钟。团队会有专人阅读每一份。

  1. 1发送
  2. 2我们会阅读
  3. 3我们同意
  4. 4你收集
从 100 次免费请求开始

更喜欢邮件?请用你的机构邮箱写信到 contacts@sorsa.io。

研究人员常问的问题