/v1/search"platform": "bilibili"B 站搜索接口
按关键词找视频。
按关键词搜 B 站视频,拿回正文、作者、点赞数、评论数、播放或阅读数和发布时间:用 HTTP 取 JSON,或在 AI 客户端里通过 MCP 调用。B 站搜索 API(数据接口)每次调用 2 积分(约 $0.004–$0.0067),失败不扣,返回格式和其他调用相同。最近实测:2026-11-05。
最近更新:
limit: 100,一次调用自动翻页,最多 5 页、10 积分。够数或没有下一页就停,用不上的页不扣,失败的页也不扣。读 1,000 条约 100 积分,约 ¥2.4($0.33)。每日监控:对你的 AI 说“每天帮我盯着”,这个调用每天自己跑,只把新内容发给你,一个月最多 62 积分,约 ¥1.5($0.21)。 看怎么设
调用 B 站搜索,你会拿到什么。
取自一次录制的返回。
录制的一次调用返回了 20 条,下面是第一条的每个字段。名称和正文在示例里去掉了,数字是录制时的真实值。
给 AI 读更省:同一份录制数据(20 条),平台原始 JSON 约 10,092 token,这个接口返回约 4,935 token,少 51%(2026-11-06 实测)。 测量方法
| 字段 | 录制时的值 |
|---|---|
| url | 示例里已去掉 |
| format | video |
| title | 示例里已去掉 |
| text | null |
| published_at | 2026-09-30T08:55:00.000Z |
| author.id | 示例里已去掉 |
| author.username | null:B 站给不了 |
| author.name | 示例里已去掉 |
| author.verified | null:B 站给不了 |
| author.followers | null:B 站给不了 |
| metrics.likes | 237 |
| metrics.comments | 64 |
| metrics.shares | null:B 站给不了 |
| metrics.collects | 169 |
| metrics.views | 35,706 |
| metrics.reposts | null:B 站给不了 |
| images | null:B 站给不了 |
| hashtags | 2 项 |
| is_pinned | null:B 站给不了 |
每次 2 积分(≈ $0.004–$0.0067),$10 约够 1,500 次。
B 站搜索的请求与返回
curl https://api.socialtoai.com/v1/search \ -H "Authorization: Bearer $SOCIALTOAI_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "platform": "bilibili", "query": "机械键盘" }'import osimport uuidimport requestsresponse = requests.post( "https://api.socialtoai.com/v1/search", headers={ "Authorization": f"Bearer {os.environ['SOCIALTOAI_API_KEY']}", # A new key for each request; the same one again retries it without paying twice. "Idempotency-Key": str(uuid.uuid4()), }, json={ "platform": "bilibili", "query": "机械键盘", },)print(response.json())# 已经通过 MCP 接好了?直接用大白话问。在 B 站上搜和“机械键盘”有关的视频。# 你的 AI 会调用 search 工具,参数是:{ "platform": "bilibili", "query": "机械键盘"}sort{ "platform": "bilibili", "status": "ok", "items": [ { "platform": "bilibili", "id": "…", "ref": "…", "approx": [], "type": "content", "url": "https://example.com/…", "format": "video", "title": "…", "text": null, "published_at": "2026-09-30T08:55:00.000Z", "author": { "id": "…", "username": null, "name": "…", "verified": null, "followers": null }, "metrics": { "likes": 237, "comments": 64, "shares": null, "collects": 169, "views": 35706, "reposts": null }, "images": null, "hashtags": ["…", "…"], "is_pinned": null } ], "unavailable": ["author.username", "author.verified", "author.followers", "metrics.shares", "metrics.reposts", "images", "is_pinned"], "page": { "has_more": true, "cursor": "cur_…", "cursor_expires_at": "2026-10-12T19:17:48.000Z" }, "cost_credits": 2}nullcollects 169views 35,706示例里的名称和正文已去掉,数字是录制时的真实值。
B 站搜索的参数。
4 个,2 个必填。
用 POST 发一个 JSON 请求体。Key 放在 Authorization 请求头里,不要放进网址。
| 名称 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| platform | string | 必填 | — | 这一页固定填 "bilibili"。 |
| query | string | 必填 | — | 搜索词 |
| sort | string | 选填 | "relevance" | 按相关度、按发布时间(新的在前)或按播放数排"relevance""latest""popular" |
| cursor | string | 选填 | — | 填上一次返回的 page.cursor,取下一页。 |
B 站搜索返回的字段。
B 站给不了的标出来了。
| 字段 | 类型 | 含义 |
|---|---|---|
| items[].url | string | 能直接打开的链接。 |
| items[].format | string | video、image、text 或 article。 |
| items[].title | string | 标题。 |
| items[].text | string | 正文或文案。 |
| items[].published_at | string | 发布时间,ISO 8601(UTC)。 |
| items[].author.id | string | 作者的账号编号。 |
| items[].author.username | string始终 null | 作者的账号名。 |
| items[].author.name | string | 作者的显示名。 |
| items[].author.verified | boolean始终 null | 作者是否认证。 |
| items[].author.followers | integer始终 null | 作者的粉丝数。 |
| items[].metrics.likes | integer | 点赞数。 |
| items[].metrics.comments | integer | 评论数。 |
| items[].metrics.shares | integer始终 null | 分享数。 |
| items[].metrics.collects | integer | 收藏数。 |
| items[].metrics.views | integer | 播放或阅读数。 |
| items[].metrics.reposts | integer始终 null | 转发数。 |
| items[].images | string[]始终 null | 图片地址。 |
| items[].hashtags | string[] | 话题标签,不带 #。 |
| items[].is_pinned | boolean始终 null | 是否被作者置顶。 |
nullB 站给不了的字段null 的意思是“B 站没给这个值”,不要当成 0。这些字段在这个调用里始终是 null:
author.username作者的账号名。author.verified作者是否认证。author.followers作者的粉丝数。metrics.shares分享数。metrics.reposts转发数。images图片地址。is_pinned是否被作者置顶。
和抖音搜索比,这个调用多给播放或浏览,少给作者粉丝数、分享和图片。
每一条另有 platform、id、ref、approx、type;items 外面的部分每个调用都一样。 返回格式
B 站搜索的翻页与计费。
每把 Key 每秒 5 次,购买后 20 次;超出不扣费。 频率限制
失败的调用 0 积分,不会自动重试。 错误码
首屏的“最近实测”是最近一次真实调用成功的日子。每次调用从平台读取,返回里的 fetched_at 是读取时间;同一把 Key 5 分钟内重发完全相同的请求算重放(replayed: true),0 积分,返回第一次读到的结果。
接好 MCP 后,这样问就会用到 B 站搜索。
在 B 站上搜和“机械键盘”有关的视频。
2 积分search {"platform":"bilibili","query":"机械键盘"}在 B 站上搜和“机械键盘”有关的视频,sort 取 latest。
2 积分search {"platform":"bilibili","query":"机械键盘","sort":"latest"}
交给你的 AI。
复制给 Claude 或 ChatGPT。
怎么接用 SocialToAI 的 MCP 服务(https://mcp.socialtoai.com/mcp)完成这件事:在 B 站上搜和“机械键盘”有关的视频。调用 search 工具,参数是 {"platform":"bilibili","query":"机械键盘"}。必填:query;可选:sort(relevance、latest、popular)。要多条就传 limit(比如 limit=100,最多 5 页),一次调用自动翻页,不用自己一页页取;每页 2 积分,用不上的页不扣。开跑前先算出总共要多少积分,问我同意了再调用。拿到结果后,可以接着调:detail(详情)、comments(评论),用返回的 ref 或 username。如果还没接上 SocialToAI,告诉我怎么接,不要让我把 Key 贴进对话。回答时附上你用到的每一条的链接,最后告诉我花了多少积分。接好 MCP 后把这段话贴进对话。里面没有 Key:在 Claude 和 ChatGPT 里登录授权,其他客户端把 Key 放在请求头里。
这些工具运行时会调用它。
用到它的工作场景。
同一个调用,换个平台。
全部平台和价格/v1/search{ "platform": "bilibili", "query": "机械键盘" }2 积分每次调用接着看。
官方能做什么、谁能申请、多少钱,带来源。
让你的 AI 直接读 B 站。