# Made-in-China.com Scraper & API (`parsebird/made-in-china-scraper`) Actor

Scrape Made-in-China.com by keyword. Get product names, prices, MOQ, supplier names, membership tiers, and audited-supplier status. Export as JSON, CSV, or Excel.

- **URL**: https://apify.com/parsebird/made-in-china-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.89 / 1,000 products

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Made-in-China.com Scraper & API

Scrape product and supplier data from **[Made-in-China.com](https://www.made-in-china.com)** — one of the largest B2B marketplaces for sourcing products directly from Chinese manufacturers and trading companies. The Made-in-China.com Scraper & API pulls product names, FOB prices, MOQ, supplier names, membership tiers, and Audited Supplier / Manufacturer badges for any search keyword, with no login and no Made-in-China API key.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Search by keyword and filter by Audited Supplier, Diamond Member, Manufacturer/Factory, and sample availability — then optionally visit each product's detail page for full specifications, certifications, HS code, production capacity, and packaging.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Actor: parsebird/made-in-china-scraper (Apify). Scrapes products and suppliers from made-in-china.com by search keyword. Call with ApifyClient.
Input JSON fields:
  queries: string[] (required) — search keywords exactly as typed into Made-in-China.com, e.g. ["led light", "solar panel"]
  maxItemsPerQuery: int (default 60) — max products per keyword, ~30 products per page, paginated automatically
  onlyAuditedSuppliers: bool (default false) — keep only third-party Audited Supplier badge holders
  onlyDiamondMembers: bool (default false) — keep only top-tier Diamond Member suppliers
  onlyManufacturers: bool (default false) — keep only suppliers whose business type includes Manufacturer/Factory
  supportsSample: bool (default false) — keep only products whose supplier offers samples
  scrapeProductDetails: bool (default false) — visit each product's detail page for full specs, certifications, HS code, production capacity, packaging, brand/SKU (adds one request per product)
  proxyConfiguration: { "useApifyProxy": true } — datacenter proxy is enough
Output: one dataset item per product — productName, productUrl, productId, priceText, priceMin, priceMax, currency, priceType,
  minOrderQuantity, image, supportsSample, tradeAssurance, companyName, supplierUrl, businessType, memberType,
  isAuditedSupplier, supplierProvince, hasQualityCertification, searchKeyword, page, scrapedAt, plus detailedSpecifications,
  certifications, hsCode, productionCapacity, packageSize/Weight, trademark, origin, brand, sku, mpn, fullDescription,
  detailImages, availability when scrapeProductDetails is on.
Example: { "queries": ["solar panel", "lithium battery"], "maxItemsPerQuery": 200, "onlyAuditedSuppliers": true, "onlyManufacturers": true }
API: https://api.apify.com/v2/acts/parsebird~made-in-china-scraper  ·  Token: https://console.apify.com/account/integrations
```

### What does Made-in-China.com Scraper & API do?

[Made-in-China.com](https://www.made-in-china.com) is one of the world's largest B2B sourcing platforms, connecting buyers with Chinese manufacturers and trading companies across electronics, lighting, machinery, textiles, and more. There is no public Made-in-China API for search — this Made-in-China scraper reads the site's own server-rendered search results instead. For every product matching your keyword it extracts:

- 🏷️ **Product identity** — name, URL, unique product ID, and image.
- 💰 **Pricing** — FOB price range, currency, and minimum order quantity (MOQ).
- 🏭 **Supplier signals** — company name, storefront URL, membership tier (e.g. Diamond Member, Gold Member), Audited Supplier status, business type (Manufacturer/Factory vs. Trading Company), and province.
- 🤝 **Trade signals** — Trade Assurance / Secured Trading flag and sample availability.
- 📋 **Full specifications** (optional) — visiting the product detail page adds the full attribute table, product certifications (CE, RoHS, CCC…), HS code, production capacity, packaging dimensions and weight, trademark, origin, brand, SKU/MPN, full description, and all product images.

Common uses: sourcing research for import/export businesses, supplier vetting and comparison, price benchmarking across manufacturers, catalog building for dropshipping or B2B resale, and competitive analysis of Chinese wholesale pricing.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| queries | array | **Yes** | — | One or more search terms, exactly as typed into Made-in-China.com, e.g. `led light`, `solar panel`. |
| maxItemsPerQuery | integer | No | 60 | Maximum products to collect per keyword (~30 products per page, paginated automatically). |
| onlyAuditedSuppliers | boolean | No | false | Keep only suppliers with the Audited Supplier badge (third-party verified). |
| onlyDiamondMembers | boolean | No | false | Keep only top-tier Diamond Member suppliers. |
| onlyManufacturers | boolean | No | false | Keep only manufacturers/factories (filters out pure trading companies). |
| supportsSample | boolean | No | false | Keep only products whose supplier offers samples. |
| scrapeProductDetails | boolean | No | false | Visit each product's detail page for full specs, certifications, HS code, production capacity, packaging, and brand/SKU. Slower and adds one request per product. |
| proxyConfiguration | object | No | `{ "useApifyProxy": true }` | Apify Proxy settings. Datacenter proxies work well. |

#### Example inputs

Simple supplier list:

```json
{
  "queries": ["led light"],
  "maxItemsPerQuery": 120
}
```

Audited factories only:

```json
{
  "queries": ["solar panel", "lithium battery"],
  "maxItemsPerQuery": 200,
  "onlyAuditedSuppliers": true,
  "onlyManufacturers": true
}
```

Top-tier suppliers offering samples, with full detail pages:

```json
{
  "queries": ["power bank"],
  "maxItemsPerQuery": 100,
  "onlyDiamondMembers": true,
  "supportsSample": true,
  "scrapeProductDetails": true
}
```

### What data can you extract from Made-in-China.com?

#### Product fields

| Field | Description |
|-------|-------------|
| productName | Product title |
| productUrl | Link to the product page |
| productId | Made-in-China product ID (used for de-duplication) |
| priceText | Human-readable FOB price, e.g. `US$44.00-49.00` |
| priceMin / priceMax | Numeric price range |
| currency | Price currency (USD) |
| priceType | Price basis — `FOB`, Made-in-China.com's standard listing price basis |
| minOrderQuantity | Minimum order quantity, e.g. `100 Pieces` |
| image | Product image URL |
| supportsSample | Whether the supplier offers samples |
| tradeAssurance | Secured-trading / Trade Assurance flag |

#### Supplier fields

| Field | Description |
|-------|-------------|
| companyName | Supplier company name |
| supplierUrl | Supplier's storefront on Made-in-China.com |
| businessType | Manufacturer/Factory, Trading Company, or both (blank when the supplier hasn't declared one) |
| memberType | Membership tier (e.g. Diamond Member, Gold Member) |
| isAuditedSupplier | Passed Made-in-China's third-party audit |
| supplierProvince | Chinese province (e.g. Guangdong, Zhejiang) |
| hasQualityCertification | Supplier shows a management-system certification badge (e.g. ISO9001) on the search result |
| companyProfileUrl | Same as `supplierUrl` — Made-in-China.com does not expose a separate company-profile URL in its server-rendered pages |
| providesOem | Best-effort signal: `true` when the product name mentions OEM. Made-in-China.com has no dedicated OEM badge in search results |
| exportYears | Years of export experience. Made-in-China.com only shows this in an interactive panel that isn't present in the page HTML, so it is currently always `null` (kept for schema compatibility) |

#### Deep detail fields (only when `scrapeProductDetails` is enabled)

| Field | Description |
|-------|-------------|
| specifications | Generic product attributes not already broken out below (varies by category) |
| detailedSpecifications | Full raw attribute table from the product's Basic Info panel |
| certifications | Product certifications, e.g. `["CE","RoHS","CCC"]` |
| qualityCertifications | Supplier management-system certifications, e.g. `["ISO9001:2015"]`, when shown |
| hsCode | Harmonized System (HS) customs code — useful for import/export |
| productionCapacity | Stated production capacity, e.g. `10000PC/Month` |
| transportPackage | Packaging description |
| packageSize / packageWeight | Carton dimensions and gross weight |
| trademark | Brand/trademark |
| origin | Place of origin |
| modelNumber | Manufacturer model number |
| sku / mpn | Made-in-China SKU and manufacturer part number |
| brand | Brand name from the page's structured data |
| fullDescription | Full product description |
| detailImages | All product images from the detail page |
| availability | Stock availability (e.g. `InStock`) |

#### Metadata

| Field | Description |
|-------|-------------|
| searchKeyword | The keyword this record came from |
| page | Result page number |
| scrapedAt | Timestamp of extraction |

### Output example

```json
{
  "productName": "RGB Smart Color Changing IP65 Outdoor Wall Light Garden LED",
  "productUrl": "https://nbedhi.en.made-in-china.com/product/zZjfTAUDsktP/China-RGB-Smart-Color-Changing-IP65-Outdoor-Wall-Light-Garden-LED.html",
  "productId": "zZjfTAUDsktP",
  "priceText": "US$24.35-28.40",
  "priceMin": 24.35,
  "priceMax": 28.40,
  "currency": "USD",
  "priceType": "FOB",
  "minOrderQuantity": "100 Pieces",
  "image": "https://image.made-in-china.com/43f34j00YSvhZjDyAuGP/RGB-Smart-Color-Changing-IP65-Outdoor-Wall-Light-Garden-LED.webp",
  "supportsSample": true,
  "tradeAssurance": true,
  "companyName": "Ningbo Enton Import and Export Co., Ltd.",
  "supplierUrl": "https://nbedhi.en.made-in-china.com",
  "businessType": "Trading Company",
  "memberType": "Gold Member",
  "isAuditedSupplier": true,
  "supplierProvince": "Zhejiang, China",
  "hasQualityCertification": false,
  "searchKeyword": "led light",
  "page": 1,
  "scrapedAt": "2026-09-05T09:46:49.124034+00:00"
}
```

Download the dataset as **JSON, CSV, Excel, HTML, or XML** from the Storage tab or the [Apify API](https://docs.apify.com/api/v2).

### Use cases

- **Sourcing research** — find and compare manufacturers for a product category before requesting quotes.
- **Supplier vetting** — filter for Audited Supplier and Diamond Member status before reaching out.
- **Price benchmarking** — compare FOB price ranges and MOQ across dozens of suppliers for the same product.
- **Catalog building** — seed a dropshipping or B2B resale catalog with structured product data.
- **Import/export compliance** — pull HS codes and certifications for customs and compliance checks (with `scrapeProductDetails` on).

### How it works

1. **Search** — each keyword in `queries` is turned into a Made-in-China.com search URL.
2. **Paginate** — the scraper walks result pages (~30 products each) until `maxItemsPerQuery` is reached or a page returns no products.
3. **Filter** — `onlyAuditedSuppliers`, `onlyDiamondMembers`, `onlyManufacturers`, and `supportsSample` are applied as each product is read; duplicates within a query are skipped.
4. **Enrich (optional)** — with `scrapeProductDetails` on, the scraper visits each product's own page for full specs, certifications, HS code, and packaging.
5. Rows stream to the dataset.

### How much does it cost to scrape Made-in-China.com?

This actor is **pay per result** — charged once per product saved to the dataset.

| Plan | Price per 1,000 products |
|------|--------------------------|
| Free | **$1.49** |
| Bronze | **$1.29** |
| Silver | **$1.09** |
| Gold | **$0.89** |

A small platform **Actor start** fee also applies per run. `maxItemsPerQuery` (times the number of keywords) sets the maximum billed rows. Scraping 1,000 products on the Free plan costs about **$1.49**. Apify's monthly free platform usage covers small runs.

### How to scrape Made-in-China.com

1. Click **Try for free** and sign in to Apify.
2. Enter one or more **search keywords** in `queries`, exactly as you would type them into Made-in-China.com.
3. Set **maxItemsPerQuery** (start low, e.g. 30–60) and any supplier filters.
4. Turn on **Scrape full product details** if you need specs, HS codes, or certifications.
5. Click **Start**, then watch rows appear in the **Output** tab.
6. Export from **Storage**, or pull results via the API.

#### Run it via API

Python:

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("parsebird/made-in-china-scraper").call(run_input={
    "queries": ["led light"],
    "maxItemsPerQuery": 120,
})
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(product["productName"], "-", product["priceText"], "-", product.get("companyName"))
```

JavaScript:

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('parsebird/made-in-china-scraper').call({
    queries: ['solar panel'],
    maxItemsPerQuery: 100,
    onlyAuditedSuppliers: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

Schedule recurring runs, add webhooks, or push results to Google Sheets, Slack, Zapier, and Make with [Apify integrations](https://docs.apify.com/platform/integrations).

### FAQ

**Do I need a Made-in-China account or API key?**
No. The scraper reads public Made-in-China.com search and product pages only. Made-in-China does not offer a public search API — this actor is the alternative.

**Why is `businessType` sometimes blank?**
Some suppliers don't declare a business type on their storefront, so Made-in-China.com's own search results leave that field empty. The scraper reports exactly what the page shows.

**Why is `specifications` empty unless I turn on `scrapeProductDetails`?**
Made-in-China.com only publishes the attribute table on the product detail page, not on search results. Turn on **Scrape full product details** to fetch it.

**Why is `exportYears` always null?**
Made-in-China.com only shows a supplier's export history inside an interactive company-profile panel that loads via JavaScript after the page renders — it isn't present in the HTML the scraper reads. The field is kept in the output for schema compatibility but will read `null` until the site exposes it server-side.

**What proxy do I need?**
Datacenter proxies work well for Made-in-China.com — no residential proxy is required.

**Does `scrapeProductDetails` cost more?**
No extra Apify charge — pricing is per product row either way — but it fetches one more page per product, so runs take longer.

**Can I get results as CSV or Excel?**
Yes. Use the **Export** button on the dataset, or request a specific format via the [Apify API](https://docs.apify.com/api/v2#/reference/datasets).

**Something's not working.**
Open an issue on the **Issues** tab with your input and the run link — we respond quickly.

### Is it legal to scrape Made-in-China.com?

Made-in-China.com product and supplier listings are public information that any visitor can see without logging in. Scraping publicly available pages is legal in most jurisdictions, and this actor does not access private data or bypass any login. You are responsible for how you use the data — follow Made-in-China.com's Terms of Use and applicable data-protection law, and consult a lawyer if you are unsure. See Apify's guide on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Related actors

- [1688 Products Wholesale Scraper](https://apify.com/parsebird/1688-wholesale-scraper) — supplier and product data from 1688.com, Alibaba's domestic China wholesale marketplace.
- [AliExpress Scraper](https://apify.com/parsebird/aliexpress-scraper) — products and sellers from AliExpress.
- [Daraz.pk Ecommerce Scraper](https://apify.com/parsebird/daraz-pk-ecommerce-scraper) — products from Pakistan's largest online marketplace.
- [Walmart Product Scraper](https://apify.com/parsebird/walmart-product-scraper) — product data from Walmart.com.

Browse all [ParseBird actors](https://apify.com/parsebird) on Apify Store.

# Actor input Schema

## `queries` (type: `array`):

One or more search terms, exactly as you'd type them into Made-in-China.com search box, for example `led light` or `solar panel`.

## `maxItemsPerQuery` (type: `integer`):

Maximum products to collect per keyword. Made-in-China.com returns about 30 products per page, and pages are fetched automatically until this limit is reached.

## `onlyAuditedSuppliers` (type: `boolean`):

Keep only products from suppliers with the Audited Supplier badge (verified by an independent third-party inspection agency).

## `onlyDiamondMembers` (type: `boolean`):

Keep only products from top-tier Diamond Member suppliers.

## `onlyManufacturers` (type: `boolean`):

Keep only products from suppliers whose business type includes Manufacturer/Factory. Filters out pure trading companies.

## `supportsSample` (type: `boolean`):

Keep only products whose supplier offers samples before a bulk order.

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

Visit each product's detail page for full specifications, certifications, HS code, production capacity, packaging, and brand/SKU. Adds one extra request per product, so runs take longer and cost more.

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

Datacenter proxies work well for Made-in-China.com. Residential is not required.

## Actor input object example

```json
{
  "queries": [
    "led light"
  ],
  "maxItemsPerQuery": 60,
  "onlyAuditedSuppliers": false,
  "onlyDiamondMembers": false,
  "onlyManufacturers": false,
  "supportsSample": false,
  "scrapeProductDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "queries": [
        "led light"
    ],
    "maxItemsPerQuery": 60,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/made-in-china-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 = {
    "queries": ["led light"],
    "maxItemsPerQuery": 60,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/made-in-china-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 '{
  "queries": [
    "led light"
  ],
  "maxItemsPerQuery": 60,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call parsebird/made-in-china-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/made-in-china-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/822V02321OodTqwV2/builds/foaeHPdhqQI2LRKin/openapi.json
