# 微博的 uid、mid 和 bid 分别是什么？

> 微博的三个 ID：uid 对应账号，mid 对应微博，bid 是 weibo.com 链接里的短码。各自的格式、base62 换算和手算示例，以及每个接口要的是哪一个。

网页版：https://okdata.online/zh/answers/weibo-uid-mid-bid/

**简短回答：**uid 是账号的数字 ID，mid 是单条微博的数字 ID（现在是 16 位），bid 是同一个 mid 的 base62 写法，也就是 weibo.com/<uid>/<bid> 链接里那 9 位短码。okdata 的微博搜索把 mid 放在 id 里、把 bid 放在 url 里返回，每页 $0.002；微博账号信息接口要传数字 uid，每次 $0.002。

微博常见的标识有三个，其中两个其实是同一个数字换了身衣服。`uid` 指账号，`mid` 指一条微博，`bid` 是这条微博的 mid 用 base62 编码后的样子，就是你在微博地址里看到的那段：`weibo.com/6082913457/Qkz3PvVLT` 里，前面是作者的 uid，后面是 bid。

## 三个放在一起看

| | uid | mid | bid |
|---|---|---|---|
| 指什么 | 账号 | 一条微博 | 一条微博 |
| 格式 | 数字，一般 10 位 | 数字，现在的微博是 16 位 | 9 个字符，取自 0-9、a-z、A-Z |
| 例子 | `6082913457` | `5249013377610245` | `Qkz3PvVLT` |
| 在哪见到 | `weibo.com/u/<uid>`、各处的作者信息 | 网页版和 App 的 JSON（`mid`、`idstr`） | 微博链接（网页 JSON 里叫 `mblogid`） |

叫法并不统一。微博网页版和 App 的 JSON 里，`mid` 是数字字符串，短码叫 `mblogid`；而官方开放平台的文档里，`id` 是数字，“MID”反倒指 base62 那种写法：`statuses/querymid` 把数字 ID 换成 `8Ras3qlz` 这样的码，`statuses/queryid` 再换回来。哪个工具让你填“mid”，先确认它要的是纯数字还是字母数字混合。

## mid 怎么换成 bid

把数字 mid 从右往左每 7 位切一段。每段用字母表 `0-9a-zA-Z` 写成 62 进制，除了最左边那段，其余都左补 0 到 4 位。最后拼起来。

以 `5249013377610245` 为例：切成 `52`、`4901337`、`7610245` 三段；换成 62 进制分别是 `Q`、`kz3P`、`vVLT`；拼起来就是 `Qkz3PvVLT`。反过来时，把 bid 从右往左每 4 位切一段，逐段解码，再左补 0 到 7 位。我们拿 6 条真实微博核对过，它们的数字 mid 和链接短码出自同一次返回，6 条全部对得上。

## okdata 收什么、返回什么

| 接口 | 传什么 | 返回什么 | 费用 |
|---|---|---|---|
| [微博搜索](/zh/apis/weibo/posts/search/) | `query` | `id` 是 mid，`url` 是 weibo.com/uid/bid，`author.id` 是 uid | 每页 $0.002 |
| [微博账号信息](/zh/apis/weibo/users/get/) | `id` 传数字 uid | 账号资料，`id` 即 uid | $0.002 |

账号设置了个性域名时，`author.username` 里是这个域名，也就是 `weibo.com/somebrand` 这种链接里 `weibo.com/` 后面那段。账号信息接口不认个性域名，要传数字的 `author.id`。

## 示例

```python
import os, requests

ALPHA = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

def mid_to_bid(mid: str) -> str:
    parts, end = [], len(mid)
    while end > 0:
        start = max(0, end - 7)
        n, code = int(mid[start:end]), ""
        while n:
            n, r = divmod(n, 62)
            code = ALPHA[r] + code
        parts.insert(0, code.rjust(4, "0") if start else code or "0")
        end = start
    return "".join(parts)

assert mid_to_bid("5249013377610245") == "Qkz3PvVLT"

body = requests.get("https://api.okdata.online/v1/weibo/posts/search", timeout=60,
    headers={"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"},
    params={"query": "新品发布", "fields": "id,url,author.id,author.username"}).json()
for p in body["data"]["items"]:
    print(p["author"]["id"], p["id"], mid_to_bid(p["id"]), p["url"])
```

## 限制

- mid 和 uid 都按字符串存。16 位的 mid 超过了 Excel 保留的 15 位有效数字，JavaScript 里也别拿它做运算。
- 接口目录里没有按 ID 取单条微博的接口。mid 或 bid 能告诉你是哪一条，但在这里要通过搜索才能拿到微博内容。
- 改昵称不会改 uid，所以账号要按 uid 来区分，不要按昵称或个性域名。

知道 uid 想查粉丝数等资料，见[知道微博 UID，怎么拿到粉丝数和账号资料](/zh/answers/weibo-user-profile-by-uid/)。

## 用到的接口

- [微博搜索](https://okdata.online/zh/apis/weibo/posts/search/) `weibo.posts.search`：$0.002/次 · 每页约 10 条帖子
- [微博账号信息](https://okdata.online/zh/apis/weibo/users/get/) `weibo.users.get`：$0.002/次

## 更多微博内容

- [微博 API](https://okdata.online/zh/apis/weibo/)
- [微博 API Python 教程：关键词搜索、用户资料和热搜（2026）](https://okdata.online/zh/guides/weibo-api-python/)
- [微博和 B 站评论的 IP 属地，能通过接口拿到吗？](https://okdata.online/zh/answers/weibo-bilibili-ip-location-data/)
- [怎么找某个领域的微博博主（KOL）？](https://okdata.online/zh/answers/weibo-find-kols-in-niche/)
- [2026 年微博还有能读微博内容的开放 API 吗？](https://okdata.online/zh/answers/weibo-official-api-2026/)
- [做舆情分析，怎么批量采集某个话题的微博？](https://okdata.online/zh/answers/weibo-public-opinion-dataset/)
- [怎么把微博搜索结果导出成 Excel？](https://okdata.online/zh/answers/weibo-search-export-excel/)
- [账号信息接口](https://okdata.online/zh/roles/accounts-get/)
- [内容搜索接口](https://okdata.online/zh/roles/posts-search/)
- [微博热搜：今日榜单](https://okdata.online/zh/tools/hot-search/weibo/)

## 资料来源

- [微博开放平台：statuses/querymid（数字 ID 转 base62 的 MID）](https://open.weibo.com/wiki/2/statuses/querymid) (读取于 2026-11-12)
- [微博开放平台：statuses/queryid（base62 的 MID 转数字 ID）](https://open.weibo.com/wiki/2/statuses/queryid) (读取于 2026-11-12)
- [微博开放平台：users/show](https://open.weibo.com/wiki/2/users/show) (读取于 2026-11-12)

这个问题出现过的地方（读取于 2026-11-12）：

- https://github.com/dataabc/weiboSpider/issues/236
- https://www.v2ex.com/t/461346
- https://github.com/nghuyong/WeiboSpider/issues/276

更新于 2026-11-12
