Naver Shopping Scraper & Keyword Rank Tracker
Pricing
from $1.00 / 1,000 products
Naver Shopping Scraper & Keyword Rank Tracker
Enter Naver Shopping keywords and get ranked Plus Store products (verified to rank 1,000) for 6 sort orders, with price, discount, store, rating, reviews, stock and delivery. Add your product IDs or store names to get free summary rows with your rank, store ranks and price gap to #1.
Pricing
from $1.00 / 1,000 products
Rating
0.0
(0)
Developer
SUNGHWAN CHO
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
Naver Shopping Keyword Rank Tracker
Enter Naver Shopping keywords and get the organic ranks in the Naver Plus Store product list (Smart Store and Brand Store sellers) for each keyword and sort order as flat JSON rows: rank, price, discount, store, rating, reviews, stock and delivery flags. You choose the depth: top 100 by default; we have tested full scans to rank 1,000. Add your own product IDs or store names and you also get free summary rows per keyword and sort order: your product's rank and price gap to the #1 product, and every rank your store holds. Naver Shopping (search.shopping.naver.com) is the shopping search of Naver, South Korea's major portal. This Actor covers its Plus Store product list in 6 sort orders, not ads and not price-comparison offers from external malls. Only one input is required: keywords.
What you get
One row per product, in Naver's order, from rank 1 to maxRank ("type": "product"):
rank(organic position in the Naver Plus Store list), keyword, sort order and total result count- Naver Shopping product ID (
nvMid), Smart Store product number (channelProductId), catalog ID, name, image and product URL - Price, original price and discount %
- Store name, store ID and slug, store URL, store grade, official store and Brand Store flags
- Rating, review count and review count in the last 6 months
- Stock quantity and sold-out flag
- Shipping fee, free shipping, arrival guarantee and today delivery flags, free returns
- Overseas, second-hand and new-product flags, option count, number of sellers on the same catalog, category IDs
- Search URL, timestamp,
source(naver-shopping) andschemaVersionon every row
One summary row per keyword × sort order × tracked product ("type": "myProductSummary", only if you set myProductIds):
found,rankand how many times the product appearsranksScanned,searchStatus,stopReasonandsortCheck, so you can tell "not within the scanned ranks" from "search did not finish"- Your price, discount, rating, review count and stock
- The #1 product's ID, name, store and price, and your price gap to it in KRW and %
One summary row per keyword × sort order × tracked store ("type": "myStoreSummary", only if you set myStoreNames):
found, best rank, number of the store's products withinmaxRank, average rank and the list of ranks- The store's best-ranked product and its price, and the #1 product's price
Summary rows, the run summary and failed searches are not charged. Only product rows are.
No login and no browser: each page of 100 products is a plain HTTP request through a Korean residential proxy, with normal TLS certificate verification.
Why depth matters
A product or store that sits outside the first page still has a rank. In one of our runs for 무선 이어폰 (wireless earbuds) with maxRank 1000, the store 필립스 오디오 공식몰 (Philips Audio official store) had 7 products within the top 1,000 in Naver ranking, at ranks 1, 2, 49, 60, 313, 444, 454. With page 1 only, four of them would have been invisible. You choose the depth per run: 100 for daily tracking, 1,000 for an occasional deep scan.
Use cases
- Daily rank tracking for Smart Store sellers and brands — schedule a run with your main keywords and product IDs, and log your rank per keyword and sort order every day
- Store visibility — see how many of your store's products rank for each keyword, and where (
productsInRanks,ranks) - Competitor price monitoring — compare your price with the #1 product (
priceDiffVsTopPercent) and with every product above you - Market scans for brands entering Korea — the top 1,000 Plus Store products for a category keyword with prices, stores, reviews and delivery options, in one table
- Agency and market reports — one table across keywords and sort orders, ready for Google Sheets, BI tools or an LLM
- AI agents — one required input (
keywords), flat English field names, numbers as numbers, missing values asnull
Input
| Field | Description |
|---|---|
keywords | Required. Search keywords, one per line. Korean keywords match what shoppers type: 무선 이어폰 (wireless earbuds), 강아지 사료 (dog food), 선크림 (sunscreen). |
sorts | Sort orders to check. Default ["REL"]. REL = Naver ranking (the default view), PURCHASE = most purchased, REVIEW = most reviews, LOW_PRICE = lowest price, HIGH_PRICE = highest price, RECENT = newest. Each keyword is searched once per sort order. |
maxRank | How deep to scan each keyword and sort order. Default 100. One request per 100 ranks. This is also the number of charged rows per keyword and sort order. Tested end to end up to 1000; the input accepts up to 10000 (where Naver's list ends), but scans deeper than 1,000 have not been tested end to end. |
myProductIds | Optional. Your products: nvMid, Smart Store product number or product URL, e.g. 13103686932 or https://smartstore.naver.com/yourstore/products/13103686932. Adds one free summary row per keyword and sort order for each product. |
myStoreNames | Optional. Your stores: store name as shown on Naver, Smart Store URL or the store ID from that URL, e.g. 필립스 오디오 공식몰 or philipsav_official. Spaces and letter case are ignored. Adds one free summary row per keyword and sort order for each store. |
proxyConfiguration | Keep the default: Apify residential proxy, country KR. Naver Shopping blocks many data-center IPs. |
maxRequests | Optional. Request limit for the whole run, retries included. Default: 2 per 100 ranks per search + 5. |
maxRunMinutes | Optional. Time limit for the run, default 60 minutes. |
{"keywords": ["무선 이어폰", "선크림", "강아지 사료"],"sorts": ["REL", "LOW_PRICE"],"maxRank": 100,"myProductIds": ["https://smartstore.naver.com/philipsav_official/products/13103686932","90648198024"],"myStoreNames": ["필립스 오디오 공식몰", "philipsav_official"]}
One search = one keyword × one sort order = maxRank product rows (fewer if Naver has fewer results). The example above runs 6 searches and returns 600 product rows plus 24 summary rows (2 products and 2 store names × 6 searches).
Output
The examples below are real rows from runs of the previous version (0.1). Fields added in version 0.2 (schemaVersion, source, status and history fields) are shown with the values the current version gives for the same result.
A product row from a real run of the input above (무선 이어폰, Naver ranking):
{"schemaVersion": 2,"source": "naver-shopping","type": "product","keyword": "무선 이어폰","sort": "REL","rank": 1,"nvMid": "90648198024","channelProductId": "13103686932","originalMallProductId": "13045611896","catalogId": "53920444078","name": "필립스 커널형 무선 블루투스 이어폰 TAT1109","price": 19900,"originalPrice": 99000,"discountRate": 79,"storeName": "필립스 오디오 공식몰","storeId": "102274527","storeSlug": "philipsav_official","storeUrl": "https://smartstore.naver.com/philipsav_official","storeGrade": "PREMIUM","isOfficialStore": true,"officialStoreType": "OFFICIAL_BRAND_MALL","isBrandStore": true,"rating": 4.75,"reviewCount": 3384,"reviewCount6Months": 3360,"stockQuantity": 640,"isSoldOut": false,"shippingFee": 0,"isFreeShipping": true,"fastDeliveryType": "ARRIVAL_GUARANTEE","isArrivalGuarantee": true,"isTodayDelivery": false,"isFreeReturn": false,"isOverseas": false,"isSecondhand": false,"isNew": false,"optionCount": 2,"catalogSellerCount": 1,"categoryId": "50024439","categoryPath": "50000003>50000209>50024379>50024439","imageUrl": "https://shopping-phinf.pstatic.net/main_9064819/90648198024.jpg","url": "https://smartstore.naver.com/main/products/13103686932","totalResults": 228785,"searchUrl": "https://search.shopping.naver.com/ns/search?query=%EB%AC%B4%EC%84%A0%20%EC%9D%B4%EC%96%B4%ED%8F%B0","scrapedAt": "2026-10-01T12:55:09.772Z"}
A product summary row from another run (maxRank 1000, sorts REL and REVIEW, myProductIds: ["13103686932"]). The same product was #1 in Naver ranking and #76 by most reviews:
{"schemaVersion": 2,"source": "naver-shopping","type": "myProductSummary","keyword": "무선 이어폰","sort": "REVIEW","productId": "13103686932","found": true,"rank": 76,"appearances": 1,"nvMid": "90648198024","channelProductId": "13103686932","name": "필립스 커널형 무선 블루투스 이어폰 TAT1109","storeName": "필립스 오디오 공식몰","price": 19900,"originalPrice": 99000,"discountRate": 79,"rating": 4.75,"reviewCount": 3384,"stockQuantity": 639,"topProductNvMid": "83603589898","topProductName": "리큐엠 20000mAh 잔량표시 고속충전 대용량 보조배터리 QP2000C 단품","topProductStoreName": "리큐엠 공식몰","topProductPrice": 36900,"priceDiffVsTop": -17000,"priceDiffVsTopPercent": -46.1,"ranksScanned": 1000,"maxRank": 1000,"searchStatus": "completed","stopReason": "maxRank","sortCheck": "monotonic","url": "https://smartstore.naver.com/main/products/13103686932","searchUrl": "https://search.shopping.naver.com/ns/search?query=%EB%AC%B4%EC%84%A0%20%EC%9D%B4%EC%96%B4%ED%8F%B0&sort=REVIEW","scrapedAt": "2026-10-01T12:56:23.864Z"}
A store summary row from the same run (myStoreNames: ["필립스 오디오 공식몰"], Naver ranking):
{"schemaVersion": 2,"source": "naver-shopping","type": "myStoreSummary","keyword": "무선 이어폰","sort": "REL","store": "필립스 오디오 공식몰","found": true,"bestRank": 1,"productsInRanks": 7,"averageRank": 189,"ranks": "1, 2, 49, 60, 313, 444, 454","storeName": "필립스 오디오 공식몰","storeSlug": "philipsav_official","storeUrl": "https://smartstore.naver.com/philipsav_official","bestProductNvMid": "90648198024","bestProductName": "필립스 커널형 무선 블루투스 이어폰 TAT1109","bestProductPrice": 19900,"topProductPrice": 19900,"ranksScanned": 1000,"maxRank": 1000,"searchStatus": "completed","stopReason": "maxRank","sortCheck": "default","searchUrl": "https://search.shopping.naver.com/ns/search?query=%EB%AC%B4%EC%84%A0%20%EC%9D%B4%EC%96%B4%ED%8F%B0","scrapedAt": "2026-10-01T12:56:15.666Z"}
What found means:
found: true— the product or store is among the saved rows of this search.found: false— the search completed and the product or store was not within ranks 1 toranksScanned. Its rank and price fields arenull; the #1 product fields are still filled. It may rank lower than you scanned.found: null— the search did not finish (searchStatusispartial,failed,budgetLimitedornotStarted), so absence is unknown. A partial search can still returnfound: truewith the ranks it saved.
The dataset has three views: Products, My product summary and My store summary. To get one kind of row through the API or an export, filter on type.
Run summary
The key-value store record RUN_SUMMARY has the run's stopReason, the number of product rows saved (equal to the product rows in the dataset), the request and time limits, and one entry per keyword × sort order search with productsSaved, ranksScanned, pages, Naver's total and:
status | Meaning |
|---|---|
completed | All requested ranks were saved. stopReason: maxRank, endOfResults (Naver's list ended earlier) or noResults |
partial | Some pages were saved, then a later page failed (blocked, schemaError, sortNotApplied). The saved ranks are charged; the rest are not. |
failed | The first page failed in all retries. Not charged. schemaError means Naver answered in a format the Actor does not understand (reported separately from "no results"). |
budgetLimited | Stopped by a run limit: chargeLimit (your maximum cost per run), requestBudget or timeLimit |
notStarted | The run stopped before this search began. stopReason is the run's reason. |
How sort orders are checked
sortCheck in RUN_SUMMARY and in summary rows says how the sort order was confirmed. Naver's response has no "applied sort" field (as of October 2026), so:
monotonic—LOW_PRICE,HIGH_PRICEandREVIEWpages are checked against prices or review counts (at least 75% of neighbouring products in order, since Naver's price order is not strict). A page that fails is retried and, if it stays wrong, the search fails without charge. A correctly sorted page is accepted even when it happens to equal the default order.differsFromDefault/sameAsDefault—PURCHASEandRECENThave no checkable value in the data (no sales count, no date). Page 1 is compared with the default order only as a hint.sameAsDefaultsearches are kept, not dropped, but treat them with care.default—RELneeds no check.
Export as JSON, CSV or Excel, or read through the Apify API.
Tips
- Daily tracking: schedule the Actor once a day with the same input and append the datasets. Use
keyword+sort+productId(orstore) to line up days. - Choose depth by cost: you pay per product row, so
maxRankdrives the bill. 10 keywords × 1 sort order ×maxRank100 = 1,000 rows per run. Keep 100 for daily tracking and use 1,000 or more for occasional deep scans. - Any product ID works: a
myProductIdsentry matchesnvMid,channelProductId(the number in a Smart Store URL),originalMallProductIdorcatalogId. In our tests the same Philips product was found by its Smart Store number and by itsnvMid. - Store names: the store's display name, its Smart Store slug (
philipsav_official) and its store ID all match. Therankslist shows up to the first 50 ranks. - Price gap is most useful in
RELandPURCHASE. InLOW_PRICE, #1 is often a bait or accessory listing (in our runs, 10 KRW and 60 KRW items for무선 이어폰and선크림), sopriceDiffVsTopthere says little about real competitors. - Text values (names, store names) are in Korean, as shown on Naver. Prices are in KRW. Category fields are Naver category IDs; category names are not included.
- Naver reports products without a discount as
discountRate: 0withoriginalPriceequal toprice, and products without reviews asrating: 0andreviewCount: 0. Fields Naver leaves empty arenull:catalogId(product not matched to a catalog),officialStoreType,fastDeliveryType.
Notes and limits
- Organic ranks in the Naver Plus Store product list. Ranks follow Naver's own product list (the data behind search.shopping.naver.com/ns/search). Ads and other cards that Naver mixes into the search page are not included, so the position you see on screen can differ from
rank. There is no ad rank field, and ranks are what a logged-out shopper is served at the time of the run. - Naver Plus Store products only. Products from Smart Store and Brand Store sellers are included. Price-comparison offers from external malls (Coupang, 11st and others) are not.
- No sales counts. Naver's
PURCHASEorder is available as a sort, but the number of units sold is not. - Depth: tested to rank 1,000. Our cloud tests scanned ranks 1 to 1,000 for several keywords and sort orders with no gaps or duplicates. Naver's list ends at rank 10,000 (we saw 100 products at rank 9,901 and none after 10,000 in a spot check), and
maxRankaccepts up to 10,000, but full scans deeper than 1,000 have not been tested end to end.RECENTusually returns far fewer products (1,099 for무선 이어폰in our test). - Price sorts keep Naver's own order. Naver's lowest-price and highest-price lists are not always strictly ordered by price;
rankis the order Naver returned. - Korean residential proxy is required. The default proxy setting (Apify residential, country
KR) is what we tested. Apify lists residential proxy on all plans, including Free. - Blocking and retries: Naver blocks some automated requests with an "access temporarily restricted" page. Each page is retried with a fresh Korean IP up to 6 times. If a later page still fails, the search keeps the ranks it already has (
searchStatus: partial); if the first page fails, the search is markedfailedinRUN_SUMMARYand is not charged. If 10 requests in a row are blocked, the run stops (stopReason: blocked), and the request limit (maxRequests) caps the total. If Naver changes its site or blocking rules, searches can fail for a while until the Actor is updated. - Maximum cost per run: when your limit is reached, the run stops,
RUN_SUMMARY.productsSavedequals the product rows in the dataset, the cut search isbudgetLimitedwith the ranks it saved, and the rest arenotStarted. - Results show what a logged-out shopper in Korea sees at the time of the run. Ranks and prices change during the day.
- This Actor collects only publicly visible search results. It does not log in, and it collects no reviews, reviewer data or seller personal data.