Olive Young Global Bestsellers & Price Tracker
Pricing
$2.00 / 1,000 product results
Olive Young Global Bestsellers & Price Tracker
Collect K-beauty bestseller rankings, USD prices, stock indicators and review counts. Compare complete snapshots across runs.
Pricing
$2.00 / 1,000 product results
Rating
0.0
(0)
Developer
CRNO
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Collect Olive Young Global's bestseller rankings as structured product data. Get names, brands, USD prices, price ranges, discounts, stock indicators, ratings and review counts. Reuse the same history store across scheduled runs to compare prices and ranks.
The Actor uses public HTTP responses. No browser or Olive Young login is required by the implementation. Direct access can still be blocked in some environments; optional proxy configuration is available.
Quick start
Use the default input to collect the overall bestseller ranking, up to 100 products:
{"categoryIds": ["all"],"maxItemsPerCategory": 100,"trackChanges": true,"historyStoreName": "oliveyoung-global-history-v1","proxyConfiguration": { "useApifyProxy": false }}
For overall, skincare and suncare rankings:
{"categoryIds": ["all", "1000000008", "1000000011"],"maxItemsPerCategory": 100,"trackChanges": true,"historyStoreName": "my-kbeauty-tracker"}
The current site's category links are saved in the CATEGORIES key-value store record. The Actor rejects unknown category IDs. A recognized category can still return no bestseller data; that category is reported as failed, not as a successful empty result. Category availability may change.
Input
| Field | Default | Purpose |
|---|---|---|
categoryIds | ["all"] | Up to 10 overall/category rankings; duplicates removed |
maxItemsPerCategory | 100 | Save the top 1–100 products of each category |
trackChanges | true | Read and save complete comparison snapshots |
historyStoreName | oliveyoung-global-history-v1 | Named store in your account; reuse for comparisons |
proxyConfiguration | Direct | Explicitly enable an Apify or custom proxy if needed |
A lower item limit reduces the output, not the size of the source response. A product appearing in two categories produces two results because it has two separate ranks.
Output
Products go to the default dataset, exportable through Apify as JSON, CSV or Excel. Example values below illustrate the format; live prices change.
{"schemaVersion": 1,"productId": "GA240824996","name": "MEDIHEAL Essential Mask Sheet 10ea Set (+1ea) (OY-Exclusive) (7 Options)","brand": "MEDIHEAL","brandKo": "메디힐","categoryId": "all","categoryName": "All","rank": 1,"market": "global","currency": "USD","price": 13.5,"listPrice": 27,"minPrice": 13.5,"maxPrice": 13.5,"discountPercent": 50,"stockQuantity": 2408,"sourceStockQuantity": "2408","dataWarnings": [],"isSoldOut": false,"rating": 4.9,"reviewCount": 8349,"productUrl": "https://global.oliveyoung.com/product/detail?prdtNo=GA240824996","imageUrl": "https://cdn-image.oliveyoung.com/prdtImg/1219/4d15e768-500a-4a02-a1a4-ddd8bab694e7.png","scrapedAt": "2026-11-05T05:30:00.000Z","comparisonStatus": "noBaseline","previousRunId": null,"previousScrapedAt": null,"previousRank": null,"rankChange": null,"previousPrice": null,"priceChange": null,"priceChangePercent": null,"stockChange": null,"isNewEntry": null,"runId": "example-run"}
rankChange: positive means moving up, e.g. rank 5 → 2 returns3.priceChange: current price minus previous price. Negative means cheaper.priceChangePercent: percentage change relative to the previous price.stockChange: current displayed stock minus previous displayed stock, when both are valid nonnegative numbers.isNewEntry: whether the product was absent from the previous comparable returned ranking. This does not mean the product itself is newly launched.stockQuantity: site-provided indicator, not independently verified inventory. Negative source values becomenull;sourceStockQuantityanddataWarningspreserve the reason.- Missing optional values remain
null. Prices are global USD listing prices, excluding shipping, tax and personalized discounts.priceis the listing sale amount, not an individually selected variant price.
Change tracking and scheduling
Schedule the Actor daily or hourly in Apify and keep historyStoreName unchanged. The first complete run establishes a baseline; a later run compares against the latest complete snapshot that started earlier. Categories and storefront/delivery context use separate comparison scopes.
Comparison statuses:
| Value | Meaning |
|---|---|
noBaseline | First comparable run; change fields are null |
compared | Comparable previous snapshot available |
baselineSmaller | Previous response covered fewer products; unmatched products get isNewEntry: null |
incompleteRanking | Response shrank by at least 5 products and below 80% of the prior count; comparisons are suppressed |
disabled | Change tracking turned off |
Snapshots are written only after all products in that category are saved successfully. An item limit, budget limit, invalid data, failed dataset write or suspicious count drop leaves the previous baseline intact. A partial run can still provide product rows; inspect SUMMARY.
Snapshots are immutable, so concurrent runs cannot overwrite one another's history. Runs do not report disappeared products as deleted or sold out. If a genuinely smaller ranking repeatedly fails the size check, choose a new history store name to establish a fresh baseline after reviewing the source.
History is retained without automatic deletion and consumes storage over time. Avoid unnecessary high-frequency schedules. Automatic run resume is not implemented: a resurrected run with existing dataset rows fails before adding duplicates; start a fresh run instead.
Diagnostics
The uncharged SUMMARY record includes per-category status, fetched/saved counts, baseline handling, errors, duration, request count, retry count and uncompressed response bytes. CATEGORIES lists category IDs discovered from the current site.
No data is emitted for a challenge page, invalid JSON, empty ranking, duplicate product ID or missing required product ID/name/price. HTTP 401/403/418/429 stops that request without repeated retries. Temporary network/5xx errors receive at most two retries. A run with every category failed is marked failed; mixed outcomes are marked partial in SUMMARY.
Scope
This version covers global bestseller rankings and their product-card fields. It does not collect Korean-store prices, review text, full product descriptions, ingredients, individual SKU prices or a complete store catalog. It does not infer revenue or units sold from undocumented site fields. It is an independent tool, not affiliated with Olive Young.
Pricing
$2 per 1,000 saved product/category rows ($0.002 per row), charged through the single product-scraped event. A product appearing in two categories counts as two rows. There is no subscription or startup fee.
There is no additional automatic dataset-item charge. Failed rows and SUMMARY/CATEGORIES records are not charged. Standard platform usage is included in the event price; no proxy is needed with the default configuration. The Actor respects the run's maximum charge limit.