# Oliveyoung Scraper — Rankings, Search, Ingredients \[💰 $4/1K] (`cocomoon/oliveyoung-scraper`) Actor

Olive Young (oliveyoung.co.kr), Korea's #1 beauty retailer: official best-seller rankings (top 100 by category, period, gender, age), keyword search in its own popularity order, and full ingredient lists in Korean + English INCI. Prices, discounts, ratings, review counts and barcodes as clean JSON.

- **URL**: https://apify.com/cocomoon/oliveyoung-scraper.md
- **Developed by:** [PARK MOONNAM](https://apify.com/cocomoon) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Features:** Limited permissions
- **Stats:** 47 total users, 25 monthly users, 99.2% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.60 / 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Oliveyoung Scraper — K-Beauty Search, Best-Seller Rankings & Ingredients

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. **New: official best-seller rankings** — top 100 per category, real-time to monthly, by gender and age group. Add the **full ingredient list (전성분)**, volume, shelf life, manufacturer, country of origin and barcodes for every product.

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.

### ⚡ Try it in 30 seconds (free)

1. Click **Try for free** — the input is pre-filled with `선크림` (sunscreen).
2. Click **Start**. A 100-product run finishes in about 10 seconds.
3. Open **Output** → **Export** as JSON, CSV or Excel, or send it to Google Sheets.

Apify's free plan includes $5 of credit every month — that's about 1,200 results with this Actor, no card required. Pricing is $4 per 1,000 products + $0.005 per run, platform usage included.

**What you'll see:** as of September 2026 the #1 sunscreen at Olive Young is Mediheal's Madecassoside Sun Serum with 16,500+ reviews and a 4.9 rating, sold as a 50+50+15 g bundle at 39% off — that bundle/discount structure is exactly what this Actor captures (`originalPrice`, `salePrice`, `discountRate`, `hasCoupon`, `isTodaySpecial`).

### 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.

### 🏆 Official best-seller rankings (new)

Olive Young's ranking page is the chart every K-beauty brand watches. `mode: "ranking"` reads it directly:

- **Top 100 per chart** — the overall chart or any of 21 categories (skincare, mask packs, cleansing, sun care, makeup, hair care, body care, derma cosmetics, fragrance, men's, health supplements and more)
- **Four periods** — real-time, daily, weekly, monthly
- **Who is buying** — filter by gender (women / men) and age group (teens, 20s, 30s, 40+). What men in their 20s buy is a very different chart from what women over 40 buy.
- Every row has `rank`, price, discount, rating, review count, barcode and sold-out / coupon / today's-special flags
- **Rank change vs your previous run** — `previousRank`, `rankChange` (positive = climbed) and `isNewEntry` on every row, so a scheduled run is a ready-made movers report (see below)
- Switch on **Add full details & ingredients** and each ranked product also gets its full ingredient list in Korean and English

```json
{
    "mode": "ranking",
    "rankingCategories": ["all", "skincare", "suncare"],
    "rankingPeriod": "WEEK",
    "rankingGender": "FEMALE",
    "rankingAge": "TWENTIES",
    "rankingTop": 100
}
```

Example row (trimmed):

```json
{
    "mode": "ranking",
    "rankingCategory": "suncare",
    "rankingCategoryNameEn": "Sun Care",
    "rankingPeriod": "WEEK",
    "rankingGender": "FEMALE",
    "rankingAge": "TWENTIES",
    "rank": 1,
    "previousRank": 3,
    "rankChange": 2,
    "isNewEntry": false,
    "previousRankedAt": "2026-10-15T00:05:12.000Z",
    "goodsNo": "A000000232672",
    "name": "[양현종 PICK] 메디힐 마데카소사이드 수분 선세럼 흔적 리페어 50+50g 기획",
    "brand": "메디힐",
    "barcode": "8800364101595",
    "originalPrice": 34900,
    "salePrice": 22900,
    "discountRate": 34,
    "rating": 4.9,
    "reviewCount": 32960,
    "isSoldOut": false
}
```

**Rank changes are built in.** The Actor remembers the last snapshot of every chart you run (per category, period, gender and age group — in the key-value store `oliveyoung-ranking-history` in your account). The next run of the same chart fills `previousRank`, `rankChange` (previous rank minus current rank, so `+5` means the product climbed five places), `isNewEntry` (was not in the top 100 last time) and `previousRankedAt`. On the first run of a chart these fields are `null`. Schedule the task daily or weekly and filter `rankChange` or `isNewEntry` in the dataset — that is your movers-and-shakers report for your own products and your competitors, with no spreadsheet work. Same price as search: **$4 per 1,000 products** (one full chart = 100 products = $0.40). Ranking requests go through Korean residential IPs automatically; you don't need to configure anything. `rankingUpdatedAt` is filled for the real-time chart, which is the only one Olive Young timestamps.

### 🧪 Full ingredient lists & product details (new)

Every cosmetic sold in Korea must publish a legal product-information notice (상품정보 제공고시). This Actor now reads it for you:

- **Full ingredient list** — as one string (`ingredients`) and as a clean array (`ingredientList`, `ingredientCount`). Sets and bundles are split per item in `ingredientSections` (e.g. main product vs. gift mini).
- **English INCI names (new)** — `ingredientListEn` gives the international INCI name for each ingredient in the same order (`정제수` → `Water`, `병풀추출물` → `Centella Asiatica Extract`, `소듐디엔에이` → `Sodium DNA`), so you can compare Korean labels with US/EU products or feed them to ingredient checkers without translating anything.
- **Volume / weight, shelf life, how to use, cautions**
- **Manufacturer and responsible seller**, **country of origin**, Korean MFDS **functional-cosmetic review** status (brightening, anti-wrinkle, SPF)
- **Every option with its barcode** (EAN, `options[].barcode`), option price and sold-out status
- **Current promotion** name and end date, final price, **unit price** (e.g. ₩1,991 per 10 ml), full category path, product registration date

Two ways to get it:

1. **Search + details** — keep `mode: "search"` and switch on **Add full details & ingredients to search results** (`includeDetails: true`). Every search row gets the fields above.
2. **Details mode** — `mode: "details"` with a list of product numbers or URLs, e.g. from a previous search run or your own SKU list.

```json
{ "mode": "details", "products": ["A000000232672", "https://www.oliveyoung.co.kr/store/goods/getGoodsDetail.do?goodsNo=A000000223625"] }
```

Same price as search: **$4 per 1,000 products**, details included. Detail runs are slower (two extra requests per product, about 30 seconds per 10 products) and go through Korean residential IPs automatically, because Olive Young blocks datacenter IPs on product pages — you don't need to configure anything.

Example (details mode, trimmed):

```json
{
    "goodsNo": "A000000232672",
    "name": "[미니어처 단독기획/양현종 PICK] 메디힐 마데카소사이드 수분 선세럼 흔적 리페어 50+50+15g 기획",
    "brand": "메디힐",
    "brandEn": "mediheal",
    "originalPrice": 34900,
    "finalPrice": 22900,
    "discountRate": 34,
    "promotionName": "세일 (26.08.30 ~ 26.10.31)",
    "promotionEndsAt": "2026-10-31T23:59:59",
    "unitPrice": 1991,
    "unitPriceBasis": "10ml",
    "categoryPath": ["뷰티", "선케어", "선크림"],
    "options": [{ "optionName": "[한정기획] 50+50+15g", "barcode": "8800364103278", "finalPrice": 22900, "isSoldOut": false }],
    "volume": "50g X 2EA",
    "shelfLife": "제조 후 36M",
    "manufacturer": "코스맥스㈜ /  엘앤피코스메틱㈜",
    "countryOfOrigin": "대한민국",
    "functionalCosmeticReview": "화장품법에 따른 기능성 화장품 심사(또는 보고)를 필함",
    "ingredientCount": 64,
    "ingredientList": ["정제수", "다이부틸아디페이트", "프로판다이올", "부틸옥틸살리실레이트", "에칠헥실트리아존", "…"],
    "ingredientListEn": ["Water", "Dibutyl Adipate", "Propanediol", "Butyloctyl Salicylate", "Ethylhexyl Triazone", "…"],
    "ingredientsEnMatched": 63
}
```

`ingredientList` holds the names in Korean exactly as printed on the legal label. `ingredientListEn` holds the matching English INCI names, looked up in the Korean Ministry of Food and Drug Safety's public cosmetic-ingredient dictionary (about 22,000 standard names plus synonyms). In a test on 966 popular products across 12 categories, 97% of all ingredient entries were matched and two thirds of the products were matched completely; entries the dictionary doesn't know — label typos, non-standard names, shade labels — come back as `null` in that position, and `ingredientsEnMatched` tells you how many were matched. `ingredients` is always the untouched original text; `ingredientList` is a best-effort split that handles comma- and space-separated lists, shade-by-shade cushion lists and multi-item sets (in our tests it split about 9 in 10 cosmetic labels cleanly — for the rest, use the original text). For food and supplements the field holds the raw-material list (원료명 및 함량). `productInfoNotice` keeps every row of the notice as-is, so non-cosmetic products (food, health supplements, devices) keep their own fields too.

### 🛍️ Black Friday & sale season: what moves, and by how much

Olive Young's biggest promotions run from November into December (Black Friday on the Global store, 올영세일 in Korea, then holiday sets). During a sale the chart and the prices change every day, so run the same task daily and compare:

```json
{ "mode": "ranking", "rankingCategories": ["all", "skincare", "makeup"], "rankingPeriod": "DAY", "rankingTop": 100 }
```

- `rankChange` and `isNewEntry` show which products the sale pushed up the chart since your previous run.
- `originalPrice`, `salePrice`, `discountRate`, `hasCoupon` and `isTodaySpecial` show how deep each discount is. Run once before the sale starts and you have the before/after price for every product.
- To follow specific brands or sale items, use search mode with the same keywords every day: `{ "mode": "search", "keywords": ["anua", "medicube", "기획"], "maxItems": 300 }`.

One daily run of three charts is 300 products, about $1.20 a day.

### 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

### 📅 Pull a whole category every week (bulk & scheduled use)

Most teams don't need one search — they need the same 10–30 category keywords every week, so they can see what moved. Here is the setup that costs a few dollars a month and needs no code:

1. Enter your keyword list (one per line — e.g. `선크림`, `토너`, `세럼`, `앰플`, `클렌징`, `쿠션`, `립틴트`, `마스크팩`) and set **Max items** high enough for everything you want, e.g. `3000`.
2. Click **Save as task** on a finished run, then open the task's **Schedule** tab and pick weekly (Monday 09:00 KST is a good time — Olive Young's weekly sale starts Monday).
3. In the task's **Integrations** tab, send each run to Google Sheets, S3, a webhook or Slack. Every run lands as a new dated dataset, so week-over-week comparison is a lookup on `goodsNo`.

**What it costs:** $4 per 1,000 products, platform usage included. 2,000 products a week ≈ $8 a week; a full 20-keyword weekly sweep at ~3,000 products ≈ $12 a week. There is no cap on run size — the Actor pages through Olive Young's results automatically.

**Need 10,000+ products a month or a custom setup** (specific categories, brand lists, deduplication, price-change alerts)? Open an issue on this Actor and tell me what you're tracking — I can set up the task for you or adjust the Actor.

### Q\&A

**How do I scrape Olive Young (oliveyoung.co.kr)?**
Run this Actor with a keyword or brand name. It calls Olive Young's own search API and returns every matching product as structured data — no browser automation, no Korean IP, no login. A 100-product run takes about 10 seconds.

**Does Olive Young have a public API?**
No. Olive Young offers no official public API for product data. This Actor is the practical alternative: it returns the same data the website shows (prices, discounts, ratings, review counts, brand, category, flags) as JSON, CSV or Excel, and you can call it over the Apify REST API like any other API.

**How do I find the best-selling K-beauty products in Korea?**
Use `mode: "ranking"`. It returns Olive Young's official best-seller chart — top 100 overall or per category, for the real-time, daily, weekly or monthly period, and optionally by buyer gender and age group. For a narrower product type than the chart categories offer (say, only toner pads), search the keyword instead: search results come back in Olive Young's popularity order.

**How do I track Olive Young ranking changes over time?**
Save a ranking input as a task and schedule it daily. Each run stores `rank` for every `goodsNo`, so rank history is a simple pivot in Google Sheets or a BI tool.

**Can I search in English?**
Yes. English brand names (`anua`, `cosrx`, `round lab`, `mediheal`) and common product words work. Korean category keywords return more results. Every product includes `brandEn`, the brand's English name.

**How do I track Olive Young prices and discounts over time?**
Save your input as a task and schedule it daily or weekly. Each run stores `originalPrice`, `salePrice`, `discountRate`, `hasCoupon` and `isTodaySpecial`, so you can chart price history and promotions in Google Sheets or a BI tool.

**How do I get the reviews for these products?**
Pass the `goodsNo` values to my [Olive Young Reviews Scraper](https://apify.com/cocomoon/oliveyoung-review-scraper) — it returns every review with the reviewer's skin type, skin tone and concerns.

**How do I get the full ingredient list (전성분) of an Olive Young product?**
Use `mode: "details"` with the product number or URL, or turn on `includeDetails` in a search run. You get `ingredients` (full text), `ingredientList` (array) and, for sets, `ingredientSections` per item — plus volume, shelf life, manufacturer, country of origin and barcodes.

**Can I check which Olive Young products contain a specific ingredient?**
Yes. Search a category (e.g. `선크림`) with `includeDetails: true`, export to Excel or Sheets and filter `ingredientList` for the ingredient (e.g. `나이아신아마이드` niacinamide, `병풀추출물` centella). That gives you every top-selling product with it, with prices and review counts.

**Are the ingredient lists in English?**
Both. `ingredientList` is the Korean label text and `ingredientListEn` is the English INCI name for each ingredient, in the same order. About 97% of ingredient entries are matched; unknown ones are `null`.

**Are prices in USD?**
Prices are in KRW exactly as shown on the site (₩1,400 ≈ US$1).

### 🤖 Use it from ChatGPT, Claude or any AI agent (MCP)

This Actor works as a tool for AI agents through the [Apify MCP server](https://docs.apify.com/integrations/mcp). Add this server URL to Claude, Cursor, VS Code or any MCP client and the agent can call the Actor by itself:

```
https://mcp.apify.com?tools=cocomoon/oliveyoung-scraper
```

Then just ask in plain language — for example: *"Find the 20 most popular toners on Olive Young right now and show price, discount and review count."*

### 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.

**⭐ Did it save you time?** A quick star rating on this page takes 5 seconds and helps other teams find a scraper that works for Korean sites.

### 中文说明

**Olive Young（올리브영）数据抓取工具** —— 韩国最大的美妆连锁店，K-beauty 行业的风向标。三种模式：

- **关键词搜索（search）**：按关键词或品牌获取商品列表，含商品编号、名称、品牌、原价/折后价/折扣率、评分、评论数、优惠券、今日特价、缺货状态、分类。
- **官方畅销榜（ranking）**：Olive Young 官方排行榜，总榜或 21 个分类（护肤、面膜、洁面、防晒、彩妆、护发、身体护理、药妆、香水、男士、保健品等），支持实时/日/周/月四种周期，并可按性别（女/男）和年龄段（10 代、20 代、30 代、40+）筛选。每一行还带有 `previousRank`、`rankChange`、`isNewEntry`，自动对比上一次运行的名次变化，定时运行即是一份现成的涨跌榜。
- **商品详情与全成分（details）**：完整成分表（韩文原文 + 英文 INCI 名称）、容量、保质期、制造商、原产地、条码、促销信息、单位价格。

**价格：每 1,000 条结果 $4**（一个完整榜单 100 条 = $0.40），含平台费用。适合跨境电商选品、价格与排名监控、韩妆市场调研、竞品跟踪。

### More Korean data Actors by me

- [Naver Search Scraper](https://apify.com/cocomoon/naver-search-scraper) — the whole Naver search result page section by section (ads, places, posts, news, shopping…), Naver News search and autocomplete suggestions.
- [Naver Blog Scraper](https://apify.com/cocomoon/naver-blog-scraper) — Naver Blog keyword search (up to 1,000 posts, date filters), full post text and images, like/comment counts and blog profiles.
- [Olive Young Global Scraper](https://apify.com/cocomoon/oliveyoung-global-scraper) — the international store (global.oliveyoung.com) in English: best-seller top 100, USD prices, live stock and full English ingredient lists.
- [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.
- [Musinsa Scraper](https://apify.com/cocomoon/musinsa-scraper) — K-fashion search, official best-seller rankings and size-fit reviews with reviewer height/weight.
- [Naver Place Rank Tracker](https://apify.com/cocomoon/naver-place-rank-tracker) — Naver Place (네이버 플레이스) keyword rank from any location in Korea, with geo-grid heat-maps and competitor lists.

More Korean-platform Actors are on the way.

***

*Keywords: Olive Young scraper, Olive Young ranking, Olive Young best sellers, oliveyoung.co.kr, K-beauty data, K-beauty ranking, Korean cosmetics API, Korean skincare bestsellers, Korea beauty market research, 올리브영 스크레이퍼, K-beauty trend tracking, 韩国美妆数据, 韩妆数据, Olive Young 爬虫, 올리브영 数据抓取, 韩国化妆品排行榜, 韩国化妆品成分表, 跨境电商选品, 韩国电商数据*

# Actor input Schema

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

What to scrape: <b>search</b> — products by keyword, ordered by Olive Young popularity (prices, ratings, review counts); <b>ranking</b> — Olive Young's official best-seller chart: top 100 overall or per category, real-time / daily / weekly / monthly, optionally by gender and age group; <b>details</b> — full product details for specific products: <b>complete ingredient list (전성분) with English INCI names</b>, volume, shelf life, manufacturer, country of origin, functional-cosmetic review, how to use, cautions, option barcodes, current promotion and unit price.

## `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>.

## `rankingCategories` (type: `array`):

Ranking mode: which best-seller charts to collect. Each category returns its own top 100. <b>All categories</b> is Olive Young's overall chart.

## `rankingPeriod` (type: `string`):

Ranking mode: which chart to read — the live chart (updated through the day), or sales over the last day, week or month.

## `rankingGender` (type: `string`):

Ranking mode: chart for all buyers, or only what women or men buy.

## `rankingAge` (type: `string`):

Ranking mode: chart for all ages, or one age group.

## `rankingTop` (type: `integer`):

Ranking mode: how many ranked products to return per category (1–100). In ranking mode this replaces Max items.

## `includeDetails` (type: `boolean`):

Search and ranking modes: also fetch each product's details page — full ingredient list (Korean + English INCI names), volume, shelf life, manufacturer, country of origin, barcodes, promotion and unit price. Slower (2 extra requests per product); billed the same per product.

## `products` (type: `array`):

Details mode: Olive Young product numbers (<code>A000000232672</code>) or product URLs. Tip: get product numbers from the <code>goodsNo</code> field of a search run.

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

Search and details modes: maximum number of products to scrape in total (across all keywords). Ranking mode uses "Top N per category" instead.

## `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": [
    "선크림"
  ],
  "rankingCategories": [
    "all"
  ],
  "rankingPeriod": "REALTIME",
  "rankingGender": "ALL",
  "rankingAge": "ALL",
  "rankingTop": 100,
  "includeDetails": false,
  "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": [
        "선크림"
    ],
    "rankingCategories": [
        "all"
    ],
    "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": ["선크림"],
    "rankingCategories": ["all"],
    "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": [
    "선크림"
  ],
  "rankingCategories": [
    "all"
  ],
  "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/a2NMp4RdHya0ZrtXr/openapi.json
