# Naver Scraper | Shopping Products, Prices and Reviews (`silentflow/naver-scraper`) Actor

Scrape Naver Shopping for product prices, discounts, ratings, stock, brand and category, plus the Smart Store or Brand Store behind every seller: company name, CEO and sales count. Search by keyword or paste a store or product address, and pull the latest buyer reviews too. No login needed.

- **URL**: https://apify.com/silentflow/naver-scraper.md
- **Developed by:** [SilentFlow](https://apify.com/silentflow) (community)
- **Categories:** E-commerce, Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.55 / 1,000 products

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Naver 네이버 Scraper

**Turn Naver Shopping into a table: the products Naver shows first for any keyword, the popular products of any Smart Store or Brand Store, or any product you paste, with price, store, rating, stock and the latest buyer reviews on every row.** 100 products for two keywords in 5 seconds, no Naver account needed.

### How it works

![How it works](https://api.apify.com/v2/key-value-stores/YXm81xySHg6uRkewS/records/naver-scraper-how-it-works-v1.png)

1. **You type keywords or paste store and product addresses.** Korean keywords match best (`유기농 사과`, `에어팟 프로`), brand and model names work in English (`iphone 16 case`, `nike 운동화`). A Smart Store address (`https://smartstore.naver.com/pasteur365`) reads the whole store, a product address (`.../products/11150965069`) reads one product.
2. **Each keyword returns the 50 to 90 products Naver ranks first.** The same price comparison catalogs, Smart Store products and sponsored products a shopper in Korea sees, with the store of every Smart Store and Brand Store product read for its company, stock and reviews.
3. **One row comes back per product.** 50 fields: identity, price and discount in won, store with company name and sales count, rating with the score distribution, purchase and wishlist counts, stock, category path, delivery, images, the latest reviews with the option each buyer chose, the keyword and the rank. Ready for a spreadsheet, a database or an AI pipeline.

### ✨ Why teams choose this over other Naver scrapers

Running one tool for Naver products and another for their reviews, and paying two bills? Getting 24 listing fields and no idea whether the store behind a product is a company or a private seller? Translating Naver pages by hand to check a price?

- 🛒 **Products and their reviews on the same row.** Other Naver scrapers make you choose: a product scraper with 24 fields and no reviews, or a review scraper that needs product links you must find elsewhere. Here every Smart Store and Brand Store row carries its latest reviews, its score distribution and its recent rating.
- 🏪 **The store behind every product.** Company name, CEO, business type (corporation, private business or individual), store sales count and whether it is a Brand Store. Qualify a seller before you contact it, from the same run that found its products.
- 🔀 **Three ways in, one run.** Keywords for the market view, store addresses for a seller's popular products, product addresses for the ones you follow. The keyword-only scrapers of the Store take one, the review scrapers another; none reads a whole store.
- 🔢 **43 fields filled per row, not 24.** Measured on a keyword run with store data: 43 of the 50 fields carry a value on the average row, against the 24 fields of the most used Naver product scraper. Prices are numbers in won with the currency in its own field, counts are integers, dates are RFC 3339 in UTC, ids are stable.
- 🎯 **Ads and catalogs told apart.** Sponsored products are flagged `isAd`, price comparison catalogs are typed `catalog` with their seller count, single-store products are typed `product`. Filter the market view the way you need it.
- ⚡ **Fast when you want a listing, complete when you want the store.** 100 listing rows for two keywords in 5 seconds. With store data and 5 reviews per product, 120 rows in 71 seconds and a store's 40 popular products in 24 seconds.
- 🔓 **No account, no API key.** Type a keyword and run. The Naver open API needs a developer key and returns 15 fields; this returns 50.

### 🎯 What you can do with Naver Shopping data

| Team | What they build |
|---|---|
| Pricing | Track the price, discount and coupon price of competing products on Naver for a keyword list every morning and alert on any drop |
| Market entry | Map who sells a category in Korea: stores, companies, sales counts, ratings and price bands across dozens of keywords in one run |
| Sourcing | Find Smart Store sellers of a product, read their company name, CEO and sales count, and shortlist the ones with a 4.8 rating and stock |
| Brand protection | List every store selling your brand on Naver, with prices, and keep the list current with a scheduled run |
| Review analytics | Pull the latest reviews of a product line with the option each buyer chose and feed them to a sentiment model |
| Cross-border sellers | Watch what a Korean keyword sells most, at what price and with what delivery promise before listing on Coupang or Naver yourself |
| Ad monitoring | See which products buy the sponsored slots of a keyword and how their prices compare with the organic ones |
| Data and AI | Give an LLM one row per product with reviews and store data and ask what buyers praise, complain about and pay |

### 📥 Input parameters

| Field | Type | Default | Description |
|---|---|---|---|
| `keywords` | array | `["유기농 사과", "에어팟 프로"]` | What to search on Naver, one keyword per line. Each keyword returns the 50 to 90 products Naver shows first. |
| `productUrls` | array | | Single Smart Store or Brand Store products: a product address (`https://smartstore.naver.com/pasteur365/products/11150965069`, `https://brand.naver.com/lumena/products/13244298880`) or a bare product id. |
| `storeUrls` | array | | Whole stores: a Smart Store or Brand Store address (`https://smartstore.naver.com/pasteur365`, `https://brand.naver.com/lumena`) or its slug. Each store gives its popular products, up to about 80. |
| `maxItems` | integer | `100` | How many rows to save for the whole run. Keywords, stores and products count together. |
| `includeDetails` | boolean | `true` | Read the store of every Smart Store and Brand Store product: company, CEO, sales count, stock, brand, category path, delivery company, tags, score distribution. Turn off for a faster listing. |
| `maxReviews` | integer | `10` | How many of the latest reviews to attach to each Smart Store and Brand Store product. `0` attaches none. |
| `debugMode` | boolean | `false` | Adds detailed lines to the run log. |

Keywords, stores and product addresses can be combined in one run. A product already returned by a keyword is never read twice.

### 📊 Output data

One row per product. A Smart Store product found by keyword, with its store data and reviews:

```json
{
  "id": "88365655338",
  "url": "https://smartstore.naver.com/pasteur365/products/11150965069",
  "title": "GOT MILK 유럽산 수입멸균우유 믈레코비타 갓밀크 1L(12입)",
  "type": "product",
  "isAd": false,
  "channelProductId": "11150965069",
  "brand": "파스퇴르",
  "manufacturer": "믈레코비타",
  "model": null,
  "categoryId": "50012741",
  "categoryPath": ["식품", "음료", "우유/요거트", "우유"],
  "categoryIds": ["50000006", "50000148", "50012820", "50012741"],
  "tags": ["유기농우유", "멸균우유", "신선한우유", "우유간식"],
  "storeName": "파스퇴르365",
  "storeId": "pasteur365",
  "storeUrl": "https://smartstore.naver.com/pasteur365",
  "storeCompany": "대영리테일",
  "storeCeo": "송완경",
  "storeBusinessType": "private",
  "storeSalesCount": 2763,
  "isSmartStore": true,
  "isBrandStore": false,
  "isIndividualSeller": false,
  "sellersCount": null,
  "price": 23900,
  "originalPrice": 33900,
  "discountRate": 29,
  "couponPrice": null,
  "currency": "KRW",
  "rating": 4.85,
  "reviewsCount": 130,
  "recentReviewsCount": 68,
  "recentRating": 4.81,
  "scoreDistribution": {"1": 0, "2": 0, "3": 3, "4": 13, "5": 114},
  "purchaseCount": 97,
  "keepCount": 96,
  "stock": 119993,
  "deliveryFee": 0,
  "isFreeShipping": true,
  "deliveryType": "today",
  "deliveryCompany": "롯데택배",
  "isOverseas": false,
  "isHotDeal": false,
  "promotions": [],
  "reviews": [
    {
      "id": "5068663667",
      "rating": 5,
      "text": "항상 맛있게 먹고 있어요",
      "option": "제품선택: 갓밀크3.5%(12입)",
      "author": "zec0***",
      "publishedAt": "2026-09-20T01:06:37Z",
      "isRepurchase": true,
      "type": "after_use",
      "images": ["https://phinf.pstatic.net/checkout.phinf/20260920_42/1789866391785lMnb3_JPEG/tmp_6244399497832927195.jpg"]
    }
  ],
  "imageUrl": "https://shop-phinf.pstatic.net/20241119_100/17320164344154Yv8r_JPEG/66149221545093302_384568161.jpg",
  "images": ["https://shop-phinf.pstatic.net/20241119_100/17320164344154Yv8r_JPEG/66149221545093302_384568161.jpg"],
  "keyword": "유기농 사과",
  "rank": 1,
  "scrapedAt": "2026-09-22T12:00:00Z"
}
```

A price comparison catalog found by keyword, the same fields with the store ones empty:

```json
{
  "id": "56987011355",
  "url": "https://search.shopping.naver.com/catalog/56987011355",
  "title": "Apple 에어팟 프로 3세대 MFHP4KH/A USB-C 노이즈캔슬링 화이트",
  "type": "catalog",
  "isAd": false,
  "channelProductId": null,
  "categoryId": "50024439",
  "categoryIds": ["50000003", "50000209", "50024379", "50024439"],
  "storeName": null,
  "sellersCount": 128,
  "price": 290000,
  "originalPrice": null,
  "currency": "KRW",
  "rating": 4.91,
  "reviewsCount": 16998,
  "purchaseCount": 0,
  "keepCount": 810,
  "deliveryFee": 0,
  "isFreeShipping": true,
  "reviews": [],
  "imageUrl": "https://shopping-phinf.pstatic.net/main_5698701/56987011355.20251014204108.jpg",
  "keyword": "에어팟 프로",
  "rank": 1,
  "scrapedAt": "2026-09-22T12:00:00Z"
}
```

A field the source does not give is `null`, never an empty string. Lists are empty lists.

### 🗂️ Data fields

50 top-level fields per row. `reviews` holds up to `maxReviews` objects of 9 fields each, `scoreDistribution` 5 counts.

| Group | Fields |
|---|---|
| Identity (6) | `id` (Naver search id, or the store's product id when the product came from a store), `url`, `title`, `type` (`catalog` for a price comparison, `product` for a single store), `isAd`, `channelProductId` |
| Content (7) | `brand`, `manufacturer`, `model`, `categoryId`, `categoryPath`, `categoryIds` (the four Naver category levels), `tags` |
| Store (11) | `storeName`, `storeId`, `storeUrl`, `storeCompany`, `storeCeo`, `storeBusinessType` (`corporation`, `private`, `individual`), `storeSalesCount`, `isSmartStore`, `isBrandStore`, `isIndividualSeller`, `sellersCount` (catalogs) |
| Measures (20) | `price`, `originalPrice`, `discountRate`, `couponPrice`, `currency`, `rating`, `reviewsCount`, `recentReviewsCount`, `recentRating`, `scoreDistribution`, `purchaseCount`, `keepCount`, `stock`, `deliveryFee`, `isFreeShipping`, `deliveryType`, `deliveryCompany`, `isOverseas`, `isHotDeal`, `promotions` |
| Reviews (1 list, 9 fields each) | `id`, `rating`, `text`, `option` (the variant the buyer chose), `author` (masked by Naver), `publishedAt`, `isRepurchase`, `type` (`normal`, `after_use`), `images` |
| Media (2) | `imageUrl`, `images` |
| Meta (3) | `keyword`, `rank` (position in the keyword listing), `scrapedAt` |

Which rows carry what:

- Every row: identity, category ids, price, rating and review count, purchase and wishlist counts, delivery, image, keyword and rank.
- Smart Store and Brand Store rows with `includeDetails` on: the content group, the store group, stock, delivery company, score distribution and recent rating, plus reviews when `maxReviews` is above zero.
- Catalog rows (`type: catalog`): the price is the lowest price across the sellers, `sellersCount` says how many sell it, `url` opens the comparison page.
- Products of other malls (Coupang, Gmarket, 11st): the listing fields, with `storeName` and `storeUrl` naming the mall.

`url` and `id` are stable. Product images stay valid for months; review photos are served by Naver's own CDN and stay reachable as long as the review exists.

### 🚀 Examples

#### Get the products Naver shows for a keyword

```json
{
  "keywords": ["유기농 사과"],
  "maxItems": 50
}
```

#### Watch competing prices for a product line, listing only

```json
{
  "keywords": ["에어팟 프로", "갤럭시 버즈", "소니 wf-1000xm5"],
  "maxItems": 300,
  "includeDetails": false,
  "maxReviews": 0
}
```

#### Read the popular products of two stores with their latest reviews

```json
{
  "storeUrls": ["https://smartstore.naver.com/pasteur365", "https://brand.naver.com/lumena"],
  "maxItems": 160,
  "maxReviews": 20
}
```

#### Follow a handful of products every day

```json
{
  "productUrls": [
    "https://smartstore.naver.com/pasteur365/products/11150965069",
    "https://brand.naver.com/lumena/products/13244298880",
    "6272899246"
  ],
  "maxReviews": 30
}
```

#### Qualify the sellers of a category before contacting them

```json
{
  "keywords": ["수제 비누", "천연 샴푸바"],
  "maxItems": 200,
  "includeDetails": true,
  "maxReviews": 3
}
```

#### Mine every recent review of one product

```json
{
  "productUrls": ["https://smartstore.naver.com/pasteur365/products/11150965069"],
  "maxReviews": 300
}
```

### 🤖 Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it full context about this scraper:

```
You have access to the Naver Scraper on Apify: silentflow/naver-scraper

Input schema:
- keywords (array of strings): Naver search keywords, Korean matches best; each gives the 50 to 90 products Naver shows first
- productUrls (array of strings): Smart Store or Brand Store product addresses or bare product ids
- storeUrls (array of strings): Smart Store or Brand Store addresses or slugs; each gives up to about 80 popular products
- maxItems (integer, default 100): rows for the whole run
- includeDetails (boolean, default true): read the store data of every Smart Store and Brand Store product
- maxReviews (integer, default 10): latest reviews attached to each Smart Store and Brand Store product, 0 for none
- debugMode (boolean, default false)

Output per product (50 fields):
- id, url, title, type ("catalog" or "product"), isAd, channelProductId (strings, booleans)
- brand, manufacturer, model, categoryId, categoryPath (list), categoryIds (list), tags (list)
- storeName, storeId, storeUrl, storeCompany, storeCeo, storeBusinessType, storeSalesCount (integer), isSmartStore, isBrandStore, isIndividualSeller, sellersCount (integer)
- price, originalPrice, discountRate, couponPrice (numbers), currency ("KRW"), rating (number), reviewsCount, recentReviewsCount (integers), recentRating (number), scoreDistribution (object 1..5), purchaseCount, keepCount, stock (integers), deliveryFee (number), isFreeShipping, deliveryType, deliveryCompany, isOverseas, isHotDeal, promotions (list)
- reviews (list of {id, rating, text, option, author, publishedAt, isRepurchase, type, images})
- imageUrl, images (list)
- keyword, rank (integer), scrapedAt (RFC 3339)
Unknown values are null. Use apify-client for Python or JavaScript.
```

### 💻 Integrations

#### Build a daily price watch in Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("silentflow/naver-scraper").call(run_input={
    "keywords": ["에어팟 프로", "갤럭시 버즈"],
    "maxItems": 200,
    "includeDetails": False,
    "maxReviews": 0,
})
rows = client.dataset(run["defaultDatasetId"]).list_items().items
products = [r for r in rows if r["type"] == "product" and not r["isAd"]]
for r in sorted(products, key=lambda r: r["price"])[:10]:
    print(r["price"], r["storeName"], r["title"])
```

#### Shortlist Smart Store sellers in Node.js

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('silentflow/naver-scraper').call({
    keywords: ['수제 비누'],
    maxItems: 100,
    includeDetails: true,
    maxReviews: 0,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
const sellers = items
    .filter((r) => r.isSmartStore && r.storeBusinessType !== 'individual' && (r.rating ?? 0) >= 4.8)
    .map((r) => ({ store: r.storeName, company: r.storeCompany, sales: r.storeSalesCount, url: r.storeUrl }));
console.table(sellers);
```

#### Export the reviews of a product to CSV

```python
import csv
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("silentflow/naver-scraper").call(run_input={
    "productUrls": ["https://smartstore.naver.com/pasteur365/products/11150965069"],
    "maxReviews": 300,
})
rows = client.dataset(run["defaultDatasetId"]).list_items().items
with open("reviews.csv", "w", newline="") as f:
    w = csv.writer(f)
    w.writerow(["product", "rating", "date", "option", "repurchase", "text"])
    for r in rows:
        for rv in r["reviews"]:
            w.writerow([r["title"], rv["rating"], rv["publishedAt"], rv["option"], rv["isRepurchase"], rv["text"]])
```

### 📈 Performance

Measured on 22 September 2026.

| Run | Rows | Time |
|---|---|---|
| Two keywords, listing only | 100 | 5 seconds |
| One keyword with store data and 5 reviews per product | 53 | 54 seconds |
| Two keywords with store data and 5 reviews per product | 120 | 71 seconds |
| One store, popular products with 2 reviews each | 40 | 24 seconds |
| Three product addresses with 5 reviews each | 3 | 31 seconds |

A keyword costs one read whatever its size. Store data costs one read per store plus one batch per 20 products of that store; reviews cost one read per 30 reviews per product. There is no fixed limit on the number of rows per run.

### 💾 Data export

Every run's dataset can be downloaded from the Apify Console as JSON, CSV, Excel, XML, HTML or RSS, and pulled by API:

```
https://api.apify.com/v2/datasets/{DATASET_ID}/items?format=csv&token=YOUR_TOKEN
```

The `overview` view shows title, price, store, rating, reviews, keyword and url; the `stores` view shows the company, CEO, business type, sales count and stock behind each row. Both views are available in the Console and through `?view=overview` or `?view=stores` on the API.

### 💡 Tips for best results

1. **Search in Korean.** `유기농 사과` returns 50 Smart Store products with reviews; `organic apple` returns a handful. Brand and model names work in either language.
2. **Combine keywords with `maxItems`.** Each keyword adds 50 to 90 rows, so set `maxItems` to the number of keywords times 90 when you want every keyword in full.
3. **Turn `includeDetails` off for price tracking.** A listing run finishes in seconds and still carries price, discount, store name, rating and review count.
4. **Keep `maxReviews` small on big runs.** Ten reviews per product is one read per product; three hundred is ten. Use a product address run when you want all the reviews of a few products.
5. **Filter on `type` and `isAd`.** Catalogs give the market price across sellers, products give a single store's price, ads show who pays for the slot. Most analyses want one of the three.

### ❓ FAQ

**Do I need a Naver account or a developer key?**
No. Everything returned is what a visitor of Naver sees. There is nothing to log into and nothing to renew.

**What is Naver Shopping, and what are Smart Store and Brand Store?**
Naver is Korea's main search engine and Naver Shopping its product search, the Korean counterpart of Google Shopping. Smart Store is Naver's marketplace where any seller opens a store, Brand Store its version for brands. Price comparison catalogs group the same product across malls, including Coupang and Gmarket.

**How many products does a keyword return?**
The 50 to 90 products Naver shows first for it: the same catalogs, store products and sponsored products a shopper sees. There is no page two; use several keywords, or a store address, to go further.

**Why do some rows have no store company, stock or reviews?**
Only Smart Store and Brand Store products have a store behind them. Price comparison catalogs and products of other malls keep their listing fields: price, store name, rating, review count, category, delivery and image.

**What does a store address return?**
The store's popular products, up to about 80, with the store's company name and sales count on every row. A store with thousands of products is not read in full.

**Are the prices current?**
Yes. Every run reads Naver at run time; nothing is cached. `price` is the price after the seller's discount, `originalPrice` the list price, `couponPrice` the price after a coupon when Naver shows one.

**In what order are reviews returned?**
Newest first, up to `maxReviews` per product. Each review carries its rating, text, the option the buyer chose, a masked author, the date in UTC, whether it is a repurchase and its photos.

**Can I run it on a schedule?**
Yes. Save the input as a task in the Apify Console and schedule it hourly, daily or weekly. Each run writes a new dataset you can diff against the previous one.

**What happens when a keyword has no products?**
The run finishes with a message saying that Naver had nothing for it, distinct from the message shown when Naver could not be read. An empty run never looks like a plain success.

**Does it work with English keywords?**
It does, with fewer results. Naver matches Korean text; English brand names (`nike`, `iphone`) match well because sellers write them in Latin letters.

### ⚖️ Legal

This Actor extracts publicly available data from Naver Shopping, Smart Store and Brand Store pages. It does not bypass any login, paywall or CAPTCHA. Users are responsible for complying with Naver's terms of service and applicable data protection laws (GDPR, CCPA and Korea's PIPA where relevant). The output contains personal data: masked reviewer names and the names of store representatives as published on the store's legal notice; handle it accordingly. The data returned is informational; verify it for regulated use cases.

### 🔗 Related scrapers

- [Taobao Scraper](https://apify.com/silentflow/taobao-scraper): Taobao and Tmall products by keyword with seller scores and the latest review.
- [TikTok Shop Scraper](https://apify.com/silentflow/tiktok-shop-scraper): TikTok Shop products across ten markets.
- [1688 Scraper](https://apify.com/silentflow/1688-scraper): wholesale prices from 1688.com.
- All actors: [silentflow on Apify](https://apify.com/silentflow)

### 📬 Support

Need something this scraper doesn't do yet? We ship features fast.

- Feature requests go straight to our backlog
- Enterprise needs? We do custom integrations and high-volume plans
- Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

Check out our other scrapers: [silentflow on Apify](https://apify.com/silentflow)

# Actor input Schema

## `keywords` (type: `array`):

What to search on Naver, one keyword per line. Korean keywords match best (<code>에어팟 프로</code>, <code>유기농 사과</code>), brand and model names work in English (<code>iphone 16 case</code>, <code>nike 운동화</code>). Each keyword returns the 50 to 90 products Naver shows first for it: price comparison catalogs, Smart Store and Brand Store products and the sponsored ones, flagged as ads.

## `productUrls` (type: `array`):

Single Smart Store or Brand Store products to read, one per line: a product address (<code>https://smartstore.naver.com/pasteur365/products/11150965069</code>, <code>https://brand.naver.com/lumena/products/13244298880</code>) or a bare product id (<code>11150965069</code>). Each one becomes a row with its store, stock, brand, review scores and latest reviews. Price comparison pages (<code>search.shopping.naver.com/catalog/...</code>) are not product pages; search their name as a keyword instead.

## `storeUrls` (type: `array`):

Whole stores to read, one per line: a Smart Store (<code>https://smartstore.naver.com/pasteur365</code>) or Brand Store (<code>https://brand.naver.com/lumena</code>) address, or its slug (<code>pasteur365</code>). Each store gives its popular products, up to about 80, with the store's company name and sales count on every row.

## `maxItems` (type: `integer`):

How many rows to save for the whole run. A keyword gives 50 to 90 products, a store up to about 80, so <code>100</code> covers one or two keywords in full.

## `includeDetails` (type: `boolean`):

On: the store of every Smart Store and Brand Store product is read to add the company name, CEO and sales count, the stock, brand, manufacturer, category path, delivery company, seller tags, the review score distribution and the recent rating. Off: a faster run with the search listing only (title, price, store name, rating, review count, category ids, delivery).

## `maxReviews` (type: `integer`):

How many of the latest buyer reviews to attach to each Smart Store and Brand Store product, newest first, with rating, text, purchased option, date and photos. <code>0</code> attaches none. Thirty reviews cost one extra read per product, so keep it small on runs of hundreds of products.

## `debugMode` (type: `boolean`):

Adds detailed lines to the run log. Leave it off for normal runs.

## Actor input object example

```json
{
  "keywords": [
    "유기농 사과",
    "에어팟 프로"
  ],
  "maxItems": 100,
  "includeDetails": true,
  "maxReviews": 10,
  "debugMode": false
}
```

# Actor output Schema

## `products` (type: `string`):

Every product with id, url, title, type, price, originalPrice, discountRate, store, rating, reviewsCount, scoreDistribution, purchaseCount, keepCount, stock, brand, category, delivery, images, the latest reviews, the keyword and the rank it was found at.

## `stores` (type: `string`):

The store columns of each row: store name, company, CEO, business type, sales count, stock and store URL.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "유기농 사과",
        "에어팟 프로"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("silentflow/naver-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keywords": [
        "유기농 사과",
        "에어팟 프로",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("silentflow/naver-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "유기농 사과",
    "에어팟 프로"
  ]
}' |
apify call silentflow/naver-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,silentflow/naver-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/M2BasJxgdoFV19BBa/builds/puvOJ5cHr57HfB9DC/openapi.json
