# Xiaohongshu (RedNote) Product Reviews Scraper (`zen-studio/rednote-product-reviews-scraper`) Actor

Scrape Xiaohongshu (RedNote) product reviews. Get review text, star ratings, buyer photos, the variant purchased, tags, seller replies, and reviewer profiles. Just add product URLs or IDs. Export to JSON, CSV, Excel.

- **URL**: https://apify.com/zen-studio/rednote-product-reviews-scraper.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Social media, Videos, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## RedNote (小红书) Product Reviews Scraper: Buyer Reviews by Product with Ratings, Photos, Variants & Replies (2026)

<blockquote style="border-left:4px solid #FF2442;background:#FFF5F5;padding:12px 16px">
<span style="font-size:16px;font-weight:700;color:#1C1917">Scrape Xiaohongshu (RedNote / 小红书) product buyer reviews by product link or ID: review text, star ratings (item, SKU, logistics, service), buyer photos, the exact variant purchased, review tags, seller replies, and reviewer profiles in clean structured JSON.</span> <span style="font-size:15px;color:#57534E"> One row per review, multiple products per run, each with its own review budget.</span>
</blockquote>

![RedNote Product Reviews Scraper](https://iili.io/CK5iAru.png)

#### Copy to your AI assistant

````

zen-studio/rednote-product-reviews-scraper on Apify. Scrapes Xiaohongshu (RedNote / 小红书) product buyer reviews by product URL or ID. One row per review with review text, star ratings (item/sku/logistics/service), buyer photos (url+width+height+thumbnail), the exact variant purchased, review tags, like count, reviewer profile, and nested seller/buyer replies (sub\_reviews). Call ApifyClient("TOKEN").actor("zen-studio/rednote-product-reviews-scraper").call(run\_input={...}), then client.dataset(run\["defaultDatasetId"]).list\_items().items. Requires productUrls (string\[]), each entry a goods-detail URL or 24-char product ID; options: maxReviewsPerProduct (int, 0=all), sortBy (recommended|latest), withImagesOnly (bool). Full spec: GET https://api.apify.com/v2/acts/zen-studio~rednote-product-reviews-scraper/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Token: https://console.apify.com/account/integrations

````

### How to Scrape RedNote Product Reviews

#### Basic: one product, default 100 reviews

```json
{
  "productUrls": ["https://www.xiaohongshu.com/goods-detail/69da64265ec0880001bf68ae"],
  "maxReviewsPerProduct": 100
}
````

#### Multiple products, newest reviews first

```json
{
  "productUrls": [
    "https://www.xiaohongshu.com/goods-detail/69da64265ec0880001bf68ae",
    "6a16107133df70001553ff3e"
  ],
  "maxReviewsPerProduct": 200,
  "sortBy": "latest"
}
```

#### Only reviews with buyer photos

```json
{
  "productUrls": ["https://www.xiaohongshu.com/goods-detail/69da64265ec0880001bf68ae"],
  "maxReviewsPerProduct": 50,
  "withImagesOnly": true
}
```

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `productUrls` | string\[] | *required* | One or more products. Each entry is a product link (`https://www.xiaohongshu.com/goods-detail/<id>`) or a raw 24-character product ID. Feed the `url` or `id` straight from the RedNote Product Search Scraper. |
| `maxReviewsPerProduct` | integer | `100` | How many reviews to collect for **each** product (0 = all available, 1–5000). Every review counts toward your bill. Products with few sales may return fewer. |
| `sortBy` | string | `recommended` | Order reviews are collected in: `recommended` (platform default) or `latest` (newest first). |
| `withImagesOnly` | boolean | `false` | Collect only reviews that include buyer photos. |

#### Accepted product formats

| Format | Example |
|---|---|
| Product link | `https://www.xiaohongshu.com/goods-detail/69da64265ec0880001bf68ae` |
| Raw product ID | `69da64265ec0880001bf68ae` |

Each product is collected independently and reviews are deduplicated by review ID within that product, so you never pay twice for the same review.

### What Data You Get: One Row Per Review

```json
{
  "review_id": "616946735755924278",
  "root_review_id": "616946735755924278911171",
  "sku_id": "69da64265ec0880001bf68ae",
  "content": "有一说一 这是我买过最严谨的手机壳 严丝合缝不漏一点银边 强迫症患者放心入",
  "scores": { "item": 5, "sku": 5, "logistics": 5, "service": 5 },
  "like_count": 3,
  "create_time_desc": "05-07",
  "tags": ["严丝合缝", "质量很好", "很满意"],
  "labels": ["回头客"],
  "variants": [
    { "name": "颜色分类", "value": "白色-冰雾磨砂(软边硬背)" },
    { "name": "手机型号", "value": "iPhone 16 Pro" }
  ],
  "images": [
    {
      "url": "https://mall-i8.xhscdn.com/comment/1040g3mg31vroqm8a2i705nhp86dg82vkjtnaao0?imageView2/2/w/1080/format/webp/q/85",
      "width": 4096,
      "height": 3072,
      "thumbnail": "https://mall-i8.xhscdn.com/comment/1040g3mg31vroqm8a2i705nhp86dg82vkjtnaao0?imageView2/2/w/540/format/webp"
    }
  ],
  "user": {
    "user_id": "ae30124f859e45fc59178a477bf4f",
    "name": "kk",
    "avatar": "https://sns-avatar-qc.xhscdn.com/avatar/5fea7d337280c8f2f3bdac43.jpg",
    "anonymous": false,
    "visitor_flag": false
  },
  "sub_review_count": 13,
  "sub_reviews": [
    {
      "review_id": "623452383550842693911171",
      "root_review_id": "616946735755924278911171",
      "target_review_id": "616946735755924278911171",
      "content": "问问容易发黄吗",
      "create_time_desc": "05-25",
      "like_count": 0,
      "selected": true,
      "user": { "user_id": "a89a75b7433459d4d94835871e202", "name": "喵", "avatar": "https://sns-avatar-qc.xhscdn.com/avatar/...", "anonymous": false, "visitor_flag": false },
      "images": []
    }
  ],
  "comment_type": 5,
  "forbidden_reply": false,
  "status": 2,
  "translate_flag": false,
  "sort_by": "recommended"
}
```

#### Field reference

| Field | Description |
|---|---|
| `review_id` / `root_review_id` | Unique review ID and its thread root ID |
| `sku_id` | The product ID the review belongs to |
| `content` | The buyer's review text |
| `scores` | Star ratings (1–5): `item`, `sku`, `logistics`, `service` |
| `like_count` | Number of likes on the review |
| `create_time_desc` | Human-readable post time (e.g. `05-07`, `1小时前`) |
| `tags` | Review keyword tags (e.g. `质量很好`, `很满意`) |
| `labels` | Buyer labels on the review (e.g. `回头客` = repeat customer) |
| `variants` | The exact SKU variant purchased (color, model, size…) |
| `images` | Buyer photos: `url`, `width`, `height`, `thumbnail` |
| `user` | Reviewer profile: `user_id`, `name`, `avatar`, `anonymous`, `visitor_flag` |
| `sub_review_count` | Total number of replies/follow-ups on the review |
| `sub_reviews` | Nested replies (seller responses and buyer follow-up questions) with their own author and threading IDs |
| `comment_type` / `status` | Platform classification codes for the review |
| `forbidden_reply` | Whether replies are locked on the review |
| `translate_flag` | Whether the platform offers a translation for the review |
| `sort_by` | The sort order used for this run (`recommended` or `latest`) |

Image CDN URLs are time-limited. Download photos soon after a run if you need to store them.

### Pricing: Pay Per Event (PPE)

**$5.99 per 1,000 reviews.** Each review written to the dataset counts as one result. Nested replies (`sub_reviews`) ride along inside their parent review row at no extra charge. No charge for empty products, retries, or pagination overhead.

| Event | Per review | Per 1,000 |
|-------|------------|-----------|
| `review-result` (one dataset row) | $0.00599 | $5.99 |

Volume discounts apply automatically on higher Apify Store plans.

#### Free tier

**10 lifetime runs**, each capped at approximately 20 reviews from the first product. No credit card required. Enough to evaluate the output shape and data quality before purchasing.

### Advanced Usage

#### Track sentiment for a product line over time

```json
{
  "productUrls": ["https://www.xiaohongshu.com/goods-detail/69da64265ec0880001bf68ae"],
  "maxReviewsPerProduct": 0,
  "sortBy": "latest"
}
```

Set `maxReviewsPerProduct` to `0` to collect every available review, sorted newest first, and schedule the run to monitor new reviews and ratings as they arrive.

#### Compare reviews across competing products

```json
{
  "productUrls": ["69da64265ec0880001bf68ae", "6a16107133df70001553ff3e"],
  "maxReviewsPerProduct": 300
}
```

Use the `sku_id` field on each row to group reviews by product, then compare `scores`, `tags`, and photo coverage side by side.

#### Photo-only review mining

```json
{
  "productUrls": ["https://www.xiaohongshu.com/goods-detail/69da64265ec0880001bf68ae"],
  "maxReviewsPerProduct": 200,
  "withImagesOnly": true
}
```

Collect only reviews with buyer photos to build a user-generated-content gallery or to study how products look in real use.

### FAQ

**How many reviews can I collect per product?**
As many as the product has, up to your `maxReviewsPerProduct` cap. Set it to `0` for all available reviews. Popular products can have thousands; products with few sales return fewer.

**What's in `sub_reviews`?**
The reply thread under a review: seller responses and buyer follow-up questions. Each carries its own author, timestamp, and threading IDs (`root_review_id`, `target_review_id`). The first reply usually rides along inline for free with its parent review.

**What do the star ratings mean?**
`scores` holds four 1–5 ratings: `item` (the product), `sku` (the specific variant), `logistics` (shipping), and `service` (seller). They mirror the rating breakdown shown on the product page.

**Are review texts and tags in Chinese?**
Yes. Reviews are written by buyers on Xiaohongshu, so `content`, `tags`, and `variants` are typically in Chinese. Run them through any translation step you like after the run.

**What's the difference between a product link and an ID?**
Both work. A link is `https://www.xiaohongshu.com/goods-detail/<id>`; the ID is the 24-character hex string inside it. Paste either into `productUrls`.

**How fresh is the data?**
Live: collected on demand at run time. No cached or stale records.

**Are the buyer photo URLs permanent?**
No. Image CDN URLs (`images[].url`) are time-limited and typically expire within hours to days. The `review_id` is the stable reference. Download images soon after a run if you need to store them.

### Use Cases

- **Product research**: read what real buyers say about a product before sourcing or selling it.
- **Sentiment & ratings monitoring**: track `scores`, `tags`, and new reviews for a product line over time.
- **Competitor comparison**: collect reviews across competing products and compare ratings, complaints, and photo coverage.
- **UGC & social proof**: pull buyer photos and quotes (with `withImagesOnly`) for galleries and marketing.
- **Quality & returns analysis**: surface recurring complaints in `content` and `tags` to flag product or logistics issues.
- **Variant insight**: see which `variants` (color, model, size) buyers actually purchase and how each is rated.

### More Zen Studio scrapers for Chinese platforms

**🎬 Short-video & social**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-mHKEEgoDqr6btQQer-fUs5ZquIeN-xiaohongshu-search-scraper-logo-square.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **RedNote 小红书**
  - [RedNote Search Scraper](https://apify.com/zen-studio/rednote-search-scraper)
  - [RedNote User Profile Scraper](https://apify.com/zen-studio/rednote-user-profile-scraper)
  - [RedNote Comments Scraper](https://apify.com/zen-studio/rednote-comments-scraper)
  - [RedNote Note Detail Scraper](https://apify.com/zen-studio/rednote-note-detail-scraper)
  - [RedNote Product Search Scraper](https://apify.com/zen-studio/rednote-product-search-scraper)
  - [RedNote Live Recorder](https://apify.com/zen-studio/rednote-live-recorder)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-3TJaaOJDU1AMiOoJM-Vu2eVr0P6N-douyin-profile-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Douyin 抖音**
  - [Douyin Search Scraper](https://apify.com/zen-studio/douyin-search-scraper)
  - [Douyin Profile Scraper](https://apify.com/zen-studio/douyin-profile-scraper)
  - [Douyin Video Scraper](https://apify.com/zen-studio/douyin-video-scraper)
  - [Douyin Comments Scraper](https://apify.com/zen-studio/douyin-comments-scraper)
  - [Douyin Transcripts Scraper](https://apify.com/zen-studio/douyin-transcripts-scraper)
  - [Douyin Creator Rankings Scraper](https://apify.com/zen-studio/douyin-xingtu-rankings-scraper)
  - [Douyin Live Recorder](https://apify.com/zen-studio/douyin-live-recorder)
  - [Douyin Hot Search Scraper](https://apify.com/zen-studio/douyin-hot-search-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-dexCSKEZtKS8hg4fT-lD4weyiYga-shigua-____-scraper-logo.jpg" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Xigua 西瓜视频**
  - [Xigua Video Search Scraper](https://apify.com/zen-studio/xigua-video-search-scraper)
  - [Xigua Video Detail Scraper](https://apify.com/zen-studio/xigua-video-detail-scraper)

**🛒 E-commerce**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-PsAKYWM55HG4AHXjK-ItywU7Bp0s-taobao-search-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Taobao 淘宝**
  - [Taobao Search Scraper](https://apify.com/zen-studio/taobao-search-scraper)
  - [Taobao Product Detail Scraper](https://apify.com/zen-studio/taobao-detail-scraper)
  - [Taobao Seller Products Scraper](https://apify.com/zen-studio/taobao-seller-products-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-uZy6tbKLKnSVtT4BN-emXnT123uR-jd-com-scraper-logo-square.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **JD.com 京东**
  - [JD.com Search Scraper](https://apify.com/zen-studio/jd-com-search-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-ghXSMZcW3GxsCrkiR-5hnvsKv4Yt-1688-wholesale-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **1688 阿里巴巴**
  - [1688 Wholesale Scraper](https://apify.com/zen-studio/1688-wholesale-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-5QcLc4BHaLMBUKYs3-f3CWQ60Row-goofish-search-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Goofish 闲鱼**
  - [Goofish (Xianyu) Search Scraper](https://apify.com/zen-studio/goofish-xianyu-search-scraper)
  - [Goofish (Xianyu) Seller Scraper](https://apify.com/zen-studio/goofish-xianyu-seller-scraper)

**🏠 Real estate & autos**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-1tAzNSf8Kz0v7Q2Lr-AINJ7FsZVU-anjuke-scraper-logo.jpg" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Anjuke 安居客**
  - [Anjuke For-Sale Listings Scraper](https://apify.com/zen-studio/anjuke-real-estate-scraper)
  - [Anjuke New-Home Scraper](https://apify.com/zen-studio/anjuke-new-home-scraper)
  - [Anjuke Rental Listings Scraper](https://apify.com/zen-studio/anjuke-rent-scraper)
  - [Anjuke Listing Detail Scraper](https://apify.com/zen-studio/anjuke-sale-detail-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-32OkWqsiUywoq2ci3-7JhFlW1qg3-58__-real-estate-scraper-logo.jpg" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **58.com 58同城**
  - [58.com Real Estate Scraper](https://apify.com/zen-studio/58-real-estate-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-ytaE4YpSmjXDmibPv-L1UMPHa2bO-che168-autohome-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Autohome 汽车之家**
  - [Autohome (Che168) Used-Car Scraper](https://apify.com/zen-studio/che168-car-scraper)

### Support

- **Bugs**: Issues tab
- **Feature requests**: Issues tab

### Legal Compliance

Extracts publicly available product reviews from Xiaohongshu (RedNote / 小红书). Users must comply with Xiaohongshu's terms of service and applicable data protection regulations (GDPR, CCPA, PIPL).

***

*RedNote (小红书 / Xiaohongshu) product reviews: text, star ratings, buyer photos, variants, and seller replies. One row per review, in clean JSON.*

# Actor input Schema

## `productUrls` (type: `array`):

Add one or more products. Each entry can be a product link (<code>https://www.xiaohongshu.com/goods-detail/\<id></code>) or a raw product ID. Tip: feed the <code>url</code> or <code>id</code> straight from the RedNote Product Search Scraper.

## `maxReviewsPerProduct` (type: `integer`):

How many reviews to collect for <b>each product</b> (0 = all available). Every review counts toward your bill. Products with few sales may return fewer.

## `sortBy` (type: `string`):

Order reviews are collected in.

## `withImagesOnly` (type: `boolean`):

Collect only reviews that include buyer photos.

## Actor input object example

```json
{
  "productUrls": [
    "https://www.xiaohongshu.com/goods-detail/69da64265ec0880001bf68ae"
  ],
  "maxReviewsPerProduct": 100,
  "sortBy": "recommended",
  "withImagesOnly": false
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset of reviews, one row per Xiaohongshu product review.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "productUrls": [
        "https://www.xiaohongshu.com/goods-detail/69da64265ec0880001bf68ae"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/rednote-product-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "productUrls": ["https://www.xiaohongshu.com/goods-detail/69da64265ec0880001bf68ae"] }

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/rednote-product-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "productUrls": [
    "https://www.xiaohongshu.com/goods-detail/69da64265ec0880001bf68ae"
  ]
}' |
apify call zen-studio/rednote-product-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=zen-studio/rednote-product-reviews-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Xiaohongshu (RedNote) Product Reviews Scraper",
        "description": "Scrape Xiaohongshu (RedNote) product reviews. Get review text, star ratings, buyer photos, the variant purchased, tags, seller replies, and reviewer profiles. Just add product URLs or IDs. Export to JSON, CSV, Excel.",
        "version": "0.0",
        "x-build-id": "RosSN4ZGCSqalQpKO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/zen-studio~rednote-product-reviews-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-zen-studio-rednote-product-reviews-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/zen-studio~rednote-product-reviews-scraper/runs": {
            "post": {
                "operationId": "runs-sync-zen-studio-rednote-product-reviews-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/zen-studio~rednote-product-reviews-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-zen-studio-rednote-product-reviews-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "productUrls"
                ],
                "properties": {
                    "productUrls": {
                        "title": "🛍️ Product links or IDs",
                        "minItems": 1,
                        "type": "array",
                        "description": "Add one or more products. Each entry can be a product link (<code>https://www.xiaohongshu.com/goods-detail/&lt;id&gt;</code>) or a raw product ID. Tip: feed the <code>url</code> or <code>id</code> straight from the RedNote Product Search Scraper.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxReviewsPerProduct": {
                        "title": "📊 Max reviews per product",
                        "minimum": 0,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "How many reviews to collect for <b>each product</b> (0 = all available). Every review counts toward your bill. Products with few sales may return fewer.",
                        "default": 100
                    },
                    "sortBy": {
                        "title": "↕️ Sort order",
                        "enum": [
                            "recommended",
                            "latest"
                        ],
                        "type": "string",
                        "description": "Order reviews are collected in.",
                        "default": "recommended"
                    },
                    "withImagesOnly": {
                        "title": "🖼️ Only reviews with photos",
                        "type": "boolean",
                        "description": "Collect only reviews that include buyer photos.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
