跳到正文

Twitter 话题标签追踪 API

要通过 API 追踪 Twitter 话题标签,就搜索 #tag 并按最新排序,读完每一页结果,再按天和按作者统计帖子;官方 X API 读取这些内容每 1,000 条帖子收费 $5.00。

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

简短回答: X 没有话题标签接口,所以每个追踪器都是去搜索这个标签;X 的近期计数接口返回 7 天的总数,不含帖子和作者。要按天统计一个标签并给作者排名,可以用 Sorsa API 的 POST /search-tweets:每次请求约 20 条帖子,含作者,每 1,000 条 $0.07 起,起步有 100 次免费请求。

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

#话题标签追踪如何通过 API 工作

话题标签追踪,就是收集某段时间内带有同一个标签的所有公开帖子,再把这些帖子变成三个答案:每天出现了多少条、是谁发的、哪些被读得最多。没有哪个 X API 有专门针对话题标签的接口。所有路线都要经过搜索,把标签写进查询里。

想不写代码快速看一眼,免费的 Twitter 话题标签分析工具可以显示任意标签过去 24 小时或 7 天的每小时帖子数、热门声音和热门帖子。本指南其余部分用代码生成同样的报告,适用于任意时间段和任意数量的标签。

在搜索查询里,#tidewaterdevdays 匹配 X 把这个词识别为话题标签的帖子,不区分大小写。不带 # 的 tidewaterdevdays 还会命中不加井号就写出来的帖子,所以只想统计带标签帖子的活动报告要保留 #。标签在第一个不是字母、数字或下划线的字符处结束,所以 #c++ 就是标签 #c,而日语、阿拉伯语或其他文字的标签则照写即可。其他各种过滤条件,从语言到最低点赞数,都在我们的 Twitter 搜索运算符指南里。

搜索有两种排序。Latest 从最新往回走遍每一个匹配项,统计需要的就是这个。Top 只返回互动最高的匹配项,所以适合做精选榜,不适合做计数器。

官方 X API 也有两个计数接口:GET /2/tweets/counts/recent 覆盖最近 7 天,GET /2/tweets/counts/all 覆盖存档,按分钟、小时或天给出总数(X 的计数概览(在新标签页打开))。它们只返回数字,别的什么都没有:没有帖子,没有作者,没有浏览量。X 自己还补充说,计数可能与搜索结果不完全一致。需要说清是谁推动了一个标签、或哪条帖子承载了它的追踪器,就要读取帖子本身。

#用 Sorsa API 四步追踪话题标签

Sorsa API 是一款 Twitter(X)API 与爬虫,它通过一个接口 POST /search-tweets 运行 X 的搜索语法,并返回每条帖子及其作者的完整资料。把所有页面读一遍,就能得到全部三项输出,所以计数、作者排名和热门帖子从不需要单独的请求。

做话题标签追踪,可以用 Sorsa API:一个 API 密钥,无需开发者账号,每次请求约 20 条帖子,含作者,每 1,000 条帖子 $0.07 起,所有套餐统一每秒 20 次请求。

POST /search-tweets #tidewaterdevdays order: latest 每页约 20 条推文, 用 next_cursor 翻到下一页 每条推文都带 created_at user.username user.followers_count view_count likes_count full_text 以及推文的其余内容 每日推文数 按 UTC 日期计数, 每个推文 ID 一行 发帖最多的账号 推文、浏览量和触达 按账号统计 热门推文和标签 按浏览量排序, 并列出同时使用的标签
一次搜索支撑整份报告:每条帖子都带着时间、作者和数字到达,所以计数和排名都在你这边完成。
  1. 获取密钥。 注册后从控制台复制你的 API 密钥。前 100 次请求免费,无需绑卡。

  2. 发送查询。 把标签和时间段放进 query,并要求最新帖子优先。# 原样放进 JSON 请求体,不需要 URL 编码。

    Terminal
    curl -X POST "https://api.sorsa.io/v3/search-tweets" \
      -H "ApiKey: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"query": "#tidewaterdevdays since:2026-10-19 until:2026-11-02",
           "order": "latest"}'
    
    Response200 OK
    {
      "tweets": [
        {
          "id": "2115444854355529755",
          "full_text": "Day one of #tidewaterdevdays, slides below #devrel",
          "created_at": "2026-10-28T14:05:31Z",
          "lang": "en",
          "likes_count": 312,
          "retweet_count": 41,
          "reply_count": 18,
          "quote_count": 6,
          "view_count": 28410,
          "is_reply": false,
          "user": {
            "id": "1366674638239301632",
            "username": "maren_codes_at_night",
            "display_name": "Maren",
            "followers_count": 18240,
            "verified": false
          }
        }
      ],
      "next_cursor": "DAADDAABCgABHVvqb2SWYBsKAAIdW-l6pZbQkAAIAAIAAAAC"
    }
    
  3. 沿着 cursor 往下读。 把 next_cursor 放进下一次请求的请求体里发回去,直到某个响应不再带它。页面大小会变化,所以要以 cursor 缺失为停止条件,不要以短页为准。403 表示密钥缺失或请求额度已用完;429 表示一秒内超过 20 次请求,等一秒再重试。

  4. 给帖子分组。 每个帖子 ID 只保留一行,然后按天和按作者统计。下面的脚本完成全部工作并打印报告。

    import re
    from collections import Counter
    from datetime import datetime, timezone
    
    import requests
    
    URL = "https://api.sorsa.io/v3/search-tweets"
    HEADERS = {"ApiKey": "YOUR_API_KEY"}
    TAG = re.compile(r"#\w+")
    
    
    def collect(query):
        """Yield every post the search returns, newest first."""
        body = {"query": query, "order": "latest"}
        while True:
            r = requests.post(URL, headers=HEADERS, json=body, timeout=30)
            r.raise_for_status()
            page = r.json()
            yield from page.get("tweets", [])
            cursor = page.get("next_cursor")
            if not cursor:
                return
            body["next_cursor"] = cursor
    
    
    def utc_day(post):
        stamp = post["created_at"].replace("Z", "+00:00")
        t = datetime.fromisoformat(stamp)
        return t.astimezone(timezone.utc).date().isoformat()
    
    
    def track(tag, since, until):
        posts = {}
        for p in collect(f"{tag} since:{since} until:{until}"):
            posts[p["id"]] = p  # one row per post ID
        per_day, by_author, views, tags = Counter(), Counter(), Counter(), Counter()
        for p in posts.values():
            per_day[utc_day(p)] += 1
            by_author[p["user"]["username"]] += 1
            views[p["user"]["username"]] += p.get("view_count") or 0
            tags.update(m.lower() for m in TAG.findall(p["full_text"]))
        top = sorted(posts.values(), key=lambda p: p.get("view_count") or 0)
        return per_day, by_author, views, tags, top[::-1][:10]
    
    
    per_day, by_author, views, tags, top = track(
        "#tidewaterdevdays", "2026-10-19", "2026-11-02")
    for day, n in sorted(per_day.items()):
        print(day, n)
    print("Top authors:", by_author.most_common(5))
    print("Most viewed:", views.most_common(5))
    print("Related tags:", tags.most_common(10))
    

接口的参数和响应字段见 POST /search-tweets 参考文档(在新标签页打开)。搜索除话题标签之外还能做什么,从关键词查询到查找帖子的其他方式,请看 Twitter 搜索 API指南。

#按天统计话题标签的帖子数

要按天统计一个话题标签,就用 Latest 排序读取时间段内的每条帖子,每个帖子 ID 只保留一行,再按每条帖子 created_at 的 UTC 日期给这些行分组。查询里的日期只决定抓取哪些帖子;每条帖子上的日期才决定它被计在哪一天。

这种区分在边界处很重要。since: 和 until: 按 UTC 工作,并且 until: 不含它自己的那一天,所以 since:2026-10-28 until:2026-10-29 只是 10 月 28 日一天。接近午夜的帖子仍可能出现在相邻的窗口里,所以脚本按 created_at 统计,并按 ID 去重,而不是相信窗口。

较长的时间段,最快的读法是每天一个窗口。每天之间互不依赖,所以可以并排运行:一个密钥每秒处理 20 次请求,约 400 条帖子,一个每天 5,000 条帖子的标签,一整年约 76 分钟就能读完。历史可追溯到 2006 年,所以今天开始的追踪器,数去年的活动和数这周的一样容易。

有三个查询选择会改变计数,请把它们与数字一起记下来:

  • 转发。 X 搜索默认不含单纯转发,但保留回复。加上 include:nativeretweets 可以把转发也算进去,并通过 retweeted_status 区分它们。
  • 回复。 加上 -filter:replies,只统计发起对话的帖子。
  • 变体。 用 OR 把不同写法和姊妹标签连起来:(#tidewaterdevdays OR #tidewater2026)。
#tidewaterdevdays 每日推文数 10 月 19 日至 11 月 1 日,UTC 日,约 2.5 万条 4,812 10 月 19 日 10/21 10/23 10/25 10/27 10/29 10/31 发帖最多的账号 条 tidewater_devrel_team 64 maren_codes_at_night 41 lantern_data_weekly 33 ferry_lane_builds 27 pixel_harbor_studio 22 14 天内 9,214 位作者
一份虚构会议标签的示例报告:每日计数显示升温和峰值,作者表显示是谁在推动它。

在这个例子里,一个虚构的会议标签从 10 月 19 日的 420 条帖子,升到第一天 10 月 28 日的 4,812 条,14 天里共约 2.5 万条帖子,来自 9,214 位作者。把它们全部读完,在 Sorsa API 上 $1.76 起,而在官方 X API 上是 $126。

须知

X 用 UTC 给每条帖子标注时间,所以报告里的一天是一个 UTC 日。对纽约的团队来说,当地时间 10 月 28 日是从 UTC 28 日 04:00 到 29 日 04:00:如果报告按当地日期来算,请在分组之前把 created_at 转换成你的时区。

#找出热门作者、热门帖子和相关话题标签

热门作者来自按 user.username 给同一批帖子分组:统计每个账号的帖子数,再把他们的浏览量和点赞数加起来,因为发帖最多的账号和被读得最多的账号很少是同一个。话题标签报告需要的每项指标,都来自随每条帖子到达的字段,所以没有一项需要额外请求。

指标计算方式字段
每日帖子数每个 UTC 日期的帖子 ID 数created_at
每小时帖子数每个 UTC 小时的帖子 ID 数,用来观察热度如何上升created_at
独立作者数不重复的账号user.id
按帖子数排名的热门作者每个账号的帖子数user.username
按覆盖面排名的热门作者每个账号的粉丝数user.followers_count
浏览量带标签帖子的浏览量总和view_count
互动点赞、转发、回复和引用likes_count, retweet_count, reply_count, quote_count
语言每种语言的帖子数lang
相关话题标签在文本中找到的标签full_text
  • 每日帖子数

    计算方式
    每个 UTC 日期的帖子 ID 数
    字段
    created_at
  • 每小时帖子数

    计算方式
    每个 UTC 小时的帖子 ID 数,用来观察热度如何上升
    字段
    created_at
  • 独立作者数

    计算方式
    不重复的账号
    字段
    user.id
  • 按帖子数排名的热门作者

    计算方式
    每个账号的帖子数
    字段
    user.username
  • 按覆盖面排名的热门作者

    计算方式
    每个账号的粉丝数
    字段
    user.followers_count
  • 浏览量

    计算方式
    带标签帖子的浏览量总和
    字段
    view_count
  • 互动

    计算方式
    点赞、转发、回复和引用
    字段
    likes_count, retweet_count, reply_count, quote_count
  • 语言

    计算方式
    每种语言的帖子数
    字段
    lang
  • 相关话题标签

    计算方式
    在文本中找到的标签
    字段
    full_text

浏览量就是 X 显示在每条帖子下面的那个数字。对一个标签求和后,它是最接近其曝光量的公开数字,也比许多报告开头那个按粉丝数求和的“覆盖面”更可靠,因为粉丝并不会看到每一条帖子。两个都留着,并说明各是哪一个。

相信某次激增之前,先把帖子数和独立作者数对照着看。几十个账号发出的成千上万条帖子是一次推广,而一个被成千上万人各用一次的标签才是一场对话。按浏览量而不是帖子数给作者排序,通常会让真正有分量的声音排到前面。

相关话题标签来自帖子文本。entities 字段列出的是媒体和链接,不是标签,所以脚本用正则表达式从 full_text 中提取每个 #word 并计数。一个活动标签最常见的相邻标签,显示了应当加进查询的姊妹标签,以及它触达的社群。

#话题标签追踪要花多少钱

读取一个话题标签的帖子,在 Sorsa API 上每 1,000 条 $0.07 起,在官方 X API 上每 1,000 条 $5.00,约贵 70 倍,这还没算 X 对作者的收费。从 2026 年 11 月 22 日起,X 把随帖子返回的每个作者按用户读取费率 $0.010 计费,所以那里带作者的帖子每 1,000 条最高 $15.00(X 10 月 23 日的通知(在新标签页打开))。在 Sorsa API 上,作者资料包含在每条帖子里,不另外收费。

官方路线还需要获批的开发者账号、OAuth 应用和预付额度。它的按量付费方案每月读取 300 万条帖子封顶;热门标签超过这个数,就需要每月约 $42,000 起的 Enterprise 合同(X 的价目表(在新标签页打开))。Sorsa API 只需请求头里的一个密钥,从不索要你的 X 登录信息,并且每 1,000 条帖子的价格会随套餐变大而下降。

话题标签每天的帖子数

追踪时长

15 万条话题标签帖子 含每位作者的资料,各读取一次

$750

官方 X API

每 1,000 条帖子 $5.00

11 月 22 日起附带作者,最高 $2,250

低至 $10.50

Sorsa API

低至每 1,000 条帖子 $0.07

每条帖子都含作者

约 6 分钟 在 Sorsa API 上按每秒 20 次请求读取。 在官方 X API 上,这项任务没有超过每月 300 万条帖子的上限。

选择话题标签的热度和追踪时长。每张卡片按每条帖子读取一次计价;X 的作者费用显示在其价格下方。

多数标签比看上去要小。一个每天只有几百条帖子的产品或活动标签,每天大约 15 次请求就能追踪,100 次免费请求可以读取约 2,000 条帖子,足够你在付费之前评估任何标签的规模。

#让话题标签追踪器持续运行

要让追踪器保持最新,就按计划运行,并且只请求比你上次存下的最后一条更新的帖子,用 since_id: 设为那条帖子的 ID:#tidewaterdevdays since_id:2117039272883781709。这样每次运行只读取新的页面,所以安静的一小时只需一次请求。

根据标签的节奏选择间隔:进行中的活动每小时一次,现场活动期间每几分钟一次。Sorsa API 以轮询方式工作;它没有数据流或 webhook,而在每秒 20 次请求下,对几十个标签做一轮轮询,也只需几秒就完成。想在标签激增时向 Slack 或邮件发提醒,我们的 Twitter 实时监控指南搭建了调度器和推送。

把每条帖子存进以 ID 为键的表中,再次看到该帖子时更新那一行。帖子出现后,浏览量和点赞数还会继续增长好几天,所以在发布活动的最终数字之前,要重新读取最近两三天。

想知道一个标签何时爆发,可以查看 X 在你关心的地区的趋势榜:GET /trends 返回一个地区当前的榜单,Twitter 趋势 API指南介绍了如何监视它。要同时追踪多个标签,就并行地每个标签跑一个查询,这样每个计数保持独立。

#开始追踪你的话题标签

话题标签追踪器,就是以 Latest 排序搜索这个标签,每一页只读一遍,再按 UTC 日和按作者统计帖子。Sorsa API 负责读取,每 1,000 条帖子 $0.07 起,含每位作者,所有套餐统一每秒 20 次请求,历史可追溯到 2006 年;你的前 2,000 条帖子免费。

#常见问题

追踪 Twitter 话题标签该用哪个 API?

用 Sorsa API。它的 POST /search-tweets 接收带 X 搜索运算符的标签,每次请求返回约 20 条帖子,每条都带作者的完整资料,所以每日计数、热门作者和热门帖子都来自同样的页面。每 1,000 条帖子 $0.07 起,而官方 X API 是 $5.00,所有套餐统一每秒 20 次请求,只需一个 API 密钥,不需要开发者账号。

X 有话题标签 API 吗?

没有。X 没有专为话题标签设计的接口:你要通过搜索来追踪一个标签,在搜索接口的查询里写 #tag。官方 X API 另外提供计数接口,按分钟、小时或天返回总数,但不含帖子、作者或浏览量,所以要给推动一个标签的人排名,仍然需要读取帖子。

怎么查看一个话题标签在 Twitter 上被使用了多少次?

X 在它的应用里任何地方都不显示话题标签的总数。免费的 Twitter 话题标签分析工具会根据标签的最新帖子,估算它每小时的帖子数。想要任意时间段内的精确计数,就通过 API 用 Latest 搜索读取每一条帖子,按天统计,每个帖子 ID 只保留一行。

能实时追踪话题标签吗?

接近实时,靠轮询。每分钟或每隔几分钟运行一次搜索,用 since_id: 设为你手上最新的那条帖子,每次运行只返回自那以后出现的帖子。Sorsa API 没有数据流或 webhook;而在每秒 20 次请求下,对许多标签做一轮轮询仍然只需几秒。

话题标签能追踪到多久以前?

在 Sorsa API 上可以回溯到 2006 年:在查询里加上 since: 和 until: 日期,像读任何其他时间段一样读取。官方 X API 的近期搜索和近期计数覆盖最近 7 天;它的存档接口在按量付费和 Enterprise 权限下可以走得更远,每读取 1,000 条帖子 $5.00。

能同时追踪多个话题标签吗?

可以。并行地为每个话题标签跑一次搜索,在 Sorsa API 上每个密钥最多每秒 20 次请求,这样每个标签都有自己的计数。在一个查询里用 OR 连接标签也可行,得到的是合并后的一个计数;之后想拆分,就在帖子文本里查找每个标签。

#我们如何核实

2026 年 11 月 2 日,我们阅读了 X 的帖子计数接口文档和它的按量付费价目表,以及 X 10 月 23 日关于扩展字段计费的通知。本页的每个 Sorsa API 请求,都是根据我们 /search-tweets 和 /trends 的线上 API 参考文档写成的;响应、图表和账号都是用虚构数据做的示例,成本则来自我们定价页上的请求费率。

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

更新内容
  • 首次发布。