跳到正文

TweetScout Twitter API 现已更名为 Sorsa API v3

TweetScout API 现在就是 Sorsa API:它在 2025 年更名,TweetScout 时代的 v2 自 2026 年 5 月 1 日起一直返回 410 Gone,其 29 个调用中的 27 个现在运行在 https://api.sorsa.io/v3。

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

简短回答: 迁移 TweetScout 集成只需四处修改:基础 URL、从路径移到查询参数的用户名、cursor 改名为 next_cursor,以及几个改了名的字段。要运行迁移后的调用,请用 Sorsa API v3:同样的 ApiKey 请求头,45 个接口,每秒 20 次请求,另有 100 次免费请求,足够测试每个旧调用。

api.sorsa.io/v3
29 个调用中 27 个已迁移
价格
每 1,000 次 $1.40 起

#TweetScout API 发生了什么

TweetScout API 在 2025 年被团队更名为 Sorsa API,该团队自 2022 年起在 Scouts Labs Inc 运营它;其 TweetScout 时代的版本 v2 已于 2026 年 5 月 1 日下线(在新标签页打开)。现在每个 v2 接口都返回 410 Gone,仍然指向 api.tweetscout.io/v2 的代码,调用的正是这个已下线的版本。

产品按两类受众拆分了。加密货币分析应用变成了 sorsa.io(在新标签页打开) 上的 Sorsa 应用,tweetscout.io 和 app.tweetscout.io 现在都会跳转到那里;开发者 API 则变成了 api.sorsa.io 上的 Sorsa API。TweetScout 评分沿用原方法,换了新名字,叫 Sorsa Score,它的接口属于 v3。Sorsa Score API 指南介绍了分级以及评分的构成方式。

TweetScout API to Sorsa API: launched 2022, renamed 2025, v2 retired May 1, 2026, Sorsa API v3 with 45 endpoints today 2022 TweetScout API 上线 加密 X 数据和 TweetScout 评分 2025 更名 Sorsa API 同一团队;评分 变为 Sorsa Score 2026 年 5 月 1 日 v2 停用 每次对 /v2/... 的调用都返回 410 Gone 如今 Sorsa API v3 45 个接口,位于 api.sorsa.io/v3 一个 ApiKey 请求头
四个日期解释了为什么今天每个旧的 TweetScout 调用都会失败:它所针对的 v2 已于 2026 年 5 月 1 日下线。

搜索“Tweet Scout”和“Twitter Scout”指向的是同一个产品。对代码来说变化的是版本:v3 保留了 TweetScout 的各项功能,改了一些路径和参数名,并新增了旧 API 从未有过的 20 个接口,共计 45 个。

#四步把 TweetScout 调用迁移到 Sorsa API v3

每个 TweetScout 调用都用同样的四处修改迁移,多数只要改一行。对 TweetScout 集成来说,Sorsa API v3 是直接的继任者:25 个 v3 路径承担了旧的功能,密钥仍然放在 ApiKey 请求头里,所有套餐都是每秒 20 次请求。

  1. 获取 v3 密钥。 注册后,在控制台的 API Keys 中复制一个密钥。GET /key-usage-info(在新标签页打开) 可以确认它是否可用并显示剩余请求数,而且它本身不消耗请求额度。

  2. 替换基础 URL。 把代码中所有的 https://api.tweetscout.io/v2 或 https://api.sorsa.io/v2 换成 https://api.sorsa.io/v3。

  3. 把用户名和 ID 从路径中移出。 TweetScout 把账号放在路径里(/score/{user_handle}、/info-id/{user_id})。v3 则把它作为查询参数:username、user_id 或 user_link,三者只能取其一。

    之前:TweetScout API v2(现已返回 410 Gone)
    curl "https://api.tweetscout.io/v2/score/orbit_dao_watcher" \
      -H "ApiKey: YOUR_API_KEY"
    
    之后:Sorsa API v3
    curl -G "https://api.sorsa.io/v3/score" \
      -H "ApiKey: YOUR_API_KEY" \
      --data-urlencode "username=orbit_dao_watcher"
    
  4. 重命名分页和请求体中的键。 cursor 变成 next_cursor,link 变成 user_link,user_handle 变成 username。在 POST /check-follow 中,project_handle 变成 username_1(应该被关注的账号),user_handle 变成 username_2(你要检查的账号)。

同样的修改放进脚本里是这样:基础 URL 只改一次,用户名移到 params 里,而在 v2 中一次返回的整个数组列表,在 v3 里改为带游标的分页返回。Python 调用 Twitter API 教程涵盖了 v3 基础用法的其余部分。

import requests

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


def score(handle):
    # v2: GET /score/{handle}  ->  v3: GET /score?username=
    r = requests.get(f"{BASE}/score", headers=HEADERS,
                     params={"username": handle}, timeout=30)
    r.raise_for_status()
    return r.json()["score"]


def following(handle):
    # v2 returned one array; v3 pages 200 accounts at a time
    users, cursor = [], None
    while True:
        params = {"username": handle}
        if cursor:
            params["next_cursor"] = cursor
        r = requests.get(f"{BASE}/follows", headers=HEADERS,
                         params=params, timeout=30)
        r.raise_for_status()
        page = r.json()
        users += page["users"]
        cursor = page.get("next_cursor")
        if not cursor:
            return users


print(score("orbit_dao_watcher"))
print(len(following("orbit_dao_watcher")))

401 表示密钥错误,403 表示密钥缺失或请求额度已用完,429 表示一秒内超过了 20 次请求,等一秒再重新发送即可。评分接口只回答 Sorsa Score 数据库中已有的账号,而 v3 现在会给出每个粉丝的关注日期,下面这个 GET /top-followers 的响应就是例子:

Response200 OK
{
  "users": [
    {
      "id": "1600000000000000004",
      "username": "lattice_fund_research",
      "display_name": "Lattice Fund Research",
      "followers_count": 48210,
      "followings_count": 612,
      "verified": true,
      "score": 1873,
      "follower_date": "2026-03-14T09:21:07Z"
    }
  ]
}

#TweetScout API 接口对照表:v2 到 v3

在 TweetScout 时代 v2 参考文档的 29 个接口中,27 个迁移到了 v3,2 个下线。这 27 个对应 25 个 v3 路径,因为有两对合并了:/info 和 /info-id 合并为一个 GET /info,/score 和 /score-id 合并为一个 GET /score。

TweetScout API v2 had 29 endpoints: 27 carried over to 25 Sorsa API v3 endpoints and 2 were retired; v3 adds 20 new endpoints for 45 in total TweetScout API v2:29 个接口 27 个沿用 2 个停用 Sorsa API v3:45 个接口 25 个承担旧功能 (两对合并) v3 新增 20 个:粉丝、提及、 引用、Spaces、趋势等
29 个 TweetScout 调用中的 27 个在 v3 里仍有对应路径,而 v3 新增了旧 API 从未有过的 20 个接口。

把代码或日志里的任何旧调用粘贴到转换器中,就能得到它对应的 v3 请求和需要做的修改。

已迁移 TweetScout GET /v2/score/{user_handle} 现已变为 GET /v3/score (Sorsa API 上)。

Sorsa API v3 请求
curl -G "https://api.sorsa.io/v3/score" \
  -H "ApiKey: YOUR_API_KEY" \
  --data-urlencode "username=orbit_dao_watcher"
  • 基础 URL: https://api.tweetscout.io/v2 变为 https://api.sorsa.io/v3.
  • 用户名不再放在路径里,而是放进 ?username=; ?user_id= 和 ?user_link= 同样可用。
  • 每个账号一次请求,每 1,000 个账号低至 $1.40。

粘贴 TweetScout API 调用,或选一个示例,查看替代它的 Sorsa API v3 请求。

完整对照表按旧参考文档的分组列出了每个 v2 调用,以及替换它的 v3 路径和需要做的那处修改。路径没变的调用也仍然需要换成新的基础 URL。

TweetScout API v2Sorsa API v3变化
GET /info/{user_handle}GET /info用户名移到 ?username=
GET /info-id/{user_id}GET /infoID 移到 ?user_id=
GET /aboutGET /aboutlink 改为 user_link;也可以用 username
GET /followsGET /followslink 改为 user_link;每页 200 条,用 next_cursor 分页
GET /handle-to-id/{user_handle}GET /username-to-id/{user_handle}路径改名
GET /id-to-handle/{user_id}GET /id-to-username/{user_id}路径改名;响应里仍是 handle
POST /user-tweetsPOST /user-tweetslink 改为 user_link,cursor 改为 next_cursor
POST /tweet-infoPOST /tweet-info请求体相同;推文字段改名
POST /tweet-info-bulkPOST /tweet-info-bulk请求体相同;响应包在 tweets 里
POST /commentsPOST /comments新增可选的 order_by;响应键 comments 改为 tweets
POST /search-tweetsPOST /search-tweets无变化
POST /search-usersPOST /search-users无变化
GET /list-membersGET /list-members新增 next_cursor 分页
GET /list-tweetsGET /list-tweetscursor 改为 next_cursor
POST /community-tweetsPOST /community-tweetscursor 改为 next_cursor,order_by 改为 order
POST /check-memberPOST /check-community-member路径改名
POST /check-followPOST /check-followproject_* 改为 *_1,user_* 改为 *_2
POST /check-quotedPOST /check-quoteduser_handle 改为 username
POST /check-retweetPOST /check-retweetuser_handle 改为 username
GET /check-commentGET /check-commentuser_handle 改为 username
GET /score/{user_handle}GET /score用户名移到 ?username=
GET /score-id/{user_id}GET /scoreID 移到 ?user_id=
GET /score-changesGET /score-changesuser_handle 改为 username
GET /followers-statsGET /followers-statsuser_handle 改为 username
GET /top-followers/{user_handle}GET /top-followers用户名移到 ?username=;去掉 from
GET /top-following/{user_handle}GET /top-following用户名移到 ?username=
GET /new-following-7dGET /new-following-7duser_handle 改为 username
POST /when-follow已下线POST /check-follow 可回答是或否
GET /handle-history已下线GET /about 返回更改次数和最近一次更改的日期
  • GET /info/{user_handle}

    Sorsa API v3
    GET /info
    变化
    用户名移到 ?username=
  • GET /info-id/{user_id}

    Sorsa API v3
    GET /info
    变化
    ID 移到 ?user_id=
  • GET /about

    Sorsa API v3
    GET /about
    变化
    link 改为 user_link;也可以用 username
  • GET /follows

    Sorsa API v3
    GET /follows
    变化
    link 改为 user_link;每页 200 条,用 next_cursor 分页
  • GET /handle-to-id/{user_handle}

    Sorsa API v3
    GET /username-to-id/{user_handle}
    变化
    路径改名
  • GET /id-to-handle/{user_id}

    Sorsa API v3
    GET /id-to-username/{user_id}
    变化
    路径改名;响应里仍是 handle
  • POST /user-tweets

    Sorsa API v3
    POST /user-tweets
    变化
    link 改为 user_link,cursor 改为 next_cursor
  • POST /tweet-info

    Sorsa API v3
    POST /tweet-info
    变化
    请求体相同;推文字段改名
  • POST /tweet-info-bulk

    Sorsa API v3
    POST /tweet-info-bulk
    变化
    请求体相同;响应包在 tweets 里
  • POST /comments

    Sorsa API v3
    POST /comments
    变化
    新增可选的 order_by;响应键 comments 改为 tweets
  • POST /search-tweets

    Sorsa API v3
    POST /search-tweets
    变化
    无变化
  • POST /search-users

    Sorsa API v3
    POST /search-users
    变化
    无变化
  • GET /list-members

    Sorsa API v3
    GET /list-members
    变化
    新增 next_cursor 分页
  • GET /list-tweets

    Sorsa API v3
    GET /list-tweets
    变化
    cursor 改为 next_cursor
  • POST /community-tweets

    Sorsa API v3
    POST /community-tweets
    变化
    cursor 改为 next_cursor,order_by 改为 order
  • POST /check-member

    Sorsa API v3
    POST /check-community-member
    变化
    路径改名
  • POST /check-follow

    Sorsa API v3
    POST /check-follow
    变化
    project_* 改为 *_1,user_* 改为 *_2
  • POST /check-quoted

    Sorsa API v3
    POST /check-quoted
    变化
    user_handle 改为 username
  • POST /check-retweet

    Sorsa API v3
    POST /check-retweet
    变化
    user_handle 改为 username
  • GET /check-comment

    Sorsa API v3
    GET /check-comment
    变化
    user_handle 改为 username
  • GET /score/{user_handle}

    Sorsa API v3
    GET /score
    变化
    用户名移到 ?username=
  • GET /score-id/{user_id}

    Sorsa API v3
    GET /score
    变化
    ID 移到 ?user_id=
  • GET /score-changes

    Sorsa API v3
    GET /score-changes
    变化
    user_handle 改为 username
  • GET /followers-stats

    Sorsa API v3
    GET /followers-stats
    变化
    user_handle 改为 username
  • GET /top-followers/{user_handle}

    Sorsa API v3
    GET /top-followers
    变化
    用户名移到 ?username=;去掉 from
  • GET /top-following/{user_handle}

    Sorsa API v3
    GET /top-following
    变化
    用户名移到 ?username=
  • GET /new-following-7d

    Sorsa API v3
    GET /new-following-7d
    变化
    user_handle 改为 username
  • POST /when-follow

    Sorsa API v3
    已下线
    变化
    POST /check-follow 可回答是或否
  • GET /handle-history

    Sorsa API v3
    已下线
    变化
    GET /about 返回更改次数和最近一次更改的日期

这两个已下线的接口仍然有办法得到同样的答案,下面“没有一对一接口的 TweetScout 调用”一节逐个给出了做法。

#名称变了的响应字段

v3 的响应保持了 TweetScout 响应的结构,但有 10 个字段名变了,而 v2 以裸数组返回的列表,现在包在一个对象里({"users": [...]} 或 {"tweets": [...]})。解析器最先会在这些改名上出错,所以先在代码里搜索旧名称。

TweetScout API v2 字段Sorsa API v3 字段出现位置
screen_nameusername用户资料、推文作者、列表成员
namedisplay_name用户资料、推文作者
friends_countfollowings_count用户资料、推文作者
statuses_counttweets_count推文作者
register_datecreated_at用户资料
avatarprofile_image_url用户资料、推文作者
bannerprofile_background_image_url用户资料
id_strid推文、推文作者
favorite_countlikes_count推文
in_reply_to_status_id_strin_reply_to_tweet_id推文
  • screen_name

    Sorsa API v3 字段
    username
    出现位置
    用户资料、推文作者、列表成员
  • name

    Sorsa API v3 字段
    display_name
    出现位置
    用户资料、推文作者
  • friends_count

    Sorsa API v3 字段
    followings_count
    出现位置
    用户资料、推文作者
  • statuses_count

    Sorsa API v3 字段
    tweets_count
    出现位置
    推文作者
  • register_date

    Sorsa API v3 字段
    created_at
    出现位置
    用户资料
  • avatar

    Sorsa API v3 字段
    profile_image_url
    出现位置
    用户资料、推文作者
  • banner

    Sorsa API v3 字段
    profile_background_image_url
    出现位置
    用户资料
  • id_str

    Sorsa API v3 字段
    id
    出现位置
    推文、推文作者
  • favorite_count

    Sorsa API v3 字段
    likes_count
    出现位置
    推文
  • in_reply_to_status_id_str

    Sorsa API v3 字段
    in_reply_to_tweet_id
    出现位置
    推文

旧的顶级粉丝列表中的驼峰式键(screeName、followersCount、friendsCount、registerDate),在 v3 里变成了与其他所有用户资料相同的蛇形命名。名称保持不变的字段包括 full_text、retweet_count、reply_count、quote_count、view_count、bookmark_count 和 can_dm,每个 v3 用户资料还新增了 location、bio_urls、pinned_tweet_ids 和 protected。

须知

关注日期在 v3 里有两种写法:GET /top-followers 中是 follower_date,GET /new-followers-7d 和 GET /new-following-7d 中是 followerDate。ID 与 v2 一样处处都是字符串,所以在数据库里请保留为文本:很长的 Snowflake ID 在 JavaScript 里按数字处理会丢失位数。

#没有一对一 v3 接口的 TweetScout 调用

两个 v2 接口已下线,另外人们在 TweetScout 名下搜索的三样东西,其实从来就不是 API 接口。每一项在 v3 里仍然有办法得到同样的答案。

  • /when-follow 返回一个账号关注另一个账号的日期,且只限于已在 TweetScout 数据库中的账号。在 v3 里,POST /check-follow(在新标签页打开) 回答关注关系是否存在。要日期的话,GET /top-followers 覆盖一个账号最有分量的 20 个粉丝,GET /new-followers-7d(在新标签页打开) 则列出过去 7 天内新关注的加密货币账号。
  • /handle-history 返回账号曾用过的用户名。GET /about(在新标签页打开) 返回 username_change_count 和 last_username_change_at,免费的 Twitter 用户名历史查询工具可以显示任何账号的这两项。
  • “受众质量” 是 TweetScout 应用中查看谁在关注某个账号的视图。在 API 里对应 GET /followers-stats(在新标签页打开),它统计粉丝中的影响者、项目方和 VC 基金,另外还有 GET /top-followers 和 GET /score。
  • 情绪分析接口 在 v2 和 v3 里都从未存在。请用 POST /search-tweets 或 POST /mentions 拉取帖子,再用你自己的模型打分,做法见 Twitter 情感分析指南。
  • /v1/analyze 位于 api.tweetscout.io,从来不是 TweetScout 的接口。它出现在生成的交易机器人代码里,并在其中被标注为假设的接口,而该地址返回 404。要完成这个任务,请调用 GET /score 和 GET /followers-stats。

#同一个密钥现在能读到 TweetScout 从未提供的数据

Sorsa API v3 新增了 TweetScout API 从未有过的 20 个接口,所以一个密钥现在就能覆盖加密货币仪表盘过去要向第二家服务商购买的通用 X 数据任务。如果你的 TweetScout 集成旁边还运行着另一个用于粉丝列表或搜索的 API,那就两件事都用 Sorsa API:一个密钥,一张账单,智能粉丝数据也在同一份 JSON 里。

过去让 TweetScout 用户转向第二家服务商的那些任务,在 Sorsa API 上每 1,000 条结果的费用如下,右侧是官方 X API 的价格(在新标签页打开),后者还需要开发者账号和 OAuth,并且每月最多只能读取 300 万条帖子:

任务Sorsa API 接口Sorsa API,每 1,000 条官方 X API,每 1,000 条
完整粉丝列表GET /followers,每页 200 条$0.007 起$10.00
批量获取用户资料GET /info-batch,每次请求 100 条$0.014 起$10.00
按 ID 获取帖子POST /tweet-info-bulk,每次请求 100 条$0.014 起$5.00
搜索与提及,可追溯到 2006 年POST /search-tweets、POST /mentions,每页约 20 条$0.07 起$5.00
加密货币影响力评分与粉丝分类GET /score、GET /followers-stats,每次请求一个账号$1.40 起不提供
  • 完整粉丝列表

    Sorsa API 接口
    GET /followers,每页 200 条
    Sorsa API,每 1,000 条
    $0.007 起
    官方 X API,每 1,000 条
    $10.00
  • 批量获取用户资料

    Sorsa API 接口
    GET /info-batch,每次请求 100 条
    Sorsa API,每 1,000 条
    $0.014 起
    官方 X API,每 1,000 条
    $10.00
  • 按 ID 获取帖子

    Sorsa API 接口
    POST /tweet-info-bulk,每次请求 100 条
    Sorsa API,每 1,000 条
    $0.014 起
    官方 X API,每 1,000 条
    $5.00
  • 搜索与提及,可追溯到 2006 年

    Sorsa API 接口
    POST /search-tweets、POST /mentions,每页约 20 条
    Sorsa API,每 1,000 条
    $0.07 起
    官方 X API,每 1,000 条
    $5.00
  • 加密货币影响力评分与粉丝分类

    Sorsa API 接口
    GET /score、GET /followers-stats,每次请求一个账号
    Sorsa API,每 1,000 条
    $1.40 起
    官方 X API,每 1,000 条
    不提供

对于 KOL 和智能粉丝追踪(TweetScout 用户过去在应用里做的事),v3 有四个调用:GET /top-followers 和 GET /followers-stats 用来查看谁在支持一个账号,GET /new-followers-7d 和 GET /new-following-7d 用来查看最近一周的加密货币账号关注动态。不论是否属于加密货币领域的每个粉丝的完整列表,都来自 GET /followers(在新标签页打开);Twitter 粉丝 API 指南展示了完整的导出流程。

其他新增接口可以读取引用、转发者、某个用户的回复和转发、X 长文、Spaces、按地区划分的趋势、认证粉丝、列表粉丝、社群信息、成员和搜索,以及 shadowban 检测。同时也在读取官方 X API 的团队,可以参照类似的对照表从 Twitter/X API 迁移。

#今天就迁移你的第一个 TweetScout 调用

TweetScout API 以 Sorsa API v3 的形式延续了下来:换掉基础 URL,把用户名移到查询参数里,把 cursor 改名,旧的 29 个调用中就有 27 个能重新运行。Sorsa API 就是运行它们的地方:45 个接口(包括 Sorsa Score),所有套餐都是每秒 20 次请求,另有 100 次免费请求,让你在选择套餐之前先把整个集成转换并测试一遍。

#常见问题

TweetScout 就是 Sorsa API 吗?

是的。TweetScout 既是一个加密货币分析应用,也是它的开发者 API,由 Scouts Labs Inc 自 2022 年起运营。2025 年,应用变成了 sorsa.io 上的 Sorsa 应用,API 变成了 api.sorsa.io 上的 Sorsa API,背后是同一个团队。Sorsa API 只读取 X 的公开数据,从不发帖,也从不索要你的 X 登录信息,所以你的 X 账号不会面临风险。

TweetScout API 的文档现在在哪里?

TweetScout API 的文档现在就是 docs.sorsa.io(在新标签页打开) 上的 Sorsa API v3 参考文档,它由实时 OpenAPI 文件生成,包含全部 45 个接口及其参数和响应字段。TweetScout 时代的 v2 文档随 v2 在 2026 年 5 月 1 日一起下线了。本页的对照表把每个 v2 路径与替换它的 v3 调用并排列出。

我原来的 TweetScout API 密钥还能用吗?

请使用 Sorsa API 控制台 API Keys 下列出的密钥:那才是每个 v3 接口接受的密钥,同样放在 ApiKey 请求头里。任何对 /v2 路径的请求,不论用什么密钥,都会以 410 Gone 失败。如果你再也打不开原来保存 TweetScout 密钥的账号,新建账号只需一分钟,并且自带 100 次免费请求。

我应该用哪个 API 来代替 TweetScout API?

用 Sorsa API,也就是 TweetScout API 的直接继任者:29 个 TweetScout 调用中的 27 个已迁移,Sorsa Score 仍然来自 GET /score。同一个密钥读取完整粉丝列表每 1,000 条 $0.007 起,读取帖子每 1,000 条 $0.014 起。所有套餐都是每秒 20 次请求,不需要 X 开发者账号,也不需要 OAuth。

我还能通过 API 获取 TweetScout 评分吗?

可以,它现在叫 Sorsa Score,是 TweetScout 评分的新名称,方法也相同:统计哪些加密货币影响者、项目方和基金在关注某个账号。GET /score(在新标签页打开) 每次请求返回一个账号的评分,GET /score-changes 返回它在最近一周和一个月内的变化。评分大约每天刷新一次。

前 TweetScout 用户使用 Sorsa API 要花多少钱?

Sorsa API 在每个接口上每次调用都计一次请求,价格从 Starter 套餐的每 1,000 次请求 $4.90,到 Hyperscale 套餐的 $1.40,失败的请求不会计费。每个新账号都有 100 次永不过期、无需绑卡的免费请求,足够转换并测试一个小型的 TweetScout 集成。

#我们如何核实

2026 年 11 月 2 日,我们阅读了 TweetScout 时代的 v2 参考文件(api.sorsa.io/v2/swagger.json 仍然提供它),并与线上的 v3 参考文档对照。我们用脚本把全部 29 个 v2 接口、它们的参数和响应字段与 v3 逐一匹配。同一天,我们在 Sorsa API 文档中确认了 v2 的下线日期,并在 docs.x.com 上确认了官方 X API 的价格。本文没有使用 API 密钥:请求和响应遵循 v3 参考文档,使用的是演示账号。

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

更新内容
  • 首次发布。