# Made-in-China Scraper \[Only $0.95/1K💰] | Suppliers | FOB | MOQ (`ahmed_jasarevic/made-in-china-com-scraper`) Actor

Scrape Made-in-China.com B2B products and suppliers - product name, FOB price range, MOQ, specs, images, supplier company profile, business type, member tier and audited status. Build China sourcing shortlists and price data with no login.

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

## Pricing

from $0.90 / 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?

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

## Made-in-China Scraper

Made-in-China.com scraper that turns any product keyword into a structured dataset of Chinese suppliers and products - company name, FOB price range, MOQ, specifications, certifications, business type and membership tier. No login, no browser, no API key.

### Main Use Cases

- Product sourcing and supplier discovery - find Chinese manufacturers for any product (LED lights, solar panels, CNC machines, packaging, textiles, auto parts)
- Price and MOQ intelligence - compare FOB price ranges and minimum order quantities across competing suppliers
- Supplier verification - filter to Audited Suppliers and Diamond Members and skip pure trading companies
- B2B lead generation - build target lists of Chinese manufacturers and trading companies by category and location
- Market and competitor research on Chinese manufacturing, plus recurring price monitoring

### How It Works

![How the Made-in-China Scraper works: keyword to product rows, FOB prices and supplier profiles.](https://api.apify.com/v2/key-value-stores/oeuA0kLOyhbRM4fzt/records/how-it-works-made-in-china.webp)

The actor is a plain HTTP (Cheerio) crawler. Each keyword in `keywords` is turned into a Made-in-China product search page and paginated (`maxPagesPerKeyword`), and each result card is parsed into a product row with its supplier context. When `enrichDetails` is on, the actor also opens each product's detail page to add the full specification table, description, image gallery, certification text and the exact FOB price range and MOQ.

Supplier company profiles are written to a separate `suppliers` dataset, while products go to the default `products` dataset - so one run gives you both sides of the marketplace.

Note on contact data: Made-in-China hides supplier phone, fax and email behind a login. The actor returns every publicly available field (company name, profile, business type, location, certifications, member tier) so you can reach suppliers through their Made-in-China storefront or inquiry page.

### Find Chinese Suppliers And Compare FOB Prices

Search results expose the numbers procurement teams actually compare - FOB price range, currency and minimum order quantity - next to the supplier's company name, business type and location. Turn on `enrichDetails` to add the full technical specification table, certifications and images for each product, and filter the supplier dataset by audited status to shortlist third-party-verified manufacturers.

### Input

| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| `keywords` | string\[] | No | `["drilling rig"]` | Product search keywords or category names, e.g. `"led light"`, `"solar panel"`. Each is turned into a listing page and paginated. |
| `startUrls` | array | No | - | Optional Made-in-China search/listing URLs, product detail URLs or supplier company URLs. Listing pages are paginated automatically. |
| `maxItems` | integer | No | `30` | Maximum product rows to extract. Free users are capped at 10. |
| `maxPagesPerKeyword` | integer | No | `3` | Result pages to paginate per keyword (1-20). |
| `enrichDetails` | boolean | No | `true` | Fetch each product detail page for the full image gallery, description, specifications, certification and exact FOB price / MOQ. Adds a per-product detail charge. |
| `maxRequestsPerCrawl` | integer | No | `250` | Hard cap on the total number of HTTP requests the crawler may make. |
| `proxy` | object | No | off | Apify Proxy picker. |

### Output

Two datasets are produced in one run.

**Products (default dataset)** - one row per product:

| Field | Description |
|---|---|
| `recordType` | Always `product` |
| `productName`, `productId`, `productUrl` | Product name, ID and canonical URL |
| `priceRange`, `currency`, `priceMin`, `priceMax` | FOB price range and parsed numeric bounds |
| `moq`, `moqQty`, `moqUnit` | Minimum order quantity as published and parsed |
| `incoterm` | Detected Incoterm (FOB / CIF / CFR / EXW / FCA) |
| `image`, `images` | Main image and full image list |
| `description`, `category`, `sku`, `specifications` | Detail-page content and key-value spec table |
| `certification` | Certification text when published |
| `supplierName`, `supplierUrl`, `supplierSlug`, `supplierLocation`, `supplierCountry` | Supplier context |
| `businessType`, `businessTypes` | Manufacturer / Trading Company signals |
| `memberTier`, `memberSince`, `audited`, `rating` | Membership and trust signals |
| `companyId`, `companyProfile` | Internal company id and merged profile object |
| `source`, `scrapedAt` | Origin of the row and scrape timestamp |

**Suppliers (separate dataset)** - one row per company: company name, slug, URL, location, country, address, business types, member tier, member since, audited flag, rating/stars, year established, employees, registered capital, annual revenue, main products, main markets, incoterms, payment terms and lead time.

### Example Input

```json
{
  "keywords": ["led light", "solar panel"],
  "maxItems": 100,
  "maxPagesPerKeyword": 3,
  "enrichDetails": true
}
```

### Example Output

Product row:

```json
{
  "recordType": "product",
  "productName": "IP67 Waterproof LED Floor Tile Light for Landscape Lighting",
  "productId": "nTBRSZOwZYra",
  "productUrl": "https://lishidagp.en.made-in-china.com/product/nTBRSZOwZYra/...html",
  "priceRange": "US$44.00-49.00",
  "currency": "USD",
  "priceMin": 44,
  "priceMax": 49,
  "moq": "100 Pieces",
  "moqQty": 100,
  "moqUnit": "Pieces",
  "incoterm": "FOB",
  "supplierName": "Sichuan Lishida Smart Lighting Technology Co., Ltd.",
  "supplierUrl": "https://lishidagp.en.made-in-china.com",
  "supplierLocation": "Sichuan, China",
  "businessType": "Manufacturer/Factory",
  "memberTier": "Diamond Member",
  "audited": true,
  "source": "listing",
  "scrapedAt": "2026-10-15T15:10:00.000Z"
}
```

Supplier row:

```json
{
  "recordType": "supplier",
  "companyName": "Zhejiang Jiongtai Numerical Control Equipment Co., Ltd.",
  "companyUrl": "https://jiongtaicnc.en.made-in-china.com/",
  "location": "Wenzhou, Zhejiang, China",
  "country": "China",
  "businessTypes": ["Manufacturer/Factory & Trading Company"],
  "memberTier": "Diamond Member",
  "audited": true,
  "yearEstablished": "2014",
  "employees": "14",
  "mainProducts": ["CNC Lathe", "CNC Machine", "Vertical Machining Center"],
  "mainMarkets": ["North America", "Western Europe", "Southeast Asia"],
  "paymentTerms": "L/C, T/T, PayPal, Western Union",
  "scrapedAt": "2026-10-15T15:10:00.000Z"
}
```

### Integrations & Automation

- **Apify API / JS / Python clients** - feed products and suppliers into a sourcing dashboard, ERP or database.
- **Webhooks** - trigger a downstream workflow when a run finishes.
- **Zapier, Make, Google Sheets** - export supplier shortlists and price tables for the buying team.
- **Scheduling** - run weekly over a category keyword set to track FOB price and MOQ movement over time.

### Related Actors

- [Made-in-China.com Scraper - Suppliers, Prices & MOQ](https://apify.com/haketa/made-in-china-scraper) - the established keyword-driven Made-in-China scraper.
- [Made-in-China Scraper - Suppliers, Products & B2B Leads](https://apify.com/scrapesage/made-in-china-scraper) - products plus full manufacturer profiles.
- [Made-in-China Scraper - Chinese Supplier Directory](https://apify.com/rastriq/made-in-china-scraper) - supplier-directory focused.
- [Made-in-China Supplier & Product Scraper](https://apify.com/automation-lab/made-in-china-scraper) - public listing-row extraction.

### FAQ

#### Why use this actor instead of the official API?

Made-in-China.com does not publish a public product or supplier API for buyers. The only programmatic access is through the site's own search and listing pages, which is what this actor reads. It works without an account, and there is nothing to register or rotate.

#### What are alternatives to this actor?

For hosted access instead of scraping, commercial third-party APIs exist (for example XCrawl and other independent Made-in-China endpoint providers), and paid supplier-database products sell pre-packaged China factory lists. Those require a subscription or per-call payment; this actor is a self-contained, pay-per-result scrape you can run yourself.

#### Where is the supplier phone / email?

Made-in-China hides supplier phone, fax and email behind a login wall, so they are not in the public pages this actor reads. Every other public field is returned - company name, profile URL, business type, location, certifications, member tier and payment terms - so you can contact suppliers through the platform's own storefront or inquiry page.

#### Can I verify a supplier's credibility?

Yes - each row carries the signals Made-in-China publishes: `audited` (third-party Audited Supplier status), `memberTier` (e.g. Diamond Member) and `businessType` (Manufacturer/Factory vs Trading Company). Filter the supplier dataset on these to build a shortlist before outreach.

### For AI Agents & LLM Apps

Purpose: return one row per Made-in-China product (default dataset) and one row per supplier company (separate `suppliers` dataset) for a set of product keywords.

Minimal working input:

```json
{ "keywords": ["led light"] }
```

Output fields - products: `recordType`, `productName`, `productId`, `productUrl`, `priceRange`, `currency`, `priceMin`, `priceMax`, `moq`, `moqQty`, `moqUnit`, `incoterm`, `image`, `images`, `description`, `category`, `sku`, `specifications`, `certification`, `supplierName`, `supplierUrl`, `supplierSlug`, `supplierLocation`, `supplierCountry`, `businessType`, `businessTypes`, `memberTier`, `memberSince`, `audited`, `rating`, `companyId`, `companyProfile`, `source`, `scrapedAt`. Suppliers: `recordType`, `companyName`, `companyUrl`, `location`, `country`, `address`, `businessTypes`, `memberTier`, `memberSince`, `audited`, `rating`, `yearEstablished`, `employees`, `registeredCapital`, `annualRevenue`, `mainProducts`, `mainMarkets`, `incoterms`, `paymentTerms`, `leadTime`.

Behaviors an agent should know:

- Products are written to the default dataset, suppliers to a separate one - read both to get the full picture.
- `keywords` drives the search; `startUrls` (optional) overrides or supplements it with explicit listing / product / supplier URLs.
- `maxItems` defaults to 30 and caps product rows; free users are capped at 10.
- `enrichDetails` defaults to `true` and opens one extra request per product, adding the spec table, gallery, description and exact FOB / MOQ - it also adds a per-product detail charge. Set it to `false` for a lighter, listing-only run.
- `maxPagesPerKeyword` defaults to 3 and `maxRequestsPerCrawl` to 250; raise them only after validating the input on a small run.
- Supplier phone/email are not available - they sit behind a Made-in-China login.

Billing: pay-per-event - about $0.95 per 1,000 products, about $1 per 1,000 supplier companies, plus a detail-enrichment event (about $1 per 1,000) and the one-time actor-start event; lower on paid Apify plans.

### Legal & Compliance Disclaimer

This actor is independent and is not affiliated with, endorsed by, or sponsored by Made-in-China.com. It requests only publicly available Made-in-China listing, product and supplier-company pages; it does not log in, submit inquiries, or access account-only data. Users are responsible for complying with Made-in-China.com's terms of service and any applicable law when storing or republishing supplier data.

### SEO Keywords

made in china scraper, made in china supplier data, china supplier database, china b2b sourcing, chinese manufacturer data, fob price extraction, moq data, china factory search, made in china api, alibaba alternative sourcing, supplier verification audited supplier, b2b lead generation china, import export sourcing data, product price monitoring china, hs code product data, china sourcing tools, b2b products dataset, china manufacturers directory

# Actor input Schema

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

Product search keywords or category names (e.g. "drilling rig", "led light", "solar panel"). Each keyword is turned into a Made-in-China listing page and paginated.

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

Optional. Made-in-China search/listing URLs, product detail URLs, or supplier company URLs. Listing pages are paginated automatically.

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

Maximum number of product rows to extract. Free users are capped at 10.

## `maxPagesPerKeyword` (type: `integer`):

How many result pages to paginate per keyword.

## `enrichDetails` (type: `boolean`):

Fetch each product detail page to add the full image gallery, description, specifications, certification and the exact FOB price range / MOQ. Adds the 'detail-enrichment' pay-per-event charge per product (if configured).

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

Select proxies to be used by your crawler.

## `maxRequestsPerCrawl` (type: `integer`):

Hard cap on the total number of HTTP requests the crawler may make.

## Actor input object example

```json
{
  "keywords": [
    "drilling rig"
  ],
  "startUrls": [],
  "maxItems": 30,
  "maxPagesPerKeyword": 3,
  "enrichDetails": true,
  "proxy": {
    "useApifyProxy": false
  },
  "maxRequestsPerCrawl": 250
}
```

# Actor output Schema

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

No description

## `suppliers` (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 = {
    "keywords": [
        "drilling rig"
    ],
    "startUrls": [],
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/made-in-china-com-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 = {
    "keywords": ["drilling rig"],
    "startUrls": [],
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/made-in-china-com-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 '{
  "keywords": [
    "drilling rig"
  ],
  "startUrls": [],
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call ahmed_jasarevic/made-in-china-com-scraper --silent --output-dataset

```

## MCP server setup

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