Naver Shopping Product Scraper
Pricing
from $15.60 / 1,000 naver products
Naver Shopping Product Scraper
Scrape public Naver shopping products by Korean keyword. Get prices, discounts, sellers, shipping, ratings, review counts, sponsored flags, images, ranks, and URLs for ecommerce research and monitoring.
Pricing
from $15.60 / 1,000 naver products
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Collect public Naver shopping products for Korean keywords as clean records with prices, discounts, sellers, delivery details, ratings, reviews, sponsored-result flags, images, ranks, and URLs.
Use the Actor for Korean ecommerce price research, seller comparisons, assortment checks, and scheduled market snapshots. It needs no Naver account and does not access carts, orders, member profiles, or other private data.
What does Naver Shopping Product Scraper do?
The Actor searches Naver's public integrated shopping results and writes one dataset row per product card.
It accepts one to ten Korean product keywords. For each keyword it:
- opens Naver's public mobile shopping-search surface;
- validates the response and extracts its embedded structured product state;
- falls back to desktop public search when needed;
- uses a Korean residential browser only when public HTTP routes do not return recognizable data;
- normalizes products into a stable dataset schema;
- removes duplicate product IDs within each query;
- optionally excludes sponsored products.
The default route is lightweight HTTP. It avoids downloading product images and product-detail pages because the list cards already contain the promised fields.
Who is it for?
Ecommerce analysts can compare advertised and organic prices across Korean product searches.
Marketplace sellers can review visible competitors, discounts, delivery fees, ratings, and review counts.
Brand teams can capture ranked search snapshots and identify sponsored placements.
Data engineers can schedule the Actor and load typed JSON records into spreadsheets, warehouses, dashboards, or monitoring jobs.
Researchers can gather public shopping records without building and maintaining Naver routing, parsing, and restriction detection.
Data you can extract
| Field | Meaning |
|---|---|
productId | Stable Naver shopping product identifier |
title | Product title with search highlighting removed |
url | Product or Naver shopping destination URL |
imageUrl | Main public product image URL, when available |
sellerName | Seller, store, or catalog name |
sellerUrl | Public seller/store URL, when available |
currentPrice | Current or discounted price |
listPrice | Original price before the displayed discount |
currency | Price currency, normally KRW |
discountPercent | Displayed discount percentage |
shippingFee | Displayed shipping fee; 0 can mean free shipping |
shippingType | Naver delivery fee or speed classification |
rating | Average public rating |
reviewCount | Public review count |
purchaseCount | Public purchase count when shown |
inStock | Stock flag when Naver publishes it; otherwise null |
isAd | Whether Naver marks the result as sponsored |
isBrandStore | Whether the result is associated with a brand store |
query | Input keyword that produced the row |
rank | Rank supplied by the Naver shopping card |
source | Successful extraction route |
scrapedAt | UTC collection timestamp |
Nullable fields remain null rather than being guessed. In particular, Naver's integrated search cards do not always expose stock.
Getting started
- Open the Actor input page.
- Enter one or more Korean product keywords.
- Choose the maximum number of product records.
- Keep Auto routing unless you specifically need a Korean residential browser.
- Choose whether to include sponsored products.
- Click Start.
- Open the Naver products dataset view when the run finishes.
A small first run:
{"keywords": ["노트북"],"maxItems": 9,"includeAds": true,"routing": "auto"}
Input parameters
keywords
Required array of one to ten non-empty search terms.
Korean queries generally match the source best. Examples:
노트북— laptop로봇청소기— robot vacuum무선 이어폰— wireless earbuds보조배터리— portable charger
maxItems
Maximum records across all keywords, from 1 to 90. The Actor shares this capacity fairly across keywords so an earlier search cannot consume the entire limit before later searches run.
The public Naver surface currently exposes about nine shopping cards per keyword. Adding more keywords can produce more rows; increasing only maxItems does not create pages the source does not publish.
includeAds
When true, sponsored and organic cards are included. Every row exposes isAd.
When false, sponsored cards are removed before saving and are not charged as item events.
routing
auto— recommended; mobile public HTTP, desktop public HTTP, then a Korean residential browser only if required.residentialBrowser— forces the Korean residential browser route for testing or difficult network conditions. It uses more compute and proxy traffic.
The Actor keeps the browser proxy identity, locale, timezone, and cookies together for the bounded request. It does not ask for a Naver login.
Output example
This shortened record reflects current local output for 노트북:
{"productId": "84417974537","title": "베이직북14 사무용 가벼운 노트북 업무용 인강용 싼 저가 윈도우11 8GB/256GB","url": "https://smartstore.naver.com/main/products/6873474215","imageUrl": "https://shopping-phinf.pstatic.net/main_8441797/84417974537.14.jpg","sellerName": "베이직스 스토어","currentPrice": 598000,"listPrice": 959000,"currency": "KRW","discountPercent": 37,"shippingFee": 0,"shippingType": "FREE","rating": 4.77,"reviewCount": 14000,"purchaseCount": 2383,"inStock": null,"isAd": false,"isBrandStore": false,"query": "노트북","rank": 1,"source": "mobile-public-search","scrapedAt": "2026-08-03T04:22:04.429Z"}
Prices and listings change. Treat this as a schema example, not a current product offer.
How much does it cost to scrape Naver Shopping products?
This Actor uses pay per event pricing:
- one
startevent per run; - one
itemevent for each validated product saved to the default dataset.
The start event is $0.005. Item prices decrease by Apify pricing tier:
| Tier | Price per product |
|---|---|
| Free | $0.02990 |
| Bronze | $0.02600 |
| Silver | $0.02028 |
| Gold | $0.01560 |
| Platinum | $0.01040 |
| Diamond | $0.00728 |
At the Free-tier rate, a run producing 9 products costs about $0.2741 including the start event. A two-keyword run producing 18 products costs about $0.5432.
You are charged only for validated rows that are saved. Filtered sponsored cards, duplicate records, parse failures, and empty results do not create item charges. Platform usage behavior follows the active Apify pricing configuration shown before you start the run.
Price monitoring workflow
To create repeatable snapshots:
- use stable Korean keywords;
- keep
includeAdsconsistent across runs; - schedule the Actor daily or weekly in Apify Console;
- export each dataset to your storage destination;
- join snapshots on
queryandproductId; - compare
currentPrice,sellerName,shippingFee,rank,rating, andreviewCountover time.
The Actor returns current observations. It does not keep historical rows or calculate changes inside the run.
Seller and sponsored-result research
Set includeAds to true when you need the complete visible mix and separate records using isAd.
Set it to false when you need an organic comparison dataset. This can reduce the output significantly because some searches contain several sponsored cards.
Catalog cards may represent multiple stores. In those rows, seller information can be empty while isBrandStore and the catalog URL remain useful.
Integrations and exports
The default dataset works with:
- CSV, JSON, Excel, XML, RSS, and JSONL exports;
- Google Sheets through Apify integrations;
- scheduled webhooks;
- Make and Zapier workflows;
- Python or JavaScript data pipelines;
- warehouse loaders and BI dashboards.
Use productId with query as the practical snapshot key. The same product can appear for more than one keyword by design.
API usage with cURL
Replace YOUR_TOKEN with an Apify API token:
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~naver-shopping-product-scraper/runs?token=YOUR_TOKEN&waitForFinish=120" \-H "Content-Type: application/json" \-d '{"keywords":["노트북"],"maxItems":9,"includeAds":true,"routing":"auto"}'
Fetch dataset items using the defaultDatasetId returned by the run API.
JavaScript API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/naver-shopping-product-scraper').call({keywords: ['무선 이어폰', '보조배터리'],maxItems: 18,includeAds: true,routing: 'auto',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python API example
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/naver-shopping-product-scraper').call(run_input={'keywords': ['로봇청소기'],'maxItems': 6,'includeAds': False,'routing': 'auto',})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with MCP and AI agents
Add the Actor-scoped Apify MCP server to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/naver-shopping-product-scraper"
Claude Desktop, Cursor, and VS Code MCP setup
Use this MCP configuration in Claude Desktop, Cursor, or VS Code:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/naver-shopping-product-scraper"}}}
Example prompts:
- “Run the Naver Shopping Product Scraper for
노트북and summarize the lowest current prices by seller.” - “Collect organic
로봇청소기products and return their ratings, review counts, prices, and URLs.” - “Create a dataset for
무선 이어폰and보조배터리, then group sponsored and organic products.”
Reliability and routing
The Actor validates HTTP status, the expected embedded state, and typed product fields before saving rows.
Transient network and 5xx responses receive one bounded retry with jitter. Deterministic input errors do not retry.
Auto routing tries:
- mobile Naver public search;
- desktop Naver public search;
- a Korean residential Playwright browser with media and fonts blocked.
If all routes fail, the run fails visibly instead of returning a misleading successful empty dataset.
Limitations
- Current coverage is the product cards Naver exposes in integrated search, typically about nine per keyword.
- The Actor does not promise the protected Naver Shopping site's deep pagination.
- Naver can vary result order by time, location, experiments, and advertising.
- Stock is
nullwhen the public card omits it; the Actor never invents availability. - Some catalog cards omit a single seller or direct seller URL.
- Ratings, review counts, prices, promotions, and delivery details can change after collection.
- Adult, login-only, cart, order, account, and member-only data are out of scope.
- The Actor does not open product-detail pages or scrape product reviews.
Troubleshooting
My run returned fewer products than maxItems
maxItems is a cap, not a promised count. Naver currently publishes a bounded set of cards per keyword, and excluding ads can remove several rows. Add materially different keywords when that matches your research job.
My run failed with “embedded shopping state missing”
Naver returned an unfamiliar or restricted page. Retry once later with routing set to residentialBrowser. If the forced route also fails, inspect the run log rather than treating the empty page as valid data.
Why is inStock null?
The public search card did not publish a stock field. Use null-aware downstream logic and do not interpret null as out of stock.
Why do ranks repeat?
Naver supplies ranks within card groups such as ads, promoted products, catalogs, and organic results. Use isAd, source, and dataset order alongside rank.
Responsible use and legality
This Actor processes publicly visible Naver search information. You are responsible for ensuring that your collection and use comply with Naver's terms, applicable laws, intellectual-property rights, privacy obligations, and your organization's policies.
Use conservative schedules. Do not attempt to identify individuals, bypass account controls, or collect private order/member data. Avoid republishing protected images or product copy without the necessary rights.
Related Automation Lab Actors
- Naver DataLab Search Trends Scraper — compare Korean search-interest trends when product listing data alone is not enough.
- Naver News Search Scraper — collect public Naver news results for brand and market monitoring.
These Actors produce separate datasets and are not automatically invoked by this product scraper.
FAQ
Does the Actor require a Naver account?
No. It uses public search surfaces and never asks for Naver credentials.
Can it search English keywords?
Naver may return products for English queries, but Korean keywords generally provide the most relevant marketplace results.
Can I exclude sponsored products?
Yes. Disable sponsored-product inclusion. Excluded cards never enter the dataset or item-event count.
Does it scrape reviews?
No. It returns the rating and review count shown on the search card, not individual review text.
Does it support multiple keywords?
Yes, up to ten keywords per run and up to 90 total records.
Can I use the results for scheduled monitoring?
Yes. Schedule repeated runs and compare exported snapshots externally. The Actor itself does not maintain history or send change alerts.
What happens when Naver blocks a route?
Auto routing tries the next bounded route. If no route provides recognizable structured state, the run fails with route-specific reasons rather than silently returning bad data.