Zhihu API
Read questions, answers, comments and replies, user profiles, the hot list and content search from Zhihu over REST: 8 live endpoints, one API key and one JSON envelope. Below are all of them and a real request and response.
A new account gets 50 trial calls; after that, successful calls are billed from a prepaid balance. See pricing.
8 Zhihu API endpoints
Parameters, response fields and code samples for each are in the API reference.
- Zhihu question detail
GET /v1/raw/zhihu/questionOne Zhihu question: title and description (plain text, its images listed apart), answer, follower, view and comment counts, asked and last-edited times (Beijing time). This route does not name the asker. A question that does not exist answers 404 and is not charged.Required: question_id - Zhihu question answers
GET /v1/raw/zhihu/answersAnswers to one question, up to 20: text (plain text, its images listed apart), author (with followers), upvotes, comments, saves, published and edited times, as the same records as answer detail (same ids). Zhihu's default order or newest first. First page only: Zhihu's next page cannot be reached through the current source. A question without answers answers empty, one that does not exist 404 or empty; neither is charged.Required: question_id - Zhihu answer detail
GET /v1/raw/zhihu/answerOne answer: text (plain text, its images listed apart), author, its question (title and ID), published and edited times, as the same record as the answer list (same id). This route carries no upvote, comment or save counts (null): raw.zhihu.answers and raw.zhihu.article_search do. An answer that does not exist answers 404 and is not charged.Required: answer_id - Zhihu answer comments
GET /v1/raw/zhihu/commentsFirst-level comments of an answer, cursor-paginated, 10 a page: text, likes, reply count, IP location, time (Beijing time), whether it is a hot comment, and the commenter. Hottest first (the default) or newest first. Pass the previous page's cursor back to continue; stop when has_more is false. Replies come from raw.zhihu.comment_replies. An answer without comments, or one that does not exist, answers empty and is not charged.Required: answer_id - Zhihu comment replies
GET /v1/raw/zhihu/comment_repliesReplies under one first-level comment, cursor-paginated, up to 20 a page: text, likes, IP location, time (Beijing time), the reply it answers, and the replier. Hottest first (the default) or oldest first. Pass the previous page's cursor back to continue; stop when has_more is false. A comment without replies answers empty and is not charged.Required: comment_id - Zhihu user profile
GET /v1/raw/zhihu/userA Zhihu user's profile: nickname, followers, answer and article counts, verification, whether it is an organisation, IP location, employers listed on the profile, headline and avatar. Pass the url_token (from zhihu.com/people/<url_token>). This route carries no following or upvote totals. A user that does not exist answers 404 and is not charged.Required: url_token - Zhihu hot list
GET /v1/raw/zhihu/hot_listZhihu's hot list, about 30 questions in rank order: title and excerpt, answer and follower counts, rank, heat (「1848 万热度」 is 18480000), the new or hot label and a picture, as the same records as question detail (same ids). The list carries no view or comment counts (null). - Zhihu content search
GET /v1/raw/zhihu/article_searchKeyword search over Zhihu answers and articles; answers are the same records as answer detail (same ids). Answers or articles only, sort by relevance, most upvoted or newest, filter by publish time (Zhihu applies it loosely). Pass the previous page's cursor and search_id back to continue (adjacent pages may repeat a few records: deduplicate by id); stop when has_more is false. No results answers empty and is not charged.Required: keyword
A request and its response
Zhihu question detail(GET /v1/raw/zhihu/question). The sample comes from the endpoint catalog, not live data; a full response also carries request_id and meta.
curl 'https://api.qovia.ai/v1/raw/zhihu/question?question_id=2096149013556721446' \ -H "Authorization: Bearer $QOVIA_KEY"
{
"data": {
"id": "soc_zhi_66b674e3553a",
"src": "social",
"platform": "zhihu",
"lang": "zh-CN",
"text": "医保个人账户跨省共济落地全国,意味着什么?将带来哪些利好?\n近日,国家医保局上线医保钱包2.0版。自10月16日起,全国各省、自治区、直辖市及新疆生产建设兵团已全部上线运行,职工医保个人账户跨省共济在全国全面落地。\n职工医保个人账户跨省共济,依托全国统一医保信息平台设立个人医保钱…",
"author": null,
"metrics": {
"answers": 215,
"followers": 1189,
"views": 795008,
"comments": 18
},
"extra": {
"source_id": "2096149013556721446",
"content_type": "question",
"title": "医保个人账户跨省共济落地全国,意味着什么?将带来哪些利好?",
"published_at": "2026-10-21T08:01:09+08:00",
"updated_at": "2026-10-21T08:01:09+08:00",
"question_type": "normal",
"images": [
"https://pic3.zhimg.com/v2-45bde134b33053a220851030596f9a10_r.jpg"
],
"url": "https://www.zhihu.com/question/2096149013556721446"
},
"prov": {
"hash": "0xc4475716f5e931bd",
"ts": "2026-10-21T23:45:00+08:00",
"source": "live"
}
}
}Use Zhihu data from an AI tool
Qovia is also an MCP server. Run this in Claude Code. Finding and reading endpoints needs no key; to call them, set up your API key as in the MCP docs. Cursor and VS Code setups are there too.
claude mcp add --transport http qovia https://api.qovia.ai/mcpFAQ
How do I call the Zhihu API?
Send a GET request to https://api.qovia.ai, for example /v1/raw/zhihu/…, with your API key in an Authorization: Bearer header. A success is HTTP 200 with request_id, data and meta. This page lists all 8 endpoints, and each one's parameters are in the API reference.
What Zhihu data can I get?
Question detail (title, description, and answer, follower, view and comment counts), a question's answers, a single answer, an answer's first-level comments and replies, user profiles, the hot list (about 30 questions) and keyword search over answers and articles.
Can I get every answer to a question?
No. The answers endpoint returns the first page only, up to 20, in Zhihu's default order or newest first; paging past it is not available today. For more, use keyword search, which pages through and returns answers as the same records as answer detail.
Where do I find a user's or a question's ID?
The user endpoint takes the url_token, the part of the profile link zhihu.com/people/<url_token>; the question endpoints take the numeric question ID from the question's link, and the answer endpoint takes the answer ID.
Do I need a Zhihu account or cookies?
No. All you need is a Qovia API key: no accounts, cookies, proxies or request signing to maintain.
How is it billed?
Prepaid and per call: only successful calls that return data are charged, and empty results, errors and timeouts are not. Every response says what it cost (meta.charged_usd). Each endpoint's price is in the API reference.
Can I use it from Claude, Cursor or other AI tools?
Yes. Qovia is also an MCP server (https://api.qovia.ai/mcp): add it to Claude Code, Cursor or VS Code with your API key and the AI finds the endpoint, pulls the data and summarises it.
What should I keep in mind when using the data?
Qovia provides a data API service and claims no ownership of the underlying content. Use the data under applicable law and Zhihu's platform rules; see our terms of service.
Your agent only knows what you give it
Give it Douyin, Xiaohongshu (RedNote), WeChat and product reviews: structured, per call, nothing charged for failures.