# GobizKOREA Scraper & API - Korean Suppliers, Products & MOQ (`rel8ble/gobizkorea-scraper`) Actor

GobizKOREA scraper and API for Korean B2B suppliers and products (KOSME export portal) by keyword. One result = one product + supplier: price lines with incoterm, MOQ, payment terms, supply ability, specs, business type, year founded, revenue, address, website. $1.50 per 1,000.

- **URL**: https://apify.com/rel8ble/gobizkorea-scraper.md
- **Developed by:** [Giovanni Rich](https://apify.com/rel8ble) (community)
- **Categories:** Lead generation, E-commerce
- **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

## GobizKOREA Scraper - Korean Suppliers, Products, MOQ & Prices

**GobizKOREA scraper** for importers, K-beauty and Korean-product resellers, sourcing agents and B2B lead-gen teams: enter a product keyword such as `cosmetics`, `sunscreen`, `led` or `auto parts` and get Korean manufacturers and their export products from **GobizKOREA.com** (the export portal run by KOSME, Korea's SME agency) as clean JSON, CSV or Excel. Each row is one product with **every price line and its incoterm (FOB, CFR, EXW ...), MOQ, payment terms, supply ability, countries of sale and specs**, plus the supplier behind it: **business type, main products, year established, revenue band, employees, export revenue, address and website**. Use it as a **Korean supplier finder**, a **K-beauty wholesale sourcing tool**, or an unofficial **GobizKOREA 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 11 seconds in a local test and 57 seconds in the cloud demo (30 Oct 2026; GobizKOREA's search pages take 3-4 seconds each). The form starts at 10 products so a first try stays well under a minute.

### What you get

- **Product**: GobizKOREA product number, name, product page URL, main image plus gallery (498 px), brand, model, place of origin, item specifics (size / capacity, material, color, style ... as label -> value), description, video flag, shipping-from address.
- **Trade terms**: **every price line** with incoterm, currency (USD or KRW), `priceMin` / `priceMax` numbers and the quantity it applies to; a "negotiable" flag when the supplier quotes on request; **MOQ** as a number with its unit; **payment terms** (T/T, L/C, OT ...); **supply ability** (number and text); supply details (customization, sample order ...); **countries / regions of sale**.
- **Supplier block** (from the product page, no extra request): company name, GobizKOREA company number, mini-site URL, **own website**, **address**, **business type** (manufacturer, distributor/wholesaler ...), **main products**, **date and year established**, **annual revenue band (KRW)**, **employees**, **export revenue of the previous year (USD)**, foreign-trade staff, company introduction. Contact-person names are not collected.

### Sample output

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

| Product | Price | MOQ | Payment terms | Supplier | Established | Employees |
|---|---|---|---|---|---|---|
| Cosmetic Container-40Φ duplication Tube Cap | FOB Depend on quantity | 50 Carton | T/T | KEIZINOTEC | 2018 | 11~50 people |
| Dr.jart+ Ceramidin Oil Balm 19g Moisturizing - Best Korea cosmetic | FOB Depend on quantity | 1 ea | T/T | Beautynetkorea Co.,LTD | 2015 | 11~50 people |
| Effective for calming the skin, Whitening functional cosmetics HELIOS KEEP Nature Skin Toner 150ml | FOB Depend on quantity | 1 Set | L/C(sight), OT, T/T | HELIOS CO., LTD | 2013 | Less than 5 |
| ArraTopFace UV Perfect Collagen Mild Sun 70ml X 2EA SPF50+ PA+++ Korea Cosmetic | FOB Depend on quantity | 1 ea | L/C(sight), L/C(usance), OT, T/T | Beautynetkorea Co.,LTD | 2015 | 11~50 people |
| Cosmetic puff(NBR) | FOB Depend on quantity | 5,000 Set | T/T | SUNDOO PUFF | 1998 | 5~10 people |

Fill rates on the 20 default rows: brand, model, MOQ, payment terms, countries of sale, specs, description, images, supplier, business type, main products, year established, employees, address and website 100%; supply ability 95%; annual revenue band 15%. Most cosmetics suppliers quote "Depend on quantity"; categories such as heating film, machinery or accessories carry numeric FOB prices more often (use `onlyWithPrice`).

### Use cases

- **K-beauty and Korean product sourcing**: shortlist Korean manufacturers for a product, with size, age, export revenue and the regions they already sell to.
- **Price and MOQ benchmarking**: compare FOB prices, MOQs and supply ability before you send inquiries.
- **B2B lead generation**: one row per supplier (`uniqueSuppliers`) gives a lead list of Korean exporters with address, business type and website.
- **Market research**: track which Korean SMEs export what, and how new listings appear (`sortBy: newest`).
- **AI agents**: an agent can call this actor with a keyword and read back structured supplier data (see the MCP note below).

### Pricing

**$1.50 per 1,000 results** (pay per result), with **product pages included**: price lines, trade terms and the supplier block cost nothing extra. Filtered rows, duplicates and failed requests are never charged, and there is no start fee. Apify platform usage and proxies are included: the price above is all you pay. A 20-row run costs $0.03, the prefilled 10-row form $0.015.

| You scrape | You pay |
|---|---|
| 10 products (the prefill) | $0.015 |
| 20 products (the default) | $0.03 |
| 1,000 products | $1.50 |
| 10,000 products | $15.00 |

The Apify free plan's $5 monthly credit covers about 3,300 products. We found no other GobizKOREA scraper on the Apify Store (searched 5 November 2026).

#### Why this one

- **No other GobizKOREA scraper found on the Store**: the searches "gobizkorea", "korea suppliers", "korean suppliers", "korea b2b" and "kosme" return no other actor for this site (5 November 2026). The nearest Korean B2B actors are our own TradeKorea and buyKOREA scrapers ($1.50), getascraper's TradeKorea RFQ feed ($2.80) and happitap's Korea Kompass ($5.00 + $0.25 per run).
- **Every price line with its incoterm**, plus MOQ, payment terms, supply ability and countries of sale.
- **Supplier block on the same row**: business type, main products, year established, employees, export revenue, address and website, with no extra charge for product pages.
- **Lead-list filters**: manufacturers only, years in business, website required and one row per supplier.

### FAQ

**Why do many products say "Depend on quantity"?**
Many GobizKOREA suppliers quote on request. The actor keeps the text in `priceText`, sets `priceNegotiable: true`, and leaves the numeric fields null. Use `onlyWithPrice` to keep only products with a listed number.

**How many results does one keyword give?**
From a few dozen to thousands: "sunscreen" lists about 110 products with the default precise match, "led" about 6,900 with `searchIn: all`. The run summary shows how many GobizKOREA lists for each keyword.

**Does it collect e-mails or phone numbers?**
No. GobizKOREA routes contact through its inquiry system, and contact-person names are deliberately not collected. You get the company address, website, business type and size.

**How is this different from the TradeKorea and buyKOREA scrapers?**
GobizKOREA is KOSME's portal for small and medium Korean exporters, so its suppliers and products are largely different from KITA's TradeKorea and KOTRA's buyKOREA. Run them together for wider Korean coverage.

**Is this an official GobizKOREA API?**
No. It is an independent tool, not affiliated with GobizKOREA or KOSME. GobizKOREA's buyer tools are its website and inquiry system; this actor reads the same public product pages any visitor sees and returns them as JSON, with no login or API key.

**How much does a typical job cost?**
A 100-product shortlist for one keyword is $0.15. 10 keywords x 100 products is $1.50. A weekly price and MOQ check on 5 keywords at 100 rows is about $3.25 a month.

**For AI agents (MCP):** input is a list of keywords or GobizKOREA URLs plus optional filters; output is one JSON row per product with its supplier block; typical cost is $0.03 for 20 rows; use it when you need Korean manufacturers, K-beauty suppliers or export trade terms for a product.

### Example inputs for common jobs

Products with trade terms and supplier block (default):

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

A supplier lead list: Korean manufacturers in business 10+ years with a website, one row per supplier:

```json
{
  "searchTerms": ["sunscreen", "hair care", "auto parts"],
  "maxResultsPerSearch": 50,
  "uniqueSuppliers": true,
  "manufacturersOnly": true,
  "minYearsInBusiness": 10,
  "onlyWithWebsite": true
}
```

Priced products only, MOQ up to 100, lowest USD price up to $20:

```json
{ "searchTerms": ["led"], "searchIn": "all", "maxResultsPerSearch": 100, "onlyWithPrice": true, "maxMoq": 100, "maxPrice": 20 }
```

Broad match, newest listings first, everything GobizKOREA has:

```json
{ "searchTerms": ["mask pack"], "searchIn": "all", "sortBy": "newest", "maxResultsPerSearch": 0 }
```

A GobizKOREA search URL (its keyword, match field, sort and start page are kept) and single products:

```json
{
  "searchTerms": [
    "https://www.gobizkorea.com/user/search/search.do?sqt=led&sfield=All&ssort=03",
    "https://www.gobizkorea.com/user/goods/frontGoodsDetail.do?goods_no=GS2019090372411"
  ],
  "maxResultsPerSearch": 40
}
```

Fastest card-only export (name, brand, listed price, MOQ; no product pages):

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

### How to use

1. Open the actor and type one or more product keywords (English) or paste GobizKOREA URLs into **Products**.
2. Set **Max results per search** (default 20; 0 = everything GobizKOREA lists for that keyword).
3. Optionally choose **Match keyword in** (product name, or everything), **Sort by**, and filters (manufacturers only, years in business, website, price, MOQ, 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 | `["cosmetics"]` | Keywords, search URLs (`.../user/search/search.do?sqt=...`) or product URLs (`...frontGoodsDetail.do?goods_no=GS...`). |
| `maxResultsPerSearch` | integer | 20 | Rows per keyword / URL. 0 = everything (20 per page). |
| `searchIn` | string | `product` | `product` = product name and keywords (precise); `all` = also descriptions and company text (broad: "cosmetics" gives about 950 vs 22,800 products). |
| `sortBy` | string | `responseRate` | `responseRate`, `bestTransaction`, `newest` or `supplierAZ`. |
| `scrapeDetails` | boolean | true | Read product pages (price lines, trade terms, specs, supplier block). |
| `uniqueSuppliers` | boolean | false | Keep only the first product per supplier. |
| `manufacturersOnly` | boolean | false | Only suppliers whose business type is manufacturer. |
| `minYearsInBusiness` | integer | 0 | Only companies established at least this many years ago. |
| `onlyWithWebsite` | boolean | false | Only suppliers that publish their own website. |
| `onlyWithPrice` | boolean | false | Skip "Depend on quantity" products with no number. |
| `maxPrice` | number | - | Skip products whose lowest USD unit price is above this. |
| `maxMoq` | integer | - | Skip products whose MOQ is above this. |
| `maxConcurrency` | integer | 8 | Parallel requests. |
| `maxRequestRetries` | integer | 6 | 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 GobizKOREA keywords or URLs (other sites, supplier mini-sites, category pages) are skipped and listed in the `RUN_SUMMARY` record; they are never charged. A product that GobizKOREA has removed (HTTP 410) is reported in the log and not charged.

### Output example

One real row from the default run (`cosmetics`; description, company introduction and image list shortened):

```json
{
  "searchTerm": "cosmetics",
  "position": 19,
  "productId": "GS2019080671086",
  "productName": "Cosmetic puff(NBR)",
  "productUrl": "https://www.gobizkorea.com/user/goods/frontGoodsDetail.do?goods_no=GS2019080671086",
  "image": "https://www.gobizkorea.com/image/goodsImage.do?goods_no=GS2019080671086&image_se_code=MAIN_THUMB498",
  "brand": "SUNPURE",
  "modelNumber": "Cosmetic puff",
  "origin": "Republic of Korea",
  "specs": {
    "Size(Capacity)": "Can be customized",
    "age-appropriate": "All ages",
    "Features": "Various shapes including heart, House, wedge and drip",
    "Material": "latex, polyurethane (latexfree)"
  },
  "moq": 5000,
  "moqUnit": "Set",
  "moqText": "5,000 Set",
  "priceText": "FOB Depend on quantity",
  "currency": null,
  "priceMin": null,
  "priceMax": null,
  "incoterm": "FOB",
  "priceNegotiable": true,
  "priceTiers": [
    {
      "incoterm": "FOB",
      "priceText": "Depend on quantity",
      "currency": "USD",
      "priceMin": null,
      "priceMax": null,
      "quantity": null,
      "unit": null
    }
  ],
  "paymentTerms": "T/T",
  "supplyAbility": "8,000,000 Set per One-Time",
  "supplyAbilityQty": 8000,
  "supplyDetails": "Customization Sample Order Quantity depend on specific model, can be customized according to buyer's demand",
  "countriesOfSale": [
    "Asia",
    "Americas",
    "Europe",
    "Middle East",
    "World Wide"
  ],
  "description": "[Product Description] · Products are designed to facilitate el ...",
  "images": [
    "https://www.gobizkorea.com/image/goodsImage.do?goods_no=GS2019080671086&image_se_code=MAIN_THUMB498"
  ],
  "hasVideo": false,
  "shippingFrom": "49 Yongdu-ro Daegot-myeon, Gimpo-si, Gyeonggi-do (10038)",
  "supplierName": "SUNDOO PUFF",
  "supplierId": "CP2018022200189",
  "supplierStoreUrl": "https://sundoo21.gobizkorea.com/",
  "website": "http://www.sundoopuff.com",
  "address": "49 Yongdu-ro Daegot-myeon, Gimpo-si, Gyeonggi-do (10038)",
  "businessType": "Manufacturer",
  "mainProducts": "Cosmetic Puff, Fashion Mask",
  "established": "1998-03-05",
  "yearEstablished": 1998,
  "annualRevenueKrw": "1~3 million (KRW)",
  "employees": "5~10 people",
  "exportRevenueUsdPrevYear": 29,
  "foreignTradeEmployees": "5~10 people",
  "companyIntroduction": "Founded in 1998, SUNDOO PUFF has secured quality and cost competitiveness through 26 years o ...",
  "detailScraped": true,
  "sourceUrl": "https://www.gobizkorea.com/user/search/search.do?sqt=cosmetics&sfield=Product&ssort=01",
  "scrapedAt": "2026-10-30T18:07:35.496Z"
}
```

This supplier quotes on request, so the price numbers are null. On a product page with a listed price (a saved page in the parser tests, "BXXXY YOU MAKE ME CALM"), `priceText` is `FOB USD 10.00 ~ 50.00 (1 ea)`, `currency` is `USD`, `priceMin` and `priceMax` are 10 and 50, and `priceNegotiable` is false.

The dataset has three table views in the Apify console: **Overview** (product, price, MOQ, terms, supplier), **Supplier leads** (supplier block) and **Pricing & MOQ** (numbers for comparison). A `RUN_SUMMARY` record lists per-search counts, products listed on GobizKOREA, 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 price changes, or on `supplierId` to build a supplier CRM.

This actor is not affiliated with GobizKOREA or KOSME. It reads public pages; GobizKOREA's robots.txt (read 5 Nov 2026) is `User-agent: *` / `Allow: /`.

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. English product keywords, e.g. "cosmetics", "sunscreen", "led", "auto parts", or gobizkorea.com URLs: a search (https://www.gobizkorea.com/user/search/search.do?sqt=cosmetics) or one product (https://www.gobizkorea.com/user/goods/frontGoodsDetail.do?goods_no=GS...). Default \["cosmetics"] (demo).

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

Optional. Products saved per keyword / URL, integer >= 0. Default 20 (the form starts at 10, so a first try stays well under a minute); 0 = everything GobizKOREA lists (20 per page). You pay per row.

## `searchIn` (type: `string`):

Optional. "product" (default) matches the product name and keywords only, giving tight results; "all" also matches descriptions and company text, giving many more (e.g. "cosmetics": about 950 vs 22,800 products).

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

Optional. GobizKOREA result order. Default "responseRate" (suppliers that answer inquiries first).

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

Default true. Reads each product page and adds every price line with incoterm, payment terms, supply ability, countries of sale, model, origin, specs, description, images and the supplier block (business type, main products, year established, revenue band, employees, export revenue, address, website). Off = fastest card-only export (name, brand, listed price, MOQ).

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

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

## `manufacturersOnly` (type: `boolean`):

Optional. Keep only suppliers whose business type is manufacturer. Default false.

## `minYearsInBusiness` (type: `integer`):

Optional. Keep only companies established at least this many years ago. Default 0.

## `onlyWithWebsite` (type: `boolean`):

Optional. Keep only suppliers that publish their own website. Default false.

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

Optional. Skip products quoted as "Depend on quantity" with no number. Default false.

## `maxPrice` (type: `number`):

Optional. Skip products whose lowest USD unit price is above this. Products priced in KRW or without a price are kept unless "Only products with a price" is on.

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

Optional. Skip products whose minimum order quantity is above this number, e.g. 100 for small-batch buying. Products without a listed MOQ are kept.

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

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

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

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

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

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

## Actor input object example

```json
{
  "searchTerms": [
    "cosmetics"
  ],
  "maxResultsPerSearch": 10,
  "searchIn": "product",
  "sortBy": "responseRate",
  "scrapeDetails": true,
  "uniqueSuppliers": false,
  "manufacturersOnly": false,
  "minYearsInBusiness": 0,
  "onlyWithWebsite": false,
  "onlyWithPrice": false,
  "maxConcurrency": 8,
  "maxRequestRetries": 6,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

One row per product: price, MOQ, payment terms, supply ability, specs and the Korean supplier behind it.

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

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

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

```

## MCP server setup

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