# Yesstyle Reviews Scraper (`stealth_mode/yesstyle-reviews-scraper`) Actor

Extract customer reviews, ratings, and reviewer details from YesStyle product pages. This scraper captures review text, star ratings, and reviewer names across 200+ reviews per product — perfect for e-commerce analysis, sentiment monitoring, and reputation management.

- **URL**: https://apify.com/stealth\_mode/yesstyle-reviews-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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

## YesStyle Reviews Scraper: Collect Product Reviews & Ratings Instantly
---

### What Is YesStyle?

YesStyle is a leading Korean beauty and fashion e-commerce platform serving millions of customers globally. Each product listing contains hundreds of customer reviews with ratings, providing valuable insights into product performance, customer satisfaction, and market trends. Manually collecting and analyzing these reviews is laborious — the **YesStyle Reviews Scraper** automates extraction, delivering structured review data for analysis at scale.

---

### Overview

The **YesStyle Reviews Scraper** extracts customer reviews and ratings from YesStyle product detail pages, converting unstructured review sections into clean, queryable datasets. It is designed for:

- **E-commerce analysts** tracking product performance and customer sentiment
- **Brand managers** monitoring reputation and feedback across product lines
- **Market researchers** studying consumer preferences in K-beauty and fashion
- **Developers** building review aggregators or sentiment analysis systems
- **Dropshippers and resellers** evaluating product quality before listing

Key strengths include support for up to 200 reviews per product, configurable failure handling, and reliable extraction of reviewer metadata alongside review content.

---

### Input Format

The scraper accepts a JSON configuration object:

```json
{
  "urls": [
    "https://www.yesstyle.com/nl/lilybyred-luv-beam-cheek-balm-11-colors-09-zesty-coral/info.html/pid.1118395107#productAnchor"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

| Field | Description | Example |
|---|---|---|
| `urls` | Direct links to YesStyle product detail pages | `https://www.yesstyle.com/[lang]/[product-name]/info.html/pid.[ID]` |
| `max_items_per_url` | Maximum reviews collected per product (1–200) | `200` extracts all available reviews |
| `ignore_url_failures` | If `true`, scraper continues if some URLs fail | `true` prevents batch runs from stopping |

**Tips for best results:**

- Use product detail URLs ending with `#productAnchor` to ensure the review section loads
- Include language variants (e.g., `/nl/`, `/en/`, `/de/`) if scraping across regions
- For high-volume runs, set `max_items_per_url` to `200` and enable failure tolerance

***

### Output Format

#### Sample Output (Annotated)

```json
{
  "rating": 100.0,
  "reviews": [
    {
      "title": "Loveee ",
      "product_id": 1118395107,
      "review_id": 42098748,
      "date_posted": "16 juni 2023",
      "images": [
        {
          "image_path": "https://ddvql06zg3s2o.cloudfront.net/review/20230619/42098748/932e649afc4a42c3b30779601ec9b29f.JPG",
          "thumb_path": "https://ddvql06zg3s2o.cloudfront.net/review/20230619/42098748/thumb_200831d1f6c248e2b956dbdb1fbe8beb.JPG"
        }
      ],
      "helpful_message": "98 of 407 people found this review helpful",
      "content_lines": [
        "I love this blush so much it blends so nicely and i’ve gotten so many compliments "
      ],
      "number_of_voted_helpful": 98,
      "is_translatable": true,
      "is_voted_helpful": false,
      "voted_not_helpful": false
    }
  ],
  "reviewer_name": "chloe yuen",
  "from_url": "https://www.yesstyle.com/nl/lilybyred-luv-beam-cheek-balm-11-colors-09-zesty-coral/info.html/pid.1118395107#productAnchor"
}
```

Each scraped review returns a focused dataset with three core fields:

#### Core Review Fields

| Field | Meaning | Example |
|---|---|---|
| `Rating` | Star rating assigned by the reviewer (1–5 stars) | `4.5`, `5`, `3` |
| `Reviews` | Full review text written by the customer | "Great product! Works well with my skin type and lasts long." |
| `Reviewer Name` | Display name or username of the review author | "Sarah M.", "K-Beauty Enthusiast", "Jane\_2024" |

#### What Each Field Reveals

- **Rating:** Quantifies satisfaction on a scale; aggregating ratings shows overall product sentiment at a glance
- **Reviews:** Contains detailed feedback on product quality, performance, packaging, value, and use cases — essential for understanding *why* customers rated the product
- **Reviewer Name:** Identifies the author, enabling you to filter by reviewer history, segment by user type (first-time vs. repeat reviewers), or verify reviewer credibility

***

### How to Use

1. **Find product URLs** — Browse YesStyle and locate product detail pages (e.g., beauty, skincare, fashion). Copy the full product URL including the product ID and anchor.
2. **Prepare your input** — Add URLs to the `urls` array in JSON format. Set `max_items_per_url` to `200` for comprehensive review collection.
3. **Enable failure handling** — Set `ignore_url_failures: true` for batch runs spanning multiple products.
4. **Run the scraper** — Start the actor and monitor progress in the run log.
5. **Analyze results** — Export data as JSON or CSV, then analyze ratings distribution, sentiment trends, or reviewer demographics.

**Troubleshooting:**

- If reviews are not captured, verify the URL includes `#productAnchor` and loads the review section in your browser
- Some product pages may have review pagination; the scraper captures up to the configured limit
- Anonymous reviews appear with generic names like "Anonymous User" or "Guest"

***

### Use Cases & Business Value

- **Sentiment analysis:** Aggregate ratings and extract common positive/negative themes across reviews
- **Product benchmarking:** Compare average ratings and review volume across competing products
- **Content curation:** Build curated review summaries for marketing or product pages
- **Customer insight:** Identify recurring feedback on sizing, quality, or durability for product development
- **Review monitoring:** Track new reviews over time to detect reputation changes or quality issues

The YesStyle Reviews Scraper transforms scattered customer feedback into actionable intelligence, enabling data-driven decisions about product selection, inventory, and marketing strategy.

***

### Conclusion

The **YesStyle Reviews Scraper** delivers fast, reliable extraction of customer reviews and ratings at scale. Whether you're managing inventory, researching market trends, or analyzing sentiment, this scraper eliminates manual copy-pasting and provides clean, structured data ready for analysis. Start scraping today and unlock insights hidden in thousands of customer reviews.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the product details urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.yesstyle.com/nl/lilybyred-luv-beam-cheek-balm-11-colors-09-zesty-coral/info.html/pid.1118395107#productAnchor"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://www.yesstyle.com/nl/lilybyred-luv-beam-cheek-balm-11-colors-09-zesty-coral/info.html/pid.1118395107#productAnchor"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/yesstyle-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 = {
    "urls": ["https://www.yesstyle.com/nl/lilybyred-luv-beam-cheek-balm-11-colors-09-zesty-coral/info.html/pid.1118395107#productAnchor"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/yesstyle-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 '{
  "urls": [
    "https://www.yesstyle.com/nl/lilybyred-luv-beam-cheek-balm-11-colors-09-zesty-coral/info.html/pid.1118395107#productAnchor"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/yesstyle-reviews-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Yesstyle Reviews Scraper",
        "description": "Extract customer reviews, ratings, and reviewer details from YesStyle product pages. This scraper captures review text, star ratings, and reviewer names across 200+ reviews per product — perfect for e-commerce analysis, sentiment monitoring, and reputation management.",
        "version": "0.0",
        "x-build-id": "O2G6PgN5m4QZsNfaH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~yesstyle-reviews-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-yesstyle-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/stealth_mode~yesstyle-reviews-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-yesstyle-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/stealth_mode~yesstyle-reviews-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-yesstyle-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",
                "properties": {
                    "urls": {
                        "title": "URLs of the product details urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the product details urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
