Answers
What is __biz in a WeChat article link?
Short answer
__biz identifies the Official Account that published the article: a Base64 string such as MzA5NTI3MjIwMA==, the same on every article from that account, that decodes to a plain number. Short /s/ links do not show it. okdata's article detail takes either link form for $0.02 and returns the account's gh_ ID; Official Account search returns __biz itself as ext.biz.
Open a WeChat article in a browser and the long form of its address looks like mp.weixin.qq.com/s?__biz=MzA5NTI3MjIwMA==&mid=2650412873&idx=1&sn=…. The first parameter, __biz, says which Official Account published it. Every article from that account carries the same value, and so does the account's profile page link (mp.weixin.qq.com/mp/profile_ext?action=home&__biz=…). That is why older scrapers and RSS tools ask for "the biz": it is the only account identifier that sits in plain sight in a web link.
What it looks like
- A Base64 string, almost always 16 characters ending in
==, such asMzA5NTI3MjIwMA==. In links copied out of HTML or other URLs it may appear percent-encoded, asMzA5NTI3MjIwMA%3D%3D. - Decode it and you get a decimal number:
MzA5NTI3MjIwMA==is3095272200. The number has no other public use; keep the Base64 form, which is what every tool expects. - It never appears in the short form of a link,
mp.weixin.qq.com/s/followed by a short code. Both forms open the same article; see mid, idx and sn for the rest of the long form.
How it differs from the other account IDs
| ID | Looks like | Where you see it |
|---|---|---|
__biz |
MzA5NTI3MjIwMA== |
Long article links, profile links |
| Original ID | gh_ + 12 hex characters |
Account settings, page source, APIs |
| WeChat ID | a short handle such as brand_news |
The account's profile in WeChat |
None can be computed from another. You map them by looking them up; finding an account's IDs covers that from a name.
How the API relates to it
- Official Account article detail takes a short or long article link. It returns the full text and
author.id, the account's original ID (gh_…). Theurlit returns is normally the long form, from which you can read__biz. - Official Account article history takes the original ID or WeChat ID, not
__biz. Each article'surlin the list is a long link with__bizin it. - Official Account search with
view=fullreturnsext.bizfor each account found, andurlis the profile link built from it.
| Task | Calls | Cost |
|---|---|---|
| One article link to full text and gh_ ID | 1 | $0.02 |
| One account name to gh_ ID and biz | 1 | up to $0.58, $0.058 per account found |
| Latest 10 articles by gh_ ID | 1 | $0.02 |
Example: read __biz from any article link
import base64, os, requests
from urllib.parse import urlparse, parse_qs
r = requests.get("https://api.okdata.online/v1/wechat_mp/articles/get",
headers={"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"},
params={"url": "https://mp.weixin.qq.com/s/k3Vq8ZtYwLr2PxN0aHd5Fg",
"fields": "id,url,title,author.id,author.name"},
timeout=60)
item = r.json()["data"]["item"]
biz = parse_qs(urlparse(item["url"]).query).get("__biz", [None])[0]
print(item["author"]["id"], biz, base64.b64decode(biz).decode() if biz else None)
Limits
- An account that went through WeChat's account migration ends up with new IDs; look it up again rather than trusting an old biz.
- Deleted articles return
not_found, which is not charged. - Getting the article text itself is covered in full text from a mp.weixin.qq.com link.
Sources
- V2EX: a WeChat article is identified by biz + mid + idx, and mid is unique within one account
- ClearURLs rules: a WeChat article link only needs __biz, mid, idx and sn (issue #13)
Where people asked this (read 2026-11-12)
Updated