# China Supplier Scraper (`muhammad_noman_riaz/china-supplier-scraper`) Actor

Search Made-in-China, Yiwugo and Global Sources by keyword or URL. Get product prices, MOQ, images, specs and supplier name, location, business type, years and badges. No login. Pay only for results.

- **URL**: https://apify.com/muhammad_noman_riaz/china-supplier-scraper.md
- **Developed by:** [Muhammad Noman Riaz](https://apify.com/muhammad_noman_riaz) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $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.
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

## China Supplier Scraper

### What does China Supplier Scraper do?

China Supplier Scraper searches three of the largest Chinese wholesale and B2B marketplaces, Made-in-China.com, Yiwugo and Global Sources, and returns one clean row per product. Type a keyword such as "led strip" and pick the sites you want, or paste product and supplier URLs. For every product you get the title, link, price or price range, currency, minimum order quantity (MOQ) with its unit, images and any specifications shown on the listing. Each row also carries the supplier's name, page, location, business type, years on the platform and badges such as Audited Supplier, Diamond Member or Verified Manufacturer. A `source` field tells you which site the product came from, so you can compare offers side by side. It is built for sourcing agents, dropshippers, importers and buyers who want a shortlist of suppliers without copying pages by hand. No login, account or cookies are needed.

### Why use it

- **Three sites in one run.** Compare Made-in-China factories, Yiwu market stalls and Global Sources exporters on the same keyword.
- **One output shape.** Every site returns the same fields, with `null` where a site does not show a value.
- **Light and cheap to run.** It reads Made-in-China and Yiwugo search pages as plain HTML and Global Sources results from the JSON feed its own search page uses. No browser is started.
- **Pay only for results.** Products that could not be read completely are skipped and not charged.

### Input

| Field | Type | Description |
|---|---|---|
| `searchTerms` | array of strings | Keywords in English. Each term is searched on every selected site. |
| `sites` | array | Any of `made-in-china`, `yiwugo`, `globalsources`. Default: all three. |
| `startUrls` | array | Product pages from any of the three sites, Made-in-China showrooms (`https://<name>.en.made-in-china.com`) and Yiwugo shops (`https://en.yiwugo.com/hu/<shop>.html`). |
| `maxItems` | integer | Max products per search term and site, and per supplier URL. Default 50. |
| `maxConcurrency` | integer | Pages fetched at the same time. Default 3. |
| `maxRequestRetries` | integer | Attempts per page, each on a new proxy IP. Default 5. |
| `proxy` | object | Apify Proxy settings. Datacenter is the default. |

Example input:

```json
{
  "searchTerms": ["led strip", "phone case"],
  "sites": ["made-in-china", "yiwugo", "globalsources"],
  "startUrls": [
    { "url": "https://www.globalsources.com/LED-strip/LED-Light-Strips-1183882254p.htm" },
    { "url": "https://en.yiwugo.com/hu/0562370.html" }
  ],
  "maxItems": 100,
  "proxy": { "useApifyProxy": true }
}
```

### Output

One item per product. Example from a Global Sources search for "led strip":

```json
{
  "source": "globalsources",
  "productId": "1183882254",
  "url": "https://www.globalsources.com/LED-strip/LED-Light-Strips-1183882254p.htm",
  "title": "65.6ft Led Strip Lights, Ultra Long RGB 5050 Color Changing LED Light Strips Kit with 44 Keys Remote",
  "priceText": "US $ 1.35 - 1.65",
  "priceMin": 1.35,
  "priceMax": 1.65,
  "currency": "USD",
  "minOrder": 5,
  "minOrderUnit": "Meters",
  "images": ["https://p.globalsources.com/IMAGES/PDT/S1183882254/LED-Light-Strips.jpg?ver=6045626254"],
  "specifications": {
    "Model Number": "JMK-SMD5050-15M",
    "Category": "Electronic Components > LEDs & Optoelectronics > LEDs > LED strips"
  },
  "supplier": {
    "name": "Shenzhen JMK Technology Co., Ltd.",
    "url": null,
    "location": "China",
    "address": null,
    "businessType": "Online Seller, Exporter, Importer, Manufacturer",
    "yearsActive": 4,
    "badges": ["Verified Manufacturer"]
  },
  "searchTerm": "led strip",
  "scrapedAt": "2026-10-17T14:20:11.000Z"
}
```

And from a Made-in-China search:

```json
{
  "source": "made-in-china",
  "productId": "PGApvLgCOaYy",
  "url": "https://xingrou-led.en.made-in-china.com/product/PGApvLgCOaYy/China-Eco-Friendly-Flexible-LED-Strip-Low-Voltage-Option-for-DIY-Projects.html",
  "title": "Eco-Friendly Flexible LED Strip Low Voltage Option for DIY Projects",
  "priceText": "US$0.26-0.40",
  "priceMin": 0.26,
  "priceMax": 0.4,
  "currency": "USD",
  "minOrder": 1000,
  "minOrderUnit": "Meters",
  "images": ["https://image.made-in-china.com/43f34j00NZTcCtWJlygk/Eco-Friendly-Flexible-LED-Strip-Low-Voltage-Option-for-DIY-Projects.webp"],
  "specifications": null,
  "supplier": {
    "name": "Zhongshan Xingrou Lighting Technology Co., Ltd",
    "url": "https://xingrou-led.en.made-in-china.com/",
    "location": "Guangdong, China",
    "address": null,
    "businessType": null,
    "yearsActive": null,
    "badges": ["Diamond Member", "Audited Supplier"]
  },
  "searchTerm": "led strip",
  "scrapedAt": "2026-10-17T14:20:09.000Z"
}
```

#### What each site fills in

| Field | Made-in-China | Yiwugo | Global Sources |
|---|---|---|---|
| Price and currency | USD | CNY | USD |
| MOQ and unit | yes | yes | yes |
| Specifications | product and showroom pages | product pages (variants) | model number and category; full table on product pages |
| Supplier location | province and country | Yiwu market district | country |
| Business type | when listed | not shown | yes |
| Years active | product pages (membership years) | yes | yes (years on Global Sources) |
| Badges | Diamond Member, Audited Supplier | Superior Supplier for Global Trade | Verified Manufacturer, Super Supplier |
| Supplier URL | yes | yes | product pages only |
| Company address | product pages only | shop pages only | no |

Search results give the fields that are on the results page. Product URLs give the fuller detail page, including specification tables, but cost one page per product.

### Pricing

**$2 per 1,000 products.** You pay only for products returned in the dataset. Pages that fail, are blocked, or have no product are skipped, listed in the `FAILED_ITEMS` record of the key-value store and not charged.

### FAQ

#### How is the minimum order quantity (MOQ) reported?

As a number in `minOrder` and the unit the supplier uses in `minOrderUnit`, for example `1000` and `Meters`. When a product has quantity price tiers, the MOQ is the start of the first tier and `priceText` lists every tier price.

#### How do I contact the suppliers?

Each product has the supplier's page in `supplier.url`. Use the site's own inquiry or chat button there. The actor returns a company address only where a site publishes it as company information. It does not collect names, phone numbers, e-mail addresses or messenger IDs of individual people, even when a page shows them.

#### Which sites are supported?

Made-in-China.com, Yiwugo (en.yiwugo.com, the Yiwu International Trade City catalogue) and Global Sources (globalsources.com). Choose any of them with the `sites` input.

#### Which URLs can I paste?

Product pages from all three sites, Made-in-China supplier showrooms and Yiwugo shop pages. Global Sources supplier homepages are not supported yet; search by keyword or use their product URLs instead.

#### Do I need an account or cookies?

No. The actor only reads public pages and never logs in.

#### Which proxy should I use?

The default Apify datacenter proxy, which is the cheapest option. If a site starts returning blocks, switch the proxy group to residential.

#### Does it bypass captchas?

No. If a site answers with a captcha or verification page, the page is retried on a new IP and, if that keeps happening, skipped and not charged.

### Known limits

- Prices are what the listing shows. Many suppliers quote ranges or negotiate, so treat them as indicative.
- Yiwugo titles are often lowercase English translations of Chinese listings. Its sponsored "\[Ad]" rows are skipped because they are often unrelated to the keyword.
- Global Sources search results do not include the supplier page link. Product URLs do.
- Global Sources supplier pages are not supported as start URLs.
- Made-in-China search pages do not show membership years; product pages do.
- Site layouts change. If a field suddenly comes back empty, please open an issue.

# Actor input Schema

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

Product keywords in English, for example "led strip" or "phone case". Each term is searched on every selected site.

## `sites` (type: `array`):

Which sites to search. Start URLs are always scraped on their own site.

## `startUrls` (type: `array`):

Product pages from any of the three sites, Made-in-China supplier showrooms (https://<name>.en.made-in-china.com) and Yiwugo shops (https://en.yiwugo.com/hu/<shop>.html). Global Sources supplier pages are not supported.

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

Upper limit of products for each search term on each site, and for each supplier URL. Product URLs always return one item.

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

How many pages are fetched at the same time.

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

How many times a page is tried, each time on a new proxy IP, before it is skipped.

## `proxy` (type: `object`):

Datacenter proxies are the default and the cheapest. Switch to residential only if a site starts blocking.

## Actor input object example

```json
{
  "searchTerms": [
    "led strip"
  ],
  "sites": [
    "made-in-china",
    "yiwugo",
    "globalsources"
  ],
  "maxItems": 50,
  "maxConcurrency": 3,
  "maxRequestRetries": 5,
  "proxy": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `products` (type: `string`):

One item per product with price, MOQ, images, specifications and supplier details, tagged with its source site

# 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 strip"
    ],
    "proxy": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("muhammad_noman_riaz/china-supplier-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 strip"],
    "proxy": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("muhammad_noman_riaz/china-supplier-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 strip"
  ],
  "proxy": {
    "useApifyProxy": true
  }
}' |
apify call muhammad_noman_riaz/china-supplier-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,muhammad_noman_riaz/china-supplier-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/mmL8gMEtzXIyY1aZf/builds/XozE4mDIDeQZ2fNjz/openapi.json
