# Yesstyle Product Search Scraper (`stealth_mode/yesstyle-product-search-scraper`) Actor

Scrape YesStyle product listings across all categories with pricing, discounts, badges, and 15+ data fields. Perfect for price monitoring, competitive analysis, and building Asian beauty & fashion datasets from one of Asia's largest e-commerce platforms.

- **URL**: https://apify.com/stealth\_mode/yesstyle-product-search-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 $2.00 / 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 Product Search Scraper: Extract Fashion & Beauty Catalog Data

---

### What Is YesStyle?

YesStyle is a leading Asian e-commerce platform specializing in beauty, cosmetics, skincare, and fashion products. With an extensive catalog spanning Korean beauty, Japanese skincare, and trendy fashion items, it serves millions of customers across multiple regions. The platform regularly updates inventory, pricing, and promotional badges (Bestseller, YS Awards, etc.). Manually tracking product data across categories and regions is impractical — the **YesStyle Product Search Scraper** automates this, delivering comprehensive product intelligence at scale.

---

### Overview

The **YesStyle Product Search Scraper** extracts product listings from YesStyle search pages, converting category browsing results into structured, actionable data. It is ideal for:

- **E-commerce researchers** benchmarking Asian beauty and fashion trends
- **Price monitoring services** tracking YesStyle product discounts over time
- **Competitive analysts** studying product positioning and award badges
- **Dropshippers & resellers** identifying bestsellers and trending items
- **Data scientists** building datasets for market analysis and demand forecasting

Key features include flexible URL filtering, graceful error handling, and capture of 15+ product attributes including pricing, regional variants, and award badges.

---

### Input Format

The scraper accepts a JSON configuration with three main parameters:

```json
{
  "urls": [
    "https://www.yesstyle.com/nl/beauty-make-up/list.html/bcc.15479_bpt.46?pn=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
````

#### Input Parameters Explained

| Parameter | Type | Description |
|---|---|---|
| `urls` | Array of strings | Product search list page URLs from YesStyle. Paste direct links to filtered category or search results pages. The scraper will extract product cards from each page. |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues running if some URLs fail (network errors, page not found, etc.). If `false`, any failure stops the entire run. Default: `true`. |
| `max_items_per_url` | Integer | Maximum number of products to extract per URL. Useful for controlling data volume (e.g., `20` for a small test, `200` for full category dumps). Default: `20`. |

**Tips for best results:**

- Use filtered search URLs (e.g., by price range, brand, rating) to target specific product subsets
- Increase `max_items_per_url` to 200+ when scraping large category pages
- Include pagination parameters (e.g., `?pn=2`) to scrape multiple pages of the same search

***

### Output Format

#### Example Output Record

```json
{
  "product": {
    "url": "/nl/petersons-lab-caffeine-anti-wrinkle-lip-cream-3-types-light-10g/info.html/pid.1132328262",
    "new": false,
    "child_product_ids": [
      1132328261,
      1132328263,
      1136379083
    ],
    "has_videos": false,
    "new_arrival_sale": false,
    "new_picks": false,
    "item_status": "FLASH SALE",
    "black_friday2025": false,
    "mega_sale2025": false,
    "promotion_deal": false,
    "mega_sale": false,
    "year_end_sale": false,
    "black_friday": false,
    "eco_friendly": false,
    "final_clearance": false,
    "bogo": false,
    "ys_pre_order": false,
    "exclusive_sale": false,
    "early_bird": false,
    "trending_new": false,
    "fixed_price": false,
    "limited_deal": true,
    "daily_flash_deal": false,
    "must_try": false,
    "most_popular": false,
    "influencer_picks_for_customers": false,
    "high_discount": true,
    "show_color_icons": false,
    "cyber_monday": false,
    "black_friday2023": false,
    "black_friday2024": false,
    "name": "Caffeine Anti-Wrinkle Lip Cream - 3 Types",
    "product_id": 1132328262,
    "sell_price": "US$ 6.66",
    "brand_name": "PETERSON'S LAB",
    "discount": "34%",
    "discount_value": 0.349609375,
    "list_price": "US$ 10.24",
    "review_rating_count": 90,
    "review_average_score_percentage": 4.63,
    "images": {
      "m": "https://d1flfk77wl2xk4.cloudfront.net/Assets/44/264/M_p0214626444.jpg"
    },
    "is_show_color_icons": false
  },
  "variant": "Light - 10g",
  "bestseller_badge_rank": null,
  "not_show_discount": false,
  "is_ys_awards_2025": null,
  "ys_badge_icon_2025": null,
  "brand_region_country_code": null,
  "product_family_children_product_ids": [
    1132328261,
    1132328263,
    1136379083
  ],
  "sell_price_in_usd": null,
  "tracking_sale_price": "6.66",
  "brand_id": 330898,
  "discount": "3.58",
  "show_color_icons": false,
  "yesties_awards": false,
  "product_pack_label": null,
  "from_url": "https://www.yesstyle.com/nl/list.html?q=lips&bpt=48"
}
```

Each product record contains 15 key fields capturing pricing, metadata, badges, and regional information:

#### Product Identification

| Field | Meaning | Example |
|---|---|---|
| `Product` | Primary product name and core identifier | "COSRX Advanced Snail 96 Mucin Power Essence" |
| `Variant` | Product variant (color, size, volume, etc.) | "100ml" or "Natural Beige" |
| `Brand ID` | Internal YesStyle brand identifier | `12847` |
| `Brand Region Country Code` | Country code of the brand/region | `KR` (Korea), `JP` (Japan) |
| `Product Family Children Product IDs` | Related or bundled product IDs | `[54321, 54322, 54323]` |

#### Pricing & Discounts

| Field | Meaning | Example |
|---|---|---|
| `Sell Price In USD` | Current selling price in USD | `18.99` |
| `Discount` | Applied discount percentage or amount | `20%` or `$5 off` |
| `Tracking Sale Price` | Historical or tracked sale price (for trend analysis) | `16.99` |
| `Not Show Discount` | Boolean flag: if `true`, discount is hidden on product page | `false` |

#### Badges & Recognition

| Field | Meaning | Example |
|---|---|---|
| `Bestseller Badge Rank` | Bestseller status and ranking tier | `1` (rank 1), `null` (not a bestseller) |
| `Is YS Awards 2025` | Boolean: product won YS Awards 2025 | `true` or `false` |
| `YS Badge Icon 2025` | Badge name/type for 2025 awards | `"Editor's Pick"` or `"Top Rated"` |
| `Yesties Awards` | Customer-voted Yesties award status | `"Fan Favorite"` or `null` |

#### Product Metadata

| Field | Meaning | Example |
|---|---|---|
| `Show Color Icons` | Boolean: display color swatches on product page | `true` or `false` |
| `Product Pack Label` | Label for bundle or multi-pack offers | `"3-Piece Set"` or `"Duo Pack"` |

***

### How to Use

1. **Navigate to YesStyle** — Go to YesStyle.com and apply filters (category, brand, price range, rating, etc.)
2. **Copy search URLs** — From the filtered results page, copy the URL from your browser's address bar. Include pagination parameters if needed
3. **Paste into input** — Add URLs to the `urls` array in the configuration
4. **Set limits** — Adjust `max_items_per_url` (typically 50–200 per page) and `ignore_url_failures` (recommended: `true`)
5. **Run the scraper** — Execute the actor; it will begin extracting products from each URL
6. **Download results** — Export as JSON, CSV, or Excel for analysis, price tracking, or integration into your system

**Common troubleshooting:**

- **No products found:** Ensure the URL points to a product listing page, not a single product detail page
- **Partial results:** Some products may be blocked by anti-bot protections; set `ignore_url_failures: true` to skip them gracefully
- **Missing fields:** Some products may not have badges or pack labels; fields will be `null` if unavailable

***

### Real-World Use Cases

- **Price monitoring:** Detect YesStyle discounts and track competitor pricing on Korean beauty products
- **Trend analysis:** Identify bestsellers and award-winning products to spot emerging brands
- **Product research:** Build a searchable database of 10,000+ products with regional variants
- **Dropshipping:** Find trending items with high Yesties ratings and low competition
- **Market intelligence:** Compare product availability and pricing across YesStyle regions (NL, EN, etc.)

The scraper saves hours of manual browsing and enables data-driven decision-making for anyone working with Asian beauty and fashion e-commerce.

***

### Conclusion

The **YesStyle Product Search Scraper** is an essential tool for anyone serious about Asian beauty and fashion e-commerce. With just a few URLs and a simple configuration, you unlock detailed product data including pricing, awards, badges, and regional variants — all in machine-readable format. Use it for competitive analysis, price monitoring, inventory building, or market research.

# Actor input Schema

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

Add the URLs of the product search list 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/beauty-make-up/list.html/bcc.15479_bpt.46?pn=2"
  ],
  "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/beauty-make-up/list.html/bcc.15479_bpt.46?pn=2"
    ],
    "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-product-search-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/beauty-make-up/list.html/bcc.15479_bpt.46?pn=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/yesstyle-product-search-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/beauty-make-up/list.html/bcc.15479_bpt.46?pn=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/yesstyle-product-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Yesstyle Product Search Scraper",
        "description": "Scrape YesStyle product listings across all categories with pricing, discounts, badges, and 15+ data fields. Perfect for price monitoring, competitive analysis, and building Asian beauty & fashion datasets from one of Asia's largest e-commerce platforms.",
        "version": "0.0",
        "x-build-id": "bC5qoOdg3z11TNVPU"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~yesstyle-product-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-yesstyle-product-search-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-product-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-yesstyle-product-search-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-product-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-yesstyle-product-search-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 search list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the product search list 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
