
CJ Dropshipping Scraper
scrape.ly/store/shelfbright/cj-dropshipping-scraperE-commerce
2 monthly users

Scrape OLIVE YOUNG Global K-beauty products by keyword, category, brand or product URL: USD prices, discounts, ratings, reviews, stock and attributes, plus GTIN barcodes, options, specs and ingredients in detail mode. No login needed.
Get K-beauty product data from OLIVE YOUNG Global (global.oliveyoung.com), Korea's largest health and beauty store, in a clean table: USD prices, discounts, ratings, review counts, stock, badges, brands, categories and attribute tags. Switch on detail mode for GTIN barcodes, every option with its own price and stock, the full specification table, ingredients, volume and country of manufacture. No login, no browser, pay only for the products you get.
serum, sunscreen, snail mucin), or paste OLIVE YOUNG Global URLs or product numbers.| Field | What it does |
|---|---|
keywords | Search words, one per line (English; the global store does not match Korean words). |
startUrls | Product, search, category (?ctgrNo=) or brand (?brandNo=) URLs, or bare product numbers like GA260742277. |
maxResults | Total number of products to save (default 20). |
scrapeMode | overview (fast) or detail (barcodes, options, specs, ingredients). |
sort | popular, relevance, new, price_low, price_high or reviews. |
maxResultsPerSearch | Optional cap per keyword or listing. |
minPrice / maxPrice | Price range in US dollars. |
minRating | any, 3 or 4 stars and up. |
minDiscount | any, 1 (on sale), 25 or 50 percent off and more. |
brandIds / categoryIds | The site's brand IDs (B00568) and category IDs (1000000028). With no keyword, the run lists the whole brand or category. |
{
"keywords": ["sunscreen", "cica cream"],
"scrapeMode": "detail",
"sort": "popular",
"maxResults": 50,
"minRating": "4",
"maxPrice": 30
}
One row per product. Detail-only fields are empty in overview mode.
| Field | Description |
|---|---|
prdt_no, url | The site's product number and the product page. |
productTitle, brand, brand_no | Product name, brand and brand ID. |
price, original_price, discount_rate, currency | Selling price, list price, % off, always USD. |
price_min, price_max | Lowest and highest option price. |
rating, review_count | Average rating (empty without reviews) and number of reviews. |
in_stock, stock_qty, sold_out | Availability and units in stock. |
is_new, is_best, flash_deal, gift_included | Badges from the listing. |
category, category_path, category_no | Leaf category, category trail(s) and category ID. |
attributes | Skin concern, skin type, formulation, featured ingredients, SPF and similar tags. |
thumbnail, images, image_count | Main image and the image gallery (full gallery in detail mode). |
gtin, options, specs, ingredients, volume, country_of_manufacture | Detail mode: barcode, options with price/GTIN/stock, specification table and its key values. |
promo_label, selling_fast, is_trending, subtitle | Detail mode: promotion label and badges. |
listed_at, searchQuery, rank, scrapedAt, source | When the product was listed, the keyword and position that found it, when it was saved, and overview or detail. |
Real row from a detail-mode run (keyword sunscreen), trimmed:
{
"prdt_no": "GA260843327",
"productTitle": "[SET] SKIN1004 Madagascar Centella Hyalu-Cica Water-Fit Sun Serum 50mL*2ea (2 Options)",
"thumbnail": "https://cdn-image.oliveyoung.com/uploads/images/display/prdtImg/1373/bc314e4c-ada1-4ca4-81a3-4568721f9c14.png",
"url": "https://global.oliveyoung.com/product/detail?prdtNo=GA260843327",
"source": "detail",
"brand": "SKIN1004",
"brand_no": "B00568",
"gtin": "8809913830122",
"price": 21.5,
"original_price": 28,
"currency": "USD",
"discount_rate": 23.21,
"on_promotion": true,
"promo_label": "SALE",
"price_min": 21.5,
"price_max": 31.48,
"rating": 4.9,
"review_count": 27,
"in_stock": true,
"stock_qty": 360,
"sold_out": false,
"selling_fast": false,
"is_new": false,
"is_best": true,
"is_trending": true,
"flash_deal": false,
"gift_included": true,
"category": "Sunscreen",
"category_path": [
"OliveYoungGlobal",
"Suncare",
"Sunscreen"
],
"category_no": "1000000028",
"attributes": [
"Moisturising",
"Soothing",
"Combination&Normal",
"4-Star",
"SPF 50+"
],
"subtitle": null,
"options": [
{
"name": "[SET] 50mL*2ea (+15mL)",
"gtin": "8809913836551",
"price": 31.48,
"original_price": 41,
"stock_qty": 182,
"sold_out": false
},
{
"name": "[SET] 50mL*2ea",
"gtin": "8809913830122",
"price": 21.5,
"original_price": 28,
"stock_qty": 359,
"sold_out": false
}
],
"specs": {
"Content volume or weight": "50mL+50mL",
"Ideal for": "For all skin types",
"Expiration date (or expiration date after opening)": "30 months after manufacture (12 months after opening)"
},
"ingredients": "Water, Dibutyl Adipate, Propanediol, Diethylamino Hydroxybenzoyl Hexyl Benzoate, Polymethylsilsesquioxane, Ethylhexyl Tr...",
"volume": "50mL+50mL",
"country_of_manufacture": "Republic of Korea",
"images": [
"https://cdn-image.oliveyoung.com/uploads/images/display/prdtImg/1373/bc314e4c-ada1-4ca4-81a3-4568721f9c14.png",
"https://cdn-image.oliveyoung.com/uploads/images/display/prdtImg/1825/276add2c-5aad-4f11-bc62-617fdf3a96c9.png"
],
"image_count": 2,
"listed_at": "2026-08-31T02:21:02Z",
"searchQuery": "sunscreen",
"rank": 1,
"scrapedAt": "2026-10-22T02:34:46.056Z"
}
Pay per product, no start fee:
Worked examples: 1,000 overview products ≈ $6.00, 100 detailed products ≈ $2.50. Platform usage (compute and proxy traffic) is billed on top at normal rates and is tiny for this actor: about $0.001 for 1,000 overview products in our test runs. You never pay for products that were not saved, and a run stops cleanly when it reaches your maximum charge.
Is it legal to scrape OLIVE YOUNG Global? The actor reads only public product information that any visitor sees without an account. Check the site's terms and your local laws for your use case, and do not collect personal data you have no basis for.
Do I need an account or a proxy? No account and no login. The default Scrapely datacenter proxy works; you can switch to residential in the Proxy section.
How many products can I get? As many as you set in Max results. The site lists at most 10,000 products for one search; for more, split the job by category, brand or price range, and the run tells you when a search hit that ceiling.
Why is a field empty?
Detail-only fields (barcode, options, specs, ingredients, volume, badges) are filled in detail mode. rating is empty for products without reviews, and some products simply have no subtitle or promotion label.
Can I schedule runs or use the API? Yes. Schedule the actor to track prices daily, call it from the API, or connect the dataset to your own tools with webhooks and integrations.
Can I scrape the Korean store (oliveyoung.co.kr)? Not yet: this actor covers the global English store with USD prices.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
keywordsarrayOptionalSearch keywords
Words to search for on OLIVE YOUNG Global, one per line, exactly as you would type them into the site's search bar (for example "serum", "snail mucin" or "cushion foundation"). Each keyword is its own search; all results land in the same dataset. Search in English: the global store does not match Korean words.
startUrlsarrayOptionalOLIVE YOUNG Global URLs or product numbers
Pages of global.oliveyoung.com: product pages (or bare product numbers such as GA260742277), search pages, category pages (?ctgrNo=...) or brand pages (?brandNo=...). Product pages always come back with full details.
maxResultsintegerOptionaldefault 20Max results
How many products to save in total, across all keywords and URLs. The site lists at most 10,000 products per search; use filters, categories or brands to reach more.
scrapeModeenumOptionaldefault "overview"Scrape mode
Overview: search-result data (price in USD, discount, rating, review count, stock, badges, brand, category, attributes, image). Fast and cheapest. Detail: everything in Overview plus the product page: GTIN barcode, every option with its own price, barcode and stock, the full specification table, ingredients, volume, country of manufacture, promotion label, Selling Fast and Trending badges and the full image gallery. Detail is charged as a detailed product.
sortenumOptionaldefault "popular"Sort by
Order of the results, using the site's own sort options.
maxResultsPerSearchintegerOptionalMax results per search
Optional cap for each keyword or listing URL, so one broad keyword cannot use up the whole run. Leave empty or 0 for no per-search cap.
minPricenumberOptionalMin price (USD)
Only products priced at or above this amount in US dollars. Leave empty for no lower bound.
maxPricenumberOptionalMax price (USD)
Only products priced at or below this amount in US dollars. Leave empty for no upper bound.
minRatingenumOptionaldefault "any"Minimum rating
Only products with at least this average customer rating.
minDiscountenumOptionaldefault "any"Minimum discount
Only products on sale with at least this discount off the original price.
brandIdsarrayOptionalBrand IDs
Only products of these brands, by the site's brand ID (for example B00568). Every result carries its brand ID in brand_no. With no keyword, the run lists the brand's whole range.
categoryIdsarrayOptionalCategory IDs
Only products in these categories, by the site's category ID (for example 1000000028 for Sunscreen). Every result carries its category ID in category_no. With no keyword, the run lists the whole category.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Proxies for the requests. US datacenter proxies work well for OLIVE YOUNG Global and are the cheapest.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| thumbnail | string | null | Primary product image URL. |
| productTitle | string | null | Full product name as shown on OLIVE YOUNG Global. |
| brand | string | null | Brand name. |
| price | number | null | Current selling price in US dollars. |
| original_price | number | null | List price before any discount. |
| discount_rate | number | null | Discount off the original price, in percent. |
| rating | number | null | Average customer rating (0 to 5); empty when the product has no reviews. |
| review_count | number | null | Number of customer reviews. |
| in_stock | boolean | null | Whether the product can be bought now. |
| stock_qty | number | null | Units in stock as reported by the site. |
| category | string | null | Leaf category name. |
| url | string | null | Product page on global.oliveyoung.com. |
| prdt_no | string | null | The site's product number (unique ID). |
| brand_no | string | null | The site's brand ID (use it in the Brand IDs filter). |
| gtin | string | null | Barcode (GTIN/EAN) of the main option; detail mode. |
| currency | string | null | Currency of all prices (USD). |
| on_promotion | boolean | null | Whether the product is discounted right now. |
| promo_label | string | null | Promotion label such as SALE; detail mode. |
| price_min | number | null | Lowest price across the product's options. |
| price_max | number | null | Highest price across the product's options. |
| sold_out | boolean | null | Whether the product is sold out. |
| selling_fast | boolean | null | Selling Fast badge; detail mode. |
| is_new | boolean | null | New badge. |
| is_best | boolean | null | Best badge. |
| is_trending | boolean | null | Trending badge; detail mode. |
| flash_deal | boolean | null | Part of a flash deal. |
| gift_included | boolean | null | Comes with a free gift. |
| category_path | array | null | Category trail(s) from broad to specific. |
| category_no | string | null | The site's category ID (use it in the Category IDs filter). |
| attributes | array | null | Attribute tags: skin concern, skin type, formulation, featured ingredients, SPF... |
| subtitle | string | null | Product subtitle; detail mode. |
| options | array | null | Each option with name, GTIN, price, original price, stock and sold-out flag; detail mode. |
| specs | object | null | The full specification table as name/value pairs; detail mode. |
| ingredients | string | null | Full ingredient list; detail mode. |
| volume | string | null | Content volume or weight; detail mode. |
| country_of_manufacture | string | null | Country of manufacture; detail mode. |
| images | array | null | All product images (the full gallery in detail mode). |
| image_count | number | null | Number of images. |
| listed_at | string | null | When the product was added to the store (UTC). |
| source | string | null | overview or detail. |
| searchQuery | string | null | The keyword that found the product; empty for listings and product pages. |
| rank | number | null | Position in the search results. |
| scrapedAt | string | null | When the row was saved (UTC). |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Detailed product | One saved product with its product page (Detail mode and product URLs): everything in Product plus GTIN barcode, options with price, barcode and stock, the specification table, ingredients, volume, country of manufacture, badges and the full image gallery. Charged instead of Product, not on top. | $0.025 |
| Product | One saved OLIVE YOUNG Global product from a search, category or brand listing (Overview mode): USD price, discount, rating, review count, stock, badges, brand, category, attributes and image. | $0.006 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/olive-young-scraper').call({
"keywords": [
"serum"
],
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/olive-young-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/olive-young-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
No examples yet
The developer hasn't published example inputs for this actor.

Scrape Google Maps places for any search term and city, with no code or with one API call. A real run, its output, its log and its exact cost, plus the limits and the legal side.
Read the article
Paste an Amazon search or product URL into a ready-made Actor and get one row per product with price, ASIN, rating and review count. This guide covers the no-code steps, the API, ZIP code pricing, a real run and its cost.
Read the article
Scrape Google search results by query and country and get each results page as JSON: organic results with positions, People Also Ask and related searches. Run it without code or from Python, with a real run, the cost per page and Google's terms.
Read the articleScrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.