# Danawa Scraper — Korean Price Comparison (danawa.com) (`kdatafactory/danawa-scraper`) Actor

Scrape Danawa (다나와), Korea's #1 electronics & product price-comparison site: product name, lowest KRW price, category, brand, spec summary and image as clean JSON. Search any keyword. Public price-comparison data only — no PII. Ideal for price monitoring, MAP, repricing and market research.

- **URL**: https://apify.com/kdatafactory/danawa-scraper.md
- **Developed by:** [Seok June Park](https://apify.com/kdatafactory) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Danawa Scraper — Korean Price Comparison 💻

Scrape live **product price-comparison data** from [Danawa (다나와)](https://www.danawa.com) — Korea's **#1 electronics & product price-comparison site** — as clean, structured JSON. Search any keyword and get the product name, **lowest listed KRW price**, category, brand, spec summary, and image for every result in one run.

The go-to source for **price monitoring, MAP enforcement, repricing, and market research** on the Korean market. Danawa aggregates prices across hundreds of malls, so its lowest-price figure is the reference point Korean shoppers and sellers actually use.

> **Try it free.** Apify's free plan includes $5 of monthly platform credit — at **$2.00 / 1,000 results** that's roughly **2,500 products** from this actor, no credit card required. Set your keyword, click Start, and export JSON/CSV/Excel.

***

### What it does

This actor reads product data straight from Danawa's own public search results (the same page the website renders as you search), so results are fast and complete — no headless browser. For any keyword you give it, you get a structured, filterable list of matching products with their lowest aggregated price. You can scrape:

- **Any search keyword** — `노트북` (laptop), `아이폰`, `RTX 4070`, `무선청소기`, a brand, a model number — anything Danawa's search box accepts, in Korean or English.
- **As many results as you want** — the actor paginates through Danawa's results (≈40 products per page) up to your `maxItems`.

> **Why Danawa?** Danawa is Korea's dominant price-comparison portal for electronics, appliances, and thousands of other categories. Its "최저가" (lowest price) is aggregated across hundreds of online malls, making it the single best public reference for what a product actually costs in Korea. This actor turns that into a dataset you can filter, price-model, and pipe into your own tools.

***

### Input

| Field | Type | Description |
|-------|------|-------------|
| `query` | string | The search keyword, exactly as you'd type it into Danawa. Korean **or** English — e.g. `노트북`, `아이폰 15`, `RTX 4070`, `무선청소기`. Defaults to `노트북`. |
| `maxItems` | integer | Max products to collect. Default `100`, max `10000`. |
| `proxyConfiguration` | object | Proxy settings (see below). Defaults to a direct connection. |

#### Input example

```json
{
  "query": "노트북",
  "maxItems": 200
}
```

```json
{
  "query": "RTX 4070",
  "maxItems": 500
}
```

***

### Output

Each product is one dataset record. `price_krw` is the **lowest listed price** in Korean won (Danawa's aggregated 최저가), as a plain integer. `spec_summary` is Danawa's short spec line for the product when shown. `category` is the product's Danawa category path.

```json
{
  "source": "danawa",
  "product_id": "103451483",
  "name": "LG전자 2026 그램 프로16 16Z95U-GS5WK",
  "price_krw": 2050490,
  "category": "디지털 완제품 > 노트북",
  "brand": "LG전자",
  "spec_summary": "AI노트북/ 40.6cm(16인치)/ 1.199kg/ 최대 27시간/ AMD/ 라이젠AI 5/ 50TOPS/Radeon 840M/ 16GB/ 용량: 512GB",
  "mall_count": null,
  "url": "https://prod.danawa.com/info/?pcode=103451483",
  "image_url": "https://img.danuri.io/catalog-image/483/451/103/280fb649a9c8407c90c9aa52c2df7367.jpg",
  "scraped_at": "2026-07-14T14:51:50+09:00"
}
```

A full 40-item sample from a real run is in [`samples/sample-output.json`](samples/sample-output.json).

| Field | Meaning |
|-------|---------|
| `source` | Always `"danawa"`. |
| `product_id` | Danawa product code (`pcode`). |
| `name` | Full product name, as Danawa lists it. |
| `price_krw` | Lowest listed price in KRW (integer). |
| `category` | Danawa category path (e.g. `디지털 완제품 > 노트북`), else `null`. |
| `brand` | Best-effort brand (first token of the name), else `null`. |
| `spec_summary` | Danawa's short spec line when shown, else `null`. |
| `mall_count` | Number of sellers when Danawa prints it on the card, else `null`. |
| `url` | Product detail page URL. |
| `image_url` | Main product image URL, else `null`. |
| `scraped_at` | ISO-8601 timestamp (KST, UTC+9). |

The core fields — `name`, `price_krw`, `category`, `brand`, `url`, `image_url` — populated on **40/40** records in the live test. `spec_summary` is best-effort from Danawa's spec line, and `mall_count` is only present when Danawa prints a seller count on the card (see Known limitations).

***

### Use cases

- **Price monitoring & MAP enforcement** — track a product's Danawa 최저가 (lowest price) over time to detect price drops and catch resellers breaking your Minimum Advertised Price.
- **Reseller & arbitrage sourcing** — scan a category or keyword for underpriced listings versus their typical Danawa price, and spot cross-border arbitrage opportunities.
- **E-commerce repricing** — feed live Korean market prices into your own repricing engine so your storefront always tracks the reference lowest price.
- **Market & competitive research** — measure price distribution, brand mix, and product availability across a keyword or category on Korea's biggest price portal.
- **AI agents & datasets** — feed structured product + price data into pricing models, dashboards, or LLM agents.

***

### ❓ FAQ

**Is it legal to scrape this data?**
This actor collects only public, non-personal price-comparison data — the same product listings any visitor sees on danawa.com without logging in. No personal or individual-seller contact data is collected. You are responsible for how you use the data; see the legality note below.

**What does it cost in practice?**
$2.00 per 1,000 results (launch pricing) + a few cents of platform usage. Example: a 500-result daily pull costs about **$1.00/day**. Apify's free $5 monthly credit covers **~2,500 results** (5 ÷ 2 × 1,000).

**Do I need to configure proxies?**
No — the default settings work out of the box on a **direct connection**. For very heavy pulls you can optionally enable Apify Proxy — see the proxy note below.

**How fresh is the data?**
Every run scrapes the live Danawa results at run time. Schedule the actor for recurring snapshots (e.g. daily price tracking).

**What is NOT included?**
Per-seller price rows and individual mall contact details are not returned — only the product and its aggregated lowest price. `spec_summary`, `brand`, and `mall_count` are best-effort (see Known limitations). Product names, categories, and specs come as Korean strings, as Danawa lists them.

***

### 🤖 Use with AI agents (MCP)

Call this Actor as a tool from Claude or any MCP-compatible AI agent — no glue code. Point your MCP client at Apify's server, scoped to this Actor:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=kdatafactory/danawa-scraper",
      "headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }
    }
  }
}
```

Your agent can then pull Danawa product prices and market data on demand — no scraping code in your app. Grab a free token from [Apify → Integrations](https://console.apify.com/settings/integrations).

### 🇰🇷 More Korean data actors

This actor is part of a suite of Korean-platform scrapers by the same maintainer:

- [kurly-scraper](https://apify.com/kdatafactory/kurly-scraper) — product & price data from Market Kurly, Korea's leading premium grocery platform.
- [musinsa-scraper](https://apify.com/kdatafactory/musinsa-scraper) — fashion product listings from Musinsa, Korea's #1 online fashion store.

Browse all: [apify.com/kdatafactory](https://apify.com/kdatafactory)

***

### Rate limiting & legality

- The actor collects **only public, non-authenticated data**. It never logs in and never touches private endpoints.
- **No personal data** is collected. Only product attributes and an aggregated lowest price are returned — never individual seller contact information.
- Requests are rate-limited: one page at a time with a ≥ 500 ms delay between requests, to stay gentle on Danawa's servers.
- You are responsible for using the data in line with Danawa's terms of service and applicable law.

#### Known limitations (honesty note)

- **`mall_count`** (number of sellers) is **best-effort**: Danawa does not print an explicit seller count on the results card in the current layout, so this field is usually `null`. It is populated only when a count is shown, and it is not billed as a guaranteed field.
- **`brand`** is derived **heuristically** as the first token of the product name (e.g. `LG전자`, `ASUS`, `삼성전자`). It's right for the vast majority of listings, but Danawa has no dedicated brand field on the card, so treat it as best-effort. The authoritative full product name is always in the `name` field.
- **`spec_summary`** is Danawa's raw short spec line, lightly cleaned. It's present for most products but its format varies by category (and is occasionally empty), so it's best-effort and can be `null`.
- **`category`** is derived from Danawa's category metadata on the card. It's populated for the vast majority of products but can be `null` for the occasional result that omits it.
- **Names, categories, and specs are Korean strings**, exactly as Danawa lists them — they are not translated.

***

*If this actor saves you time, a rating on the [Store page](https://apify.com/kdatafactory/danawa-scraper) helps a solo maintainer a lot. Found an issue? Open it in the Issues tab — I respond fast.*

# Actor input Schema

## `query` (type: `string`):

The product search keyword to scrape, exactly as you'd type it into Danawa's search box. Korean or English, e.g. '노트북' (laptop), '아이폰', 'RTX 4070', '무선청소기'. Defaults to '노트북' if left blank.

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

Maximum number of product records to collect (Danawa returns ~40 products per page).

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

Proxy settings. Danawa serves its results over a direct connection, so the actor runs fine without a proxy (default). If you ever see blocks at high volume, enable Apify Proxy here.

## Actor input object example

```json
{
  "query": "노트북",
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("kdatafactory/danawa-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("kdatafactory/danawa-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 '{}' |
apify call kdatafactory/danawa-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/ttppfE3qt5ErRJZic/builds/P68eJKvQWbc9c3ZMk/openapi.json
