# Naver Shopping Scraper: Korean Products and Prices

> Naver Shopping scraper for Korea: price, lowest price, seller count, mall, brand, reviews and rating by keyword. Up to 1,000 products per keyword.

URL: https://cliqtomedia.com/actors/naver-shopping-scraper/

Category: E-commerce & prices · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/naver-shopping-scraper?fpr=cliqto

Search Naver Shopping, Korea's largest shopping search, by keyword. Each product is one row with price, lowest price, mall and reviews. No Naver account needed.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `무선 이어폰` in Search keywords. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Search Naver Shopping (네이버 쇼핑), Korea's largest shopping search, by keyword and get one row per product with price, lowest price, seller count, mall, brand, reviews, rating, ad flag and links.

- Catalog cards (price comparison pages) give the shown price, the lowest price and the number of sellers.
- Single-seller cards give the price, the list price before discount, the discount, the mall name and the purchase count.
- Sponsored listings are kept and marked with `isAd: true`. You can turn them off.
- Each row has the keyword, its position, the source and the time we read it.

### Good for

- Check the market price of a product in Korea, with the lowest price across sellers.
- Watch which brands, malls and ads show up for your keywords.
- Build a product list for a category keyword with reviews and ratings.

### Not a good fit

- Search results only. Product detail pages (options, stock, full review text, seller lists) are not included.
- Naver's ranking is personal and changes during the day. Two runs can show a different order.
- This is not a drop-in replacement for scrapers that expand each catalog into all its sellers.

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Product | $0.0015 (from $0.0013 on paid Apify plans) | One Naver Shopping product row saved to the dataset. not_found and error rows are free. |
| Start fee | $0.004 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |

- One product: about $0.0055.
- 1,000 products: about $1.50.
- Every day 100 products, for 30 days: about $4.62 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 24 October 2026. Current price: https://apify.com/cliqtomedia/naver-shopping-scraper?fpr=cliqto

## Questions

### Do I need a Naver API key?

No. No account or key is needed.

### Why is the order different each run?

Naver ranking is personal and changes during the day.

### Do I get product detail pages?

No. Only search results. Options, stock and full reviews are not included.

### How many products can I get?

Up to 1,000 per keyword and 20 keywords per run.

### Why is a catalog price sometimes very low?

For catalog cards, Naver shows the lowest offer across all sellers. Sometimes that offer is a rental, a used item or an accessory (we saw rentals at ₩1). The Actor keeps Naver's number as shown; check `sellerCount` and `listingType`, or set `minPrice`.

### Is the data the same as on Naver?

Yes, it is the order and prices that Naver's mobile search shows at `fetchedAt`. Naver personalises ranking and updates prices all the time, so runs at different times can differ. Reviews on catalog cards are Naver's total across sellers.

### Can I use the data?

The Actor reads public pages. Naver's terms and robots.txt limit automated access, and you are responsible for how you use the data. If you need an official channel, Naver offers a Shopping Search API with your own developer key and a daily quota. This Actor is independent and not affiliated with Naver.

## Data fields

- `recordType` (string): Row type: product, or query for a keyword that returned no products (not_found) or failed (error).
- `status` (string): complete, partial (a key field such as price or image is missing; see missingFields), not_found or error.
- `query` (string): The search keyword this row belongs to.
- `position` (integer): 1-based position within the keyword: Naver order, or your chosen sort.
- `productId` (string): Naver product ID (nvMid). Catalog IDs open at search.shopping.naver.com/catalog/<id>.
- `title` (string): Product name without highlight tags.
- `price` (integer): Price shown on the listing in won, discount applied; for a catalog product, the headline price Naver shows (usually the lowest offer — see lowPrice). null if Naver shows none.
- `originalPrice` (integer): List price before discount; null when there is no discount information.
- `discountRate` (number): Discount percent shown by Naver; 0 when no discount; null when unknown.
- `lowPrice` (integer): Lowest price across offers (catalog products compare several sellers); equals price for single-seller listings.
- `currency` (string): Always KRW.
- `listingType` (string): catalog (Naver price-comparison product with several sellers) or single_seller.
- `sellerCount` (integer): Number of sellers for a catalog product; 1 for single-seller listings.
- `mall` (string): Store name for single-seller listings; null for catalog products (several sellers).
- `brand` (string): Brand when the product appears under one of Naver's brand filters for this keyword; null otherwise (not guessed).
- `maker` (string): Manufacturer when the product appears under one of Naver's manufacturer (제조사) filters for this keyword; null otherwise (not guessed).
- `categoryId` (string): Naver leaf category ID.
- `categoryIds` (array): Naver category path IDs, from top level to the most specific.
- `reviewCount` (integer): Number of reviews Naver shows on the search card (for catalog products: across sellers).
- `rating` (number): Average review score 0–5; null when there are no reviews or Naver shows no score for the listing (e.g. some Coupang listings).
- `purchaseCount` (integer): Recent purchases shown by Naver for single-seller listings; null for catalog products.
- `wishlistCount` (integer): Number of shoppers who saved the product (찜).
- `deliveryFee` (integer): Delivery fee in won; 0 = free; null when not shown.
- `isAd` (boolean): true for sponsored (paid) listings.
- `isSmartStore` (boolean): true when sold in a Naver Smart Store.
- `isBrandStore` (boolean): true when sold in an official Naver Brand Store.
- `isOverseas` (boolean): true for overseas (cross-border) listings.
- `smartStoreProductId` (string): Smart Store product number, when applicable.
- `url` (string): Product page URL (store page, or Naver catalog page for catalog products).
- `mobileUrl` (string): Mobile product page URL.
- `image` (string): Main product image URL.
- `missingFields` (array): Key fields that are empty on this partial row.
- `message` (string): query rows only: why the keyword has no products or failed.
- `errorCode` (string): query rows only: machine code such as BLOCKED, RATE_LIMITED, SOURCE_UNAVAILABLE; null for not_found.
- `source` (string): Data source: naver_shopping_mobile_search.
- `sourceUrl` (string): Naver search page for the keyword.
- `fetchedAt` (string): When the data was read (ISO 8601, UTC).

## Input settings

- `queries` (array, required): Keywords exactly as you would type them on Naver Shopping, in Korean or English, e.g. 무선 이어폰 or 아이패드. Up to 20 keywords per run; duplicates are searched once.
- `maxItems` (integer): How many products to return for each keyword (1–1,000). Naver lists ~90 products per filter; beyond that the Actor narrows by brand and price range to reach more. You pay per product returned.
- `minPrice` (integer): Only products priced at or above this many won. Applied by Naver. Leave empty for no lower limit.
- `maxPrice` (integer): Only products priced at or below this many won. Applied by Naver. Leave empty for no upper limit.
- `sort` (string): Order of the returned products. relevance keeps Naver's order; the other options sort the collected products by price, review count or rating.
- `includeAds` (boolean): Keep paid (ad) listings in the results; each row has isAd so you can filter later. Turn off for organic results only.
- `addBrandNames` (boolean): Fill brand and maker using Naver's brand and manufacturer filters (up to 16 extra requests per keyword, no extra charge). Products outside the top brands keep null.

## Step by step on Apify

1. Open the Input tab.
2. Add one keyword to Search keywords (`queries`), for example `무선 이어폰`. Korean keywords give the best results.
3. Keep Products per keyword (`maxItems`) at 20 for a first test.
4. Click Start.
5. Open the Products view in the Output tab.

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Price check for a product | `queries` + `minPrice`/`maxPrice` | product | `price`, `lowPrice`, `sellerCount`, `mall` | Export to a sheet, convert KRW |
| Brand and ad watch | `queries`, `includeAds: true` | product | `brand`, `maker`, `isAd`, `position` | Schedule a daily run |
| Category product list | `queries`, `maxItems: 1000` | product | `title`, `reviewCount`, `rating`, `categoryId` | Load the dataset by API |

## Tips

- Turn off brand names for small, fast runs. They need extra requests.
- Use the price range filter to remove very cheap parts and accessories.
- Turn off ads if you want only normal listings.

## Limits



- Up to 20 keywords and 1,000 products per keyword per run.
- Speed: about 1,000 products in 20 seconds. Each keyword takes at least 3–15 seconds, even for a few products, because brand names need extra requests (20 keywords × 1 product took about 3 minutes). Set `addBrandNames` to `false` for faster small runs. 20 keywords × 1,000 products took 350 seconds. The default timeout is 300 seconds, so for more than about 15,000 products set a longer timeout (for example 600 seconds) in the run options. If time runs out, the run keeps what it saved, ends as `PARTIAL` and lists the keywords it did not start.
- A few keywords show a short list on Naver (for example hotel or travel words). Then you may get fewer products than `maxItems`.

## Sample result

```json
{
  "recordType": "product",
  "status": "complete",
  "query": "무선 이어폰",
  "position": 8,
  "productId": "56796984706",
  "title": "삼성전자 갤럭시 무선이어폰 버즈3 FE SM-R420N 노이즈 캔슬링 그레이",
  "price": 143000,
  "originalPrice": null,
  "discountRate": null,
  "lowPrice": 132990,
  "currency": "KRW",
  "listingType": "catalog",
  "sellerCount": 71,
  "mall": null,
  "brand": "갤럭시",
  "reviewCount": 8467,
  "rating": 4.9,
  "purchaseCount": null,
  "isAd": false,
  "url": "https://search.shopping.naver.com/catalog/56796984706",
  "source": "naver_shopping_mobile_search",
  "sourceUrl": "https://m.search.naver.com/search.naver?where=m_shop&query=%EB%AC%B4%EC%84%A0+%EC%9D%B4%EC%96%B4%ED%8F%B0",
  "fetchedAt": "2026-10-14T12:35:23.121Z"
}
```

## Use it from code

Actor ID: `cliqtomedia/naver-shopping-scraper`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/naver-shopping-scraper").call(run_input={
    "queries": [
        "무선 이어폰"
    ],
    "maxItems": 20
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~naver-shopping-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"queries": ["무선 이어폰"], "maxItems": 20}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/naver-shopping-scraper")
result = tool.invoke({"run_input": {"queries": ["무선 이어폰"], "maxItems": 20}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Use cases with this tool

- [Track prices in shops and marketplaces](https://cliqtomedia.com/actors/use-cases/price-monitoring/): Track prices and offers in shops and marketplaces. See changes before your customers do.

## Similar tools

- [Historical Exchange Rates & Currency Converter](https://cliqtomedia.com/actors/historical-fx-rates-converter/)
- [Google Autocomplete Scraper](https://cliqtomedia.com/actors/google-autocomplete-scraper/)
- [AliExpress Scraper: Products, Prices & Reviews, No Login](https://cliqtomedia.com/actors/aliexpress-scraper/)
- [Coles, Woolworths & Aldi Price Scraper - No Login](https://cliqtomedia.com/actors/au-supermarket-prices/)
- [Idealo Price Scraper: All Shop Offers, 6 Countries, No Login](https://cliqtomedia.com/actors/idealo-price-scraper/)
- [Trendyol Scraper: Products, Prices & Reviews (No login)](https://cliqtomedia.com/actors/trendyol-scraper/)
