Olive Young Product Scraper: Ingredients & Prices avatar

Olive Young Product Scraper: Ingredients & Prices

Pricing

from $0.84 / 1,000 checked rows

Go to Apify Store
Olive Young Product Scraper: Ingredients & Prices

Olive Young Product Scraper: Ingredients & Prices

Scrape Olive Young prices, stock and full ingredient lists with this Olive Young product scraper: search by keyword, category, product URL or best-seller page; each row carries discount, rating, size, maker and distributor at one price. Optional review statistics. No login.

Pricing

from $0.84 / 1,000 checked rows

Rating

0.0

(0)

Developer

Pradio Actors

Pradio Actors

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Share

What does Olive Young Product Scraper do?

Olive Young Product Scraper returns one row per product, with price, stock, rating and the store's flags: trending, selling fast, on sale. It reads Olive Young Global, the international store, on its public pages. No login, no browser.

Include product info and each row carries the ingredients, size, maker and country when the store prints them, and names the fields left empty. You give it a word, a link or a product number. Each product is billed as a Checked row. $4.00 per 1,000 checked rows on the Free plan, down to $0.84 per 1,000 on Gold, Platinum and Diamond. A search that matches nothing comes back uncharged.

{
"keyword": "laneige",
"maxItems": 50
}

The sample shows two of the inputs: Search terms, links or product numbers, and Maximum items.

Who uses Olive Young Product Scraper

BuyerWhat they run it for
K-beauty importersPrice, discount and stock checks before buying
Brand and category analystsRatings, review counts and promotions by brand
Trend researchersWhat the store flags as best, trending or new
Sourcing and compliance teamsWhole categories with ingredients, maker and country

Features

  • Ingredients in the price. The ingredient list, the panel's text, size, maker and country arrive with the row, and the extra read is inside the row price.
  • Search like a shopper. Your words go to the store's own search, so the rows are what a shopper sees.
  • Search inside a category. Type cream, pick Skincare, and you get the creams in Skincare.
  • Best sellers with their rank. The store's ranked list, store-wide or in one category, in its own order.
  • Price per 100 ml or 100 g. Pack sizes compared without doing the sums.
  • Price watch. Each row carries the last price and stock beside today's.
  • Review statistics on request. The rating and count come on every row; the average over all reviews is optional.
  • Filters and sorting. Brands by name or store id, a price range, a minimum rating, words in the name, seven orders.
  • Variants and flags. Every option gets its own price, stock, barcode and an image link where the store prints one.

What you can count on

  • You pay only for rows with an answer; anything it cannot answer comes back as a row naming what you gave it and why.
  • Every row is charged after it lands in your dataset, so no row is billed before you can see it.
  • A run that finds nothing returns one row saying so, never an empty dataset.
  • A spending limit stops the run cleanly, with a last row saying how many rows came back and how many did not.
  • Every run saves a summary of what it read, returned and charged, so a short run is easy to tell from a broken one.
  • If the store refuses the product list or answers with an error, the run stops and says so in the log rather than returning empty rows. A panel that only fails leaves that row standing, with its status field saying so.
  • No value is invented: a field the store leaves out is left empty, and the row names it.

Why this one

Olive Young Product ScraperThe other scraper on the Store
Price per 1,000 products$4.00$7.80
Ingredients, size and makerIncluded in the row priceBilled separately at $32.40 per 1,000

The other scraper on the Store ran on 29 September; ours ran on 24 October, with the same search words both sides. Its run stopped early, so its 24 rows are a floor and the row counts were never compared. On a test list of 14 store pages outside our own reads, 10 returned products and 4 returned nothing.

What data does Olive Young Product Scraper return?

One real product from a "laneige" search, cut to the fields buyers check first, with the ingredient list shortened to three entries. The price is the store's own on 24 October 2026, and the store moves its prices, so read it as that day's price.

{
"product_title": "LANEIGE Cream Skin 170mL (+50mL)",
"brand": "LANEIGE",
"price": 31.20,
"inStock": true,
"displayed_rating": 4.8,
"size": "170ml (+50ml)",
"ingredients": ["Water", "Butylene Glycol", "Glycerine"],
"manufacturer_and_distributor": "Amorepacific Corporation",
"country_of_manufacture": "South Korea",
"url": "https://global.oliveyoung.com/product/detail?prdtNo=GA240925584",
"status": "ok"
}

Every field the dataset declares, in order. Seven are read from the product's own page: gtin, options, subtitle, selling_fast, is_trending, promo_label and thumbnailImage, each one empty where the store prints none. The picture is the product page's own, one link per product.

FieldWhat it holds
thumbnailImageThe product's picture
urlThe store page
brandBrand name
priceSelling price
currencyPrice currency
inStockPurchasable now
categoryThe category
product_idThe product number
product_titleDisplay title
inputSearch line answered
statusok, or the miss name
reasonWhy it went unanswered
brand_idBrand identifier
original_priceList price when discounted
discount_ratePercentage off
on_promotionPromotion flag
option_price_minLowest option price
option_price_maxHighest option price
displayed_ratingStar rating shown
review_countReviews reported
stock_qtyUnits in stock
sold_outSold-out flag
is_newNew-product flag
is_bestBest-seller flag
category_pathCategory breadcrumb
category_idCategory identifier
attributesAttribute labels
specsGrouped spec values
imagesEvery product image
image_countImages on the row
product_detailsExtra store facts
positionPlace in the list
rank_sourceWhich list it is from: read: and live: for a ranking, :category- with the store's number, which does not name the shelf, a brand part, filtered by that brand
category_scanned1 on the first ranked row
not_statedFields the store left empty
gtinBarcode
optionsEvery variant
subtitleSubtitle line
selling_fastSelling-fast flag
is_trendingTrending flag
promo_labelPromotion label
sizePanel's size
size_mlOwn size in millilitres
size_gOwn size in grams
price_per_100mlPrice per 100 ml
price_per_100gPrice per 100 g
prev_priceLast run's price
prev_in_stockIn stock last run
row_stateNew, changed or unchanged
suitable_forSkin types the panel names
shelf_lifeShelf life the panel states
manufacturer_and_distributorMaker and distributor
country_of_manufactureCountry of manufacture
ingredientsIngredient names
ingredients_textPanel's own ingredient text
functional_cosmeticWhether the panel flags it a functional cosmetic
product_info_statusPanel read: read, no_panel, read_failed or off
detail_statusDetail page read: read or read_failed
review_statusFigures read: read, read_failed or no_summary
rating_avgAverage rating
rating_distributionStar counts
latest_review_dateNewest review date
skin_type_distributionReviewer skin types
reviews_coveredReviews read
row_typeROW, ITEM_STATUS, NO_MATCHING_ITEMS, STOPPED_EARLY or PROGRESS
rowsFetchedRows handed over
rowsReturnedRows that reached you
rowsRemainingFetched rows not returned

The two ingredient fields differ on purpose: ingredients is one name per entry with the shade labels taken out, and ingredients_text is the panel's own block.

How much does it cost?

$4.00 per 1,000 checked rows on the Free plan, and less on paid plans. Bronze $1.25, Silver $1.00, and $0.84 per 1,000 on Gold, Platinum and Diamond. Each product is billed as Checked row, and the charge lands after it reaches your dataset.

PlanPer checked rowPer 1,000 checked rows
Free$0.004$4.00
Bronze$0.00125$1.25
Silver$0.001$1.00
Gold, Platinum, Diamond$0.00084$0.84

Starting a run is charged $0.00005, once, on the 256 MB it runs with.

A row that names a miss is not charged. You pay for product rows, not for the progress or stop rows.

Ranking a whole category by rating

A whole category with Sort set to Highest rated is charged one extra event, and it is Category scanned, at $0.0110 on the Free plan.

The store's own order does not rank by rating, so a true rating ranking has to see every product in the category. The category is read as cards, and every product tied with the top rating is then read live. On one run 2,446 products were read and 359 of them read live, about 6 minutes for three rows. The rank is rating first and review count second. The review count that breaks a tie is the store's own: 358 of Moisturizers' 2,446 products sit at the 5.0 maximum, so a read cannot stop at the first page.

Each category you rank is billed once, whatever rows you keep, and the charge comes after the first ranked row has landed in your dataset.

A keyword search by rating is charged this when you pick a category to search inside.

The store has no search that filters by category, so the category is read to find your words there. Leave the category empty and no category scan is charged: it reads the store's search list.

What a run costs on the Free plan, before the start:

Products returnedCost
100$0.40
1,000$4.00
10,000$40.00

How do I use Olive Young Product Scraper?

  1. Open the Actor and press Start.
  2. Type your words, links or product numbers in the box at the top, or pick a category. Set What to read to Best sellers or A whole category if you want one of those.
  3. Products reach the dataset as they are read, so a long run fills while you watch. Export as JSON or CSV, or pull the rows over the API.

Worked examples

Use it to compare two brands with review statistics:

{
"keyword": "laneige, cosrx",
"maxItems": 100,
"includeReviews": true
}

Use it to read a whole category of skincare:

{
"mode": "category",
"category": "1000000008",
"maxItems": 200
}

Use it to follow prices on a schedule and get only what moved:

{
"keyword": "medicube",
"onlyChanged": true,
"maxItems": 100
}

Input

InputDefaultWhat it does
Search terms (keyword)noneOne per line: a word, a link or a product number
What to read (mode)SearchSearch, Best sellers or A whole category
Category (category)The whole storeThe category to search inside, or the whole store
Include product info (includeProductInfo)onAdds the panel: ingredients, size, maker, country
Include review statistics (includeReviews)offAdds review averages and counts
Minimum price in USD (minPrice)noneKeeps products at or above this price; empty keeps them all
Maximum price in USD (maxPrice)noneKeeps products at or below this price; empty keeps them all
Minimum rating (minRating)noneKeeps products rated at least this, 0 to 5
Brands (brands)noneBrand names as the store shows them, or store ids
Product name contains (titleContains)noneKeeps names containing these words
Sort (sort)Store orderSeven orders, from newest listed to rating of the rows found
Maximum items (maxItems)50Most products one run returns, up to 1,000
Maximum products per line (maxItemsPerSeed)noneMost products for each search line
Only new or changed products (onlyChanged)offLeaves unchanged products out

Search terms take one entry per line, or separated by commas. An entry is a search word, a category or product link, or the store's own product number: GA for one product, GS for a set.

What to read has its own section, because the run reads what you ask for without it. Type a word and the store is searched. Type a product number or paste a product link and that product is read. Pick a category and leave the search box empty and that whole category is read. Set it to Best sellers for the store's own ranked list. Set it to A whole category to read every product of the category you picked in Category, just below. The rows name the list they came from.

Category, just below the mode, narrows a search. With words, you get that category's products whose names carry the word. With none, the whole category. Under Best sellers it picks that category's ranking, and with none picked the ranking is the store's own. The box opens on the whole store, so pick a category to narrow it.

Sort accepts Store order, Newest listed, both price orders, Most reviewed, Highest rated and Rating (of the rows found). Best sellers keeps the store's own ranking, so your order goes unused there. Rating (of the rows found) ranks only the products this run read, by their rating. On a search it is the same as Highest rated, with no extra charge. Highest rated reads the matches again, one by one, for the rating the store shows now. Pick a category and it reads that whole category instead, charged once as Category scanned. See How much does it cost?.

Maximum items caps the whole run at 1,000. Three lines with a limit of 60 give each about 20. Set Maximum products per line, just below it, for a cap per line.

Only new or changed products is for a price watch on a schedule. Each row shows the last price and stock beside today's, and whether the product is new, changed or unchanged. Your first run has nothing to compare with, so every product comes back as new; after that, only what moved is returned. Prices and stock are remembered for 31 days.

Output

Every search line that returns nothing gets its own row, naming the line and the reason.

The row's wordWhat it means
okA product row
not_foundThe store had no product
no_moreThe store had no more for that line
bad_urlNot a link to this store
bad_inputThe entry was not read as typed
not_reachedThe run stopped at your maximum
not_usedYour mode does not read it
blockedThe store refused the read
fetch_failedOne part failed; the rest stands
duplicateAn earlier line returned them
unchangedA price watch found nothing moved
abortedThe run stopped before this line
errorThe run failed; the rows delivered stand

When a spending limit ends the run, the products already read stay in the dataset, and the last row, STOPPED_EARLY, names the lines it never reached. A Max total charge set on the platform is a different limit. The platform ends the run itself, and a run it cuts shows where it got to in the progress rows. At 256 MB a run costs about $0.06 an hour.

What can you do with the data?

Track what a brand is doing. The store's flags, ratings, review counts and discounts show a launch, a restock and a promotion.

Build an ingredient index. The parsed list gives one ingredient per row-product, so you can filter it for actives and allergens.

Use Olive Young Product Scraper with AI agents

$claude mcp add --transport http apify "https://mcp.apify.com?tools=Pradio/olive-young-product-scraper"

That line adds the Actor to an agent that speaks MCP.

Personal data

Every row holds public product facts from Olive Young Global's own storefront pages, read while logged out. Reviews are read as statistics: the rating, the count, the star breakdown and the newest date. No row carries review text, a reviewer handle or a reviewer identifier. The maker and distributor field carries the company the store prints there, with the role labels taken off. 'Cosmetics Manufacturer - Amorepacific Corporation' arrives as the company alone.

The read stays yours and stays bounded. The run reads only the words, categories and links you name, and returns 50 products by default and 1,000 at most. The price and stock history for a watch list stays your own. A refusal is never retried, and a rate limit with a wait time is honoured once.

This Actor is published and run by Pradio, from the UK. An issue on the Issues tab reaches us, and a person or company named in a row can ask to be removed through it. The removal goes through at once, and the Actor does not read that site again.

The store sets out its own handling in its Terms and its Legal Notices. They point to a Privacy Policy for the data the store itself collects.

Limits

  • A run returns at most 1,000 products, read one at a time. A run of 100 products takes a few minutes. A full 1,000 takes the best part of an hour.
  • A broad word like cream brings whatever Olive Young's own search returns for it, and most of those are other products: serums, mists, sunscreens, blushes. Pick a Category to search inside it, or add a word under Product name contains.
  • On a very large category, a filter can stop before the last matches. Raise Maximum items to look further.
  • Prices and best-seller lists are the ones a shopper in the United States sees, in US dollars.
  • A size total in millilitres or grams needs a volume or a weight from the panel, and so does the price per 100 ml or 100 g. A set, shades, a count such as 30 patches or an unreadable size leaves them empty.
  • The total is the product's own size: the parts the notice panel prints, less a figure the store marks as free beside it. Everything inside the title's (...) bracket is an extra and is never added, whatever it names. So medicube's Collagen Night Wrapping Mask is 75 ml, where its panel's 75ml + 5ml would total 80.
  • An option's own brackets name the variant you picked, not what comes free. They are read the older way: a set's panel total is the size the row carries, and a bonus is left out.
  • A pack multiplier counts, whether the panel or the title writes it. A panel printing the count itself, such as 80mlX3, is read as the total it prints. The multiplier is applied once, never twice, so the row carries 240 ml rather than 80 or 720.
  • The ingredient list is what the store's panel prints. Some panels point to the details page instead, and those products carry no list.

Troubleshooting

I got fewer rows than my maximum. The store's results ran out, or your filters turned the rest away. The row for that line says how many were read and which filter dropped them.

I got no products at all. One row says why: nothing matched, the link is from another store, or your price range is empty.

The same link appears twice in my run. The second entry gets a row saying the first one already returned those products, and they are billed once.

A product page came back half empty. You still have the product. The status field for the part that failed says so, so you can tell a missing value from a broken read.

FAQ

Can I use integrations with Olive Young Product Scraper? Yes. The rows are a normal Apify dataset. Zapier, Make, webhooks and schedules read them as they land.

Can I use it with the Apify API? Yes. Every run has an API call you make from your own code, taking the same inputs the form takes. The results come back in JSON or CSV.

Is it legal to scrape Olive Young? It reads public storefront pages while logged out. Olive Young's terms restrict commercial reuse of the store's content, so use the rows for your own buying, pricing and research rather than republishing them. You are responsible for the right to read the pages you give it, and for what you do with the rows.

Do I pay for a product it cannot find? No. That row costs nothing. It names what you gave it and why.

Global store or the Korean one? Olive Young Global, at global.oliveyoung.com, with English names and US dollar prices. A Korean store link gets a row saying so.

What if the site owner objects? Open an issue on the Issues tab and the site is removed from the Actor the same day.

Release notes

  • 2026-10-25 A set of two different products has no size at all: THE SAEM's toner and emulsion read none, where it read 322 ml and 16.77 a 100 ml.
  • 2026-10-24 A set's size now leaves out the extra its own title brackets as a free gift. A line that came up short of the maximum gets a row saying so. The CNP set reads 60 ml and 56.48 a 100 ml, where it read 75 ml and 45.19. A product the store sells at its full price now carries the store's own list price beside it. A product the store says has no options carries none. A colour label is now relayed exactly as the store spells it: the store prints "white" in lower case, and the row said "White".
  • 2026-10-23 A brand name is now the store's own filter. The name is resolved to the store's brand id and sent as the store's filter, so a brand whose products sit deep in a shelf is no longer lost. A name beside another brand is still matched on the row, and the store's own id beside a name is still left alone. Ranking a whole category by rating now reads the card below the cut live before the walk stops. A product the store rates higher than the answer cannot then be left out unseen. The price bounds, the orders and every field are unchanged.
  • 2026-10-20 A ranked category is now charged at the $0.011 quoted from 2026-10-19. A product on Gold, Platinum or Diamond costs $0.00084 (it was $0.00065). The Free, Bronze and Silver prices are unchanged.
  • 2026-10-19 Ranking a whole category by rating now reads every product tied with the top rating live before the answer is placed. Category scanned is now $0.011 (it was $0.006).
  • 2026-10-16 Ranking a whole category by rating is charged once as Category scanned ($0.006).

Feedback

Found a bug, or a field you need? Open an issue on the Issues tab and we answer within two days. If the Actor saved you time, a review on the Store helps other buyers find it.

Not affiliated

This Actor is independent. It is not affiliated with or endorsed by Olive Young, Olive Young Global or CJ.