Zhihu APIzhihu.com ↗
Retrieve Zhihu's 热榜 (hot list) by category. Get up to 50 ranked trending questions with heat scores, answer counts, follower counts, and excerpts.
What is the Zhihu API?
The Zhihu API exposes one endpoint — get_hot_list — that returns up to 50 ranked entries from Zhihu's 热榜 (hot list) across multiple topic categories. Each entry includes a heat score, answer count, follower count, and a text excerpt, giving you a structured snapshot of what questions and discussions are trending on China's largest Q&A platform at any given moment.
curl -X GET 'https://api.parse.bot/scraper/99d8dd43-e1da-4d01-878a-c42c17fd0b78/get_hot_list?category=total' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace zhihu-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Zhihu Hot List — browse trending topics across categories."""
from parse_apis.zhihu_com_api import Zhihu, Category, InputFormatInvalid
client = Zhihu()
# List top trending topics from the general hot list, capped at 5.
for topic in client.topics.list(category=Category.TOTAL, limit=5):
print(f"#{topic.rank} {topic.title} — {topic.detail_text}")
# Drill into a specific category and grab the first item.
top_science = client.topics.list(category=Category.SCIENCE, limit=1).first()
if top_science is not None:
print(f"Top science topic: {top_science.title}")
print(f" Answers: {top_science.answer_count}, Followers: {top_science.follower_count}")
print(f" URL: {top_science.url}")
# Demonstrate typed error handling for an invalid category value.
try:
client.topics.list(category="invalid_cat", limit=1).first()
except InputFormatInvalid as e:
print(f"Caught expected error: {e.message}")
print("exercised: topics.list (TOTAL) / topics.list (SCIENCE) / InputFormatInvalid")
Retrieve the current Zhihu hot list (热榜) for a given category. Returns up to 50 ranked trending questions with metadata including heat score, answer count, follower count, and excerpt. Each category returns approximately 30 items. The list refreshes periodically throughout the day.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of items to return. Clamped to 50. |
| category | string | Hot list category to retrieve. Omitting returns the general/total hot list. |
{
"type": "object",
"fields": {
"items": "Array of hot list entries, ranked by heat",
"total": "Number of items returned",
"category": "The category that was queried",
"fresh_text": "Update status text from the platform"
},
"sample": {
"data": {
"items": [
{
"url": "https://www.zhihu.com/question/2070596968058041957",
"rank": 1,
"debut": false,
"title": "小龙虾线下堂食遇冷,杭州一小龙虾店日销从五百斤跌到一百斤,小龙虾卖不动了吗?为什么会出现这一变化?",
"trend": 0,
"excerpt": "夏天的餐桌上最不缺的应该就是小龙虾...",
"detail_text": "413 万热度",
"question_id": 2070596968058041900,
"answer_count": 139,
"follower_count": 236
}
],
"total": 30,
"category": "total",
"fresh_text": "热榜已更新"
},
"status": "success"
}
}About the Zhihu API
What the API Returns
The get_hot_list endpoint returns an array of ranked trending items under the items field, along with a total count, the queried category, and a fresh_text string indicating when the list was last updated by the platform. Each entry in the array represents a question or topic currently trending on Zhihu, ordered by heat.
Parameters and Filtering
Two optional inputs control what you get. The category parameter selects which Zhihu hot list to query — omitting it returns the general (全站) hot list. The limit parameter caps the number of returned items up to a maximum of 50; most category lists contain approximately 30 items. The list refreshes periodically throughout the day, so repeated calls at different times will reflect updated rankings.
Response Fields and Coverage
Each item in the items array carries metadata you can use for trend analysis: a numeric heat score indicating relative popularity, the total number of answers submitted to the question, the number of users following the question, and a short excerpt summarizing the topic. The fresh_text field surfaces the platform's own update-status text, which is useful for knowing how stale or current the snapshot is.
Data Scope
The API covers Zhihu's category-specific hot lists, making it suitable for tracking topic trends across different subject areas — from technology and finance to entertainment and current events. Individual question details, user profiles, full answer content, and comment threads are outside the current scope of this endpoint.
The Zhihu API is a managed, monitored endpoint for zhihu.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when zhihu.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official zhihu.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track daily trending topics in China by monitoring heat score changes across Zhihu categories.
- Feed the
categoryparameter to compare trending questions across different subject areas simultaneously. - Use follower counts and answer counts from
itemsto gauge audience depth behind a trending question. - Build a Chinese social trend dashboard by polling
get_hot_listat intervals and storing thefresh_texttimestamp. - Filter high-heat questions by heat score to identify breakout topics for content or market research.
- Aggregate trending question excerpts across categories to detect cross-domain topic spikes.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Zhihu have an official public developer API?+
What does the `fresh_text` field contain?+
fresh_text is a string returned by the platform alongside the hot list, indicating the recency or update status of the current list snapshot — for example, text like '3 minutes ago'. It reflects when the hot list was last refreshed, not when your API call was made.Which categories can I query with the `category` parameter?+
category parameter accepts the category identifiers Zhihu uses for its hot list sections (such as technology, entertainment, or finance topics). Omitting the parameter returns the general 全站 hot list. You can test which category slugs are active by querying and checking the returned category field in the response.Can I retrieve the full answer content or comments for a trending question?+
Is there pagination for browsing beyond the top 50 items?+
limit parameter is clamped at 50, and the API does not expose pagination or offset parameters for scrolling further through the hot list. The hot list itself is also capped at approximately 30 items per category on the platform side. You can fork this API on Parse and revise it to expose additional list pages if the underlying source supports them.