# Made-in-China B2B Supplier Finder (`nexgendata/made-in-china-b2b-suppliers`) Actor

Scrape Made-in-China.com B2B suppliers — company, province/city, years on platform, Gold / Verified / Audited status, business type, employees, founded year, main products, response rate. Alibaba alternative with friendlier anti-bot. Importers, dropshippers, B2B.

- **URL**: https://apify.com/nexgendata/made-in-china-b2b-suppliers.md
- **Developed by:** [Stephan Corbeil](https://apify.com/nexgendata) (community)
- **Categories:** Lead generation, E-commerce, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 suppliers

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 B2B Supplier Finder 🇨🇳🏭

**Wholesale supplier intelligence for cross-border buyers, importers, dropshippers, and B2B sales teams — built on Made-in-China.com.** Pull a structured supplier list off [Made-in-China.com](https://www.made-in-china.com/) by category, region (province / city), and trust tier (Gold Member, Verified, Audited / On-site Checked). Export to CSV, JSON, Excel — or pipe straight into HubSpot, Pipedrive, Airtable, Notion, Google Sheets via Zapier, Make.com, n8n, or Pipedream.

Made-in-China.com is the English-facing flagship B2B directory of **Focus Technology Co., Ltd.** — China's #2 cross-border B2B platform behind Alibaba, with **~3.6 million suppliers** indexed and a noticeably **more buyer-friendly data surface**. Where Alibaba gates company info behind anti-bot walls and TradeManager messaging, MIC publishes business type, employees range, year established, audit status, and main-product lines directly on the supplier listing page. That difference is the whole reason this actor exists: **richer public supplier data, less aggressive anti-bot, faster runs, lower per-record cost**.

### Why Made-in-China instead of Alibaba?

If you've tried scraping Alibaba, you already know the story: their `/trade/search` endpoint throws CAPTCHAs at every datacenter IP, redirects to `punish.aliexpress.com` after a few requests, and returns empty grids unless you're paying for residential proxy rotation. Made-in-China.com is on the opposite end of the spectrum:

- **Static-server-rendered HTML** for ~80%+ of supplier search results — no JS rendering required for the default pass. This actor's first attempt uses `httpx + BeautifulSoup` and only falls back to Playwright on rate-limit windows.
- **No aggressive CAPTCHA gate.** MIC has a `/sec/` challenge page for abusive traffic, but a reasonable per-second request rate goes through cleanly.
- **More buyer-facing fields published in plain HTML** — business type ("Manufacturer/Factory", "Trading Company"), employees range ("51-100 People"), year established, audit / on-site-check status. Alibaba hides most of this behind its login wall.
- **English-first directory by design.** MIC is an export platform — every supplier writes their company description and main-product list in English. No translation pipeline needed downstream.

The trade-off: MIC has fewer Tier-1 mega-suppliers than Alibaba (Alibaba dominates "Made for AMZ FBA" sourcing), but is **stronger in industrial / B2B verticals** — machinery, valves, hardware, packaging, building materials, electronics components, textiles. For dropshippers chasing trending consumer SKUs, Alibaba is still the bigger pool; for serious industrial procurement, MIC's audit-supplier coverage is often deeper.

### What this actor scrapes from Made-in-China.com

For each supplier returned:

| Field | Description |
|-------|-------------|
| `company_name` | Supplier company name (e.g. "Ningbo Solartec Renewable Energy Co., Ltd.") |
| `supplier_url` | Direct link to the supplier's MIC minisite |
| `location_province` | Chinese province (Guangdong, Zhejiang, Jiangsu, etc.) |
| `location_city` | Major city within province (Shenzhen, Yiwu, Ningbo, etc.) |
| `years_on_platform` | Years the supplier has been on MIC (5 Yrs, 12 Yrs, etc.) |
| `year_established` | Year the company itself was founded (separate from `years_on_platform`) |
| `gold_supplier` | True if supplier is a Gold Member (MIC's paid premium tier) |
| `verified` | True if MIC verified the supplier's business license + contact info |
| `audited` | True if MIC sent an on-site inspector to the factory |
| `business_type` | Manufacturer/Factory · Trading Company · M/F & Trading · Distributor · Agent |
| `employees_range` | "51-100 People", "201-500 People", ">1000 People", etc. |
| `main_products` | Comma-separated main-product lines (from the company minisite header) |
| `response_rate` | Public response-rate metric (where shown, e.g. "94.5%") |
| `data_source` | Constant `"made-in-china.com"` for traceability |

### Cross-border B2B procurement use cases

#### 1. Importer sourcing for cross-border buyers (US / EU / SG / HK / IN / AU)

Build a vetted China supplier list for a specific category — "LED panel lights", "silicone kitchenware", "industrial ball valves", "PCB assembly", "EV charging cables". Pre-filter by `verifiedOnly: true` AND `auditedOnly: true` to drop the long tail of trading companies and drop-ship middlemen. The audited-supplier subset on MIC is meaningfully larger than Alibaba's equivalent for industrial categories — you'll often find 30-80 audited factories per niche where Alibaba shows 5-10 Gold Suppliers.

Drop the resulting CSV into your QC team's Notion or Airtable for **factory video audits, sample requests, and MOQ negotiation**. Replaces 2-4 days of manual MIC clicking with a 10-minute actor run + a 30-minute review.

#### 2. Dropshipping and Amazon FBA arbitrage discovery

Pull 100-300 Made-in-China.com suppliers for a trending product category (e.g. "neck massager", "smart pet feeder", "portable air conditioner", "solar garden lights"). Cross-reference each supplier's `main_products` against Amazon ASINs to find **unbranded white-label products with healthy retail-to-wholesale margins**. MIC suppliers tend to publish their MOQ and lead time in the minisite header more readily than Alibaba — which speeds up your sourcing funnel.

Pair this actor with our [JD.com Product Scraper](https://apify.com/nexgendata/jd-com-product-scraper?fpr=2ayu9b) for the retail-side competitive intel (what's selling in China at what price → what should I source for Western retail at 4-5x markup).

#### 3. Procurement-team alternate-supplier sourcing

Enterprise procurement teams use MIC alongside Alibaba, SAP Ariba, and customs-data tools (ImportYeti, ImportGenius, Panjiva) to **build alternate-supplier lists for supply-chain risk management**. When your primary China supplier raises prices 15% or a port closes, you need a backup shortlist *yesterday*. Run this actor with `auditedOnly: true` + a province filter to diversify away from Guangdong-only sourcing (try Zhejiang, Jiangsu, Shandong for resilience).

The structured output (CSV / JSON) imports cleanly into SAP Ariba supplier-master tables and Coupa supplier records — no manual data entry, no copy-paste errors.

#### 4. Market research and category intelligence

How many audited manufacturers are listed under "industrial valves" in Zhejiang? Jiangsu? What's the median `years_on_platform`? What share of suppliers in "solar panels / Guangdong" are full manufacturers vs. trading companies? Run quarterly scrapes and **track category structural shifts** — useful for VC due diligence on direct-import startups, China-side industry reports, M&A target identification, sector-rotation analysis.

Combine with our [China Trends Tracker](https://apify.com/nexgendata/china-trends-tracker?fpr=2ayu9b) and [Weibo Hot Search Tracker](https://apify.com/nexgendata/weibo-hot-search-tracker?fpr=2ayu9b) to **correlate supplier density with consumer demand signals** — categories where MIC supplier counts are rising but Weibo / Douyin demand is falling are typically late-stage commoditized; the opposite pattern (supplier density flat, demand rising) flags genuine arbitrage windows.

#### 5. B2B lead-gen agencies and sourcing consultancies

Lead-gen agencies serving cross-border SMBs (Shopify importers, Amazon FBA sellers, niche e-commerce brands) sell **pre-built supplier shortlists as a $300-1,500 done-for-you service**. Run this actor → enrich each supplier URL with [Website Email Extractor](https://apify.com/nexgendata/website-email-extractor?fpr=2ayu9b) and [Company Email Finder](https://apify.com/nexgendata/company-email-finder?fpr=2ayu9b) → deliver a procurement-ready CSV. 10x faster than manual research, healthy 80%+ margins, and the audited-supplier filter gives you a defensible "every supplier in this list has been on-site checked by MIC" guarantee.

#### 6. B2B sales teams targeting Chinese manufacturers

If you sell **into** Chinese manufacturers — SaaS for factory ERP, industrial automation hardware, logistics services, trade-finance products, export consultancy — the supplier list from this actor is a direct lead-generation funnel. Filter by `business_type: "Manufacturer/Factory"` + employee range to target mid-market factories that have growth budget but aren't enterprise-locked into SAP yet.

### Quick start (Apify Console)

1. Open this actor in the Apify Console.
2. Set `searchQuery` (e.g. `solar panels`, `industrial ball valves`, `silicone kitchenware`, `led panel lights`).
3. Optionally filter:
   - `region` — Chinese province or major city (e.g. `Guangdong`, `Zhejiang`, `Shenzhen`)
   - `verifiedOnly: true` — drop unbadged drop-ship middlemen
   - `auditedOnly: true` — drop everything except on-site-inspected factories
4. Set `maxResults` (default 50, prefill 25 for cheap exploratory runs).
5. Leave `useProxy: true` for consistent yields.
6. Click **Start**. Results land in the actor's dataset (CSV / JSON / Excel export).

### Quick start (Python SDK)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("nexgendata/made-in-china-b2b-suppliers").call(
    run_input={
        "searchQuery": "industrial ball valves",
        "region": "Zhejiang",
        "verifiedOnly": True,
        "auditedOnly": True,
        "maxResults": 100,
        "useProxy": True,
    }
)

for supplier in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(
        supplier["company_name"],
        supplier.get("years_on_platform"),
        supplier.get("business_type"),
        supplier["supplier_url"],
    )
````

### Quick start (cURL)

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/nexgendata~made-in-china-b2b-suppliers/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchQuery": "silicone kitchenware",
    "region": "Guangdong",
    "verifiedOnly": true,
    "auditedOnly": false,
    "maxResults": 50,
    "useProxy": true
  }'
```

### Input schema

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `searchQuery` | string | `"solar panels"` | Product / category to search on Made-in-China.com |
| `region` | string | `""` | Province or city substring filter (Guangdong, Zhejiang, Shenzhen, etc.) |
| `verifiedOnly` | boolean | `false` | Restrict to MIC Verified suppliers |
| `auditedOnly` | boolean | `false` | Restrict to MIC Audited / On-site Checked suppliers |
| `maxResults` | integer | `50` (prefill 25) | Max supplier records to return (1-1000) |
| `useProxy` | boolean | `true` | Route HTTP/Playwright traffic through Apify proxy |

### Example output

```json
{
  "company_name": "Ningbo Solartec Renewable Energy Co., Ltd.",
  "supplier_url": "https://nbsolartec.en.made-in-china.com/",
  "location_province": "Zhejiang",
  "location_city": "Ningbo",
  "years_on_platform": 11,
  "year_established": 2008,
  "gold_supplier": true,
  "verified": true,
  "audited": true,
  "business_type": "Manufacturer/Factory",
  "employees_range": "201-500 People",
  "main_products": "Solar Panel, Solar Inverter, Solar Mounting System, Solar Pump, Off-Grid Solar System",
  "response_rate": "96.2%",
  "data_source": "made-in-china.com"
}
```

### Pipe it into your stack — Zapier / Make.com / n8n / Airtable / HubSpot

The dataset exports as CSV / JSON / Excel directly from the Apify Console, and Apify has native connectors for Zapier, Make.com, n8n, Pipedream, and Power Automate. Common flows:

- New dataset items → append rows to **Google Sheets / Airtable** (supplier shortlist for QC team)
- New dataset items → create company records in **HubSpot / Pipedrive / Salesforce** (B2B lead pipeline with `years_on_platform`, `business_type`, `employees_range` as properties)
- New dataset items → trigger **Slack** notification (#sourcing channel — "5 new audited solar manufacturers in Zhejiang")
- Scheduled actor runs (weekly) → delta-detection to track **new market entrants**, **suppliers that gained audit status**, **suppliers whose response rate crashed** (an early defection signal)

### How it works

Made-in-China.com publishes most supplier-listing pages as plain server-rendered HTML. This actor's strategy:

1. **Static-HTML pass (httpx + BeautifulSoup).** First attempt uses async HTTPX with a realistic UA and Apify proxy. We hit `/companysearch.html?word={q}&pageNum={n}` and parse supplier cards across multiple selector families (`.list-node`, `.J-companyItem`, `.company-detail`, anchor-based fallback for `*.en.made-in-china.com`). Fast, cheap, and works for ~80% of queries.
2. **Playwright fallback.** If the static pass returns zero records or hits an anti-bot block, we engage Playwright (chromium, stealthed) with the same parser. Used as a fallback so the typical run stays in the ~$0.01 compute range.
3. **Multi-selector parsing.** MIC rotates DOM structures occasionally. The parser tries modern selectors first, falls back to legacy ones, then to a generic anchor-pattern match (any link to `*.en.made-in-china.com` or `*.manufacturer.made-in-china.com`).
4. **Graceful anti-bot handling.** When MIC serves a `/sec/` challenge, "access denied" page, or empty body, the actor emits a single `_blocked: true` placeholder and exits 0 (no crash, no wasted billing). MIC's anti-bot is rare in practice — most queries succeed on the first httpx pass.
5. **Client-side filters.** Region / verified / audited filters are applied to the parsed records (not via URL query params) because MIC's URL-level filters are inconsistent across categories. This means you always get the same fields, regardless of which category you queried.

### FAQ

#### How is this different from your Alibaba Supplier Finder?

Both target Chinese B2B wholesale supplier directories. **Alibaba** is the bigger pool (~200K Gold Suppliers vs MIC's ~3.6M total suppliers across all tiers) and has stronger coverage of "made-for-Amazon-FBA" consumer SKUs. **Made-in-China** has cleaner public data (richer fields per supplier), less aggressive anti-bot (this actor is significantly cheaper to run), and stronger coverage in industrial / B2B verticals (machinery, valves, electronics components, packaging).

**For most cross-border buyers, run both.** Use Alibaba for consumer-SKU dropshipping discovery, MIC for industrial procurement and audit-supplier sourcing. The dedup is trivial — supplier URLs are platform-specific, and many factories list on both directories with the same company name.

#### How is this different from ImportYeti / ImportGenius / Panjiva?

ImportYeti (free tier limited, paid $99-$499/mo), ImportGenius ($299-$799/mo), and Panjiva (S\&P Global, $5,000+/yr) scrape **U.S. customs bill-of-lading data** — they show you which suppliers actually shipped containers, with HS codes, volumes, and consignees. Excellent for **post-shipment forensics** (verifying a supplier is real, finding a competitor's secret supplier).

This actor scrapes **Made-in-China.com's supplier directory** — the discovery / shortlisting layer. **Use both:** MIC supplier scraper for discovery → ImportYeti for shipment verification → request samples → factory audit. Customs-data tools lag 30-90 days and are mostly U.S.-import-focused; MIC directory data is live and global-buyer-relevant.

#### Does the audited filter actually mean anything?

Yes — MIC's "Audited Supplier" badge requires a third-party on-site inspector (typically TÜV, Bureau Veritas, or SGS through MIC's audit partner program) to visit the factory, verify the business license matches the operating premises, and confirm production capacity. It's a meaningfully stronger trust signal than Verified-only (which just checks the business license + phone). For deals above ~$5K MOQ or any direct-shipment arrangement, restrict to `auditedOnly: true` as a baseline.

#### Why isn't supplier email / phone in the output?

Public MIC directory pages don't show direct emails — like Alibaba, MIC gates contact through their internal messaging platform to protect supplier inboxes and meter their lead-flow product. The minisite URL is the primary join key for downstream enrichment.

For **email enrichment** post-shortlist, run the supplier URLs through:

- [Website Email Extractor](https://apify.com/nexgendata/website-email-extractor?fpr=2ayu9b) — pulls `mailto:` and regex-detected emails off the supplier minisite
- [Company Email Finder](https://apify.com/nexgendata/company-email-finder?fpr=2ayu9b) — domain-pattern email finder (firstname.lastname@, info@, sales@)
- [B2B Leads Finder](https://apify.com/nexgendata/b2b-leads-finder?fpr=2ayu9b) — Apollo / ZoomInfo alternative for verified B2B contacts

Typical hit rate on Chinese supplier minisites is 50-70% — a lot higher than what you get on Alibaba minisites (where contact info is more aggressively gated).

#### What's the difference between `years_on_platform` and `year_established`?

`years_on_platform` is **how long the supplier has been listed on Made-in-China.com** — usually 1-15 years. Useful as a trust signal (newer listings have less feedback history).

`year_established` is **when the company itself was founded** — could be 1996 for an established factory that joined MIC only in 2018. Together they tell you whether you're talking to a legacy factory testing a new sales channel (high `year_established`, low `years_on_platform`) or a young trading company built around MIC traffic (low both).

#### Why is `business_type` important?

MIC distinguishes:

- **Manufacturer/Factory** — they make the product on-premises
- **Trading Company** — they source from a factory and resell (typically 5-15% markup over factory direct)
- **Manufacturer/Factory & Trading Company** — hybrid (own factory plus trade other categories)
- **Distributor / Agent** — channel partner, not original maker

For **direct procurement at factory prices**, restrict to `business_type` containing "Manufacturer". Trading companies are still useful (faster English communication, MOQ flexibility), but you'll pay a margin.

#### Does MIC have Chinese-only categories I can target?

MIC is **English-first by design** — it's an export platform. The directory itself is 100% English. If you need Chinese-domestic supplier data (1688.com, JD.com industrial, Tmall B2B), use a different scraper:

- [JD.com Product Scraper](https://apify.com/nexgendata/jd-com-product-scraper?fpr=2ayu9b) — retail-side Chinese e-commerce (京东)
- For 1688.com (Alibaba's Chinese-domestic wholesale arm), see our broader China e-commerce fleet

#### How fresh is the supplier data?

Live — every run hits Made-in-China.com directly at run time. There's no cache, no stale-data layer. Suppliers that joined MIC yesterday appear in today's run (if their listing is indexed). Badge changes (newly audited, lost Gold status) reflect in real time.

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

This actor scrapes publicly-visible directory information that MIC makes available to non-logged-in visitors. No login, no credentials, no protected data. As with all web scraping, respect MIC's robots.txt (the actor's pacing already does so), don't overload their servers, and use the data for legitimate B2B sourcing purposes. Consult counsel for your specific jurisdiction.

#### What if I hit a `_blocked: true` record?

Rare on MIC — much rarer than Alibaba. If you do hit one, re-run with `useProxy: true` (the default) and you'll almost always pass on the second attempt. The actor's Playwright fallback handles transient blocks automatically; the stub only appears when both passes fail in a single run.

### Pricing

Pay-per-event:

- **Actor start:** $0.00005 (effectively free)
- **Per supplier record:** $0.05

A 100-supplier run costs **$5.00** — vs MIC's own paid "Premium Buyer" subscription at $59-249/month (limited exports), ImportYeti at $99/mo (US customs only), or 2-3 days of manual procurement-analyst time at $50-150/hr. `_blocked` placeholder records (rare on MIC) are billed at the per-record rate.

Pricing is calibrated against our lead-gen fleet: more expensive than [B2B Leads Finder](https://apify.com/nexgendata/b2b-leads-finder?fpr=2ayu9b) ($0.015 / lead — pure contact data) because MIC supplier records carry 13+ fields including audit status, business type, and employees range — strictly more procurement-actionable per record. Less expensive than [Company Email Finder](https://apify.com/nexgendata/company-email-finder?fpr=2ayu9b) ($0.10 / hit) because MIC records don't include direct email (post-process for that).

### Made-in-China.com vs. the alternatives — head-to-head

| Tool | What it covers | Cost | Export | Real-time | Coverage |
|------|----------------|------|--------|-----------|----------|
| **NexGenData Made-in-China Supplier Finder** (this actor) | Live MIC directory — supplier shortlist by category, province, Verified/Audited/Gold, employees, business type | **$0.05 / supplier record** ($5 per 100) | CSV / JSON / Excel / API | Yes — every run hits MIC live | ~3.6M suppliers across all China + some Vietnam / India |
| MIC's built-in search | Same directory data, manually clicked | Free, no export, no programmatic filter | None | Yes | Same as this actor |
| MIC "Premium Buyer" subscription | Search + saved-supplier lists, limited monthly exports | $59-249/mo (annual contract) | Limited (gated by tier) | Yes | MIC-only |
| NexGenData Alibaba Supplier Finder | Alibaba.com directory (parked due to anti-bot) | n/a | n/a | n/a | Alibaba pool (different, often complementary) |
| ImportYeti | US customs bill-of-lading (post-shipment forensics) | Free tier limited; paid $99-$499/mo | CSV | 30-90 day lag | US imports only |
| ImportGenius | Global customs data | $299-$799+/mo | CSV / API | 30-90 day lag | US + India + other |
| Panjiva (S\&P Global) | Enterprise trade data | $5,000+/yr enterprise license | API / dashboards | 30-90 day lag | Global customs |
| Manual procurement analyst | Email + phone outreach to shortlist | $50-150/hr labor | Spreadsheet | Days-weeks | Whatever the analyst has time to click |

**Why this combination wins for cross-border buyers:**

- MIC directory data is **live + buyer-facing-rich** (business type, employees, year established, audit status published in HTML). Customs-data tools have lag and are mostly US-import-focused.
- This actor's `$0.05 / record` pricing means a full 500-supplier category sweep costs **$25** — vs a $99-$799 monthly subscription floor on customs-data tools.
- Output is structured CSV / JSON — drop straight into Airtable, Pipedrive, HubSpot, Notion, SAP Ariba supplier-list imports. MIC's own UI exports are gated by their subscription tier and are messy to post-process.
- For **shipment verification** (does this supplier actually export containers? to whom? at what volume?), pair this with ImportYeti. **MIC supplier shortlist → customs-data verification → email enrichment → sample request → factory audit** is the canonical cross-border sourcing funnel.

### Tips for highest-quality supplier lists

1. **Stack the trust filters.** Set `verifiedOnly: true` AND `auditedOnly: true` AND a province filter for serious procurement. The audited-supplier subset on MIC is the highest-trust public tier short of paying for SGS / Bureau Veritas inspection ($800-3,000 per factory).
2. **Search English-first, narrow keywords.** MIC's directory is English-indexed. Better: 5 queries × 50 results = 250 records covering "monocrystalline solar panel", "polycrystalline solar panel", "solar module 400W", "solar inverter", "solar mounting bracket". Worse: one "solar" query × 250 results — pollutes with unrelated SKUs.
3. **Diversify by province.** Don't pull 100% Guangdong suppliers — supply-chain resilience requires geographic redundancy. Run separate queries per province (Guangdong, Zhejiang, Jiangsu, Shandong, Fujian) and merge the CSVs.
4. **Pair with email enrichment.** Run the supplier URLs through [Website Email Extractor](https://apify.com/nexgendata/website-email-extractor?fpr=2ayu9b) and [Company Email Finder](https://apify.com/nexgendata/company-email-finder?fpr=2ayu9b) — 50-70% email-hit rates off MIC minisites in practice (better than Alibaba).
5. **Re-run quarterly.** Supplier rosters shift constantly. Schedule a quarterly delta scrape via Apify Scheduler and you'll catch new audited factories, badge upgrades, and response-rate drops (an early defection signal) before competitors do.
6. **Cross-reference with demand signals.** Combine with [China Trends Tracker](https://apify.com/nexgendata/china-trends-tracker?fpr=2ayu9b) and [Weibo Hot Search Tracker](https://apify.com/nexgendata/weibo-hot-search-tracker?fpr=2ayu9b) to find categories where supplier supply is rising faster than consumer demand (commoditizing — avoid) vs. demand rising faster than supply (arbitrage window — enter).

### Integration: Apify schedules + webhooks

Schedule this actor to run weekly / monthly via Apify Scheduler — get a fresh CSV emailed to your procurement team every Monday morning. Or use Apify's webhook integration to push new dataset items into:

- **Airtable** — automatic supplier-shortlist tab with audit-status column
- **HubSpot** — auto-create company records with `years_on_platform`, `business_type`, `employees_range` as custom properties
- **Slack** — daily "5 new audited valve manufacturers in Zhejiang" alert to your sourcing channel
- **Google Sheets** — live dashboard for procurement leadership

### Related actors from NexGenData

- [JD.com Product Scraper 🇨🇳🛒](https://apify.com/nexgendata/jd-com-product-scraper?fpr=2ayu9b) — Retail-side China e-commerce intelligence (京东). Use alongside this actor to cover both B2B (MIC) and B2C (JD.com) Chinese markets.
- [China Trends Tracker 🇨🇳📈](https://apify.com/nexgendata/china-trends-tracker?fpr=2ayu9b) — Baidu / Weibo / Douyin trending topics for category demand signals.
- [Weibo Hot Search Tracker 🔥](https://apify.com/nexgendata/weibo-hot-search-tracker?fpr=2ayu9b) — Real-time Weibo trending topics + sentiment. Pair with this actor to time category entry against viral demand.
- [B2B Leads Finder 🎯](https://apify.com/nexgendata/b2b-leads-finder?fpr=2ayu9b) — Verified B2B contact emails by company / job title (Apollo / ZoomInfo alternative).
- [Company Email Finder 📧](https://apify.com/nexgendata/company-email-finder?fpr=2ayu9b) — Domain-pattern + public-source email finder for supplier outreach.

### Try the full NexGenData fleet

281+ scrapers, lead-gen tools, MCP servers, and analytics actors at [apify.com/nexgendata](https://apify.com/nexgendata?fpr=2ayu9b).

***

🇨🇳 Built by **NexGenData**. Questions, custom Made-in-China data feeds, or enterprise pricing? Reach us through the Apify Console or visit [thenextgennexus.com](https://thenextgennexus.com).

# Actor input Schema

## `searchQuery` (type: `string`):

Product or category to search for on Made-in-China.com (e.g. 'solar panels', 'led lights', 'silicone kitchenware', 'industrial valves'). English keywords work best — Made-in-China.com is an English-first export-oriented directory.

## `region` (type: `string`):

Filter suppliers by Chinese province or major city (e.g. 'Guangdong', 'Zhejiang', 'Shanghai', 'Jiangsu', 'Shenzhen', 'Yiwu'). Match is case-insensitive substring on province OR city. Leave empty for all regions.

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

If true, only return suppliers tagged 'Verified' on Made-in-China.com. Verified is MIC's basic trust badge — strong signal vs unbadged drop-ship middlemen.

## `auditedOnly` (type: `boolean`):

If true, only return suppliers tagged 'Audited' / 'On-site Check' on MIC. Audited = MIC sent an inspector to the factory. Higher trust than Verified-only. Recommended for serious procurement and import deals >$5K MOQ.

## `maxResults` (type: `integer`):

Maximum number of supplier records to return. Each supplier record is billed separately. Start small (10-30) for exploration; scale to hundreds for full lead-list builds.

## `useProxy` (type: `boolean`):

Route HTTP/Playwright traffic through Apify's proxy. Made-in-China.com is much less aggressive than Alibaba — datacenter proxy is usually sufficient. Leave enabled for consistent yields.

## Actor input object example

```json
{
  "searchQuery": "solar panels",
  "region": "",
  "verifiedOnly": false,
  "auditedOnly": false,
  "maxResults": 25,
  "useProxy": true
}
```

# 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 = {
    "searchQuery": "solar panels",
    "region": "",
    "verifiedOnly": false,
    "auditedOnly": false,
    "maxResults": 25,
    "useProxy": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/made-in-china-b2b-suppliers").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 = {
    "searchQuery": "solar panels",
    "region": "",
    "verifiedOnly": False,
    "auditedOnly": False,
    "maxResults": 25,
    "useProxy": True,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/made-in-china-b2b-suppliers").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuery": "solar panels",
  "region": "",
  "verifiedOnly": false,
  "auditedOnly": false,
  "maxResults": 25,
  "useProxy": true
}' |
apify call nexgendata/made-in-china-b2b-suppliers --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/made-in-china-b2b-suppliers",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Made-in-China B2B Supplier Finder",
        "description": "Scrape Made-in-China.com B2B suppliers — company, province/city, years on platform, Gold / Verified / Audited status, business type, employees, founded year, main products, response rate. Alibaba alternative with friendlier anti-bot. Importers, dropshippers, B2B.",
        "version": "0.1",
        "x-build-id": "4HSkWfElQsJyStdcL"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~made-in-china-b2b-suppliers/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-made-in-china-b2b-suppliers",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nexgendata~made-in-china-b2b-suppliers/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-made-in-china-b2b-suppliers",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nexgendata~made-in-china-b2b-suppliers/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-made-in-china-b2b-suppliers",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "searchQuery"
                ],
                "properties": {
                    "searchQuery": {
                        "title": "Search query (product / category)",
                        "type": "string",
                        "description": "Product or category to search for on Made-in-China.com (e.g. 'solar panels', 'led lights', 'silicone kitchenware', 'industrial valves'). English keywords work best — Made-in-China.com is an English-first export-oriented directory.",
                        "default": "solar panels"
                    },
                    "region": {
                        "title": "Region / province filter (optional)",
                        "type": "string",
                        "description": "Filter suppliers by Chinese province or major city (e.g. 'Guangdong', 'Zhejiang', 'Shanghai', 'Jiangsu', 'Shenzhen', 'Yiwu'). Match is case-insensitive substring on province OR city. Leave empty for all regions.",
                        "default": ""
                    },
                    "verifiedOnly": {
                        "title": "Verified suppliers only",
                        "type": "boolean",
                        "description": "If true, only return suppliers tagged 'Verified' on Made-in-China.com. Verified is MIC's basic trust badge — strong signal vs unbadged drop-ship middlemen.",
                        "default": false
                    },
                    "auditedOnly": {
                        "title": "Audited (on-site checked) suppliers only",
                        "type": "boolean",
                        "description": "If true, only return suppliers tagged 'Audited' / 'On-site Check' on MIC. Audited = MIC sent an inspector to the factory. Higher trust than Verified-only. Recommended for serious procurement and import deals >$5K MOQ.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of supplier records to return. Each supplier record is billed separately. Start small (10-30) for exploration; scale to hundreds for full lead-list builds.",
                        "default": 50
                    },
                    "useProxy": {
                        "title": "Use Apify Proxy",
                        "type": "boolean",
                        "description": "Route HTTP/Playwright traffic through Apify's proxy. Made-in-China.com is much less aggressive than Alibaba — datacenter proxy is usually sufficient. Leave enabled for consistent yields.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
