Rednote (Xiaohongshu) Posts Scraper
Pricing
from $15.00 / 1,000 post scrapeds
Rednote (Xiaohongshu) Posts Scraper
Scrape all posts from Rednote (Xiaohongshu) user profiles — titles, cover images, likes, post type. No login required. Pay per result.
Pricing
from $15.00 / 1,000 post scrapeds
Rating
0.0
(0)
Developer
ParseBird
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Rednote (Xiaohongshu) Posts Scraper — User Posts, Media & Engagement (2026)
Extract all posts from Rednote (Xiaohongshu / 小红书) user profiles — post titles, cover images, video/image type, like counts, note IDs, and user info. No login required. Browser-based extraction with anti-detection stealth. Guaranteed to work — backed by residential proxies and stealth browser automation.
| Scrape posts from any Rednote user profile — titles, cover images, post type, likes, and metadata. Works on China's #1 lifestyle platform with 300M+ users. Stealth browser scraping, residential proxies, no login needed. Guaranteed to work or you don't pay. |
| ParseBird Rednote Suite • Xiaohongshu Data Extraction | |
|
Profile Bio, followers & stats |
Posts ➤ You are here |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Apify Actor: parsebird/rednote-posts-scraper — extracts posts from Rednote (Xiaohongshu / 小红书) user profiles. $0.015/profile ($15/1000). Call via ApifyClient: client.actor("parsebird/rednote-posts-scraper").call(run_input={"profileUrls": [{"url": "https://www.xiaohongshu.com/user/profile/639946a0000000002702b173"}], "maxItems": 20}). Inputs: profileUrls (array of {"url":"..."}, Xiaohongshu profile URLs, required), maxItems (integer, default 20, max posts per profile), proxyConfiguration (object, default residential). Output: dataset with profileUrl, postData (postUrl, type, displayTitle, user, interactInfo, cover, noteId, xsecToken), scrapedAt. API docs: https://docs.apify.com/api/v2 Token: https://console.apify.com/settings/integrations
What does Rednote Posts Scraper do?
This Actor extracts all publicly visible posts from Rednote (Xiaohongshu / 小红书 / Little Red Book) user profile pages. You provide profile URLs — the scraper returns a list of posts with titles, cover images, engagement metrics, and metadata.
What you get for each post:
- Post info — title, note ID, post URL, type (video/image)
- User info — nickname, avatar URL, user ID
- Engagement — like count, sticky status
- Media — cover image URLs (preview + default), dimensions
- Metadata — xsec token, profile URL, scrape timestamp
Guaranteed to work — unlike cheaper alternatives:
Most Rednote scrapers on the market are broken. They use datacenter proxies that get blocked instantly, or skip the stealth measures needed to bypass Xiaohongshu's aggressive anti-bot system. This scraper is different:
- Residential proxies included — every request goes through real residential IPs, not datacenter IPs that Rednote blocks on sight
- Stealth browser automation — rebrowser-playwright with fingerprint masking, not detectable as a bot
- Multi-layer extraction — Vue state unwrapping and HTML source parsing ensure data is captured even when one method is blocked
- Automatic retry with backoff — transient failures are handled without manual intervention
- Actively maintained — we monitor Xiaohongshu's anti-bot changes and update the scraper accordingly
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
profileUrls | array | Yes | — | List of Xiaohongshu profile URLs to scrape posts from |
maxItems | integer | No | 20 | Maximum number of posts to scrape per profile (max 200) |
proxyConfiguration | object | No | Residential | Proxy settings — residential proxies included by default |
Output example
{"profileUrl": "https://www.xiaohongshu.com/user/profile/639946a0000000002702b173","postData": {"postUrl": "https://www.xiaohongshu.com/explore/6789fdb1000000001c00d095?xsec_token=ABXpV9UyO95kLI6G51DaZsNZIBb3QfMn584SISV_F2QiE=&xsec_source=pc_user","type": "video","displayTitle": "只有穷人冬天的被窝才会噼里啪啦的","user": {"nickName": "显眼包小涛","avatar": "https://sns-avatar-qc.xhscdn.com/avatar/63994933d9b187973501cb7a.jpg","userId": "639946a0000000002702b173","nickname": "显眼包小涛"},"interactInfo": {"liked": false,"likedCount": "8794","sticky": false},"cover": {"width": 694,"url": "","traceId": "","infoList": [{"imageScene": "WB_PRV","url": "http://sns-webpic-qc.xhscdn.com/202501180028/e8da355f0f66b93801735d44d2403f93/spectrum/1040g0k031coeec8616005osp8qg9tcbj7tkmhh8!nc_n_webp_prv_1"},{"imageScene": "WB_DFT","url": "http://sns-webpic-qc.xhscdn.com/202501180028/9a9667b8e0ea82be10f388b8c279d9d4/spectrum/1040g0k031coeec8616005osp8qg9tcbj7tkmhh8!nc_n_webp_mw_1"}],"urlPre": "http://sns-webpic-qc.xhscdn.com/202501180028/e8da355f0f66b93801735d44d2403f93/spectrum/1040g0k031coeec8616005osp8qg9tcbj7tkmhh8!nc_n_webp_prv_1","urlDefault": "http://sns-webpic-qc.xhscdn.com/202501180028/9a9667b8e0ea82be10f388b8c279d9d4/spectrum/1040g0k031coeec8616005osp8qg9tcbj7tkmhh8!nc_n_webp_mw_1","fileId": "","height": 925},"noteId": "6789fdb1000000001c00d095","xsecToken": "ABXpV9UyO95kLI6G51DaZsNZIBb3QfMn584SISV_F2QiE="},"scrapedAt": "2025-01-17T16:28:25.191Z"}
How to use via API — Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("parsebird/rednote-posts-scraper").call(run_input={"profileUrls": [{"url": "https://www.xiaohongshu.com/user/profile/639946a0000000002702b173"},],"maxItems": 20,})for post in client.dataset(run["defaultDatasetId"]).iterate_items():data = post.get("postData", {})print(f"{data.get('displayTitle')} — {data.get('interactInfo', {}).get('likedCount')} likes")
How to use via API — JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('parsebird/rednote-posts-scraper').call({profileUrls: [{ url: 'https://www.xiaohongshu.com/user/profile/639946a0000000002702b173' },],maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(post => {const data = post.postData;console.log(`${data?.displayTitle} — ${data?.interactInfo?.likedCount} likes (${data?.type})`);});
How it works
- Input — You provide one or more Rednote (Xiaohongshu) user profile URLs
- Browser launch — A stealth Chromium browser launches with residential proxy and fingerprint masking
- Navigation — The browser visits each profile page, waiting for the Vue.js SPA to render
- Data extraction — Posts are extracted from
window.__INITIAL_STATE__with Vue reactive unwrapping and HTML source parsing fallback - Anti-detection — Random delays, realistic browser fingerprints, and proxy rotation prevent blocking
- Output — Structured post data is pushed to the dataset in JSON format
Pricing
This Actor uses Pay-Per-Event pricing — you pay per post scraped. Residential proxy costs are included.
| Price per post | Price per 1,000 |
|---|---|
| $0.015 | $15.00 |
Typical costs:
- 20 posts (1 profile): ~$0.30
- 100 posts (5 profiles): ~$1.50
- 1,000 posts: ~$15.00
Why this price? Every request uses premium residential proxy bandwidth to bypass Rednote's aggressive IP blocking. Cheaper scrapers skip this step and fail. Our price includes the proxy cost and guarantees reliable extraction.
Use cases
- Influencer analysis — Analyze a creator's content strategy, posting frequency, and engagement patterns
- Competitor monitoring — Track what content competitors are publishing and how it performs
- Content research — Study trending content formats, titles, and visual styles on Rednote
- Brand monitoring — Monitor mentions and content from brand ambassadors or partners
- Academic research — Study social media content patterns and engagement dynamics
FAQ
Q: Does it require login? A: No. This scraper extracts publicly visible posts from user profiles without any login or authentication.
Q: How many posts can I get per profile?
A: Typically 20-30 posts are visible on a user's profile page via SSR. The maxItems parameter limits how many are returned per profile.
Q: What data is included for each post? A: Post title, type (video/image), cover image URLs with dimensions, like count, note ID, xsec token, and user info (nickname, avatar, user ID).
Q: Why is it more expensive than other Rednote scrapers? A: Every request uses premium residential proxy bandwidth — the only reliable way to access Rednote data. Cheaper scrapers use datacenter proxies that get blocked instantly, resulting in failed runs.
Q: How fast is it? A: ~3-5 profiles per minute. Intentional delays (3-8 seconds) between profiles prevent blocking.
Q: What is Rednote / Xiaohongshu? A: Xiaohongshu (小红书), also known as Rednote or Little Red Book, is China's leading lifestyle and social commerce platform with 300M+ monthly active users.
Q: Is scraping Rednote legal? A: This Actor accesses only publicly visible content — the same data any browser user can see. No login or authentication is used. Consult legal counsel for your specific use case and jurisdiction.
Disclaimer
This Actor extracts publicly available data from Rednote (Xiaohongshu). It does not bypass any authentication or access private content. Users are responsible for ensuring their use of extracted data complies with applicable laws and Xiaohongshu's Terms of Service. This tool is provided as-is without guarantees of continuous availability, as website changes may affect functionality.