Xiaohongshu Note Comments Scraper
Pricing
$0.10 / actor start
Xiaohongshu Note Comments Scraper
💬 Xiaohongshu note comments scraper | 小红书笔记评论爬虫 Fetch the public comment list for a Xiaohongshu note by `note_id` or `share_text`. Supports cursor-based pagination (page 1-10) with cursor + index + pageArea tokens, and three sort strategies (hot / newest / earliest).
Pricing
$0.10 / actor start
Rating
0.0
(0)
Developer
wang wei
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
2
Monthly active users
13 days ago
Last modified
Categories
Share
✨ What you get
Fetch the public comment list for a Xiaohongshu note by note_id or share_text. Supports cursor-based pagination (page 1–10) with three sort strategies: latest, most liked, or default.
When both
note_idandshare_textare provided,note_idwins.
💼 Use cases
- Mining what an audience actually said under a post — give it a
note_idand each comment arrives withcontent,publishTime,publishTimeText,ipLocationandlikedCount, which is the raw material for objection mining, language mining and comment-section tone analysis. - Reconstructing reply structure —
targetCommentIdandtargetUserNicknamemark each reply and who it points at, so a thread can be assembled as a conversation instead of a flat list. - Finding the comments worth reading first —
sort_strategy: like_countorders the thread by likes, which surfaces the highest-signal comments on a popular post without paging through all of it. - Walking a long thread with stable pagination —
latest_v2plus thenextCursor,nextIndexandnextPageAreatokens from the previous run lets a ten-page sweep of one thread run without losing its place.
✅ Who this is for
- Community and social listening analysts — who treat comment sections as the honest signal under a post.
- Product teams — looking for recurring objections, questions and complaints in user language.
- Xiaohongshu KOL managers — vetting a creator by how their audience responds, not by the like count on the post.
- Researchers archiving a discussion — where the replies matter more than the post itself.
❌ Who this is NOT for
- Anyone expecting the complete thread — pagination is capped at 10 pages per run (the
MAX_PAGES_HARD_CAPceiling), so a heavily commented note returns only the first ten pages of comments and the rest needs another run chained from the last cursor. - Pagination with
sort_strategy: default— the default strategy is unstable across pages and can skip or duplicate comments. Uselatest_v2if you intend to page, and dedupe oncommentIdregardless. - Getting the parent post's content — this Actor returns comments only. To pair
commentCountwith an actual title, image list or author profile you need the matching note detail Actor as the second step. - Free-tier comment collection at volume — free users get 5 runs per day and each run can be up to 10 upstream requests, so a day's budget is small relative to how many notes a comment archive normally touches.
- Share text that has no link in it — the URL extractor requires at least one http(s) URL, so a paste containing only the title or Chinese characters is rejected instead of being looked up.
🚀 Quick start
1. Run with Example Input
{"note_id": "697c0eee000000000a03c308","page": 1,"sort_strategy": "latest_v2"}
Or paste the full app share text:
{"share_text": "美食 https://www.xiaohongshu.com/explore/abc?xsec_token=xyz 复制打开","page": 1,"sort_strategy": "latest_v2"}
2. Paginate to the next page
After the first run, the SUMMARY record contains nextCursor, nextIndex, and nextPageArea. Pass them back as inputs for the next run:
{"note_id": "697c0eee000000000a03c308","page": 2,"cursor": "<paste nextCursor>","index": <paste nextIndex>,"pageArea": "UNFOLDED","sort_strategy": "latest_v2"}
3. Export Your Results
The dataset is available as a JSON array; the SUMMARY record is in the default key-value store.
📥 Input parameters
note_id — Note ID
| Required | Type | Description |
|---|---|---|
| Optional (one of two) | string | Xiaohongshu note ID, up to 64 alphanumeric characters. Wins over share_text when both are provided. |
share_text — Share text
| Required | Type | Description |
|---|---|---|
| Optional (one of two) | string | A Xiaohongshu share link or the full share text from the app. up to 2000 characters; the Actor extracts the first http(s) URL. Use when you don't have the raw note_id. |
page — Page number
| Required | Type | Description |
|---|---|---|
| Optional | integer 1–10 | Default 1. Each page = one Data provider request. |
cursor — Pagination cursor
| Required (page >= 2) | Type | Description |
|---|---|---|
| Optional | string | From the previous run's nextCursor. Leave blank for page 1. |
index — Comment index
| Required (page >= 2) | Type | Description |
|---|---|---|
| Optional | integer ≥ 0 | From the previous run's nextIndex. Use 0 for the first page. |
pageArea — Fold status
| Required (page >= 2) | Type | Description |
|---|---|---|
| Optional | enum UNFOLDED / FOLDED | Default UNFOLDED. From the previous run's nextPageArea. |
sort_strategy — Sort order
| Required | Type | Description |
|---|---|---|
| Optional | enum latest_v2 / like_count / default | Default latest_v2 (recommended for stable pagination). default is not recommended because pagination may skip or duplicate comments. |
📤 Output
See "What You Get" above for the full field list. Each row also includes rawData, the unmodified Data provider payload, for audit and re-parsing.
💰 Billing
- Free tier: 5 runs/day (each run = up to 10 Data provider requests).
- Paid users: Unlimited runs.
- Hard caps: 10 pages per run (configurable via
MAX_PAGES_HARD_CAP). - Note about default sort:
defaultmay cause pagination to skip or duplicate comments; preferlatest_v2.
❓ FAQ
- How do I paginate? After each run, copy
nextCursor,nextIndex, andnextPageAreafrom the SUMMARY, then re-run withpage = current + 1and the new tokens. - My free run is blocked? Free tier is 5 runs/day. Upgrade your Apify plan, wait until tomorrow, or set
APIFY_USER_IS_PAYING=1. - Can I sort by hot / engagement?
like_countsorts by likes (desc).defaultis Data provider-default but unstable across pages. - What happens if the data provider returns no comments on page 2? The Actor stops and reports the previous page's
nextCursorin the SUMMARY, so you don't lose pagination state. - Do I need to add an Data provider API key? No. This Actor ships with the data provider integration preconfigured —
Data provider_API_KEYandData provider_BASE_URLare baked into the build. No Console setup, no secrets to manage.
📚 Resources
Open an issue on the Actor Console page or contact via Discord linked in the data provider SUMMARY.
See ./CHANGELOG.md.
📜 Notes & caveats
Use it together with the other Xiaohongshu Actors
This Actor is one piece of a 4-piece Xiaohongshu toolkit. Run them in sequence to go from a topic, to a single note detail, to its comment thread.
| Where in the pipeline | Actor | Console | Use it to |
|---|---|---|---|
| before / step ① | Xiaohongshu Keyword Search Scraper | JECW4SdwsOOgtuobc | step ① — discover noteIds by keyword |
| sister Actor / step ② | Xiaohongshu Image Note Detail Scraper | kP7I5XcMAaLxaYj0R | step ② — pair with this Actor for the parent note's metadata (title / images / author) |
| after / step ③ | Xiaohongshu Video Note Detail Scraper | nIGSWsYF5htLotphk | step ② — same, but for the parent video note |
You are here: Xiaohongshu Note Comments Scraper (step ③) — run this on its own for pull the full comment thread (cursor-paginated). The other 3 Actors live in their own Apify listings — click their Console links to open them in a new tab.
Cross-Platform Alternatives
If your brand or research target is also discussed on other Chinese-language platforms, the comment thread you scrape here is just one signal. Pair it with:
| Platform | Actor | Use it for |
|---|---|---|
| Weibo Post Detail Scraper | Weibo post detail + 10 pages of comments — same comment-threading pattern | |
| Brand mention monitoring | Brand Mention Audit | cross-platform brand mention tracking (web + social) |
| Google Maps | Maps Business Leads Scraper | B2B lead generation by category, keyword, and location |
Why Use This Actor
| Problem | How This Actor Solves It |
|---|---|
| You have a Xiaohongshu note URL and want to monitor or archive the comment thread. | Pass the URL as share_text; get a normalized dataset of comments with author, engagement, and timestamps. |
| You want deeper data than a single page. | User-driven pagination: pass the next-page cursor / index / pageArea tokens returned by the previous run. |
| You want to sort comments differently. | Pick latest_v2 (recommended), like_count, or default. |