RedNote API
Under maintenancePricing
from $6.00 / 1,000 rednote posts
RedNote API
Under maintenanceRedNote API scrapes Xiaohongshu / RedNote keyword search results and extracts posts, authors, engagement metrics, images, video URLs, and optional detail data with proxy, cookies, storage state, and dataset export support.
Pricing
from $6.00 / 1,000 rednote posts
Rating
0.0
(0)
Developer
Sovanza
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
RedNote API – Xiaohongshu Keyword Scraper & Data Extractor
Scrape Xiaohongshu (小红书) / RedNote keyword search results and extract structured post data, author details, engagement metrics, and media URLs. Built with Playwright for dynamic pages, with proxy and session support for reliable runs on Apify.
What is RedNote API and How Does It Work?
RedNote API is an Apify Actor that automates Xiaohongshu search in a headless browser, scrolls result feeds, and extracts post cards per keyword. Optionally it opens each detail page for richer fields (title, description, full media).
It is designed for:
- Social media researchers and analysts
- Brand and product mention monitoring
- Trend and keyword tracking teams
- Data engineers feeding analytics pipelines
How it works:
- Keyword search — navigates to search results for each keyword and scrolls to collect post cards
- Optional detail enrichment — opens each note page when
includeDetailsis enabled (slower, more complete) - Structured output — one dataset row per post (or per keyword error), with flattened fields plus nested
itemobject - Resilience — per-keyword retries, timeouts, and error rows that do not stop other keywords
Xiaohongshu does not offer a simple public API for this use case; this Actor uses browser automation to match what users see on the web.
Why Use This Scraper?
| Challenge | How this Actor helps |
|---|---|
| Dynamic JavaScript content | Playwright renders real pages |
| Anti-bot / login walls | Apify Proxy, cookies, Playwright storageState |
| Inconsistent HTML | Two-stage extraction (search cards + optional detail) |
| Bulk keyword runs | Multiple keywords with configurable concurrency |
| Clean exports | Flattened columns + nested item for advanced use |
➡️ Output is exportable as JSON, CSV, or Excel from the Apify dataset, or via the Apify API.
What Data Can You Extract?
Each successful post may include:
Flattened fields (table-friendly)
keyword,search_url,scraped_at,sourcepost_id,post_url,post_typetitle,descriptionauthor_name,author_id,author_avatarliked_count,comment_count,share_count,collected_countimages,image_count,video_url,cover_image
Structured nested object
item—note_card,interact_info, media, tags, timestamps when available
Empty fields are omitted from output (_omit_empty) so the dataset table stays clean.
Features
- Keyword search scraping — one or many keywords per run
- Configurable limit —
maxItemsper keyword (1–200) - Detail enrichment — optional per-post page visits
- Author & media toggles —
includeAuthor,includeMedia - Dual domains —
www.xiaohongshu.comorwww.rednote.com - Proxy support — Apify Proxy with country selection
- Session reuse —
storageState(recommended) orcookiesarray - Concurrency control —
maxConcurrency1–5 (higher = more blocking risk) - Error-safe — failed keywords produce error rows; other keywords continue
How to Use RedNote API on Apify
Using the Actor
- Go to RedNote API on the Apify platform.
- Add one or more keywords in the input.
- Set
maxItemsper keyword (default20). - Recommended: enable Apify Proxy via
proxyCountry(residential helps with blocking). - If blocked: provide
storageStateorcookiesfrom a logged-in session. - Choose
includeDetailsfor richer data (slower). - Run and export from the Dataset tab or use Output schema links.
Input Configuration
{"keywords": ["skincare", "travel outfit"],"maxItems": 20,"baseDomain": "www.xiaohongshu.com","proxyCountry": "AUTO_SELECT_PROXY_COUNTRY","includeDetails": false,"includeAuthor": true,"includeMedia": true,"sortBy": "general","headless": true,"maxConcurrency": 1}
| Field | Description |
|---|---|
keywords | Required. One or more search keywords (string list). |
maxItems | Max posts per keyword (default 20, max 200). |
proxyCountry | AUTO_SELECT_PROXY_COUNTRY, country code, or DISABLED. |
baseDomain | www.xiaohongshu.com or www.rednote.com if one domain is blocked. |
storageState | Playwright storage state JSON (cookies + localStorage) — most reliable for logged-in sessions. |
storageStatePath | Local path to storage state file (debugging). |
cookies | Cookie array for authenticated scraping. |
includeDetails | Open each post detail page for richer fields (slower). |
includeAuthor | Extract author nickname, id, avatar (default true). |
includeMedia | Extract images and video URLs (default true). |
sortBy | general or latest (ignored safely if UI does not support). |
headless | Run browser headless (default true; use false when debugging locally). |
maxConcurrency | Keywords processed in parallel (default 1, max 5). |
exportStorageState | Local only: headed browser to save storage_state.json after manual login. |
Output
Results are stored in the default dataset. Use the Output schema in Console for the dataset API link (?view=overview).
Success row (illustrative)
{"keyword": "skincare","search_url": "https://www.xiaohongshu.com/search_result?keyword=skincare&source=web_search_result_notes&type=51","post_id": "64f1a2b3c4d5e6f7890","post_url": "https://www.xiaohongshu.com/explore/64f1a2b3c4d5e6f7890","title": "My daily skincare routine","author_name": "Alice","liked_count": 1234,"images": ["https://example.com/image1.jpg"],"image_count": 1,"scraped_at": "2026-05-21T12:00:00.000Z","source": "xiaohongshu","item": {"id": "64f1a2b3c4d5e6f7890","note_card": { "display_title": "My daily skincare routine" }}}
Error row (keyword-level)
{"keyword": "skincare","url": "https://www.xiaohongshu.com/search_result?keyword=skincare","error": "Blocked or empty search DOM detected"}
Anti-Blocking & Reliability
Xiaohongshu aggressively limits automation. For better success:
- Use residential proxy (
proxyCountrynotDISABLED) - Keep
maxConcurrencylow (default1) - Provide
storageStateorcookieswhen you see login or verification walls - Try
www.rednote.comifxiaohongshu.comis blocked in your region - Use
headless: falselocally when debugging session export
The Actor retries failed keywords up to MAX_RETRIES and applies per-keyword timeouts.
Performance
- Fast mode:
includeDetails: false— search card data only - Rich mode:
includeDetails: true— opens each post (significantly slower) - Higher
maxConcurrencyspeeds multi-keyword runs but increases block risk maxItemscaps volume per keyword for cost control
Use Cases
- Social media research and content analysis
- Keyword and trend monitoring
- Product mention and review tracking
- Influencer and engagement benchmarking
- Data pipelines (warehouse, BI, ML feature stores) via Apify API
Integrations & API
- Apify dataset export: JSON, CSV, Excel
apify-client(Python / Node.js) for scheduled runs- Zapier, Make, Google Sheets via dataset export
- Webhooks and schedules on Apify
FAQ
What is RedNote API used for?
A Xiaohongshu keyword scraper that extracts search results, posts, authors, and engagement metrics for research and analytics.
Can I scrape without an official API?
Yes. The Actor uses Playwright browser automation against the public web interface.
Why am I getting empty results or errors?
Login walls, CAPTCHA, or blocking are common. Use proxy, storageState, or cookies, and lower concurrency.
Can I scrape multiple keywords in one run?
Yes. Each keyword runs independently; failures on one keyword do not stop others.
What is detail enrichment?
When includeDetails is true, the Actor visits each post URL for fuller title, description, and media fields.
Can I use this as a data API?
Yes. Integrate via the Apify platform API and consume dataset items programmatically.
How do I save a logged-in session locally?
Set exportStorageState: true, log in when the browser opens, then use the saved storage_state.json with storageStatePath or paste into storageState.
Does output include null columns?
No. The Actor omits empty/null fields from each row for cleaner tables.
SEO Keywords (high-intent)
xiaohongshu scraper
rednote api apify
xiaohongshu keyword scraper
rednote data extractor
xiaohongshu search results scraper
social media scraper china
xiaohongshu post scraper
rednote automation
Why Choose This Actor?
- Built for Xiaohongshu / RedNote search specifically
- Flattened + nested output for spreadsheets and code
- Proxy, cookies, and storage state support
- Per-keyword error isolation
- Optional detail enrichment for depth vs speed
Limitations
| Item | Detail |
|---|---|
| Platform rules | You must comply with Xiaohongshu terms and applicable laws |
| Blocking | Success depends on proxy, session, and site changes |
| No official API | DOM changes may require Actor updates |
| Rate / volume | Keep concurrency and maxItems reasonable per account safety |
| Detail mode cost | includeDetails multiplies page loads per post |
Running Locally
cd rednote-apipip install -r requirements.txtplaywright install chromiumapify run
Or set INPUT.json / Apify CLI local storage. Use exportStorageState to capture login state for repeat runs.
Deploy to Apify
- Push from
rednote-api/(apify pushor Git integration). - Enable Proxy on runs when using
proxyCountry. - Build and run with your keywords.
- Use Output tab links for dataset export after completion.
Get Started
Enter your keywords, enable proxy if needed, run once in fast mode, then enable includeDetails when you need richer post-level fields.