# Danawa API — Korea's price comparison: search products, every mall's offer for a product, card and cash lowest prices, specs and price history

> Keyword search on danawa.com (다나와). Rows are danawa catalogue products (`row_type: product`, with product_id for `product` / `offers` / `specs` / `price_history`, the card's variants — colours, storage, carrier plans — each with its own product_id, price and mall count) and shopping-mall listings that danawa indexes (`row_type: mall_item`, with the mall and its price). Filters: danawa category code, maker code, price range, scope (all / catalogue only / mall listings only), sort. 40 rows per page.
> ReefAPI engine `danawa` · 5 endpoints · clean JSON, no scraping or browsers to manage.

## How to call
- **Endpoint:** `POST https://api.reefapi.com/danawa/v1/<action>` with a JSON body.
- **Auth:** header `x-api-key: <YOUR_REEFAPI_KEY>` — create one free (1,000 credits, no card): https://reefapi.com/signup
- **Response (every call):** `{ ok: boolean, data: ..., meta: { record_count, credits, ... }, error: { code, message } }` — branch on `ok`. Failed calls are free except verified SHEIN NOT_FOUND on product/detail and price (4 credits).
- **One key + one shared credit pool** across every ReefAPI API. Per-call credits are listed on each endpoint below.
- **Use it from an AI agent (MCP):** connect `https://api.reefapi.com/mcp` (remote streamable-http). Send the key as `Authorization: Bearer <key>`, or put it in the URL (`?key=<key>`) when the client has no header field, as ChatGPT does.

## Endpoints

### POST https://api.reefapi.com/danawa/v1/search — 3 credits
Keyword search on danawa.com (다나와). Rows are danawa catalogue products (`row_type: product`, with product_id for `product` / `offers` / `specs` / `price_history`, the card's variants — colours, storage, carrier plans — each with its own product_id, price and mall count) and shopping-mall listings that danawa indexes (`row_type: mall_item`, with the mall and its price). Filters: danawa category code, maker code, price range, scope (all / catalogue only / mall listings only), sort. 40 rows per page.

**Parameters:**
- `query` (string, required) — Search words, Korean or English (e.g. `iphone`, `SSD 2TB`, `아이폰17`, `로봇청소기`). Full-width letters are normalised (ｉｐｈｏｎｅ = iphone).
- `category` (string, optional) — Danawa category codes, 1-4 levels joined by `|`, as in a search row's `category_codes` (e.g. `224` 태블릿/휴대폰, `224|48419` 휴대폰, `861|32617` SSD). A trailing `|0` is ignored.
- `maker` (string, optional) — One danawa maker code, the `maker_code` of a search row (e.g. `702` 삼성전자, `1452` APPLE, `4213` Western Digital). Catalogue products only.
- `min_price` (integer, optional) — Minimum price in KRW.
- `max_price` (integer, optional) — Maximum price in KRW.
- `scope` (enum, optional, default "all") — Which rows: everything, danawa catalogue products only (가격비교상품), or indexed mall listings only (검색상품). [one of: all, catalog, mall]
- `sort` (enum, optional, default "popular") — Result order. [one of: popular, price_asc, price_desc, newest, most_reviewed]
- `page` (integer, optional, default 1) — Result page, 40 rows per page. Danawa serves at most 50 pages (2,000 rows) per query; narrow the query or add a filter to reach the rest.

**Returns:** results[]{row_type (product|mall_item), position, product_id (products), mall_item_id (mall rows), title, maker, maker_code, url, image, intro, spec_summary, category, category_codes, price, price_text, currency=KRW, mall_count, registered (YYYY-MM), opinion_count, rating, review_count (exact only), review_count_text ('999+' when capped), variants[]{product_id, label, price, price_text, mall_count, popular_rank_in_family}, mall, shipping_text, shipping_cost} + total, catalog_total, mall_listing_total, page, has_more

**Example request body:**
```json
{
  "query": "SSD 2TB"
}
```

### POST https://api.reefapi.com/danawa/v1/product — 2 credits
One danawa product page: title, maker, brand, images, category path and codes, the card-payable lowest price (최저가, checked against the page's structured data), the cash lowest price (현금최저가), the lowest price including shipping, the launch price (출시가), review score and count, how many offers, registration month, spec highlights, the product codes of its variants and the top-malls price box. Use `offers` for every mall, `specs` for the full spec sheet.

**Parameters:**
- `product_id` (string, optional) — Danawa product code (pcode, digits), the `product_id` of a search row (or of one of its `variants`), also in a product URL prod.danawa.com/info/?pcode=…. Provide product_id OR url.
- `url` (string, optional) — A prod.danawa.com product URL (or m.danawa.com …?code=); alternative to product_id.

**Returns:** product{product_id, title, maker, maker_code, brand, url, image, images[], intro, spec_highlights, category_codes, category_path[], category_id, ui_category_path[], lowest_price, lowest_price_with_shipping, cash_lowest_price, launch_price, currency=KRW, price_mismatch, price_witnesses, offer_count, rating, review_count, registered, product_type, variant_product_ids[], mall_price_summary[]{mall, price, payment, is_lowest, shipping_text, interest_free_text}, status}

**Example request body:**
```json
{
  "product_id": "17788451"
}
```

### POST https://api.reefapi.com/danawa/v1/offers — 3 credits
Every mall offer danawa lists for one product, in danawa's groups (오픈마켓, 백화점/홈쇼핑/종합몰, 샵다나와, 카드/현금 동일 전문몰, 일반 전문몰): mall, the mall's own item title, price, whether the price is for cash payment, shipping (free / amount / varies, as printed), price with shipping when the shipping is one exact amount, interest-free months, fast delivery, coupon and the buy link. Page 1 holds every group (up to 50 open-market rows); when the open market has more, `page=2`, 3 … return the next open-market rows.

**Parameters:**
- `product_id` (string, optional) — Danawa product code (pcode, digits), the `product_id` of a search row (or of one of its `variants`), also in a product URL prod.danawa.com/info/?pcode=…. Provide product_id OR url.
- `url` (string, optional) — A prod.danawa.com product URL (or m.danawa.com …?code=); alternative to product_id.
- `page` (integer, optional, default 1) — 1 = every group; 2+ = the next 50 open-market (오픈마켓) rows when `has_more` is true.

**Returns:** product{product_id, title, lowest_price, cash_lowest_price, offer_count} + offers[]{position, group, mall, mall_code, mall_product_id, title, price, currency, payment (card|cash), is_group_lowest, shipping_text, shipping_cost, price_with_shipping, fast_delivery, interest_free_months, interest_free_text, coupon, naver_pay, url} + count + page + has_more + groups{name: count}

**Example request body:**
```json
{
  "product_id": "17788451"
}
```

### POST https://api.reefapi.com/danawa/v1/specs — 3 credits
The full spec sheet of one danawa product (상품 상세 스펙), as group / label / value rows in the source's own Korean wording.

**Parameters:**
- `product_id` (string, optional) — Danawa product code (pcode, digits), the `product_id` of a search row (or of one of its `variants`), also in a product URL prod.danawa.com/info/?pcode=…. Provide product_id OR url.
- `url` (string, optional) — A prod.danawa.com product URL (or m.danawa.com …?code=); alternative to product_id.

**Returns:** product{product_id, title, url} + specs[]{group, label, value} + count

**Example request body:**
```json
{
  "product_id": "17788451"
}
```

### POST https://api.reefapi.com/danawa/v1/price_history — 1 credit
Danawa's lowest-price history for one product (가격추이): one point per week for the last 3 months and one point per month for the last 24 months, as danawa's chart plots them.

**Parameters:**
- `product_id` (string, optional) — Danawa product code (pcode, digits), the `product_id` of a search row (or of one of its `variants`), also in a product URL prod.danawa.com/info/?pcode=…. Provide product_id OR url.
- `url` (string, optional) — A prod.danawa.com product URL (or m.danawa.com …?code=); alternative to product_id.

**Returns:** product{product_id, url} + weekly[]{date, lowest_price} + monthly[]{date (YYYY-MM), lowest_price} + all_time_lowest{price, date} + currency=KRW

**Example request body:**
```json
{
  "product_id": "17788451"
}
```

## At scale
- **Volume:** 5M+ requests a day, measured at 60 requests a second across the fleet with no
  central bottleneck. Per-key limits are raised for high-volume accounts; volume pricing on request.
- **Missing a source:** tell us a site we do not cover and it becomes an engine. A customer asked
  for bestprice.gr on 21 Sep 2026 and it was in the catalog on 22 Sep.
- **Support:** 2 minute median time from a question in the live chat to the first answer. Setup
  help included, no support tier to buy.
- **One key, one credit pool** across every API. No per-site plans, no separate subscriptions.

## More
- Try it live, no code: https://reefapi.com/playground?engine=danawa
- Human docs page: https://reefapi.com/docs/danawa
- Overview page: https://reefapi.com/danawa-api
- Every ReefAPI API in one file (for your AI): https://reefapi.com/llms-full.txt
