# Olive Young Global Scraper — Rankings & Ingredients \[💰 $6/1K] (`cocomoon/oliveyoung-global-scraper`) Actor

Olive Young Global (global.oliveyoung.com) best-seller top 100, keyword search and category listings in English: USD prices, discounts, ratings, review counts, live stock, skin-type and ingredient tags — plus full ingredient lists, barcodes and options per product. No login, fast and cheap.

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

## Pricing

from $6.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?

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

## Olive Young Global Scraper — Best Sellers, Search & Full Ingredients

Scrape **Olive Young Global (global.oliveyoung.com)** — the international store of Korea's #1 beauty retailer. Get the official **best-seller top 100**, keyword search and category listings with **USD prices, discounts, ratings, review counts and live stock quantity**, plus the **full English ingredient list, barcodes and options** for every product. Everything is already in English — no translation step.

Olive Young Global is what overseas shoppers actually see and buy: the same brands as the Korean store, with English names, dollar prices and its own best-seller chart. If you sell, source or research K-beauty outside Korea, this is your market-facing dataset.

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

1. Click **Try for free** — the input is pre-set to the overall best-seller chart.
2. Click **Start**. The top 100 arrives in a few 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 — about 800 products with this Actor, no card required. Pricing is **$6 per 1,000 products** + $0.005 per run, platform usage included, and full details (ingredients, barcodes, options) cost the same as a plain listing.

### What you can do with it

- 🏆 **Track the best-seller chart** — top 100 overall or per category (skincare, suncare, makeup, hair, men's care…), on a schedule
- 🔍 **Search like a shopper** — by product type, ingredient or brand (`sunscreen`, `PDRN`, `anua`), sorted by best selling, newest, most reviewed or price
- 💵 **Monitor international pricing** — original vs. sale price in USD, discount rate, promotion dates, free gifts
- 📦 **Watch stock** — `stockQuantity` and sold-out flags for every listing: see what is selling out before it restocks
- 🧪 **Compare formulas** — full English ingredient list per product (and per item for sets), ready for ingredient checkers and INCI databases
- 🏷 **Match products across markets** — barcodes (EAN) for the product and each option, Korean product and brand names for cross-referencing with the Korean store
- 🤖 **Feed AI agents & dashboards** — clean JSON for Sheets, BI tools, RAG or MCP agents

### Modes

#### 1. Best sellers (`mode: "bestsellers"`)

Olive Young Global's own "Top Orders" chart. Leave categories empty for the overall top 100, or pick categories to get one chart each. `maxItems` is the top N per chart (up to 100).

```json
{ "mode": "bestsellers", "categories": ["skincare", "suncare"], "maxItems": 100 }
```

#### 2. Search (`mode: "search"`)

Keywords, categories or both. Results page automatically until `maxItems`.

```json
{ "mode": "search", "keywords": ["PDRN", "toner pad"], "sortBy": "mostReviewed", "maxItems": 200 }
```

```json
{ "mode": "search", "categories": ["sunscreen"], "sortBy": "newest", "maxItems": 100 }
```

Any category on the site works: paste its number or URL into `categoryIds` (the `ctgrNo` value in the category page address).

#### 3. Details (`mode: "details"`)

Full details for a list of product numbers or URLs — or switch on **Add full details & ingredients** (`includeDetails: true`) in the other two modes and every row gets them.

```json
{ "mode": "details", "products": ["GA230518746", "https://global.oliveyoung.com/product/detail?prdtNo=GA240824996"] }
```

### Output

Every product (best sellers and search):

| Field | Description |
| --- | --- |
| `rank` / `position`, `totalResults` | Rank in the best-seller chart, or position in the search results and total matches |
| `productNo`, `url`, `image` | Olive Young Global product number, product page, main image |
| `name`, `brand`, `brandKo`, `nameKo` | English product and brand names; Korean brand name (and Korean product name in best sellers and details) |
| `originalPrice`, `salePrice`, `discountRate`, `currency` | USD prices and discount % |
| `rating`, `reviewCount` | Average rating (out of 5) and number of reviews |
| `stockQuantity`, `isSoldOut` | Units in stock as reported by the store, sold-out flag |
| `isBestSeller`, `isNew`, `hasCoupon`, `hasFreeGift`, `hasOptions` | Listing badges |
| `category`, `categoryPath`, `attributes` | Category path and the store's own tags: skin type, skin concern, SPF, formulation, featured ingredients, trend keywords (search mode) |
| `registeredAt` | When the product was first listed (search mode) |

With details:

| Field | Description |
| --- | --- |
| `ingredients`, `ingredientList`, `ingredientCount` | Full ingredient list as text and as a clean array |
| `ingredientSections` | For sets and multi-option products: one ingredient list per item |
| `volume`, `shelfLife`, `idealFor`, `howToUse`, `precautions` | Legal product information |
| `manufacturer`, `countryOfManufacture`, `functionalCosmeticReview` | Who makes it, where, and its Korean functional-cosmetic status |
| `barcode`, `options[]` | Barcode of the product and of each option, with option prices and stock status |
| `whyWeLoveIt`, `featuredIngredients` | The store's own selling points and key-ingredient notes |
| `promotionLabel`, `promotionStartsAt`, `promotionEndsAt`, `freeGift` | Current promotion and free gift |
| `images`, `categoryPathKo`, `productTypeKo` | All product images, Korean category names |
| `productInfoNotice` | Every row of the legal notice, as-is |

Example (best sellers with details, trimmed):

```json
{
    "mode": "bestsellers",
    "bestsellerCategory": "Suncare",
    "rank": 1,
    "productNo": "GA230518746",
    "name": "SKIN1004 Madagascar Centella Hyalu-Cica Water-Fit Sun Serum 50mL*2ea (Twin pack)",
    "brand": "SKIN1004",
    "brandKo": "스킨1004",
    "url": "https://global.oliveyoung.com/product/detail?prdtNo=GA230518746",
    "originalPrice": 28,
    "salePrice": 22.4,
    "discountRate": 20,
    "currency": "USD",
    "rating": 4.9,
    "reviewCount": 10582,
    "stockQuantity": 863,
    "isSoldOut": false,
    "barcode": "8809913830122",
    "volume": "50ml*2ea",
    "shelfLife": "30 months after manufacture (12 months after opening)",
    "manufacturer": "Kolmar Korea Co., Ltd. / CRAVER Corporation",
    "countryOfManufacture": "South Korea",
    "promotionLabel": "SALE",
    "promotionEndsAt": "2026-10-31",
    "ingredientCount": 42,
    "ingredientList": ["Water", "Dibutyl Adipate", "Propanediol", "Diethylamino Hydroxybenzoyl Hexyl Benzoate", "…"]
}
```

### Q\&A

**How do I scrape Olive Young Global?**
Run this Actor in best sellers, search or details mode. It reads the same data the website loads — no browser automation, no login — and returns it as JSON, CSV or Excel.

**Does Olive Young have a public API?**
No. This Actor is the practical alternative, and you can call it over the Apify REST API like any other API.

**What is the difference between Olive Young Global and the Korean Olive Young store?**
The Korean store (oliveyoung.co.kr) is in Korean, priced in won, and reflects what people in Korea buy. The Global store is in English, priced in USD, and reflects what international shoppers buy. Rankings, prices and assortment differ. For the Korean store, use my [Olive Young Scraper](https://apify.com/cocomoon/oliveyoung-scraper).

**How do I find the best-selling K-beauty products internationally?**
Use `mode: "bestsellers"`. For a narrower product type, use search with `sortBy: "bestSelling"`.

**How do I get the ingredient list of a K-beauty product in English?**
Use details mode, or switch on **Add full details & ingredients**. `ingredientList` is the list exactly as Olive Young Global publishes it, split into an array.

**Can I track prices or rankings over time?**
Yes — save your input as a task and schedule it daily or weekly. Each run stores `rank`, prices and stock per `productNo`.

**Are prices always in USD?**
Yes, this Actor returns the store's USD prices.

**Does it get reviews?**
Not in this version: it returns the rating and review count per product. For Korean-store reviews with skin-type profiles, see my [Olive Young Reviews Scraper](https://apify.com/cocomoon/oliveyoung-review-scraper).

### 🤖 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-global-scraper
```

Then just ask in plain language — for example: *"What are the top 20 best-selling sunscreens on Olive Young Global, and which of them contain niacinamide?"*

### Why this Actor

- **Built by a Korean marketing practitioner** — I work with Olive Young and K-beauty data daily, and maintain a family of Korean retail Actors
- **Fast and affordable** — plain HTTP against the store's own data endpoints, no headless browser: the top 100 in a few seconds
- **Details at the same price** — ingredients, barcodes and options cost the same per product as a plain listing

### FAQ

**Do I need an account or a special IP?** No login is used, and the default Apify proxy is enough.

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

### More Korean data Actors by me

- [Olive Young Scraper](https://apify.com/cocomoon/oliveyoung-scraper) — the Korean store: official rankings by gender and age group, search, and full ingredient lists in Korean and English.
- [Olive Young Reviews Scraper](https://apify.com/cocomoon/oliveyoung-review-scraper) — every review of a product, with reviewer skin type, tone and concerns.
- [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.
- [Naver Place Rank Tracker](https://apify.com/cocomoon/naver-place-rank-tracker) — local search rank on Naver Map, with geo-grid scans.

***

*Keywords: Olive Young Global scraper, global.oliveyoung.com, Olive Young best sellers, K-beauty prices USD, Korean skincare ingredients, K-beauty product data API, Olive Young ingredients, K-beauty stock monitoring*

# Actor input Schema

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

What to scrape: <b>bestsellers</b> — Olive Young Global's official best-seller chart (top 100 overall or per category); <b>search</b> — products by keyword and/or category, sorted the way you choose; <b>details</b> — full details for specific products: complete English ingredient list, volume, shelf life, manufacturer, country of manufacture, options and barcodes.

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

Search mode: keywords in English — a product type (<code>sunscreen</code>, <code>toner pad</code>), an ingredient (<code>PDRN</code>, <code>centella</code>) or a brand (<code>anua</code>, <code>medicube</code>). Combine with categories to search inside a category.

## `categories` (type: `array`):

Best sellers mode: one chart per selected category (leave empty for the overall chart). Search mode: browse these categories, or limit keywords to them.

## `categoryIds` (type: `array`):

Any other Olive Young Global category, by its number or URL — the <code>ctgrNo</code> value in the category page address, e.g. <code>1000000047</code> (Lip Gloss & Lip Tint).

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

Search mode: order of the results (same options as the site).

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

Best sellers and search modes: also fetch each product's details — full English ingredient list, volume, shelf life, manufacturer, country of manufacture, how to use, options with barcodes, promotion dates and free gift. Slower (3 extra requests per product); billed the same per product.

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

Details mode: Olive Young Global product numbers (<code>GA240824996</code>) or product URLs. Tip: take them from the <code>productNo</code> field of a best-sellers or search run.

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

Search and details modes: maximum number of products in total. Best sellers mode: top N of each chart (up to 100), so three categories at 100 return 300 products.

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

Proxies to use. The default Apify proxy works in most cases; switch to residential proxies if you see blocks.

## Actor input object example

```json
{
  "mode": "bestsellers",
  "keywords": [
    "sunscreen"
  ],
  "categories": [],
  "sortBy": "bestSelling",
  "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": [
        "sunscreen"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

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

# Run the Actor and wait for it to finish
run = client.actor("cocomoon/oliveyoung-global-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": [
    "sunscreen"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call cocomoon/oliveyoung-global-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,cocomoon/oliveyoung-global-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/cgBaspZ4fQsvI1cDz/builds/1gGmAcwUeddwUDZ0N/openapi.json
