# Naver Shopping Product Scraper (`huggable_quote/naver-shopping-scraper`) Actor

Ultra-fast Naver Shopping product data scraper with advanced filtering, multi-keyword support, price range filtering, category filtering, and detailed product analytics including reviews, seller info, and delivery details.

- **URL**: https://apify.com/huggable\_quote/naver-shopping-scraper.md
- **Developed by:** [OrbitData Labs](https://apify.com/huggable_quote) (community)
- **Categories:** E-commerce, Lead generation, Other
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## <img src=".actor/icon.svg" width="32" alt="Naver"> Naver Shopping Product Scraper — The Most Powerful Data Extraction Tool

> **Extract massive, detailed product data from [Naver Shopping](https://shopping.naver.com) at blazing speed.** Multi-keyword batch processing, advanced filtering, product detail enrichment, and seller analytics — all in one actor.

---

### <img src=".actor/icon.svg" width="22" alt=""> What does this actor do?

This actor scrapes comprehensive product data from **Naver Shopping** (네이버 쇼핑), South Korea's largest e-commerce search platform. Simply provide one or more search keywords and configure your filters — the actor handles everything automatically.

Whether you need **market research**, **competitor price monitoring**, **trend analysis**, or **product catalog building**, this is the most feature-rich Naver Shopping scraper available.

---

### 🚨 Important: Proxy is Required

> **Naver Shopping aggressively blocks automated access** using CAPTCHA and IP-based restrictions. **Residential proxies are required** for this actor to function reliably.
>
> We recommend using **Apify Proxy with the RESIDENTIAL group** for the best results. Without a proxy, all requests will be blocked by Naver's anti-bot system.

**Recommended proxy setup:**
```json
{
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
````

***

### 🏆 Key Features

| Feature | Description |
|---------|-------------|
| **🔑 Multi-Keyword Batch** | Scrape multiple keywords in a single run — no need for separate executions |
| **💰 Price Range Filter** | Set minimum/maximum price to focus on your target market segment |
| **📊 40+ Data Fields** | The richest dataset available: pricing, ratings, seller info, categories, delivery, and more |
| **🔍 Smart Filtering** | Filter by Naver Pay, free shipping, delivery type, product condition, min reviews, min rating |
| **📦 Product Detail Enrichment** | Optionally crawl individual product pages for specs, photo reviews, Q\&A counts |
| **🏪 Seller Analytics** | Extract seller store data: satisfaction scores, product counts, grades |
| **🚫 Ad Filtering** | Exclude sponsored products to get organic results only |
| **📁 Flexible Output** | Full, Compact, or Minimal output modes to match your data needs |
| **🔄 Auto-Pagination** | Automatically handles up to 200 pages (8,000 products) per keyword |
| **🛡️ Anti-Blocking** | Session pool management, automatic CAPTCHA detection, session rotation, and browser fingerprint randomization |
| **🌐 Residential Proxy** | Full Apify Proxy integration with residential proxy support |
| **🔁 Smart Retry** | Auto-retries with new browser sessions when CAPTCHA or blocking is detected |

***

### 🛠️ Input Parameters

#### 🔍 Search Settings

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchKeywords` | Array | `["나이키운동화"]` | List of keywords to search. Supports batch processing |
| `maxPages` | Integer | `5` | Pages per keyword (max 200, ~40 products/page) |
| `maxItems` | Integer | `0` | Max items per keyword. `0` = unlimited |

#### ⚙️ Filter & Sort Options

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `sortBy` | Enum | `rel` | `rel` / `review` / `date` / `price_asc` / `price_dsc` |
| `minPrice` | Integer | — | Minimum price filter (₩) |
| `maxPrice` | Integer | — | Maximum price filter (₩) |
| `filterByNaverPay` | Boolean | `false` | Naver Pay products only |
| `filterFreeShipping` | Boolean | `false` | Free shipping only |
| `filterByDeliveryType` | Enum | `all` | `all` / `rocket` / `today` / `pickup` |
| `productCondition` | Enum | `all` | `all` / `new` / `used` / `refurbished` |
| `excludeAds` | Boolean | `false` | Remove sponsored products |
| `minReviews` | Integer | `0` | Minimum review count filter |
| `minRating` | Number | `0` | Minimum average rating (0–5) |

#### 📊 Data Enrichment

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `includeProductDetails` | Boolean | `false` | Crawl product detail pages for specs, photo reviews, Q\&A |
| `includeSellerDetails` | Boolean | `false` | Crawl seller pages for store analytics |
| `includePriceHistory` | Boolean | `false` | Extract all seller prices for comparison products |

#### 🛠️ Advanced Settings

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxConcurrency` | Integer | `3` | Concurrent browser pages (1–10). Recommended: 3–5 |
| `requestTimeout` | Integer | `90` | Timeout per request in seconds |
| `maxRetries` | Integer | `5` | Retry attempts for blocked/failed requests |
| `proxyConfiguration` | Object | Apify Residential | **Required.** Residential proxies strongly recommended |

#### 📁 Output Settings

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `outputFormat` | Enum | `full` | `full` (40+ fields) / `compact` (20 fields) / `minimal` (9 fields) |
| `language` | Enum | `en` | Output metadata language: `en` or `ko` |

***

### 📦 Output Data Fields

#### Full Output (40+ fields)

```json
{
    "rank": 1,
    "isAd": "Not Ad",
    "productName": "나이키 V2K 런 블랙 메탈릭 실버 나이키운동화",
    "productId": "11152911412",
    "productType": "NORMAL",
    "mallProductId": "88697421733",
    "productPageUrl": "https://smartstore.naver.com/main/products/11152911412",
    "productImageUrl": "https://shopping-phinf.pstatic.net/main_8869742/88697421733.1.jpg",
    "productImageUrls": [
        "https://shopping-phinf.pstatic.net/main_8869742/88697421733.1.jpg",
        "https://shopping-phinf.pstatic.net/main_8869742/88697421733.2.jpg"
    ],
    "thumbnailUrl": "https://shopping-phinf.pstatic.net/main_8869742/88697421733.thumb.jpg",
    "sellerName": "마이슬로우라이프",
    "sellerPageUrl": "https://smartstore.naver.com/myslowlife",
    "sellerId": "ncp_1nrc1k_01",
    "sellerBusinessType": "스마트스토어",
    "isBrandStore": false,
    "isNaverBrand": false,
    "originalPrice": 175000,
    "discountedPrice": 169900,
    "discountRate": 2,
    "priceUnit": "₩",
    "shippingFee": 0,
    "isFreeShipping": true,
    "deliveryInfo": "무료배송",
    "averageRating": 4.79,
    "totalReviews": 116,
    "purchaseCount": 2450,
    "keepCount": 1823,
    "wishCount": 0,
    "categoryId": "50000804",
    "categoryName": "운동화",
    "category1": "패션잡화",
    "category2": "운동화/스니커즈",
    "category3": "런닝화",
    "category4": "",
    "brandName": "나이키",
    "makerName": "Nike",
    "manufacturerName": "Nike Inc.",
    "isNewProduct": false,
    "isGroupProduct": false,
    "isFreshProduct": false,
    "isOverseaProduct": false,
    "isGiftAvailable": false,
    "isSuperPointProduct": false,
    "isTodayDelivery": true,
    "isPickup": false,
    "isCouponAvailable": true,
    "naverPaySellerId": 510382560,
    "authenticationType": "NORMAL",
    "stock": 38,
    "orderCutoffTime": "15:00",
    "minPurchaseQuantity": 1,
    "characterValue": "색상:블랙|사이즈:220~300",
    "openDate": "2024-06-15",
    "registrationDate": "2024-06-15",
    "searchKeyword": "나이키운동화",
    "crawledAt": "2026-04-15 08:30:45"
}
```

#### With Product Detail Enrichment (additional fields)

```json
{
    "...all fields above...": "...",
    "detailedDescription": "나이키 V2K 런은 2000년대 러닝 디자인에서 영감을 받은...",
    "specifications": [
        { "name": "소재", "value": "합성피혁, 메쉬" },
        { "name": "밑창소재", "value": "고무" },
        { "name": "원산지", "value": "베트남" }
    ],
    "photoReviewCount": 89,
    "videoReviewCount": 12,
    "qnaCount": 45,
    "detailImageUrls": ["https://...image1.jpg", "https://...image2.jpg"],
    "optionCount": 24,
    "deliveryEstimate": "내일(화) 도착 예정",
    "returnPolicy": "수령 후 7일 이내 반품 가능"
}
```

#### With Seller Analytics (additional fields)

```json
{
    "...all fields above...": "...",
    "sellerTotalProducts": 1250,
    "sellerSatisfactionScore": 96.5,
    "sellerGrade": "파워",
    "sellerSince": "2020-03-15"
}
```

***

### 🚀 How to Use

1. **Configure proxy** — Set up Apify Proxy with RESIDENTIAL group (required)
2. **Set your search keywords** — Enter one or multiple keywords (e.g., `["나이키운동화", "아디다스", "뉴발란스"]`)
3. **Configure filters** — Set price range, sort order, delivery type, and other filters
4. **Choose your data depth** — Enable product details or seller analytics if needed
5. **Run and export** — Data is saved to Apify Dataset. Export as JSON, CSV, Excel, or XML

#### Quick Start Example

```json
{
    "searchKeywords": ["노트북", "아이패드"],
    "maxPages": 10,
    "sortBy": "review",
    "minPrice": 500000,
    "maxPrice": 2000000,
    "filterFreeShipping": true,
    "excludeAds": true,
    "minReviews": 10,
    "outputFormat": "full",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
```

This will scrape up to **800 products** (10 pages × 40 products × 2 keywords) for laptops and iPads priced ₩500,000–₩2,000,000 with free shipping, 10+ reviews, excluding ads.

***

### 💲 Pricing

This actor uses **Pay-Per-Event (PPE)** pricing — you only pay for what you scrape.

| | Free Tier | Paid Plans |
|---|-----------|------------|
| **Price per result** | $0.003 | $0.002 – $0.003 |
| **Max results per run** | 50 (sample) | Unlimited |
| **Max pages per keyword** | 2 | 200 |
| **Product detail enrichment** | Not available | Full access |
| **Seller analytics** | Not available | Full access |
| **Price comparison data** | Not available | Full access |

#### Cost Examples (Paid Plans)

| Use Case | Results | Estimated Cost |
|----------|---------|---------------|
| Quick product check | 100 | ~$0.30 |
| Category analysis | 1,000 | ~$3.00 |
| Full market research | 5,000 | ~$15.00 |
| Large-scale monitoring | 10,000 | ~$30.00 |

> **Free tier** provides a 50-result sample so you can evaluate data quality before committing. Upgrade to any paid Apify plan for unlimited access.

***

### 💡 Use Cases

- **📈 Market Analysis** — Track price trends, product availability, and review sentiment across categories
- **🏢 Competitor Research** — Monitor competitor pricing, discounts, inventory levels, and seller ratings
- **📊 Trend Tracking** — Discover trending products and emerging brands in real-time
- **💰 Price Monitoring** — Set up scheduled runs to track price changes over time
- **🏷️ Brand Monitoring** — Track how your brand or products appear in Naver Shopping search
- **📋 Product Catalog Building** — Build comprehensive product databases with images, specs, and pricing
- **🔬 Review Analysis** — Analyze review counts, ratings, and photo/video review ratios
- **🚚 Logistics Analysis** — Study delivery options, shipping fees, and fulfillment patterns

***

### ⚡ Performance

| Metric | Details |
|--------|---------|
| Max products per keyword | 8,000 (200 pages × 40 products) |
| Concurrent pages | Up to 10 (recommended: 3–5) |
| Anti-blocking | CAPTCHA detection, session rotation, fingerprint randomization |
| Proxy requirement | **Residential proxy required** (Apify RESIDENTIAL group) |
| Data extraction | `__NEXT_DATA__` JSON extraction with DOM fallback |

***

### 🔗 Integration

This actor works seamlessly with the Apify ecosystem:

- **API** — Trigger runs and retrieve data via REST API
- **Webhooks** — Get notified when scraping completes
- **Scheduling** — Set up recurring scrapes (hourly, daily, weekly)
- **Integrations** — Connect to Google Sheets, Slack, Zapier, Make, and more
- **SDK** — Use with JavaScript, Python, or any HTTP client

#### API Example

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('YOUR_ACTOR_ID').call({
    searchKeywords: ['나이키운동화'],
    maxPages: 5,
    sortBy: 'review',
    outputFormat: 'full',
    proxyConfiguration: {
        useApifyProxy: true,
        apifyProxyGroups: ['RESIDENTIAL'],
    },
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

***

### 🔧 How It Works Under the Hood

1. **Playwright Chrome Browser** — Uses a real Chromium browser with anti-detection measures (fingerprint randomization, webdriver flag removal, Korean locale)
2. **Session Pool** — Manages multiple browser sessions with automatic rotation when CAPTCHA or blocking is detected
3. **Smart Extraction** — Primary: parses `__NEXT_DATA__` embedded JSON for maximum data richness. Fallback: DOM parsing when JSON is unavailable
4. **CAPTCHA Handling** — Automatically detects CAPTCHA and access-blocked pages, retires the current session, and retries with a fresh session and proxy IP
5. **Run Summary** — Stores a detailed run summary in Key-Value Store including items scraped, items filtered, CAPTCHA encounters, and duration

***

### 💬 Support & Feedback

Having issues or need a custom feature? Feel free to reach out:

- Open an **Issue** on the Actor's page
- Contact via **Apify support channels**
- Leave feedback directly on the Actor listing

We actively maintain this actor and respond quickly to Naver Shopping platform changes.

***

### 🏷️ Tags

`Naver Shopping` `네이버 쇼핑` `Data Scraping` `Product Extraction` `Market Analysis` `Competitive Analysis` `Price Monitoring` `E-commerce` `Korean Shopping` `Product Research` `Seller Analytics` `Review Analysis` `Brand Monitoring` `Trend Tracking`

# Actor input Schema

## `searchKeywords` (type: `array`):

List of search keywords to scrape. Each keyword will produce a separate set of results. <br><br><strong>Example:</strong> <code>\["나이키운동화", "아이폰15", "노트북"]</code>

## `maxPages` (type: `integer`):

Maximum number of search result pages to scrape per keyword. Each page contains up to 40 products. <br><strong>Max: 200 pages = 8,000 products per keyword.</strong>

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

Limit the total number of items collected per keyword. Set to <code>0</code> for no limit (controlled by maxPages only).

## `sortBy` (type: `string`):

How to sort the search results.

## `minPrice` (type: `integer`):

Filter products with price equal to or above this value. Leave empty for no minimum.

## `maxPrice` (type: `integer`):

Filter products with price equal to or below this value. Leave empty for no maximum.

## `filterByNaverPay` (type: `boolean`):

Only include products that support Naver Pay (네이버페이).

## `filterFreeShipping` (type: `boolean`):

Only include products with free shipping (무료배송).

## `filterByDeliveryType` (type: `string`):

Filter by delivery type.

## `productCondition` (type: `string`):

Filter by product condition.

## `excludeAds` (type: `boolean`):

Exclude sponsored/advertisement products from results.

## `minReviews` (type: `integer`):

Only include products with at least this many reviews. Set to <code>0</code> to include all.

## `minRating` (type: `number`):

Only include products with average rating at or above this value (1.0 - 5.0). Set to <code>0</code> for no filter.

## `includeProductDetails` (type: `boolean`):

Navigate to each product's detail page to extract additional data such as <strong>detailed descriptions, specifications, photo review counts, Q\&A counts, delivery estimates,</strong> and more. <br><br>⚠️ <em>Enabling this will significantly increase run time and compute usage.</em>

## `includeSellerDetails` (type: `boolean`):

Extract additional seller/store information including <strong>store rating, total products, satisfaction score,</strong> and <strong>store creation date</strong>. <br><br>⚠️ <em>Enabling this will increase run time.</em>

## `includePriceHistory` (type: `boolean`):

For group products (price comparison), extract <strong>all seller prices</strong> with their individual store info and shipping fees.

## `maxConcurrency` (type: `integer`):

Maximum number of concurrent browser pages. Higher values = faster but more resource-intensive. Recommended: 3–5.

## `requestTimeout` (type: `integer`):

Maximum time to wait for each page before retrying.

## `maxRetries` (type: `integer`):

Maximum number of retry attempts for failed requests. Naver may block some requests, so higher values increase reliability.

## `proxyConfiguration` (type: `object`):

⚠️ <strong>Proxy is REQUIRED for this actor.</strong> Naver Shopping aggressively blocks automated access. <strong>Residential proxies</strong> are strongly recommended for reliable results. Without proxies, the actor will almost certainly fail due to CAPTCHA and IP blocking.

## `outputFormat` (type: `string`):

Choose the level of detail in the output.

## `language` (type: `string`):

Language for field labels in output metadata.

## Actor input object example

```json
{
  "searchKeywords": [
    "나이키운동화"
  ],
  "maxPages": 5,
  "maxItems": 0,
  "sortBy": "rel",
  "filterByNaverPay": false,
  "filterFreeShipping": false,
  "filterByDeliveryType": "all",
  "productCondition": "all",
  "excludeAds": false,
  "minReviews": 0,
  "minRating": 0,
  "includeProductDetails": false,
  "includeSellerDetails": false,
  "includePriceHistory": false,
  "maxConcurrency": 3,
  "requestTimeout": 90,
  "maxRetries": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "outputFormat": "full",
  "language": "en"
}
```

# Actor output Schema

## `productData` (type: `string`):

All scraped product records including prices, ratings, seller info, and 40+ fields per item.

## `runSummary` (type: `string`):

Statistics about the scraping run: total items, filtered items, CAPTCHA encounters, duration, and per-keyword breakdown.

# 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 = {
    "searchKeywords": [
        "나이키운동화"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("huggable_quote/naver-shopping-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 = {
    "searchKeywords": ["나이키운동화"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

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

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

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

```

## CLI example

```bash
echo '{
  "searchKeywords": [
    "나이키운동화"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call huggable_quote/naver-shopping-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=huggable_quote/naver-shopping-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Naver Shopping Product Scraper",
        "description": "Ultra-fast Naver Shopping product data scraper with advanced filtering, multi-keyword support, price range filtering, category filtering, and detailed product analytics including reviews, seller info, and delivery details.",
        "version": "1.0",
        "x-build-id": "pzQGqqaXiSjoNDObx"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/huggable_quote~naver-shopping-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-huggable_quote-naver-shopping-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/huggable_quote~naver-shopping-scraper/runs": {
            "post": {
                "operationId": "runs-sync-huggable_quote-naver-shopping-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/huggable_quote~naver-shopping-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-huggable_quote-naver-shopping-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "searchKeywords"
                ],
                "properties": {
                    "searchKeywords": {
                        "title": "Search Keywords",
                        "minItems": 1,
                        "type": "array",
                        "description": "List of search keywords to scrape. Each keyword will produce a separate set of results. <br><br><strong>Example:</strong> <code>[\"나이키운동화\", \"아이폰15\", \"노트북\"]</code>",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxPages": {
                        "title": "Max Pages per Keyword",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum number of search result pages to scrape per keyword. Each page contains up to 40 products. <br><strong>Max: 200 pages = 8,000 products per keyword.</strong>",
                        "default": 5
                    },
                    "maxItems": {
                        "title": "Max Items per Keyword",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Limit the total number of items collected per keyword. Set to <code>0</code> for no limit (controlled by maxPages only).",
                        "default": 0
                    },
                    "sortBy": {
                        "title": "Sort Results By",
                        "enum": [
                            "rel",
                            "review",
                            "date",
                            "price_asc",
                            "price_dsc"
                        ],
                        "type": "string",
                        "description": "How to sort the search results.",
                        "default": "rel"
                    },
                    "minPrice": {
                        "title": "Minimum Price (₩)",
                        "type": "integer",
                        "description": "Filter products with price equal to or above this value. Leave empty for no minimum."
                    },
                    "maxPrice": {
                        "title": "Maximum Price (₩)",
                        "type": "integer",
                        "description": "Filter products with price equal to or below this value. Leave empty for no maximum."
                    },
                    "filterByNaverPay": {
                        "title": "Naver Pay Products Only",
                        "type": "boolean",
                        "description": "Only include products that support Naver Pay (네이버페이).",
                        "default": false
                    },
                    "filterFreeShipping": {
                        "title": "Free Shipping Only",
                        "type": "boolean",
                        "description": "Only include products with free shipping (무료배송).",
                        "default": false
                    },
                    "filterByDeliveryType": {
                        "title": "Delivery Type",
                        "enum": [
                            "all",
                            "rocket",
                            "today",
                            "pickup"
                        ],
                        "type": "string",
                        "description": "Filter by delivery type.",
                        "default": "all"
                    },
                    "productCondition": {
                        "title": "Product Condition",
                        "enum": [
                            "all",
                            "new",
                            "used",
                            "refurbished"
                        ],
                        "type": "string",
                        "description": "Filter by product condition.",
                        "default": "all"
                    },
                    "excludeAds": {
                        "title": "Exclude Ad Products",
                        "type": "boolean",
                        "description": "Exclude sponsored/advertisement products from results.",
                        "default": false
                    },
                    "minReviews": {
                        "title": "Minimum Review Count",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include products with at least this many reviews. Set to <code>0</code> to include all.",
                        "default": 0
                    },
                    "minRating": {
                        "title": "Minimum Rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "number",
                        "description": "Only include products with average rating at or above this value (1.0 - 5.0). Set to <code>0</code> for no filter.",
                        "default": 0
                    },
                    "includeProductDetails": {
                        "title": "Scrape Product Detail Pages",
                        "type": "boolean",
                        "description": "Navigate to each product's detail page to extract additional data such as <strong>detailed descriptions, specifications, photo review counts, Q&A counts, delivery estimates,</strong> and more. <br><br>⚠️ <em>Enabling this will significantly increase run time and compute usage.</em>",
                        "default": false
                    },
                    "includeSellerDetails": {
                        "title": "Scrape Seller Details",
                        "type": "boolean",
                        "description": "Extract additional seller/store information including <strong>store rating, total products, satisfaction score,</strong> and <strong>store creation date</strong>. <br><br>⚠️ <em>Enabling this will increase run time.</em>",
                        "default": false
                    },
                    "includePriceHistory": {
                        "title": "Include Price Comparison",
                        "type": "boolean",
                        "description": "For group products (price comparison), extract <strong>all seller prices</strong> with their individual store info and shipping fees.",
                        "default": false
                    },
                    "maxConcurrency": {
                        "title": "Max Concurrency",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum number of concurrent browser pages. Higher values = faster but more resource-intensive. Recommended: 3–5.",
                        "default": 3
                    },
                    "requestTimeout": {
                        "title": "Request Timeout (seconds)",
                        "minimum": 10,
                        "maximum": 300,
                        "type": "integer",
                        "description": "Maximum time to wait for each page before retrying.",
                        "default": 90
                    },
                    "maxRetries": {
                        "title": "Max Retries",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "integer",
                        "description": "Maximum number of retry attempts for failed requests. Naver may block some requests, so higher values increase reliability.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration (Required)",
                        "type": "object",
                        "description": "⚠️ <strong>Proxy is REQUIRED for this actor.</strong> Naver Shopping aggressively blocks automated access. <strong>Residential proxies</strong> are strongly recommended for reliable results. Without proxies, the actor will almost certainly fail due to CAPTCHA and IP blocking."
                    },
                    "outputFormat": {
                        "title": "Output Dataset Fields",
                        "enum": [
                            "full",
                            "compact",
                            "minimal"
                        ],
                        "type": "string",
                        "description": "Choose the level of detail in the output.",
                        "default": "full"
                    },
                    "language": {
                        "title": "Output Language",
                        "enum": [
                            "en",
                            "ko"
                        ],
                        "type": "string",
                        "description": "Language for field labels in output metadata.",
                        "default": "en"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
