# HKTDC Sourcing Scraper & API - Hong Kong & China Suppliers (`rel8ble/hktdc-sourcing-scraper`) Actor

HKTDC Sourcing scraper and API: Hong Kong, China and Asian B2B suppliers and products by keyword. Price, MOQ, lead time, specs, certificates, verification level, business type, year, employees, turnover, markets, address. Profiles included. No start fee. $1.50 per 1,000, lowest on 6 Nov 2026.

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

## HKTDC Sourcing Scraper & API - Hong Kong & China B2B Suppliers, MOQ & Prices

**HKTDC Sourcing scraper** for importers, sourcing agents, Amazon / Shopify sellers and B2B sales teams. Enter a product keyword such as `led light` or `bluetooth speaker` and get products from **HKTDC Sourcing** (sourcing.hktdc.com, the Hong Kong Trade Development Council's B2B marketplace) as clean JSON, CSV or Excel. Each row is one product with **price range, MOQ, lead time, specs and certificates**, plus the verified supplier behind it: **verification level (gold / silver / bronze), HKTDC exhibitor flag, business type, year established, employees, annual turnover, major markets, factories, address, website, e-mail and phone**. Use it as a **Hong Kong supplier database**, a **Global Sources / Alibaba alternative** for verified suppliers, or an unofficial **HKTDC API** from your own code, Make, Zapier or n8n.

It reads the public pages over plain HTTP, with **no browser and no login**. **$1.50 per 1,000 results** with product pages and supplier profiles included, half the next-cheapest HKTDC scraper we found (6 Nov 2026); the default 20-row run costs $0.03.

### What you get

- **Product**: name, product URL, images, model number, brand, description, attributes, tags, product certifications, category and subcategory, last update.
- **Trade terms**: price range (`priceMin` / `priceMax`) with currency and unit, **MOQ** as a number with its unit, **lead time** (text and days), shipping terms, online-purchase flag.
- **Supplier**: name, profile URL, country / region and province, **verification level**, **HKTDC trade-fair exhibitor**, business types (Manufacturer, Exporter, Trading Company...), year established and years in business, employees, annual turnover, major markets, main categories, brand names, OEM / ODM capabilities, certificates (ISO, CE, UL...), factories with size and staff, trade fairs, member since.
- **Contacts the company publishes**: address, city, province, website, e-mail and phone (taken from the public company profile when listed there). No personal names are collected.

### Sample output

Real rows from the 29 Oct 2026 cloud run for "led light":

| productName | moqText | supplierName | supplierCountry | yearEstablished | verifiedLevel |
|---|---|---|---|---|---|
| LED Module Light | - | Blueview Elec-optic Tech Co., Ltd | Chinese Mainland | 2004 | gold |
| Led Track light | 500PCS | Hongkong Shining Lighting Co., Limited | Hong Kong | 2008 | gold |
| IP65 LED Surface Step Light | 1,000 | Hongkong Shining Lighting Co., Limited | Hong Kong | 2008 | gold |
| Led Spot light | 500PCS | Hongkong Shining Lighting Co., Limited | Hong Kong | 2008 | gold |

In that 50-row cloud run on 29 Oct 2026 (512 MB, 105 s, 0 failed requests): business type, address and verification level 100%, year established, employees and turnover 98%, price 56%, lead time 56%, MOQ 48% (HKTDC suppliers often quote on request), website 12%.

### Use cases

- **Supplier shortlists**: find verified Hong Kong, mainland China, Taiwan and Southeast Asian manufacturers for a product, with size, age and certificates side by side.
- **B2B lead lists**: turn on **One row per supplier** and filter by country, manufacturers only and minimum years in business.
- **Price and MOQ comparison**: compare quoted prices, MOQs and lead times before you send RFQs.
- **Trade-fair prospecting**: keep only **HKTDC exhibitors** to plan meetings at the Hong Kong Electronics, Gifts or Lighting fairs.
- **Compare marketplaces**: run the same keyword on our Alibaba, DHgate, Global Sources and Yiwugo scrapers (same account).
- **AI sourcing agents**: let an agent pull a supplier shortlist through the Apify MCP server.

### Pricing

**$1.50 per 1,000 results** (pay per result), with **product pages and supplier profiles included**. Filtered rows, duplicates and failed requests are never charged, and there is no start fee.

| You scrape | You pay |
|---|---|
| 20 products (default run) | $0.03 |
| 100 products | $0.15 |
| 1,000 products | $1.50 |
| 10,000 products | $15.00 |

The Apify free plan's $5 monthly credit covers about 3,300 results; platform usage is included in the price.

Every other HKTDC actor we found on the Store (free-plan prices, 6 Nov 2026):

| Actor | Users (30 days) | Price per 1,000 | Extras |
|---|---|---|---|
| encouraged_invitation HKTDC Supplier Scraper | 2 | $3.00 | + $0.10 start fee per run |
| agenscrape HKTDC Hong Kong Sourcing | 1 | $3.00 | + $0.00005 start fee |
| rastriq HKTDC Sourcing Scraper | 1 | $4.00 | - |
| scrapers_lat HKTDC Suppliers | 0 | $20.00 | + contact and AI events |
| **This actor** | | **$1.50, product pages and supplier profiles included** | **no start fee** |

### FAQ

**Why do some products have no price or MOQ?**
Many HKTDC suppliers quote on request. Those fields are then `null`; use **Only products with a price** to skip them.

**Why are some supplier contacts empty?**
HKTDC hides direct contacts behind its inquiry form. The actor only fills website, e-mail and phone when the company lists them in its public profile text.

**Is it legal to scrape HKTDC Sourcing?**
It collects only public product and company data shown to every visitor, from pages HKTDC's robots.txt does not disallow, with no login. You are responsible for using the data in line with HKTDC's terms and laws such as GDPR / PIPL. This is not legal advice.

**Is there an official HKTDC Sourcing API?**
We found no public self-serve API for HKTDC Sourcing product and supplier search; buyers use the website and its inquiry form. This actor reads the same public pages any visitor sees and is not affiliated with HKTDC.

**What does a typical run cost?**
A 200-supplier lead list (`uniqueSuppliers: true`, `maxResultsPerSearch: 200`) costs $0.30. A weekly check of 5 keywords x 100 products is about $3.25 a month. Set a maximum cost per run in Apify to cap any run.

**Which proxy should I use?**
Keep the default. HKTDC's CDN rate-limits datacenter IPs in bursts (HTTP 403); the actor then retries on Apify residential proxy, and after repeated blocks switches the rest of the run to it.

### Example inputs for common jobs

Copy one into the JSON tab of the input form.

**Lead list: established manufacturers in Hong Kong and mainland China**

```json
{
    "searchTerms": ["bluetooth speaker", "power bank"],
    "maxResultsPerSearch": 200,
    "uniqueSuppliers": true,
    "supplierCountries": ["Hong Kong", "China"],
    "manufacturersOnly": true,
    "minYearsInBusiness": 10
}
```

**Verified suppliers with a listed price and a small MOQ**

```json
{
    "searchTerms": ["led light"],
    "maxResultsPerSearch": 100,
    "verifiedOnly": true,
    "onlyWithPrice": true,
    "maxMoq": 500
}
```

**Fast listing-only export (no product or supplier pages)**

```json
{
    "searchTerms": ["toys"],
    "maxResultsPerSearch": 500,
    "scrapeProductDetails": false,
    "scrapeSupplierProfiles": false
}
```

**A search URL, a category or one product**

```json
{
    "searchTerms": [
        "https://sourcing.hktdc.com/en/Product-Search/led%20light/1",
        "https://sourcing.hktdc.com/en/Product-Detail/LED-Module-Light-1X0O4XTG"
    ]
}
```

### How to use

1. Enter one or more English product keywords in **Products**, or paste HKTDC Sourcing search, category or product URLs.
2. Set **Max results per search** (start with 20) and any filters.
3. Click **Start**, then download the results as JSON, CSV or Excel from the **Output** tab, or fetch them through the Apify API.

A keyword with no products is reported in the log and costs nothing.

### Input

| Field | Default | Description |
|---|---|---|
| `searchTerms` | `led light` | Keywords or HKTDC Sourcing search / category / product URLs, one per line |
| `maxResultsPerSearch` | 20 | Products per keyword. 0 = everything |
| `scrapeProductDetails` | true | Read each product page: MOQ, lead time, specs, description, certificates |
| `scrapeSupplierProfiles` | true | Read each supplier profile once: year, employees, turnover, address, markets, factories, contacts |
| `uniqueSuppliers` | false | One row per supplier instead of one per product |
| `supplierCountries` | - | Keep only suppliers from these countries / regions |
| `verifiedOnly` | false | Only suppliers with an HKTDC verification level |
| `exhibitorsOnly` | false | Only HKTDC trade-fair exhibitors |
| `manufacturersOnly` | false | Only suppliers whose business type includes Manufacturer |
| `minYearsInBusiness` | 0 | Only companies at least this many years old |
| `onlyWithPrice` | false | Skip products without a listed price |
| `maxPrice` | - | Skip products whose lowest price is above this |
| `maxMoq` | - | Skip products with an MOQ above this number |
| `residentialFallback` | true | Retry blocked requests on Apify residential proxy |
| `proxyConfiguration` | Apify Proxy | Datacenter proxy with automatic residential fallback |

### Output example

One dataset item per product (shortened):

```json
{
    "searchTerm": "led light",
    "productId": "1X0O4XTG",
    "productName": "LED Module Light",
    "productUrl": "https://sourcing.hktdc.com/en/Product-Detail/LED-Module-Light-1X0O4XTG",
    "model": "BV-RndW3*1",
    "category": "Home Products, Lights & Constructions",
    "subcategory": "Lights",
    "supplierName": "Blueview Elec-optic Tech Co., Ltd",
    "supplierId": "1X0872GE",
    "supplierCountry": "Chinese Mainland",
    "verifiedLevel": "gold",
    "isHktdcExhibitor": true,
    "businessTypes": ["Exporter", "Manufacturer", "Wholesaler"],
    "yearEstablished": 2004,
    "yearsInBusiness": 22,
    "employees": "1001 - 2000",
    "annualTurnover": "US$ 5,000,000 - 9,999,999",
    "majorMarkets": ["North America", "Western Europe", "Worldwide"],
    "capabilities": ["ODM", "OEM"],
    "certificates": ["UL", "ISO 9001:2015", "CE"],
    "factories": [{ "countryRegion": "Chinese Mainland", "productionLines": "20+", "staff": "1001 - 2000", "size": "40,000M^2" }],
    "city": "Chengdu",
    "province": "Sichuan",
    "website": "https://www.blueviewled.com",
    "productScraped": true,
    "supplierScraped": true
}
```

A per-search summary (pages read, supplier profiles read, rows filtered out, stop reason) is saved as `RUN_SUMMARY` in the key-value store.

### 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 `supplierId` to build a supplier CRM.

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. Product keywords, e.g. "led light", "bluetooth speaker", "toys", or sourcing.hktdc.com URLs: a product search (https://sourcing.hktdc.com/en/Product-Search/led%20light/1), a category (https://sourcing.hktdc.com/en/Product-Catalog/Electronics-bc655e0ae39e11ea883f06c82c63b760/1) or one product (https://sourcing.hktdc.com/en/Product-Detail/Led-downlight-IP65-1Z03PU1X8). Default \["led light"] (demo).

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

Optional. Products saved per keyword / URL, integer >= 0. Default 20; 0 = every product HKTDC returns (24 per page). You pay per row.

## `scrapeProductDetails` (type: `boolean`):

Default true. Reads each product page and adds all specifications, MOQ, price tiers, lead time, shipping, model, brand, description, all images and categories.

## `scrapeSupplierProfiles` (type: `boolean`):

Default true. Reads each supplier profile once (cached across rows) and adds business type, year established, employees, annual turnover, major markets, address, OEM/ODM, certificates, factories, HKTDC trade fairs and website / e-mail when the supplier lists them. Turn both detail options off for the fastest card-only export.

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

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

## `supplierCountries` (type: `array`):

Optional. Keep only suppliers from these, e.g. \["Hong Kong", "Chinese Mainland", "Taiwan", "Vietnam"] ("China" also works). Omit for all.

## `verifiedOnly` (type: `boolean`):

Optional. Keep only suppliers with an HKTDC verification level (gold / silver / bronze). Default false.

## `exhibitorsOnly` (type: `boolean`):

Optional. Keep only suppliers that exhibit at HKTDC fairs. Default false.

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

Optional. Keep only suppliers whose business type includes Manufacturer (reads supplier profiles). Default false.

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

Optional. Keep only companies established at least this many years ago (reads supplier profiles; companies without a year are skipped when set). Default 0.

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

Optional. Skip products without a listed price. Default false.

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

Optional. Skip products whose lowest price is above this (in the listed currency, usually USD). Omit for no limit.

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

Optional. Skip products whose MOQ is above this number (products without an MOQ are kept). Omit for no limit.

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

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

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

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

## `residentialFallback` (type: `boolean`):

Optional, advanced. Default true. HKTDC rate-limits datacenter IPs in bursts (HTTP 403); retries then go through Apify residential proxy, and after repeated blocks the run switches to it. Applies only with the default Apify datacenter proxy.

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

Optional, advanced. Default Apify Proxy (datacenter), which works for HKTDC Sourcing. Switch to {"useApifyProxy": true, "apifyProxyGroups": \["RESIDENTIAL"]} to use residential for every request.

## Actor input object example

```json
{
  "searchTerms": [
    "led light"
  ],
  "maxResultsPerSearch": 20,
  "scrapeProductDetails": true,
  "scrapeSupplierProfiles": true,
  "uniqueSuppliers": false,
  "verifiedOnly": false,
  "exhibitorsOnly": false,
  "manufacturersOnly": false,
  "minYearsInBusiness": 0,
  "onlyWithPrice": false,
  "maxConcurrency": 4,
  "maxRequestRetries": 10,
  "residentialFallback": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

One row per product: price, MOQ, lead time, specs and the supplier with verification level, business type, year established, employees, turnover, markets, certificates and trade fairs.

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

Per-search counts, pages read, supplier profiles read 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": [
        "led light"
    ],
    "maxResultsPerSearch": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

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

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

```

## MCP server setup

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