# Danawa Scraper (다나와): Korean Price Comparison Data (`maxforreal/danawa-scraper`) Actor

Scrape Danawa (다나와), Korea's largest price comparison site: lowest prices, shop counts, specs, ratings, categories and per-shop offers by keyword or URL. No login needed.

- **URL**: https://apify.com/maxforreal/danawa-scraper.md
- **Developed by:** [Tinker](https://apify.com/maxforreal) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 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/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

## Danawa Scraper (다나와): Korean Price Comparison Data

Danawa Scraper collects product and price data from [Danawa](https://www.danawa.com) (다나와), Korea's largest price comparison site. Give it search keywords or Danawa URLs and it returns one clean, flat record per product: the lowest price in KRW, how many shops sell it, maker, specs, category, rating, review count and variants (for example SSD 512GB and 1TB versions). Turn on details to get the cash lowest price, all images, the full category path and release date, and turn on offers to get the cheapest shops with their prices, shipping and links. It reads public pages only and needs no login or Danawa account.

> 한국어 요약: 다나와 상품을 검색어나 URL로 수집합니다. 최저가, 판매처 수, 제조사, 스펙, 카테고리, 평점, 리뷰 수, 쇼핑몰별 최저가(배송비 포함)까지 로그인 없이 가져옵니다.

### What data you get

| Field | Type | Description |
|---|---|---|
| `id` | string | Danawa product code (`pcode`). Marketplace listings use the shop's listing id |
| `listingType` | string | `priceCompared` (Danawa catalog product, prices from many shops) or `marketplace` (single listing from one shop) |
| `name` | string | Product name, with the variant in brackets, for example `... (SSD 512GB)` |
| `baseName` / `variant` | string | Name without variant, and the variant on its own |
| `url` | string | Danawa product page (or the Danawa link to the shop for marketplace listings) |
| `lowestPrice` | number | Lowest price in KRW (null if discontinued) |
| `memberPrice` / `priceWithShipping` | number | Member price and lowest price with shipping, as Danawa lists them |
| `launchPrice` | number | Launch price (출시가) when Danawa shows it |
| `currency` | string | Always `KRW` |
| `shopCount` | number | Number of shops selling the product |
| `shopName` | string | Shop name (marketplace listings only) |
| `status` / `isDiscontinued` | string / boolean | Danawa status, for example `가격비교` (price comparison) or `단종` (discontinued) |
| `maker` / `brand` | string | Manufacturer and product line |
| `specsText` | string | Spec summary as one line, for example `AI노트북 / 40.6cm(16인치) / 1.199kg / ...` |
| `specs` | array | The same specs as a list |
| `image` | string | Main image URL |
| `category` / `categoryPath` / `categoryCode` | string / array / string | Danawa category |
| `rating` | number | Average shop review score out of 5 (null if no reviews) |
| `reviewCount` | number | Number of shop reviews |
| `commentCount` | number | Number of Danawa user comments (search results only) |
| `popularityCount` | number | Danawa's popularity counter used for the "popular" sort |
| `registeredMonth` | string | Month the product was listed on Danawa, `YYYY-MM` |
| `variants` | array | Sibling variants: id, name, lowestPrice, shopCount, url |
| `searchQuery` / `position` | | Search keyword and rank in the results |
| `summary` | string | One-line plain-text summary, handy for LLMs and AI agents |
| `sourceUrl` | string | Page the data came from |
| `scrapedAt` | string | ISO timestamp |

With **Include product details** on, products also get `cashLowestPrice` (lowest cash price), `images`, the full `categoryPath`, `releaseDate` and the exact `shopCount`, `rating` and `reviewCount` from the product page.

With **Include shop offers** on, each product gets an `offers` list with the cheapest shops shown on the product page (usually up to 10): `shopName`, `shopCode`, `price`, `currency`, `shippingText`, `shippingFee`, `priceWithShipping`, `isLowest`, `isCashPrice`, `hasFastDelivery`, `installment` and `url`.

### How to use

1. Add one or more search terms or Danawa URLs.
2. Pick a sort order and product type, and set **Max products** (the total across all inputs).
3. Optionally turn on product details and shop offers.
4. Run and download the results as JSON, CSV or Excel, or read them through the API.

Supported URLs:

- Product: `https://prod.danawa.com/info/?pcode=103451483`
- Search: `https://search.danawa.com/dsearch.php?query=노트북` (the `sort` and `volumeType` parameters in the URL are respected)

Search keywords, cheapest first:

```json
{
  "searchTerms": ["노트북", "rtx 4070"],
  "sort": "lowestPrice",
  "maxItems": 100
}
```

Specific products with their shop offers:

```json
{
  "startUrls": [{ "url": "https://prod.danawa.com/info/?pcode=103451483" }],
  "includeOffers": true
}
```

Sort options: `popular`, `lowestPrice`, `highestPrice`, `newest`, `mostReviews`.

Product types: `priceCompared` (default, Danawa catalog products only), `all` (as on the Danawa search page), `marketplace` (single shop listings only).

### Sample output

A product from search results (details off):

```json
{
  "id": "109598213",
  "listingType": "priceCompared",
  "name": "MSI 모던시리즈 모던 A15 AI+ F3HMG R5 (SSD 512GB)",
  "baseName": "MSI 모던시리즈 모던 A15 AI+ F3HMG R5",
  "variant": "SSD 512GB",
  "url": "https://prod.danawa.com/info/?pcode=109598213",
  "lowestPrice": 899000,
  "memberPrice": 899000,
  "priceWithShipping": 899000,
  "launchPrice": null,
  "currency": "KRW",
  "shopCount": 35,
  "shopName": null,
  "status": "가격비교",
  "isDiscontinued": false,
  "maker": "MSI",
  "brand": "모던시리즈",
  "specsText": "AI노트북 / 39.6cm(15.6인치) / 1.6kg / OS미포함(프리도스) / [화면] / 1920x1080(FHD) / 300nit / [CPU] / AMD / 라이젠AI 5 / 330 (4.5GHz) / 50TOPS / [그래픽] / 내장그래픽 / Radeon 820M / 2코어 / [구성] / 16GB / 램 교체: 가능 / 용량: 512GB / USB-PD / 46.8Wh",
  "specs": ["AI노트북", "39.6cm(15.6인치)", "1.6kg", "OS미포함(프리도스)", "[화면]", "1920x1080(FHD)", "300nit", "..."],
  "image": "https://img.danuri.io/catalog-image/213/598/109/56c02b9cad9b4481bb5ccc107f98882c.jpeg?v=20261027031857",
  "category": "노트북 > 노트북 전체",
  "categoryPath": ["노트북", "노트북 전체"],
  "categoryCode": "112758",
  "rating": 4.7,
  "reviewCount": 7,
  "commentCount": 11,
  "popularityCount": 39351,
  "registeredMonth": "2026-03",
  "variants": [
    { "id": "109598213", "name": "SSD 512GB", "lowestPrice": 899000, "shopCount": 35, "url": "https://prod.danawa.com/info/?pcode=109598213" },
    { "id": "109598396", "name": "SSD 1TB", "lowestPrice": 1049000, "shopCount": 32, "url": "https://prod.danawa.com/info/?pcode=109598396" },
    { "id": "109598405", "name": "SSD 2TB", "lowestPrice": 1248990, "shopCount": 29, "url": "https://prod.danawa.com/info/?pcode=109598405" }
  ],
  "isAdult": false,
  "searchQuery": "노트북",
  "position": 3,
  "detailsIncluded": false,
  "sourceUrl": "https://search.danawa.com/?query=%EB%85%B8%ED%8A%B8%EB%B6%81&page=1&sort=saveDESC&volumeType=vm",
  "summary": "MSI 모던시리즈 모던 A15 AI+ F3HMG R5 (SSD 512GB); maker MSI; lowest price 899,000 KRW across 35 shops; rated 4.7/5 from 7 reviews; category 노트북 > 노트북 전체; specs: AI노트북, 39.6cm(15.6인치), 1.6kg, OS미포함(프리도스), [화면], 1920x1080(FHD), 300nit, [CPU].",
  "scrapedAt": "2026-10-26T18:28:38.936Z"
}
```

A product URL with details and offers on (shortened):

```json
{
  "id": "103451483",
  "listingType": "priceCompared",
  "name": "LG전자 2026 그램 프로16 16Z95U-GS5WK (SSD 512GB)",
  "url": "https://prod.danawa.com/info/?pcode=103451483",
  "lowestPrice": 2154880,
  "cashLowestPrice": 1994000,
  "launchPrice": 2690000,
  "currency": "KRW",
  "shopCount": 218,
  "status": "가격비교",
  "isDiscontinued": false,
  "maker": "LG전자",
  "brand": "2026 그램 프로16",
  "specsText": "AI노트북 / 40.6cm(16인치) / 1.199kg / 최대 27시간 / 윈도우11홈 / [화면] / 2560x1600(WQXGA) / 144Hz / [CPU] / AMD / 라이젠AI 5 / 435 (4.5GHz) / 50TOPS / [그래픽] / 내장그래픽 / Radeon 840M / 4코어 / [구성] / 16GB / 램 교체: 불가능 / 용량: 512GB / USB-PD / 77Wh",
  "category": "컴퓨터/노트북/조립PC > 노트북 > 노트북 전체",
  "categoryCode": "112758",
  "rating": 4.9,
  "reviewCount": 492,
  "releaseDate": "2026-01-06",
  "detailsIncluded": true,
  "offers": [
    {
      "shopName": "(주)사랑행복씨앤씨",
      "shopCode": "PV503",
      "price": 2154880,
      "currency": "KRW",
      "shippingText": "무료배송",
      "shippingFee": 0,
      "priceWithShipping": 2154880,
      "isLowest": true,
      "isCashPrice": false,
      "hasFastDelivery": false,
      "installment": null,
      "url": "https://prod.danawa.com/bridge/loadingBridge.html?cate1=860&cate2=869&cate3=10581&cate4=0&pcode=103451483&cmpnyc=PV503&safe_trade=4&fee_type=A&link_pcode=P0000GZF&package=0&setpc=0&r=17930393731098"
    },
    {
      "shopName": "G마켓",
      "shopCode": "EE128",
      "price": 2154890,
      "currency": "KRW",
      "shippingText": "무료배송",
      "shippingFee": 0,
      "priceWithShipping": 2154890,
      "isLowest": false,
      "isCashPrice": false,
      "hasFastDelivery": true,
      "installment": "최대 24개월",
      "url": "https://prod.danawa.com/bridge/loadingBridge.html?cate1=860&cate2=869&cate3=10581&cate4=0&pcode=103451483&cmpnyc=EE128&safe_trade=4&fee_type=T&link_pcode=4760470701&package=0&setpc=0&r=17930393738964"
    }
  ],
  "summary": "LG전자 2026 그램 프로16 16Z95U-GS5WK (SSD 512GB); maker LG전자; lowest price 2,154,880 KRW across 218 shops; rated 4.9/5 from 492 reviews; category 컴퓨터/노트북/조립PC > 노트북 > 노트북 전체; specs: AI노트북, 40.6cm(16인치), 1.199kg, 최대 27시간, 윈도우11홈, [화면], 2560x1600(WQXGA), 144Hz.",
  "scrapedAt": "2026-10-26T18:29:35.834Z"
}
```

### Pricing

Pay per result. You pay $3 per 1,000 products, plus a small fee per run start. You only pay for what is saved to the dataset. Shop offers are included in the product record at no extra charge. Set a maximum cost per run in Apify and the Actor stops cleanly when it is reached.

### Use cases

- **Price monitoring**: track the lowest Korean market price of electronics, appliances, PC parts and more, daily or weekly.
- **Market research**: see which makers and models rank for a keyword, how many shops sell them and how they are rated.
- **Retail and pricing teams**: compare your prices with the cheapest shops on Danawa, including shipping.
- **Spec databases**: build product catalogs with Danawa's structured spec summaries and variants.
- **AI agents and MCP**: the flat fields and the `summary` line are easy for LLMs to read. Call the Actor from an agent to answer questions like "what is the cheapest RTX 4070 Super in Korea right now?".

### FAQ

**Is it legal?**
The Actor only reads public search and product pages that anyone can see without logging in. It does not log in, solve CAPTCHAs or bypass any protection, and it does not call the URLs Danawa's robots.txt asks crawlers to avoid. You are responsible for how you use the data, including Danawa's terms and any laws that apply to you.

**Do I need a proxy?**
Usually not. Danawa answered fine without one in our tests. If you run very large jobs and see 403 or 429 errors, slow down or add a proxy (Korean residential works best).

**Why are there only about 10 offers when Danawa says 200 shops?**
The offer list is the "lowest price per shop" box on the product page, which shows the cheapest shops. The full shop table is loaded by a Danawa endpoint that robots.txt asks crawlers not to use, so the Actor skips it. `shopCount` always gives the full number of shops.

**What is the difference between `lowestPrice` and `cashLowestPrice`?**
`lowestPrice` is Danawa's normal lowest price (card payment). Some shops offer a lower price for cash or bank transfer, which Danawa shows separately as `cashLowestPrice` (details only).

**What are marketplace listings?**
Besides catalog products, Danawa search also shows single listings from open markets such as 11번가 or 옥션 that are not matched to a catalog product. They are off by default. Set `productType` to `all` or `marketplace` to include them.

### Limitations

- `maxItems` is a total across all inputs. Inputs are processed in order, so a big first search can use up the limit.
- The Actor waits a moment between search pages and opens at most 3 product pages at once to be polite, so big jobs with details or offers take a while.
- Category list pages (`prod.danawa.com/list/?cate=...`) are not supported. Use a search term instead.
- Text fields (names, specs, categories, shop names) are in Korean, as on the site.
- Search results show the category path from the search page (for example `노트북 > 노트북 전체`). With details on, you get the full path from the product page.
- If Danawa changes its site, the Actor may need an update.

# Actor input Schema

## `searchTerms` (type: `array`):

Keywords to search on Danawa. Korean and English both work, for example 노트북 (laptop) or rtx 4070.

## `startUrls` (type: `array`):

Danawa product pages (https://prod.danawa.com/info/?pcode=103451483) or search pages (https://search.danawa.com/dsearch.php?query=노트북).

## `sort` (type: `string`):

Sort order for search results.

## `productType` (type: `string`):

Price-compared products are Danawa catalog products with prices from many shops (recommended). Marketplace listings are single offers from one shop (open market). "All" mixes both, as on the Danawa search page.

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

Maximum number of products to save across all searches and URLs.

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

Open each product page to add the exact shop count, cash lowest price, rating, all images, full category path and release date. Slower (one extra request per product).

## `includeOffers` (type: `boolean`):

Add an "offers" list with the cheapest shops for each product (shop name, price, shipping, link), as shown on the Danawa product page. Opens each product page.

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

Optional. Danawa works without a proxy. Use one if you run very large jobs.

## Actor input object example

```json
{
  "searchTerms": [
    "노트북",
    "rtx 4070"
  ],
  "startUrls": [
    {
      "url": "https://prod.danawa.com/info/?pcode=103451483"
    }
  ],
  "sort": "popular",
  "productType": "priceCompared",
  "maxItems": 50,
  "includeDetails": false,
  "includeOffers": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All items saved by this run (table view: overview).

# 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 = {
    "searchTerms": [
        "노트북",
        "rtx 4070"
    ],
    "startUrls": [
        {
            "url": "https://prod.danawa.com/info/?pcode=103451483"
        }
    ],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("maxforreal/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 = {
    "searchTerms": [
        "노트북",
        "rtx 4070",
    ],
    "startUrls": [{ "url": "https://prod.danawa.com/info/?pcode=103451483" }],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("maxforreal/danawa-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 '{
  "searchTerms": [
    "노트북",
    "rtx 4070"
  ],
  "startUrls": [
    {
      "url": "https://prod.danawa.com/info/?pcode=103451483"
    }
  ],
  "maxItems": 50
}' |
apify call maxforreal/danawa-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maxforreal/danawa-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/hMju6KdJr1FxvbmcG/builds/jSGohQIazzoXtXnmZ/openapi.json
