# 微博热搜榜有接口吗？怎么用代码获取？

> 一次 HTTP 调用或一个 MCP 工具拿到微博热搜榜的排名、话题、热度和链接，不用登录微博。价格、代码，以及这个接口不包含什么。

网页版：https://okdata.online/zh/answers/weibo-hot-search-api/

**简短回答：**有。微博热搜接口（/v1/weibo/trends/list）返回当前整张榜单，约 50 条，每条带排名、话题、热度和搜索链接，每次调用 $0.002。不需要微博账号、Cookie，也不用过开放平台审核，榜单里的推广位已经去掉。

微博没有对外公开、带文档的热搜接口。大多数人要么解析热搜网页，要么调一个没有文档的内部 JSON 地址，字段说改就改。在 okdata 上，热搜榜就是一次 GET 请求：拿到的是此刻榜上的话题、排名，以及微博页面上显示的热度值。做舆情日报、开选题会、给大模型喂当天热点，都够用。

## 用哪个接口

[微博热搜](/zh/apis/weibo/trends/list/)不需要任何参数，每一行有四个字段：

| 字段 | 含义 |
|---|---|
| `rank` | 在榜单上的位置，1 是第一 |
| `name` | 话题文字，不带 # 号 |
| `heat` | 微博显示的热度值，页面上没显示时为 null |
| `url` | 这个话题的微博搜索链接 |

推广位在返回之前已经过滤掉了，所以排名可能会在广告原来的位置跳过一个数，这是正常的。

## 价格

| 频率 | 调用次数 | 费用 |
|---|---|---|
| 查一次 | 1 | $0.002 |
| 一天里每小时一次 | 24 | $0.048 |
| 连续 30 天每小时一次 | 720 | $1.44 |

整张榜只有一页，调一次就是完整榜单。没有月费套餐，调用失败不扣费。

## Python 示例

```python
import os, requests

r = requests.get(
    "https://api.okdata.online/v1/weibo/trends/list",
    headers={"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"},
    timeout=30,
).json()
if r["code"] != "ok":
    raise SystemExit(f"{r['code']}: {r['message']}")

for row in r["data"]["items"][:10]:
    print(row["rank"], row["name"], row["heat"])
```

如果结果是给模型读的，加上 `fields=rank,name,heat`，返回内容能短一大截。

## 这个接口管不到的

- 只有此刻的榜单，没有日期参数。想要昨天的榜，只能昨天自己存下来。
- 文娱榜、同城榜、要闻榜没有单独的接口。
- 想看网友在某个热搜话题下说了什么，拿话题词去[微博搜索](/zh/apis/weibo/posts/search/)里搜，每页 $0.002。

## 其他办法

- 一天只看两三次的话，直接打开微博热搜页面看就好，免费，也比写代码快。
- GitHub 上有不少定时抓热搜的开源项目。愿意自己维护、能接受微博改版后偶尔要修一修，用它们很合适。
- 如果需要和微博本身签正式协议，走微博开放平台，那边的接口需要开发者账号并通过审核。

想把微博和抖音、B 站、小红书的榜单放在一起看，参考[趋势研究方案](/zh/solutions/trend-research/)；在 Claude 这类智能体里直接调用同一个接口，见 [MCP 页](/zh/mcp/)。

## 用到的接口

- [微博热搜](https://okdata.online/zh/apis/weibo/trends/list/) `weibo.trends.list`：$0.002/次 · 每页约 50 条榜单
- [微博搜索](https://okdata.online/zh/apis/weibo/posts/search/) `weibo.posts.search`：$0.002/次 · 每页约 10 条帖子

更新于 2026-11-12
