oliveyoung.co.kr APIoliveyoung.co.kr ↗
Access Olive Young product listings, reviews, rankings, and categories via 6 endpoints. Search by keyword, browse by category ID, and fetch KRW prices in real time.
curl -X GET 'https://api.parse.bot/scraper/b9d50b57-bfe1-42cc-adf4-f2745473ce06/search_products?page=1&sort=RANK&query=tint' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword on Olive Young. Returns paginated results with product listings including name, brand, price, and review counts.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based) |
| sort | string | Sort order. Accepted values: RANK, SALE_PRC, SALE_PRC_DESC, DATE |
| queryrequired | string | Search keyword (e.g. 'tint', 'serum', '립틴트') |
{
"type": "object",
"fields": {
"Data": "array of result collections, first element contains product results with TotalCount, Count, and Result array",
"Parameter": "array of search parameter metadata"
},
"sample": {
"data": {
"Data": [
{
"Count": 24,
"Result": [
{
"GOODS_NM": "컬러그램 누디 블러 틴트",
"GOODS_NO": "A000000230581",
"SALE_PRC": 8500,
"ONL_BRND_NM": "컬러그램",
"PRMUM_GDAS_TOT_CNT": 84131
}
],
"CollName": "OLIVE_GOODS",
"TotalCount": 235
}
],
"Parameter": [
{
"sort": "RANK",
"query": "tint",
"totalCount": 24
}
]
},
"status": "success"
}
}About the oliveyoung.co.kr API
The Olive Young API provides structured access to Korea's largest beauty and cosmetics marketplace through 6 endpoints covering product search, category browsing, product details, customer reviews, and popularity rankings. The search_products endpoint accepts Korean and English keywords alongside sort options, while get_product_detail returns KRW pricing, discount rates, brand names in both Korean and English, and availability status for any goods number.
Product Search and Category Browsing
The search_products endpoint accepts a query string — including Korean characters like '립틴트' — and an optional sort parameter with four accepted values: RANK, SALE_PRC, SALE_PRC_DESC, and DATE. Results are paginated (1-based) and return a TotalCount, page-level Count, and a Result array per page. The list_category_products endpoint mirrors this structure but scopes results to a specific category_id, such as 10000010002 for Makeup or 10000010001 for Skincare. Category IDs for both endpoints are discoverable via get_category_list.
Product Detail and Pricing
get_product_detail takes a goods_no string (e.g., A000000230581) obtained from search or category results and returns a normalized product record. Price fields are grouped in a prices object with original, current, and maxBenefit values in KRW integers, plus a discountRate percentage. The response also includes brandEng for the English-language brand name, a supplier field, and a categories object with four hierarchy levels: upper, middle, lower, and leaf.
Reviews and Rankings
get_product_reviews uses cursor-based pagination via nextCursorId and nextCursorScore fields. The hasNext boolean signals whether additional pages exist. Each entry in goodsReviewList includes a score, review text, photos, and reviewer profile data. The get_makeup_ranking endpoint returns an ordered array of products with integer rank, name, brand, price (KRW), goodsNo, and image fields for a given category_id, defaulting to the Makeup category when no ID is supplied.
Category Tree
get_category_list requires no inputs and returns the full hierarchical category structure under pcCategories. Each node carries a catNo (the ID used by other endpoints) and catNm. The response also includes makeTime and makeVersion metadata, which indicate when the category tree was last generated.
- Build a K-beauty price tracker by polling
get_product_detailfor KRWcurrentprice anddiscountRatechanges over time - Aggregate customer sentiment by fetching
goodsReviewListscores across multiple products withget_product_reviews - Generate a ranked product feed for a beauty app using
get_makeup_rankingacross multiple category IDs fromget_category_list - Index Olive Young's catalog for search by iterating
list_category_productsacross all leaf category IDs - Monitor new product launches by sorting
search_productswithsort=DATEfor a given keyword - Map brand presence across categories by extracting
brandandbrandEngfields from category product listings - Compare supplier diversity across Makeup vs Skincare categories using the
supplierfield fromget_product_detail
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Olive Young have an official public developer API?+
What does `get_product_detail` return that search results don't include?+
get_product_detail returns fields not present in search listings: a full prices object with original, current, maxBenefit, and discountRate; the supplier company name; brandEng for the English brand name; a status field for availability; and a four-level categories hierarchy (upper, middle, lower, leaf). Search and category endpoints return summary data suited for listing pages, not individual product records.How does pagination work for reviews, and does it differ from product search pagination?+
get_product_reviews uses cursor-based pagination: each response includes nextCursorId, nextCursorScore, and a hasNext boolean to determine whether more pages exist. The page parameter is 0-based for reviews. Product search and category endpoints use standard 1-based page integers with a TotalCount in the response.Does the API expose product ingredients or detailed skin-type attributes?+
Is ranking data available for categories other than Makeup?+
get_makeup_ranking defaults to Makeup (10000010002) but accepts any category_id from get_category_list. This means you can retrieve rankings for Skincare, Hair, or any other top-level or sub-category by passing the corresponding catNo. If a specific sub-category ranking isn't returning results, the category may not have a dedicated ranking feed, and you can fork the API on Parse to handle that case separately.