# Domeggook Scraper & API - Korean Wholesale, MOQ, Suppliers (`rel8ble/domeggook-scraper`) Actor

Domeggook scraper and API for Korean wholesale products and suppliers (도매꾹) by keyword or URL. One result = one product: KRW price tiers, MOQ, stock, origin, shipping, dispatch time, supplier company, business number, address, phone, e-mail. No login. $1.50 per 1,000, product pages included.

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

## Pricing

$1.50 / 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

## Domeggook Scraper & API - Korean Wholesale, MOQ, Suppliers

**Domeggook scraper** (도매꾹 크롤러) for importers, Korean dropshippers, Coupang / Naver Smart Store sellers, sourcing agents and B2B lead-gen teams: enter a product keyword such as `양말` (socks), `텀블러` (tumbler) or `핫팩` (hand warmer) and get wholesale products from **Domeggook.com**, a Korean B2B wholesale marketplace, as clean JSON, CSV or Excel. Each row is one product with its **KRW wholesale price, quantity price tiers, MOQ, stock, origin, shipping fee and dispatch time**, plus the supplier behind it: **company name, business registration number, business address, phone and e-mail**. Use it as a **Korean wholesale supplier finder**, a **Korea dropshipping product research tool**, or an unofficial **Domeggook API** from your own code, Make, Zapier or n8n.

It works over plain HTTP, with **no browser and no login**. 20 products with full product pages took 8 seconds in a local test; the one cloud demo (31 Oct 2026, 512 MB, build 1.0.1, before a concurrency fix) took 69 seconds, mostly slow product pages through the datacenter proxy. The form now prefills 10 products, so a first run stays small.

### What you get

- **Product**: Domeggook product number, name, URL, image, category path and code, origin (`수입산 / 아시아 / 중국` and the country alone), ranking score, review and inquiry counts.
- **Price and MOQ**: price as shown, `priceMin` / `priceMax` in KRW, every **quantity price tier** (`[{minQuantity, priceKrw}]`), **minimum order quantity**, stock, option pricing flag, members-only price flag, negotiable flag, quantity discount flag.
- **Logistics**: shipping fee in KRW, full shipping rule text (per-quantity fee, Jeju / island surcharges), shipping method, bundle shipping, **dispatch time and average dispatch days**, fast-delivery badge, business-buyers-only and single-unit purchase flags, sponsored (paid placement) flag.
- **Supplier card** (from the product page, no extra request): seller nickname and ID, seller catalog URL, seller grade and gold / silver / bronze badge, satisfaction rating, **company name**, tax type, **business registration number (사업자등록번호)**, **business address**, **phone** and **e-mail**. Representative names are not collected.

### Sample output

Real rows from a run with the default input (`양말`, socks, 20 results):

| Product | Price | MOQ | Stock | Origin | Shipping (KRW) | Dispatch | Supplier | Rating |
|---|---|---|---|---|---|---|---|---|
| 겨울 남자 여자 도톰한 융털 기모 양말 남성 여성 베이직 무지 5set | 2,500원 | 2 | 32,452 | 중국 | 3,000 | 당일출고 (평균출고일 0.1일) | 주식회사 오늘팩토리 | 4.7 |
| 발마사지 지압지도 양말 지압봉 세트 / 발반사구 발마사지 지압 건강양말 | 2,390원 | 3 | 1,724 | 중국 | 3,000 | 당일출고 (평균출고일 0.4일) | 주식회사 한담컴퍼니 | 4.6 |
| \[CU] 밀크폼 수면양말 미끄럼방지 겨울 덧신 논슬립 보온 양말 겨울양말 실내 거실 발목양말 개별OPP | 1,600원 | 4 | 58,239 | 중국 | 3,000 | 당일출고 (평균출고일 0.3일) | 씨앤유글로벌 | 4.9 |
| 여성 가을 겨울 기모 니삭스 레그워머 스타킹 양말 발토시 긴양말 | 990원 | 6 | 3,228 | 중국 | 3,000 | 당일출고 (평균출고일 0.1일) | 주식회사 오늘팩토리 | 4.7 |
| \[ANB7]32종남녀/패션양말모음전/여자양말/남자양말/판촉물/사은품 | 600원 | 10 | 18,745 | 중국 | 3,000 | 당일출고 (평균출고일 0.2일) | 에이앤비세븐 | 4.9 |

Fill rates on those 20 rows: price, MOQ, stock, origin, shipping, dispatch time, company name, business registration number, address, phone and e-mail 100%; seller badge 90%.

### Why this one

- **No other Domeggook scraper on the Apify Store that we found** (searches "domeggook", "domeggook scraper", "도매꾹", "korean wholesale" and "korea wholesale", checked 6 November 2026).
- **$1.50 per 1,000 products with the product page included**: every price tier, stock, shipping rule and the supplier's business card at no extra charge, no start fee.
- **Supplier leads built in**: company name, business registration number, address, phone and e-mail on every detailed row.
- **Plain HTTP, no login**: 20 rows with product pages in 8 s locally; cloud runs add proxy and start-up time (69 s in the 31 Oct demo).

### Use cases

- **Korean product sourcing**: compare wholesale prices, MOQs and shipping rules for a product across hundreds of Korean suppliers.
- **Dropshipping research**: find in-stock products with same-day dispatch and low MOQ (`maxMoq`, `fastDeliveryOnly`) to list on Coupang, Naver or your own store.
- **Price monitoring**: re-run on a schedule and join on `productId` to track price and stock changes.
- **B2B lead generation**: one row per supplier (`uniqueSuppliers`) gives a lead list of Korean wholesalers with business number, address, phone and e-mail.
- **Supplier catalog export**: paste a seller catalog URL to export that seller's whole range.
- **AI agents**: an agent can call this actor with a keyword and read back structured Korean wholesale data (see the MCP note below).

### Pricing

**$1.50 per 1,000 results** (pay per result), with **product pages included**: price tiers, stock, shipping rules and the supplier card cost nothing extra. Apify platform usage and proxies are included in that price. Filtered rows, duplicates, removed products and failed requests are never charged, and there is no start fee.

| Run | Results | Cost |
|---|---|---|
| Prefilled form (`양말`, 10 rows) | 10 | $0.015 |
| Default input via API (`양말`, 20 rows) | 20 | $0.03 |
| One keyword, 100 products | 100 | $0.15 |
| Supplier lead list, 5 keywords x 50, one row per supplier | up to 250 | up to $0.38 |
| Card-only export of a whole keyword | 5,000 | $7.50 |

Apify's free plan ($5 of monthly credit) covers about 3,300 results.

### FAQ

**Do I need to write keywords in Korean?**
Korean keywords match far more products (`양말` returns tens of thousands, `socks` very few). Brand and model words in English (`tumbler`, `iPhone`) also work. The output keeps Korean text as-is; translate it in Google Sheets or your own pipeline if needed.

**Why is a price empty?**
Some suppliers show prices to logged-in business members only. Those rows have `priceMembersOnly: true` and null price fields. Use `onlyWithPrice` to skip them.

**Where do the phone and e-mail come from?**
Korean e-commerce law requires sellers to publish their business details. The actor reads the company card on the product page: company name, business registration number, address, business phone and e-mail. Representative (owner) names are not collected.

**How many products does one keyword give?**
Domeggook returns up to 30,000 products per search, 100 per page. Use `maxResultsPerSearch: 0` for everything, or `scrapeDetails: false` for a fast card-only export.

**Is there an official Domeggook API?**
Domeggook's Open API needs a registered member account and an API key. This actor needs no Domeggook account: it reads the public search and product pages and returns the same fields as JSON.

**How much does a typical job cost?**
A 100-product price check is $0.15. A weekly check of 5 keywords at 100 products each is about $3.25 a month. A 250-supplier lead list is up to $0.38.

**For AI agents (MCP):** input is a list of Korean keywords or Domeggook URLs plus optional filters; output is one JSON row per product with KRW price tiers, MOQ and the supplier's company card; typical cost is $0.03 for 20 rows; use it when you need Korean wholesale prices or Korean suppliers for a product.

### Example inputs for common jobs

Products with price tiers and supplier card (default):

```json
{ "searchTerms": ["양말"], "maxResultsPerSearch": 20 }
```

Cheapest first, small batches, fast dispatch only:

```json
{ "searchTerms": ["텀블러"], "maxResultsPerSearch": 100, "sortBy": "priceLow", "maxMoq": 10, "fastDeliveryOnly": true, "onlyWithPrice": true }
```

A Korean supplier lead list with e-mails, one row per supplier, no paid placements:

```json
{ "searchTerms": ["핫팩", "마스크", "물티슈"], "maxResultsPerSearch": 50, "uniqueSuppliers": true, "withEmailOnly": true, "excludeSponsored": true }
```

A Domeggook search or category URL, a seller's catalog, or single products:

```json
{
  "searchTerms": [
    "https://www.domeggook.com/main/item/itemList.php?sw=%C5%D2%BA%ED%B7%AF&sf=ttl",
    "https://www.domeggook.com/main/item/itemList.php?sw=sns%40596575&sf=id",
    "https://www.domeggook.com/61812918"
  ],
  "maxResultsPerSearch": 0
}
```

Fastest card-only export (name, price, MOQ, shipping, seller, badges; no product pages, 100 products per request):

```json
{ "searchTerms": ["양말"], "maxResultsPerSearch": 500, "scrapeDetails": false }
```

### How to use

1. Open the actor and type one or more product keywords (Korean works best; English brand words work too) or paste Domeggook URLs into **Products**.
2. Set **Max results per search** (default 20; 0 = everything Domeggook returns, up to 30,000 per search).
3. Optionally pick a sort order and filters (price, MOQ, members-only prices, sponsored, fast delivery, e-mail, one row per supplier).
4. Click **Start**. Download the dataset as JSON, CSV, Excel or HTML, or read it through the API.

### Input

| Field | Type | Default | What it does |
|---|---|---|---|
| `searchTerms` | array | `["양말"]` | Keywords, search / category URLs, seller catalog URLs or product URLs (`https://www.domeggook.com/<number>`). |
| `maxResultsPerSearch` | integer | 20 | Rows per keyword / URL. 0 = everything (100 per page). |
| `scrapeDetails` | boolean | true | Read product pages (all price tiers, stock, origin, shipping rule, dispatch time, supplier card). |
| `sortBy` | string | `ranking` | `ranking`, `popular`, `newest`, `priceLow`, `priceHigh`, `moqLow`, `moqHigh`, `newSuppliers`. |
| `uniqueSuppliers` | boolean | false | Keep only the first product per supplier (not applied to a seller catalog URL). |
| `minPrice` / `maxPrice` | integer | - | Unit price range in KRW. |
| `maxMoq` | integer | - | Skip products whose MOQ is above this. |
| `onlyWithPrice` | boolean | false | Skip products whose price is shown to logged-in business members only. |
| `excludeSponsored` | boolean | false | Skip paid placements. |
| `fastDeliveryOnly` | boolean | false | Only "빠른배송" suppliers. |
| `withEmailOnly` | boolean | false | Only suppliers with an e-mail on their card. |
| `maxConcurrency` | integer | 10 | Parallel requests. |
| `maxRequestRetries` | integer | 8 | Retries per failed request, each on a new proxy session. |
| `proxyConfiguration` | object | Apify Proxy | Datacenter proxy works; switch to RESIDENTIAL only if the log shows repeated blocks. |

Inputs that are not Domeggook keywords or URLs are skipped and listed in the `RUN_SUMMARY` record; they are never charged. A product URL that Domeggook has removed is reported in the log and not charged.

### Output example

One real row (shortened):

```json
{
  "searchTerm": "양말",
  "position": 3,
  "productId": "61812918",
  "productName": "[CU] 밀크폼 수면양말 미끄럼방지 겨울 덧신 논슬립 보온 양말 겨울양말 실내 거실 발목양말 개별OPP",
  "productUrl": "https://www.domeggook.com/61812918",
  "currency": "KRW",
  "price": 1600,
  "priceText": "1,600원",
  "priceMin": 1600,
  "priceMax": 1600,
  "priceTiers": [{ "minQuantity": 4, "priceKrw": 1600 }],
  "priceMembersOnly": false,
  "moq": 4,
  "stock": 58239,
  "origin": "수입산 / 아시아 / 중국",
  "originCountry": "중국",
  "categoryPath": ["패션잡화", "양말", "여성양말", "수면양말"],
  "shippingFeeKrw": 3000,
  "shippingMethod": "택배",
  "bundleShipping": true,
  "dispatchTime": "당일출고 (평균출고일 0.3일)",
  "avgDispatchDays": 0.3,
  "businessBuyersOnly": true,
  "fastDelivery": true,
  "sponsored": false,
  "inquiryCount": 15,
  "sellerNickname": "씨앤유글로벌",
  "sellerUrl": "https://www.domeggook.com/main/item/itemList.php?sw=sns%40596575&sf=id",
  "sellerGradeText": "판매1등급",
  "sellerBadge": "silver",
  "sellerRating": 4.9,
  "companyName": "씨앤유글로벌",
  "taxType": "일반과세자 (과세상품)",
  "businessRegistrationNumber": "612-18-52397",
  "businessAddress": "경기 화성시 봉담읍 동화역말길 55-25 2동(우측건물)",
  "phone": "070-4400-4825",
  "email": "cnyglobal@naver.com",
  "detailScraped": true,
  "scrapedAt": "2026-10-31T17:57:22.334Z"
}
```

The dataset has three table views in the Apify console: **Overview** (product, price, MOQ, supplier), **Supplier leads** (company card) and **Logistics** (shipping and dispatch). A `RUN_SUMMARY` record lists per-keyword counts, pages read, ignored inputs and stop reasons.

### Integrations

Run it on an Apify schedule, through the Apify REST API, the JavaScript / Python clients, Make, Zapier, n8n, Google Sheets, or from AI agents via the Apify MCP server. Join runs on `productId` to track prices, or on `businessRegistrationNumber` to build a supplier CRM.

This actor is not affiliated with Domeggook. It reads public pages that Domeggook's robots.txt allows.

Need a custom scraper or a ready dataset? Hire me on Fiverr: https://www.fiverr.com/rel8ble

# Actor input Schema

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

Provide at least one. Korean product keywords match best, e.g. "양말" (socks), "텀블러" (tumbler), "핫팩" (hand warmer); English words such as "tumbler" also work. Or domeggook.com URLs: a search or category list (https://www.domeggook.com/main/item/itemList.php?ca=01_15_00_00_00), a supplier catalog (itemList.php?sw=<sellerId>\&sf=id) or one product (https://www.domeggook.com/44242921). Default \["양말"] (demo).

## `maxResultsPerSearch` (type: `integer`):

Optional. Products saved per keyword / URL, integer >= 0. Default 20; 0 = everything (Domeggook shows up to 30,000 products per search, 100 per page). You pay per row.

## `scrapeDetails` (type: `boolean`):

Default true. Reads each product page and adds every quantity price tier, stock, origin, shipping rule, dispatch time, category, ranking score, review count and the supplier business card (company name, business registration number, address, phone, e-mail, rating). Off = fastest card-only export (name, price, MOQ, shipping fee, supplier, grade, badges).

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

Optional. Order of keyword results. Default "ranking" (Domeggook ranking). URLs keep their own sort.

## `uniqueSuppliers` (type: `boolean`):

Optional. true = keep only the first product of each supplier (a supplier lead list). Default false = one row per product.

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

Optional. Skip products whose highest unit price is below this many won.

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

Optional. Skip products whose lowest unit price is above this many won, e.g. 1000.

## `maxMoq` (type: `integer`):

Optional. Skip products whose minimum order quantity is above this number, e.g. 10 for small-batch buying.

## `onlyWithPrice` (type: `boolean`):

Optional. Skip products whose price is shown to logged-in business members only. Default false.

## `excludeSponsored` (type: `boolean`):

Optional. Skip cards with a paid-placement icon. Default false.

## `fastDeliveryOnly` (type: `boolean`):

Optional. Keep only "빠른배송" (fast delivery) suppliers. Default false.

## `withEmailOnly` (type: `boolean`):

Optional. Keep only rows whose supplier card has an e-mail address (reads the product page). Default false.

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

Optional, advanced. Parallel requests, 1-20. Default 10.

## `maxRequestRetries` (type: `integer`):

Optional, advanced. Retries per failed request (each on a new proxy session), 0-20. Default 8.

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

Optional, advanced. Default Apify Proxy (datacenter), which works for Domeggook. Switch to {"useApifyProxy": true, "apifyProxyGroups": \["RESIDENTIAL"]} only if the log shows repeated blocks.

## Actor input object example

```json
{
  "searchTerms": [
    "양말"
  ],
  "maxResultsPerSearch": 10,
  "scrapeDetails": true,
  "sortBy": "ranking",
  "uniqueSuppliers": false,
  "onlyWithPrice": false,
  "excludeSponsored": false,
  "fastDeliveryOnly": false,
  "withEmailOnly": false,
  "maxConcurrency": 10,
  "maxRequestRetries": 8,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

One row per product: wholesale price, quantity tiers, MOQ, stock, shipping and the supplier business card.

## `summary` (type: `string`):

Per-search counts, pages read, ignored inputs and stop reasons.

# 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": [
        "양말"
    ],
    "maxResultsPerSearch": 10,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rel8ble/domeggook-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": ["양말"],
    "maxResultsPerSearch": 10,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("rel8ble/domeggook-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": [
    "양말"
  ],
  "maxResultsPerSearch": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call rel8ble/domeggook-scraper --silent --output-dataset

```

## MCP server setup

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