# Olive Young Scraper — K-Beauty Product Search & Data (`cocomoon/oliveyoung-scraper`) Actor

Scrape Olive Young (oliveyoung.co.kr), Korea's #1 beauty retailer: search products by keyword, ordered by popularity. Prices, discounts, ratings, review counts, brands (EN/KR) as clean JSON. Korean or English keywords.

- **URL**: https://apify.com/cocomoon/oliveyoung-scraper.md
- **Developed by:** [PARK MOONNAM](https://apify.com/cocomoon) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.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.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Olive Young Scraper — K-Beauty Products, Prices & Trends

Scrape **Olive Young (oliveyoung.co.kr)** — Korea's #1 health & beauty retailer and the place where K-beauty trends are born. Search any keyword or brand and get clean, structured JSON with prices, discounts, **ratings, review counts**, and English brand names, ordered by Olive Young's own popularity ranking.

Olive Young is where Korean consumers actually buy their skincare and makeup — over 1,300 stores plus the dominant online mall. If a product ranks here, it is trending in Korea months before it reaches global marketplaces. This Actor gives you that signal without needing Korean language skills, a Korean IP, or manual browsing.

### What you can do with it

- 🔍 **Track K-beauty trends early** — monitor Olive Young best sellers to spot products before they go viral globally
- 💄 **Competitive & market research** — see how brands price, discount, and rank in the Korean market
- 🛍 **Sourcing & retail buying** — find which SKUs, sizes, and bundles Korean retail actually sells
- 📈 **Price monitoring** — original vs. sale price and discount rate for any keyword, on a schedule
- 🤖 **Feed AI agents & dashboards** — clean JSON output, ready for Sheets, BI tools, or LLM pipelines

### How it works

Search products by keyword — Korean or English both work (`선크림`, `sunscreen`, `toner`, `anua`, `mediheal`...). Returns rich data straight from Olive Young's own search API, including **ratings (out of 5 and 10), review counts, English brand names, and sold-out / coupon / today's-special flags**. Results are ordered by Olive Young's popularity ranking, so the first results for a category keyword are effectively that category's current top sellers.

A dedicated official best-sellers ranking mode (top 100 per category) is coming in the next version.

### Example input

```json
{
    "mode": "search",
    "keywords": ["선크림", "toner pads"],
    "maxItems": 100
}
```

### Example output (search mode)

```json
{
    "source": "oliveyoung.co.kr",
    "mode": "search",
    "keyword": "선크림",
    "position": 1,
    "totalResults": 614,
    "goodsNo": "A000000232672",
    "name": "[9/1 하루특가] 메디힐 마데카소사이드 수분 선세럼 흔적 리페어 50+50+15g 기획",
    "brand": "메디힐",
    "brandEn": "mediheal",
    "url": "https://www.oliveyoung.co.kr/store/goods/getGoodsDetail.do?goodsNo=A000000232672",
    "image": "https://image.oliveyoung.co.kr/cfimages/cf-goods/uploads/images/thumbnails/10/0000/0023/A00000023267264ko.jpg",
    "originalPrice": 22900,
    "salePrice": 20800,
    "discountRate": 9,
    "currency": "KRW",
    "rating": 4.9,
    "ratingOutOf10": 9.8,
    "reviewCount": 16037,
    "isDiscounted": true,
    "hasCoupon": true,
    "isTodaySpecial": true,
    "isBestSeller": true,
    "isSoldOut": false,
    "quickDelivery": true,
    "categoryLarge": "기초화장품",
    "categoryMid": "선케어",
    "categorySmall": "선블록",
    "scrapedAt": "2026-09-01T05:21:11.784Z"
}
```

### Why this Actor

- **Built by a Korean marketing practitioner** — I use Olive Young and the Korean beauty market daily, so the data model reflects how the platform actually works (기획 bundles, 올영픽 picks, 오늘드림 quick delivery, coupon layers)
- **Fast and affordable** — no headless browser; runs on lightweight HTTP with smart session handling
- **English-friendly** — English brand names included; keywords work in English or Korean

### FAQ

**Do I need a Korean IP or account?** No. The Actor handles access; no login is used.

**Can I schedule it?** Yes — use Apify Schedules to run it daily/weekly and feed the dataset anywhere (Sheets, S3, webhook, MCP/AI agent).

**Is this legal?** The Actor collects only publicly available product listing data — no personal data, no login-gated content. You are responsible for using the data in compliance with applicable laws and the target site's terms.

**Something broken or missing?** Open an issue on this Actor — I respond quickly.

### More Korean data Actors by me

- [Olive Young Reviews Scraper](https://apify.com/cocomoon/oliveyoung-review-scraper) — customer reviews with skin type/tone/concern profiles, repurchase flags and photos. Feed it the `goodsNo` values from this Actor's results.
- [Daiso Korea Scraper](https://apify.com/cocomoon/daiso-scraper) — Daiso Korea products with real units-sold numbers, plus reviews.

More Korean-platform Actors are on the way.

***

*Keywords: Olive Young scraper, oliveyoung.co.kr, K-beauty data, Korean cosmetics API, Korean skincare bestsellers, Korea beauty market research, 올리브영 스크레이퍼, K-beauty trend tracking*

# Actor input Schema

## `mode` (type: `string`):

What to scrape: <b>search</b> — products by keyword, ordered by Olive Young popularity, with rich JSON data incl. ratings & review counts. (A dedicated best-sellers ranking mode is coming soon.)

## `keywords` (type: `array`):

Keywords to search for (search mode only). Korean or English — e.g. <code>선크림</code>, <code>sunscreen</code>, <code>toner</code>, a brand name like <code>anua</code>.

## `maxItems` (type: `integer`):

Maximum number of products to scrape in total (across all keywords).

## `proxyConfiguration` (type: `object`):

Proxies to use. Korean sites can be sensitive to datacenter IPs — if you see blocks, switch to residential proxies.

## Actor input object example

```json
{
  "mode": "search",
  "keywords": [
    "선크림"
  ],
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

No description

# 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 = {
    "keywords": [
        "선크림"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("cocomoon/oliveyoung-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 = {
    "keywords": ["선크림"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("cocomoon/oliveyoung-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "keywords": [
    "선크림"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call cocomoon/oliveyoung-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,cocomoon/oliveyoung-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/zC0IuyaOJmthrMIal/builds/LNhwe2x7vid98yRha/openapi.json
