Twitch API 文档

Twitch API: 搜索 — 按查询获取频道

根据用户查询在 Twitch 上发现搜索数据,并将结果接入搜索、目录或研究界面。

当不知道确切的对象 ID、需要先找到相关候选项时,请使用“按查询获取频道”。

方法 GET
实体 搜索
版本 2
此端点的作用

利用此 API 方法可以构建什么

先查看结果和常见工作流,然后再了解参数和可运行的请求示例。

此端点可以帮助您

响应包含匹配的搜索、公开上下文,以及在有更多结果时的分页数据。

何时使用

当不知道确切的对象 ID、需要先找到相关候选项时,请使用“按查询获取频道”。

常见使用场景

产品内搜索

在面向客户的界面和内部界面中加入 Twitch 数据搜索。

构建目录

按查询查找候选项,并保存相关对象以供后续补全。

市场研究

收集结果集,用于主题、创作者和竞品分析。

可用版本

响应版本

两个版本完成相同的任务,接受相同的参数。使用切换按钮比较响应结构,并选择您的客户端所需的版本。

响应版本 V2

在本页面切换版本,即可在同一文档 URL 下比较响应结构。

保持不变的部分

V1 和 V2 的身份验证、必填参数和请求结构均相同。实际上,您只需在构建端点路径和解析响应时选择版本。

版本之间的差异

主要区别在于响应结构。新集成请使用 V2;仅在需要兼容现有客户端契约时保留 V1。

使用方法

如何调用该方法

两个版本使用相同的 API 密钥请求头和相同的查询参数。本文档先展示共享的参数集合,然后展示各版本特定的端点路径和代码片段。

输入参数

共享参数
参数 必填 类型 示例 说明
query 是 str gaming 用户输入的搜索关键词。
cursor 否 str | None MTU= 上一次响应返回的下一页游标。获取第一页时请省略。

各版本的请求路径

V2

复制确切的端点路径、示例 URL 和代码片段时请选择版本。上方的参数列表保持不变。

GET /api/v2/twitch.tv/search/channels-by-query

规范化格式

代码示例

curl --request GET \
  --url "https://www.scrapestorm.net/api/v2/twitch.tv/search/channels-by-query" \
  --header "X-API-Key: 00000000-0000-4000-8000-000000000000" \
  --get --data-urlencode 'query=gaming' \
  # Optional parameters:
  # --data-urlencode 'cursor=MTU='
响应示例

按版本查看真实响应

预览保留了关键字段和集合中的前几项,便于您快速浏览响应结构。切换版本会改变 JSON 格式。

响应示例

V2 响应 JSON

已验证示例

此简明 JSON 示例来自 V2 最近一次成功的验证运行。

{
  "success": true,
  "status": "ok",
  "pagination": {
    "cursor": "MTU=",
    "has_more": true
  },
  "search_context": {
    "query": "gaming"
  },
  "data": {
    "channels": {
      "count": 15,
      "items": [
        {
          "rank": 1,
          "channel_url": "https://www.twitch.tv/yourragegaming",
          "user_id": "36926489",
          "username": "yourragegaming",
          "display_name": "yourragegaming",
          "description": "business email: [email protected]",
          "hashtags": [],
          "emails": [
            "[email protected]"
          ],
          "is_partner": true,
          "is_live": true,
          "follower_count": 2186002,
          "stream": {
            "stream_id": "317673742808",
            "type": "live",
            "title": "THE LAST DAY OF STREAMER UNIVERSITY",
            "game": {
              "game_id": "1266647210",
              "slug": "streamer-university",
              "name": "Streamer University",
              "display_name": "Streamer University"
            },
            "started_at": "2026-07-19T18:48:14.478092Z",
            "viewer_count": 28674,
            "preview_image_url": "https://example.com/image.jpg",
            "vertical_preview_image_url": "https://example.com/image.jpg",
            "template_preview_image_url": "https://example.com/image.jpg",
            "width": 1920,
            "height": 1080,
            "tags": [
              "English",
              "DropsEnabled"
            ]
          },
          "latest_video": null,
          "top_clip": {
            "clip_id": "2458060911",
            "slug": "TemperedObeseEmuGOWSkull-TkplcOVYES82I1Ff",
            "title": "Rage got caught bouncing on it",
            "clip_url": "https://clips.twitch.tv/TemperedObeseEmuGOWSkull-TkplcOVYES82I1Ff",
            "preview_thumbnail_url": "https://example.com/image.jpg",
            "duration_seconds": 40
          },
          "avatar_url": "https://example.com/image.jpg"
        },
        {
          "rank": 2,
          "channel_url": "https://www.twitch.tv/shaco_mid_lane",
          "user_id": "238583045",
          "username": "shaco_mid_lane",
          "display_name": "Shaco_Mid_Lane",
          "description": "Hi, I am a Challenger peak Shaco Mid Lane OTP. | Name: Arnoud Age: 26 Years old| Nationality: Dutch living in England | Interested in dirty off-meta picks | Server: EUW |Account…",
          "hashtags": [],
          "emails": [],
          "is_partner": true,
          "is_live": true,
          "follower_count": 22303,
          "stream": {
            "stream_id": "317285764707",
            "type": "live",
            "title": "Shaco Mid OTP JUNGLE ARC to Challenger😱🤡 |- EUW | !doc !guide Clown Vibes! 1000 FPS GAMING | 67 - Internet IMPROVED!",
            "game": {
              "game_id": "21779",
              "slug": "league-of-legends",
              "name": "League of Legends",
              "display_name": "League of Legends"
            },
            "started_at": "2026-07-19T11:14:03.335285Z",
            "viewer_count": 185,
            "preview_image_url": "https://example.com/image.jpg",
            "vertical_preview_image_url": "https://example.com/image.jpg",
            "template_preview_image_url": "https://example.com/image.jpg",
            "width": 1920,
            "height": 1080,
            "tags": [
              "English",
              "Shaco",
              {
                "_more_items": 7
              }
            ]
          },
          "latest_video": null,
          "top_clip": {
            "clip_id": "2723348829",
            "slug": "CleverAssiduousNikudonKlappa-rObE8B1NumZyagtA",
            "title": "6 7 guys, 6 7",
            "clip_url": "https://clips.twitch.tv/CleverAssiduousNikudonKlappa-rObE8B1NumZyagtA",
            "preview_thumbnail_url": "https://example.com/image.jpg",
            "duration_seconds": 21
          },
          "avatar_url": "https://example.com/image.jpg"
        },
        {
          "_more_items": 13
        }
      ]
    }
  }
}
下一步

继续评估

将本文档作为第一个决策点,然后在将端点接入常规使用之前,继续了解价格、平台覆盖范围和集成规则。

打开 Twitch 平台页面

在实现之前,比较相邻的实体、API 方法分组和相关文档。

打开平台页面

比较 API 方法价格

在扩大使用规模之前,查看此 API 方法在公开价格表中的位置。

查看价格

查看集成规则

通过入门文档确认身份验证、版本管理、重试以及模拟环境与正式环境的差异。

打开文档
常见问题

团队在实现前常问的问题

借助这些解答,判断此 API 方法是否适合您的工作流、版本选择和上线计划。

此 Twitch API 方法返回哪些数据?

该方法针对搜索执行“按查询获取频道”操作。下方的简明响应示例展示了确切的字段结构。

应该选择 V1 还是 V2?

新集成请选择 V2,因为它提供规范化的结构。仅在兼容已使用平台原生格式的客户端时使用 V1。

第一个请求需要准备什么?

创建 API 密钥,在请求头中发送它,并提供表格中的必填参数。代码示例中已包含正确的路径和请求结构。