# TradeKorea Scraper: Korean Suppliers, Products & Buying Leads (`getascraper/tradekorea-supplier-rfq-feed`) Actor

Scrape TradeKorea buying leads (RFQs), Korean supplier profiles and products. Filter by keyword, category and buyer country, see the days left on every lead, and monitor new, updated and expired RFQs on a schedule. Public pages only: no login, no buyer emails or phone numbers.

- **URL**: https://apify.com/getascraper/tradekorea-supplier-rfq-feed.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Lead generation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 result records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## TradeKorea Scraper: Korean Suppliers, Products & Buying Leads

<table width="100%" style="margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#F2F6FD;border:1px solid #C9D8F2;border-top:4px solid #1D4E9E;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Turn TradeKorea into a live feed of buyer requests and Korean suppliers.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Collect buying leads (RFQs) posted by overseas buyers, Korean supplier profiles and products. Filter by keyword, category and buyer country, see how many days are left on every lead, and get only the new, updated and expired leads on a schedule.</span>
</td>
</tr>
</table>
<table width="100%" style="margin-top:0;margin-bottom:0">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9D8F2;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#143A78">📨 Buying leads</span><br>
<span style="font-size:12px;color:#57534E">Buyer, country, quantity, full request text, posted and expiry dates for every RFQ.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9D8F2;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#143A78">🏭 Korean suppliers</span><br>
<span style="font-size:12px;color:#57534E">Company profile, address, employees, certificates, export markets and main products.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9D8F2;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#143A78">⏳ Days left</span><br>
<span style="font-size:12px;color:#57534E">Expiry countdown, lead age and freshness, so you answer the right leads first.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C9D8F2;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#143A78">🔔 New-lead monitor</span><br>
<span style="font-size:12px;color:#57534E">New, updated and expired leads between scheduled runs, nothing repeated.</span>
</td>
</tr>
</table>

Public TradeKorea pages only. Missing values are left out, never filled with guesses, and every row links back to its TradeKorea page.

### 👥 Who uses it

- **I am a Korean exporter or manufacturer** and want every new buyer request in my product category the day it appears.
- **I run a sourcing or lead-generation agency** and need a daily feed per client keyword and target country.
- **I am an importer or sourcing agent** building a shortlist of Korean suppliers with their certificates, size and export markets.

### 🚀 How it works

<table width="100%" style="margin-top:0;margin-bottom:0">
<tr>
<td style="padding:16px 14px;width:33%;background:#F2F6FD;border:1px solid #C9D8F2;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1D4E9E;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Pick what to collect</span><br>
<span style="font-size:12px;color:#57534E">Choose buying leads, suppliers or products, then add keywords, a category, buyer countries or links you already have.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F2F6FD;border:1px solid #C9D8F2;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1D4E9E;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run it</span><br>
<span style="font-size:12px;color:#57534E">Results arrive in seconds with clean dates, ISO country codes and a days-until-expiry figure.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#F2F6FD;border:1px solid #C9D8F2;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#1D4E9E;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Export or schedule</span><br>
<span style="font-size:12px;color:#57534E">Download as Excel, CSV or JSON, or add a monitor name and schedule it to receive only what changed.</span>
</td>
</tr>
</table>

### 💡 Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `mode` | choice | No | Buying leads (default), Korean suppliers or products. |
| `urls` | list | No | TradeKorea lead, supplier or product links, or plain IDs. Links are read first and need no search. |
| `keywords` | list of text | No | One search per keyword. Leave empty to read the newest records. |
| `category`, `countries` | text, list | No | A TradeKorea category by name or path, and buyer countries (suppliers and products: supplier countries) by name or two-letter code. |
| `postedWithinDays`, `onlyOpen`, `expiringWithinDays`, `minQuantity`, `sortBy` | filters | No | Buying lead filters. Open leads only is on by default, and newest first is the default order. |
| `maxItems` | number | No | Records to return (default 10). With a monitor name it is how many of the newest matching records are checked on each run. Free-plan runs are capped at 25. |
| `includeDetails` | checkbox | No | Suppliers and products: add the full profile or product page. Buying leads always include their full text. |
| `monitorName`, `onlyChanges` | text, checkbox | No | Name the search to track new, updated and expired leads between runs and return only the changes. |
| `proxyConfiguration` | proxy | No | Leave empty for the built-in connection. |

### 📊 Data table

| Field | Type | Description |
| --- | --- | --- |
| `leadId`, `title`, `url`, `keywords`, `titleLanguage` | text, number | Buying lead identity, link and the language of its title. |
| `buyerCompany`, `buyerCountry`, `buyerCountryCode` | text | The buyer company name shown on the lead and its country (ISO code). Buyer emails, phones and inquiry forms are never read. |
| `category`, `topCategory`, `categoryPaths` | text, list | Category of the lead. |
| `quantity`, `quantityUnit`, `quantityText` | number, text | Requested quantity when the buyer states one. |
| `postedAt`, `updatedAt`, `expiresAt`, `daysUntilExpiry`, `isOpen`, `leadAgeDays`, `freshness` | date, number | Posting and expiry dates, days left and how fresh the lead is. |
| `description`, `attachmentNames`, `hasAttachments` | text, list | The buyer's request text and the names of attached files. Personal contact details written into the text are removed. |
| `name`, `supplierId`, `country`, `address`, `representative`, `employees`, `yearEstablished` | text, number | Supplier profile. |
| `verifiedCertificateCount`, `productCategories`, `exportMarkets`, `mainProducts`, `description` | mixed | Supplier depth (with `includeDetails`). |
| `productId`, `title`, `hsCode`, `price`, `priceCurrency`, `priceUnit`, `moq`, `originCountry`, `paymentTerms`, `transportation`, `supplierName` | mixed | Product data. Price, minimum order and terms come with `includeDetails`. |
| `changeType`, `changedFields`, `firstSeenAt`, `lastSeenAt` | text, list, date | Monitor fields: NEW, UPDATED, EXPIRED or UNCHANGED. |

Missing values are omitted. Each run also saves a `RUN_SUMMARY` file with coverage and notes.

Example row (trimmed):

```json
{
    "recordType": "buyingLead",
    "title": "G.1.6 gas meter diaphragms",
    "buyerCountry": "Pakistan",
    "category": "Gas Meters",
    "quantity": 500000,
    "quantityUnit": "Pieces",
    "postedAt": "2026-10-13T08:10:55+09:00",
    "expiresAt": "2026-10-31",
    "daysUntilExpiry": 12,
    "isOpen": true
}
```

### 💰 Pricing

You pay per record returned. There is no start fee and no subscription, and empty runs cost nothing. In monitor mode you pay only for the records you receive, so unchanged leads cost nothing. Paid Apify plans get lower rates. Check the Pricing panel for the current rates. Free-plan accounts can return up to 25 records per run, 3 runs per day, with 30 minutes between runs.

### ⭐ Enjoying TradeKorea Scraper: Korean Suppliers, Products & Buying Leads?

<table width="100%" style="display:table;width:100%;margin-top:0;margin-bottom:0">
<tr>
<td style="padding:20px 24px 14px;background:#F2F6FD;border:1px solid #C9D8F2;border-left:5px solid #1D4E9E;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">Help other exporters and sourcing teams find reliable TradeKorea data.</span><br>
<span style="font-size:14px;color:#57534E">A short review helps teams choose a scraper that fits their workflow.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#1D4E9E;border:1px solid #C9D8F2;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/tradekorea-supplier-rfq-feed/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

##### Does it need a TradeKorea account or login?

No. It reads public pages only. Buyer emails, phone numbers and inquiry forms are not touched, and personal contact details that a buyer typed into a request text are removed.

##### How do I get only new buying leads every day?

Give the run a `monitorName`, set the keywords, category or countries you care about and schedule it daily. Each run marks leads as new, updated or expired, and `onlyChanges` returns only those.

##### How do I know which leads are still open?

Every lead carries `expiresAt`, `daysUntilExpiry` and `isOpen`. Open leads only is on by default, and `expiringWithinDays` keeps the ones closing soon.

##### What happens when TradeKorea does not publish a field?

It is left out of the row. Nothing is guessed or filled in.

### 🔗 Other actors

- [Made-in-China Scraper 中国制造网: Products, Suppliers, Price Changes](https://apify.com/getascraper/made-in-china-catalog-scraper) ↗ - Find Chinese suppliers, products and price changes.
- [Toocle Scraper 生意宝: China B2B Products, Suppliers & Prices](https://apify.com/getascraper/toocle-b2b-sourcing-scraper) ↗ - Collect B2B products and suppliers from Toocle.
- [17ZWD Wholesale Fashion Scraper 一起做网店: New Styles & Stall Data](https://apify.com/getascraper/17zwd-wholesale-fashion-catalog-scraper) ↗ - Find wholesale fashion products and stall details.
- [DIBBS RFQ Scraper: DLA Solicitations by NSN, FSC and CAGE Code](https://apify.com/getascraper/dibbs-rfq-scraper) ↗ - Track US defense RFQ solicitations.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/tradekorea-supplier-rfq-feed/changelog.md

# Actor input Schema

## `mode` (type: `string`):

Buying leads (RFQs posted by overseas buyers), Korean supplier profiles, or products.

## `urls` (type: `array`):

Buying lead, supplier or product links from tradekorea.com, or plain numbers (read as the type chosen above). Links are read first and need no search.

## `keywords` (type: `array`):

One search per keyword, for example cosmetics or steel pipe. Leave empty to read the newest records.

## `category` (type: `string`):

A TradeKorea category by name or path, for example Beauty & Personal Care or Food & Beverage > Foods > Snacks.

## `countries` (type: `array`):

Country names or two-letter codes. For buying leads this is the buyer country, for suppliers and products the supplier country.

## `postedWithinDays` (type: `integer`):

Buying leads only. Keep leads posted in the last N days.

## `onlyOpen` (type: `boolean`):

Buying leads only. Skip leads whose offer period has ended.

## `expiringWithinDays` (type: `integer`):

Buying leads only. Keep open leads that close within N days.

## `minQuantity` (type: `integer`):

Buying leads only. Keep leads asking for at least this quantity. Leads without a stated quantity are skipped.

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

With keywords, newest first checks up to 1,000 matches and returns the most recent ones. Relevance keeps the site order.

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

Records to return. With a monitor name it is the number of newest matching records checked on each run. Free-plan runs are capped at 25.

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

Suppliers and products only. Adds address, employees, certificates and main products for suppliers, and price, minimum order, payment terms and description for products. Slower. Buying leads always include their full text.

## `monitorName` (type: `string`):

Give this search a name to remember it between runs. Each record is then marked new, updated or expired (buying leads). Reuse the same name on a schedule.

## `onlyChanges` (type: `boolean`):

With a monitor name, return only records that are new, updated or expired since the previous run, and pay only for those.

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

Leave empty for the built-in connection, which switches to a proxy by itself if TradeKorea refuses requests.

## Actor input object example

```json
{
  "mode": "buyingLeads",
  "urls": [],
  "keywords": [],
  "countries": [],
  "onlyOpen": true,
  "sortBy": "newest",
  "maxItems": 10,
  "includeDetails": false,
  "onlyChanges": true
}
```

# Actor output Schema

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

No description

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

No description

# 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 = {
    "mode": "buyingLeads",
    "urls": [],
    "keywords": [],
    "countries": [],
    "onlyOpen": true,
    "sortBy": "newest",
    "maxItems": 10,
    "includeDetails": false,
    "onlyChanges": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/tradekorea-supplier-rfq-feed").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 = {
    "mode": "buyingLeads",
    "urls": [],
    "keywords": [],
    "countries": [],
    "onlyOpen": True,
    "sortBy": "newest",
    "maxItems": 10,
    "includeDetails": False,
    "onlyChanges": True,
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/tradekorea-supplier-rfq-feed").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 '{
  "mode": "buyingLeads",
  "urls": [],
  "keywords": [],
  "countries": [],
  "onlyOpen": true,
  "sortBy": "newest",
  "maxItems": 10,
  "includeDetails": false,
  "onlyChanges": true
}' |
apify call getascraper/tradekorea-supplier-rfq-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/tradekorea-supplier-rfq-feed"
        }
    }
}
```

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/kOPB8nFIXCQA3948V/builds/FmNhn8T0TyrONz4h0/openapi.json
