# 快手 热搜人物榜 API (kuaishou.hot_person_board)

- Canonical page: https://everyinfra.com/kuaishou-api/hot_person_board
- Endpoint: POST /api/v1/social with {"platform": "kuaishou", "action": "hot_person_board", "params": {...}}
- Price: $0.000806 per call ($0.81 per 1,000 requests); failed and empty results are not charged
- Returns: list, default 50, max 50 per call (larger values are capped)
- Mode: sync; add "mode": "async" for slow tasks

快手热搜人物榜不需要参数，返回整张热搜人物榜，每行带名次、昵称、快手用户 ID、头像、人气值，以及快手给出的上榜原因 `reason`，比如作品更新、近期搜索量飙升。它回答「快手上这几天谁突然火了、为什么火」，适合娱乐和社会新闻选题、达人经纪发掘新人，以及品牌在合作前弄清一个人物的热度从哪来。

榜上的 `user_id` 可以直接拿去查这个人的作品和直播状态；`popularity` 只在这张榜内比较。整张榜最多 50 位，`limit` 填得再大也只回 50 条，每一行的 `type` 都是账号。人气原本是「15.5 万人气」这种带单位的写法，返回时已换算成 155000；头像链接 `avatar_url` 可能有时效，要存档就先下载。

## Health

- Live health (24h percent, hourly and daily trends): https://api.everyinfra.com/api/v1/social/availability?platform=kuaishou&action=hot_person_board

## Parameters

| name | type | required | default | description |
|---|---|---|---|---|
| limit | integer (1–50) | no | 50 | 这次调用最多返回的条数，整数，1–50；不传按默认值，实际返回可能少于这个数。超过上限照收，按上限返回。 |

## Response fields (items in `results`)

| field | meaning |
|---|---|
| rank | 榜单名次，从 1 开始，按快手榜单顺序（trending、hot_boards：置顶的那条排第 1）。 |
| name | 上榜对象的名字（live_rank、shopping_rank、brand_rank、hot_person_board）：主播 / 品牌账号昵称，带货榜商品行是商品标题。 |
| type | 上榜对象的类型（rank 类能力）：user 账号（主播、品牌、人物）/ product 商品（只有 shopping_rank 的 products 榜）。 |
| user_id | 快手数字用户 ID（rank 类能力、user_search、user_live），可传 user_live 查直播状态。 |
| avatar_url | 头像图片链接。部分平台给的是带尺寸参数的 CDN 链接，可能有时效。 |
| reason | 上榜原因（hot_person_board），快手原文，如 作品更新、近期搜索量飙升。 |
| popularity | 榜单上显示的人气 / 热度，换成整数（「15.5万人气」→ 155000），快手自有指标，只在同一个榜里比较。 |
| platform | 数据来源平台标识，与请求里的 platform 一致（如 xiaohongshu、tiktok）。 |

## Example

```bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "kuaishou",
  "action": "hot_person_board",
  "params": {}
}'
```

```python
import os
import requests

response = requests.post(
    "https://api.everyinfra.com/api/v1/social",
    headers={"Authorization": f"Bearer {os.environ['EVERYINFRA_API_KEY']}"},
    json={
        "platform": "kuaishou",
        "action": "hot_person_board",
        "params": {},
    },
    timeout=120,
)
print(response.status_code)
print(response.json())
```

## Response example

No real sample for these example parameters yet: structure only, every value is a placeholder (…).

```text
{
  "id": "req_…",
  "platform": "kuaishou",
  "action": "hot_person_board",
  "results": [
    {
      "rank": …,
      "name": …,
      "type": …,
      "user_id": …,
      "avatar_url": …,
      "reason": …,
      "popularity": …,
      "platform": …
    }
  ],
  "count": …,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}
```

## FAQ

### `reason` 能看出什么？

`reason` 是快手写的上榜原因原文。把原因相同的条目归在一起，就能把因作品更新上榜的人和因搜索量突然上升上榜的人分开处理，后者通常要查一下背后发生了什么。`reason` 保留快手原文，没有换成固定分类，统计之前先看一遍实际出现过哪些写法；品牌榜没有这个字段。同一个 `reason` 下的人再按 `rank` 排，就能得到每类原因里最靠前的几位。

### 怎么判断一个人物是短暂走红还是持续走红？

每天读一次榜，按 `user_id` 记录上榜天数和 `rank` 变化。连续多天在榜、名次稳定的人物热度更持久；只出现一两天的，就是短期上榜。`popularity` 已经是整数，可以直接排序，但只在同一张榜里比较；名次看 `rank`，从 1 开始。跨天对账用 `user_id` 做键，`name` 只拿来展示；榜单每次整张返回，不需要翻页。

### 热搜人物榜里有直播场次 ID 吗？

没有。这张榜只给人物和上榜原因，不带直播场次 ID。想知道某个人此刻是否在播，把 `user_id` 传给快手的直播状态查询。品牌榜、直播榜这类榜单的主播行才带直播场次 ID，而且没在播时没有；人物榜每一行都是人物。两张榜的 `user_id` 都是快手数字用户 ID，同一个账号在两张榜里都出现时，可以拿它对上。

## Also

- Capability catalog (no key): https://api.everyinfra.com/api/v1/social/catalog?platform=kuaishou
- OpenAPI: https://everyinfra.com/openapi.json · Agents guide: https://everyinfra.com/agents.md
