RedNote (Xiaohongshu) Product Scraper - Variants & Stock
Pricing
from $3.99 / 1,000 products
RedNote (Xiaohongshu) Product Scraper - Variants & Stock
Search Xiaohongshu (RedNote / 小红书) shop products by keyword. Get variant prices, coupon prices and availability, plus specifications, shipping and seller ratings when available. Search several keywords per run and export JSON, CSV or Excel.
Pricing
from $3.99 / 1,000 products
Rating
0.0
(0)
Developer
Zen Studio
Maintained by CommunityActor stats
0
Bookmarked
60
Total users
8
Monthly active users
2 days ago
Last modified
Categories
Share
RedNote (Xiaohongshu / 小红书) Product Search Scraper | Shop Products by Keyword: Price, Seller, Variants & Full Product Details (2026)
From Zen Studio. Creators of RedNote Search and Douyin Search, which have ranked #1 for “rednote” and “douyin”, respectively, in Apify Store relevance results, with 100,000+ combined lifetime runs.
Why choose this actor?
- Get the variants behind each product. Collect colour, size and pack combinations with their own prices, sold-out flags and displayed quantity information. Track individual options instead of relying on one listing price.
- Capture the price after the coupon. Keep listed prices alongside source-displayed coupon prices and promotion terms. Compare offers with the detail a basic search card leaves out.
- Go from keyword to product-page depth. Get specifications, shipping origin and terms, seller ratings and description images in the same product row. Research several keywords in one run, without gathering product links first.
Try a product search
Open the actor’s input page, switch to JSON and paste this. It searches 口红 (lipstick) and requests five products with details enabled. Replace the keyword with your product or brand.
{"keywords": ["口红"],"maxResults": 5,"includeProductDetails": true}
includeProductDetails: true adds the details object, including variants and coupon prices when available. Quantity can mean remaining stock or a per-order limit; its accompanying text tells you which. Coupon conditions still apply. If details are unavailable, the core product result is kept.
Charges: product results are billed at $4.99 per 1,000 on the Free and Bronze plans ($4.29 Silver, $3.99 Gold, Platinum and Diamond), plus Apify's platform start fee. Successfully collected product details add $2.99 per 1,000 to the product-result charges. Turn details off for search listings only.
Apify Free plan: 15 lifetime preview runs, up to approximately 20 products from the first keyword per run.
| Zen Studio · RedNote product research | |||
You are here | Product details | Reviews & replies | Post search |
Copy to your AI assistant
zen-studio/rednote-product-search-scraper on Apify. Scrapes Xiaohongshu (RedNote / 小红书) shop products by keyword. One row per product with title, price (current/original/foreign), product images, seller, units sold, shop sales, add-to-cart, saves, and promo signals. With includeProductDetails (boolean, default true) available product pages add a details object: description images, specification table, shipping origin/fee/dispatch date, service guarantees, seller rating and shop stats, and variants.skus[] with per-variant price, discounted price, coupons and availability. Call ApifyClient("TOKEN").actor("zen-studio/rednote-product-search-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Requires keywords (string[]); each keyword runs independently with its own maxResults budget. Related search keywords per keyword are written to the RELATED_KEYWORDS key-value record. Pricing: product-result $4.99 per 1,000 on Free and Bronze plans ($4.29 Silver, $3.99 Gold/Platinum/Diamond); product-detail-result adds $2.99 per 1,000 collected product pages when includeProductDetails is true; plus Apify's platform start fee. Full spec: GET https://api.apify.com/v2/acts/zen-studio~rednote-product-search-scraper/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Token: https://console.apify.com/account/integrations To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
How to Search RedNote Products by Keyword
Basic: one keyword, default 100 results
{"keywords": ["手机壳"],"maxResults": 100}
Multiple keywords, each with its own budget
{"keywords": ["口红", "连衣裙", "casetify"],"maxResults": 200}
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keywords | string[] | required | Product search terms. Chinese works best (手机壳, 口红, 连衣裙); English and brand names work too (casetify, lululemon). Each keyword is searched independently with its own maxResults budget. |
maxResults | integer | 100 | How many unique products to collect per keyword (1–1000). Cost scales linearly with products collected. Narrow keywords may yield fewer than the cap because the catalogue for that query is finite. |
includeProductDetails | boolean | true | On by default. Adds available product-page details: description images, specifications, shipping, seller ratings, variant prices and availability. See Pricing for the detail charge. |
Accepted keyword formats
| Format | Example |
|---|---|
| Chinese word or phrase | 手机壳, 口红, 连衣裙, 保温杯 |
| English word | phone case, lipstick, dress |
| Brand name | casetify, lululemon, dyson |
Each keyword is searched independently and products are deduplicated by product ID within that keyword, so repeated results within one keyword are not billed twice. The same product found under different keywords can appear and be billed once per keyword. A single keyword typically yields hundreds of unique products; use multiple related keywords for broader coverage.
What Data You Get: One Row Per Product
{"id": "6a16107133df70001553ff3e","title": "Women's Chic and Elegant French Style Dress, 2026 Summer New Fashion, Black, Sleeveless or Short Sleeve","url": "https://www.xiaohongshu.com/goods-detail/6a16107133df70001553ff3e","link": "xhsdiscover://goods_detail/6a16107133df70001553ff3e?source=mall_search&...","price": {"price": 138,"origin_price": 188,"foreign_price": "≈£15.32","price_description": ""},"images": [{"url": "https://mall-i8.xhscdn.com/arkgoods/1040g3no320lhp2jd5c0g5pb6nb2f3jacs6nh1dg?imageView2/2/w/540/format/webp/q/85","width": 540,"height": 719,"aspect_ratio": 0}],"goods_type": "normal","stock_status": 1,"has_buyer_explain": false,"contract_id": "","vendor": {"vendor_name": "妍妍琦女装的店","seller_id": "65d1cc0a6902e500017d477e","buyer_id": "","vendor_link": "xhsdiscover://shop_detail?seller_id=65d1cc0a6902e500017d477e&source=search_result_goods_seller_name"},"metrics": {"units_sold": 31,"units_sold_text": "31 sold","shop_sold": 78000,"shop_sold_text": "78k+ sold"},"tag_strategy_map": {},"keyword": "连衣裙"}
The example abbreviates tag_strategy_map; real rows retain the returned merchandising tags. Numeric metrics fields appear only when the platform returns that signal, so there is no null spam, and the raw tag_strategy_map always carries the complete, unmodified tag set.
Full product details (optional)
includeProductDetails is on by default, so each available product page adds a details object with specifications, shipping, seller information and variants that the search listing alone does not provide.
Saved product example with selected fields and one variant shown; the full result contains the returned variant combinations.
{"details": {"item_id": "67b812b68e930600150168db","title": "晨光 · 故宫文创口红礼盒15色哑光唇釉学生女彩妆套装","description": "商品名称:晨光考试套装金榜题名中考高考必备孔庙祈福考试2b涂卡笔考试必备发货地上海市适用人群通用风格中国风适用场景考试专用,日常送礼,学习","specs": [{"name": "商品名称","value": "故宫文创口红礼盒15色哑光唇釉学生女彩妆套装"},{"name": "品牌","value": "晨光"}],"price": {"current": 24.75,"deal": {"price": 22.75,"type": 17,"priceText": "券后价","isShowPricePop": true}},"promotions": {"name": "优惠","tags": ["2件9.8折","商家券|满19减2"],"queryPaymentMarketingInfo": false,"profitType": "PROMOTION,COUPON","couponTemplateId": "6a931cbf0fcd5400159e6be5","couponPromotionChannel": "AUTO","promotionType": "M_PIECE_N_FOLD","promotionId": "6a8c48aed889380015a090aa","paymentMarketingText": null,"depositId": null,"fissionTag": null},"shipping": {"location": "浙江金华","fee": "包邮","shipmentIcon": null,"time": {"text": "48小时内发货","mode": null,"tag": null,"tagWidth": null,"tagHeight": null,"color": null,"colorDark": null,"sepColor": null,"sepColorDark": null}},"seller": {"name": "壹百分甄选的店","score": "4.29","link": "https://www.xiaohongshu.com/shop/645b409c275ad100017ca428"},"variants": {"options": [{"name": "颜色分类","values": ["热卖主图款 :金榜題名丨故宮15件套","一套集齐:金榜題名丨故宮10件套","孔庙祈福丨考试13件套","孔庙祈福丨考试4件套","靜候佳音丨考试13件套","1支丨晨光考试涂卡笔","一套集齐】:金榜題名丨故宮10件套"],"soldOutValues": ["一套集齐】:金榜題名丨故宮10件套"]},{"name": "包装数量","values": ["+1胶棒+美工刀","晨光考试装备丨考试必备","+1胶棒"],"soldOutValues": []}],"skus": [{"sku_id": "67b812b612147e0015cafedc","price": 39.2,"deal_price": "37.2","is_sold_out": false,"quantity": {"number": 10,"text": "单次最多可购买10件,如有需要请分别下单","displayed": true,"tip": null},"options": [{"variantType": null,"id": "60404e0de85df80001991224","name": "颜色分类","value": "一套集齐:金榜題名丨故宮10件套","imageUrl": "","thumbnailUrl": null,"topSale": false,"saleTag": null},{"variantType": null,"id": "5a60c42f69bd891ed8939a42","name": "包装数量","value": "+1胶棒+美工刀","imageUrl": "","thumbnailUrl": null,"topSale": false,"saleTag": null}]}]}}}
A few notes on the variant data, which is the part you cannot get from the search listing alone:
variants.skusis one entry per buyable combination, each with its own price, discounted price, sold-out flag and option values. Products with several option groups (such as colour × pack size) include the combinations returned by RedNote. The saved example above contains 21 variants in its full response.quantity.numberis accompanied byquantity.text, and you should read the text: on some products it is the remaining stock (该商品仅剩91件), on others it is the per-order purchase limit (单次最多可购买10件). Both are passed through exactly as the platform states them, with no reinterpretation.variants.optionslists every selectable value plussoldOutValues, so you can see which choices are gone without walking the SKU list.
If a product is delisted between the search and the detail fetch, the row is still delivered with details: null, and you are not billed for the detail.
Related keywords (free metadata)
Every run also writes a RELATED_KEYWORDS record to the run's key-value store: a map of each seed keyword to the related searches the platform suggests for it (e.g. 手机壳 → 苹果手机壳, casetify手机壳, iphone手机壳, 磁吸手机壳). Useful for keyword expansion. This is free metadata and never counts toward your bill.
Pricing: Pay Per Event (PPE)
One product written to the dataset is one product-result. A repeated product within the same keyword is not billed twice; the same product found under separate keywords can be billed for each keyword.
Product-result charges
| Apify plan tier | Per 1,000 product results |
|---|---|
| Free | $4.99 |
| Bronze | $4.99 |
| Silver | $4.29 |
| Gold, Platinum, Diamond | $3.99 |
Each successfully collected product page adds $0.00299 (product-detail-result), or $2.99 per 1,000 details. Set includeProductDetails to false to skip that optional collection and charge. An unavailable product page is not charged as a detail.
These are product-result and optional-detail charges. Every run also carries Apify's platform start fee and the platform's default dataset-item charge ($0.01 per 1,000 rows). The actor’s Pricing tab shows the complete billing terms.
Free tier
15 lifetime runs, each capped at approximately 20 products from the first keyword. No credit card required. Enough to evaluate the output shape and data quality before purchasing.
Advanced Usage
Ready-made configurations for product research, price monitoring, brand and competitor tracking, market research, and sourcing or dropshipping discovery.
Catalogue research across a category
{"keywords": ["保温杯", "玻璃杯", "马克杯"],"maxResults": 500}
Use the keyword field on each row to see which term surfaced each product. Sort by metrics.shop_sold or metrics.units_sold after the run to find the best-selling items in a category.
Brand and competitor tracking
{"keywords": ["casetify", "lululemon", "始祖鸟"],"maxResults": 200}
Compare price points (price.price vs price.origin_price), sales volume, and which shops carry a brand across keywords in a single run.
Price monitoring
{"keywords": ["iphone 17 pro max 手机壳"],"maxResults": 300}
Schedule this to track price (price.price), discounts (metrics.promo_text), and units sold over time for a specific product line.
With product details on, details.variants.skus[] adds per-variant pricing and availability, so you can watch individual colours or sizes go in and out of stock rather than just the headline price.
FAQ
What is RedNote (Xiaohongshu / Little Red Book)? RedNote is the international name of Xiaohongshu (小红书, literally "Little Red Book", often abbreviated XHS), China's leading lifestyle and social-commerce platform. Its built-in shop sells across beauty, fashion, home, and electronics; this actor searches that product catalogue.
How many products can I expect per keyword? Typically hundreds of unique products before the catalogue for that query is exhausted. For broader coverage, add multiple related keywords; products are deduplicated by ID within each keyword.
Are the prices in a specific currency?
The numeric price and origin_price are in CNY (¥). A localized foreign_price string (e.g. ≈£15.32) is also provided. Sale and units-sold text fields come pre-localized.
What is the difference between url and link?
url is the web product page (https://www.xiaohongshu.com/goods-detail/<id>). link is the raw in-app deep link. Both reference the same product.
How fresh is the data? Live: fetched on demand at run time. No cached or stale records.
Do I need a Xiaohongshu account or cookies? No. Provide keywords and run; no account, cookie export, or QR login is involved.
Are the image URLs permanent?
Image CDN URLs (images[].url) are time-limited and typically expire within hours to days. The product url is the stable reference. Download images soon after a run if you need to store them.
Can I get full SKU lists, shipping details, or product reviews?
SKU lists and shipping are included. With includeProductDetails on, which is the default, available product pages add a details object holding the specification table, shipping origin, fee and dispatch date, and variants.skus[] with each buyable combination's own price, discounted price, coupons and availability.
Buyer reviews are a separate actor. Feed each product's id (or its url) into RedNote Product Reviews Scraper for ratings, photos, variants, and seller replies.
Can I turn the product details off?
Yes. Set includeProductDetails to false and you get the core product row at the base rate, with no detail charge. It ships on because most people want the full page.
What's the maximum maxResults per keyword?
1,000. In practice the catalogue for a given query usually saturates before that ceiling.
Can I export the products to Excel or CSV? Yes. The dataset downloads as JSON, CSV, Excel, XML, or HTML from the run's Storage tab, or via the Apify API.
Is it legal to scrape Xiaohongshu product listings? The actor collects publicly listed catalogue data only, nothing behind a login. You are responsible for complying with Xiaohongshu's terms of service and applicable regulations (GDPR, CCPA, PIPL) in how you use the data.
More Zen Studio scrapers for Chinese platforms
🎬 Short-video & social
Douban 豆瓣
Zhihu 知乎
Weibo 微博
Kwai (Brazil)
RedNote 小红书
Douyin 抖音
Xigua 西瓜视频
Bilibili 哔哩哔哩
🛒 E-commerce
TikTok Shop
Naver Search 네이버 검색
Shopee
Taobao 淘宝
JD.com 京东
1688 阿里巴巴
Goofish 闲鱼
Coupang 쿠팡
🏠 Real estate & autos
Anjuke 安居客
58.com 58同城
Autohome 汽车之家
Support
- Bugs: Issues tab
- Feature requests: Issues tab
Legal Compliance
Extracts publicly available product search results from Xiaohongshu (RedNote / 小红书). Users must comply with Xiaohongshu's terms of service and applicable data protection regulations (GDPR, CCPA, PIPL).
RedNote (小红书 / Xiaohongshu) product search results: title, price, images, seller, and sales signals. One row per product, in clean JSON.
