# Made-in-China Scraper: Products, Prices, MOQ and Suppliers (`themineworks/made-in-china-scraper`) Actor

Scrape Made-in-China.com product search by keyword or URL: one row per product with price range, quantity price tiers, MOQ, specs, supplier name, manufacturer or trading company, province, Diamond or Gold member, audited badge and years on the platform. No login.

- **URL**: https://apify.com/themineworks/made-in-china-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.88 / 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: Products, Prices, MOQ and Suppliers

[![30 Made-in-China products with price tiers and supplier details in 33 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/made-in-china-scraper-hero.png)](https://console.apify.com/actors/IFOCOwP0f3trFi9tx/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), with over 140,000 runs across 170+ public actors.

Updated 20 Oct 2026: first release. Keyword search and pasted search links, quantity price tiers, MOQ, specs, supplier business type, province, membership, audit badge and years on the platform, one flat row per product. Bookmark this Actor on its Store page so it is one click away next time.

### Why choose this actor?

- **The numbers a buyer compares, in columns.** Every row has the price range split into `price_low` and `price_high`, the minimum order split into `moq_quantity` and `moq_unit`, and, with product pages on, the quantity price tiers (100 to 499 pieces at one price, 500 to 1,999 at another). Sort a whole search by price or MOQ in a spreadsheet without cleaning text.
- **The supplier next to the product.** Company name and showroom link, Manufacturer/Factory or Trading Company, province, Diamond or Gold member, the year it joined and years on the platform, Audited Supplier and Industry-leading Factory badges, capability stars, rating and verified labels such as OEM Services. In our test runs `member_since` was filled on 210 of 210 rows.
- **Pay per product, nothing for errors.** Links that are not Made-in-China searches, the summary row and duplicates found by two searches are never charged. No Made-in-China account, cookies or API key.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/IFOCOwP0f3trFi9tx/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works E-commerce and marketplaces family:** [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [AliExpress Scraper](https://apify.com/themineworks/aliexpress-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Kleinanzeigen.de Scraper](https://apify.com/themineworks/kleinanzeigen-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Try it in one minute

Paste this into the input (JSON view) and press Start. It returns the first 30 products for "solar panel" with their product pages opened. It took 33 seconds in our test run:

```json
{
  "searchQueries": ["solar panel"],
  "maxItems": 30
}
```

Put several keywords on separate lines to run several searches at once, or paste a search link from your browser into `startUrls`. A product that two of your searches find is delivered once.

Apify's free plan includes $5 of credit every month, which covers about 1,800 products at this actor's price.

#### Copy to your AI assistant

```text
themineworks/made-in-china-scraper on Apify. Searches Made-in-China.com (Chinese B2B suppliers) by keyword or search link and returns one flat row per product with price range, quantity price tiers, MOQ, specs and the supplier, with no login. Call ApifyClient("TOKEN").actor("themineworks/made-in-china-scraper").call(run_input={"searchQueries": ["solar panel"], "maxItems": 100}), then client.dataset(run["defaultDatasetId"]).list_items().items. Give searchQueries (list of keywords) or startUrls (list of made-in-china.com productdirectory.do or products-search links) or both; up to 100 searches. Optional: maxItems (default 50, 1 to 5000, per search), includeDetails (default true; opens each product page for price_tiers, member_since, years_on_platform, specifications, payment_terms, port, images, category_path). Product rows have no _type field and carry product_id, title, product_url, image_url, image_count, price_low, price_high, price_currency, price_raw, price_type, price_tiers (min_quantity, max_quantity, quantity_raw, unit, price, currency), moq_quantity, moq_unit, moq_raw, attributes, specifications, category_path, payment_terms, port, incoterms, lead_time, main_products, main_markets, export_year, supplier_address, supplier_name, supplier_url, supplier_id, supplier_subdomain, supplier_type, is_manufacturer, is_trading_company, supplier_location, supplier_province, supplier_country, membership, member_since, years_on_platform, is_audited_supplier, audit_report_url, is_leading_factory, capability_stars, supplier_rating, verified_labels, verified_labels_total, secured_trading, sample_available, rush_order, has_3d_view, has_video, is_sponsored, details_scraped, keyword, search_url, page, position, scraped_at. Each run also writes one row with _type "summary", one with _type "info" when products were delivered, and a row with _type "error" for each input that could not be read; none of these is charged. Full spec: GET https://api.apify.com/v2/acts/themineworks~made-in-china-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
```

### Key features

- **Keyword or link.** Type keywords the way you would in the Made-in-China search box, or paste a `productdirectory.do` search link or a `products-search/hot-china-products` catalog link. Pages after the first are followed from the site's own pager, 30 products a page.
- **Quantity price tiers.** With `includeDetails` on (the default), each product page is opened and its price ladder is returned as `price_tiers`, one entry per quantity break with its minimum, maximum, unit and price. 88 of 210 rows in our test had tiers; the rest list one price range for every quantity.
- **Supplier profile fields.** Business type, province and country, membership level and the year it joined, years on the platform, audit report link, payment terms, port, Incoterms, lead time, main products and main markets, as the supplier lists them on the product page.
- **Card attributes and full specs.** `attributes` holds the 4 to 6 key facts shown on the search card (Warranty, Material, Certification). `specifications` holds the whole Basic Info table of the product page (model number, HS code, package size, production capacity and so on).
- **Sponsored or organic.** `is_sponsored` marks the paid placements Made-in-China puts at the top of each results page, so you can keep or drop them.
- **Stops cleanly.** Two pages in a row with no new products end a search; six failed or blocked pages in a row end the run; the run stops before its time limit and keeps every row it read. The summary row says why.

### How to use it

#### Basic: one product, many suppliers

```json
{
  "searchQueries": ["bamboo toothbrush"],
  "maxItems": 300
}
```

Ten pages of results, one row per listing. Sort by `price_low` to see the cheapest offers, or by `moq_quantity` to find suppliers that take small orders.

#### Sourcing shortlist: manufacturers only, in one province

Run a search, then filter the rows on `is_manufacturer: true`, `is_audited_supplier: true` and `supplier_province` (for example Zhejiang or Guangdong). `years_on_platform` and `capability_stars` help rank what is left. Each row carries `supplier_url`, the supplier's showroom, to contact them.

#### Price benchmarking across keywords

```json
{
  "searchQueries": ["led high bay light", "led panel light", "led flood light"],
  "maxItems": 150
}
```

Each keyword is its own search, labelled in `keyword`. Use `price_tiers` to compare the price at the quantity you plan to order, not only the headline range.

#### Category research from a catalog page

```json
{
  "startUrls": ["https://www.made-in-china.com/products-search/hot-china-products/LED_Light.html"],
  "maxItems": 200
}
```

`category_path` gives the category of each product (for example Lights & Lighting, LED Interior Lighting, LED High Bay Light), so you can count listings and suppliers per sub category.

#### Fast card-only export

```json
{
  "searchQueries": ["office chair"],
  "maxItems": 1000,
  "includeDetails": false
}
```

Rows come from the search cards only: price range, MOQ, card attributes, supplier, location, badges. In our test, 150 products took 33 seconds this way. Same price per product.

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `searchQueries` | array of strings | empty | Keywords, one search each, for example `solar panel`. |
| `startUrls` | array of strings | empty | Made-in-China search or catalog links copied from your browser. |
| `maxItems` | integer | `50` | Most products per search (per keyword or per link), 1 to 5,000. |
| `includeDetails` | boolean | `true` | Opens each product page for price tiers, member since, specs, payment terms, port, images and category path. |

Give `searchQueries`, `startUrls` or both. Up to 100 searches per run.

### What data do you get?

One row per product. Product rows have no `_type` field; the summary, info and error rows do, so a filter on `_type` separates them.

| Field | What it is |
|---|---|
| `product_id` | Made-in-China product id from the link, e.g. `rUcYmHtVvLWC` |
| `product_number` | Numeric product number (product page) |
| `title`, `product_url` | Listing title and link |
| `image_url`, `image_count`, `images` | Main picture, number of pictures, all picture links (product page) |
| `price_low`, `price_high`, `price_currency`, `price_raw` | Price range as numbers, currency code, and the text as shown |
| `price_type` | Price basis on the card, e.g. `FOB Price` |
| `price_tiers` | Quantity price breaks: `min_quantity`, `max_quantity`, `quantity_raw`, `unit`, `price`, `currency` (product page) |
| `moq_quantity`, `moq_unit`, `moq_raw` | Minimum order, e.g. `10000` and `wp` |
| `attributes` | Key facts shown on the search card, name to value |
| `specifications` | The product page's Basic Info table, name to value |
| `category_path` | Category of the product, top level first (product page) |
| `availability` | e.g. `InStock` (product page) |
| `payment_terms`, `port`, `incoterms`, `lead_time` | Trade terms the supplier lists (product page) |
| `main_products`, `main_markets`, `export_year`, `supplier_address` | Supplier profile lines when the product page shows them |
| `supplier_name`, `supplier_url`, `supplier_id`, `supplier_subdomain` | The supplier and its Made-in-China showroom |
| `supplier_type`, `is_manufacturer`, `is_trading_company` | Business type as listed, and two flags for filtering |
| `supplier_location`, `supplier_province`, `supplier_country` | e.g. `Jiangsu, China`, `Jiangsu`, `China` |
| `membership` | e.g. `Diamond Member`, `Gold Member` |
| `member_since`, `years_on_platform` | Year the supplier joined and years since (product page) |
| `is_audited_supplier`, `audit_report_url` | Audited Supplier badge and its report link |
| `is_leading_factory` | Industry-leading Audited Factory mark |
| `capability_stars`, `supplier_rating` | Supplier Capability Index out of 5, review rating out of 5 |
| `verified_labels`, `verified_labels_total` | Verified strength labels shown, e.g. `OEM Services`, and how many the supplier has |
| `secured_trading`, `sample_available`, `rush_order`, `has_3d_view`, `has_video` | Listing flags |
| `is_sponsored` | Paid placement on the results page |
| `details_scraped`, `details_error` | Whether the product page was read, and why not when it failed |
| `keyword`, `search_url`, `page`, `position` | The search that found the product, its results page, and its place in that search |
| `scraped_at` | When the row was written |

**Summary row** (`_type: "summary"`, never charged): `searches_requested`, `searches_read`, `searches_failed`, `searches_not_started`, `pages_read`, `products_found`, `products_delivered`, `charged_for`, `duplicates_skipped`, `details_requested`, `details_ok`, `details_failed`, `http_requests`, `http_megabytes`, `ended_on_deadline`, `stopped_by_max_cost`, `stopped_by_block_guard`, `shortfall_reason` when fewer products came back than asked, and `per_search`, one entry per search with `pages`, `products_found`, `products_delivered` and why it `stopped`. The same summary is saved as the `OUTPUT` record of the run.

**Error rows** (`_type: "error"`, never charged): one per input that could not be read, with `error_type` (`invalid_url`, `not_found`, `blocked`, `fetch_error`), `identifier`, `reason` and `http_status`.

#### Stable fields for automations

These were present in every product row of our test runs (210 rows from 3 searches, details on), and their names will not change:

| Field | What it is |
|---|---|
| `product_id` | The key to store and join on |
| `title` | Listing title |
| `product_url` | Link to the product |
| `image_url` | Main picture |
| `price_raw` | Price as shown |
| `price_low` | Lowest price |
| `moq_raw` | Minimum order as shown |
| `supplier_name` | Supplier company |
| `supplier_url` | Supplier showroom |
| `supplier_location` | Province and country |
| `membership` | Membership level |
| `is_audited_supplier` | Audited badge |
| `is_sponsored` | Paid placement |
| `keyword` | Search that found it |
| `position` | Place in the search |
| `member_since` | Year joined (with details on) |
| `category_path` | Category (with details on) |

Optional, present only when Made-in-China shows a value: `price_tiers` (88 of 210 test rows; the rest have one price range), `supplier_type` and the two business type flags (122 of 210: many suppliers do not state a business type), `supplier_rating`, `verified_labels`, `attributes` (keyword searches show them, catalog pages do not), `audit_report_url`, `payment_terms`, `port`, and the supplier profile lines.

#### Output examples

One product from the "solar panel" search with product pages on (test run, 20 Oct 2026, trimmed):

```json
{
  "product_id": "SaIpMFrEbdYi",
  "title": "640W-670W Competitive Price Protection Class II Solar Power Panel",
  "product_url": "https://bjxidou.en.made-in-china.com/product/SaIpMFrEbdYi/China-640W-670W-Competitive-Price-Protection-Class-II-Solar-Power-Panel.html",
  "image_url": "https://image.made-in-china.com/202f0j00AInvFTECZRpl/640W-670W-Competitive-Price-Protection-Class-II-Solar-Power-Panel.webp",
  "price_low": 91,
  "price_high": 92.86,
  "price_currency": "USD",
  "price_raw": "US$91.00-92.86",
  "price_type": "FOB Price",
  "price_tiers": [
    { "min_quantity": 35, "max_quantity": 999, "quantity_raw": "35-999 Pieces", "unit": "Pieces", "price": 92.86, "currency": "USD" },
    { "min_quantity": 1000, "max_quantity": 1999, "quantity_raw": "1,000-1,999 Pieces", "unit": "Pieces", "price": 91.86, "currency": "USD" },
    { "min_quantity": 2000, "quantity_raw": "2,000+ Pieces", "unit": "Pieces", "price": 91, "currency": "USD" }
  ],
  "moq_quantity": 35,
  "moq_unit": "Pieces",
  "attributes": { "Number of Cells": "144PCS", "Application": "Industrial", "Brand": "Longi", "Cell Technology": "Hpbc 2.0 / Bc Cell" },
  "supplier_name": "Xidou Tech (Bejing) Co Ltd",
  "supplier_url": "https://bjxidou.en.made-in-china.com",
  "supplier_type": "Trading Company",
  "is_manufacturer": false,
  "is_trading_company": true,
  "supplier_province": "Beijing",
  "supplier_country": "China",
  "membership": "Diamond Member",
  "is_audited_supplier": true,
  "capability_stars": 4,
  "verified_labels": ["Importers and Exporters", "Patents Awarded", "In-stock Capacity", "Fast Delivery"],
  "verified_labels_total": 21,
  "payment_terms": "LC, T/T, D/P, PayPal, Western Union, Small-amount payment",
  "incoterms": "FOB, EXW, CIF, CFR",
  "port": "Shanghai Port, Guangdong Port",
  "category_path": ["Metallurgy, Mineral & Energy", "Solar & Renewable Energy", "Solar Panels", "Monocrystalline Solar Panel"],
  "is_sponsored": false,
  "keyword": "solar panel",
  "page": 1,
  "position": 12
}
```

A supplier that has been on the platform longer, from the LED Light catalog page (same run, trimmed):

```json
{
  "product_id": "fvXEZlVBlbYy",
  "title": "China Factory Kid Party Decoration Blueberry LED Copper Wire Lights",
  "price_raw": "US$1.00-5.00",
  "moq_raw": "1,000 Pieces",
  "supplier_name": "Ningbo Weixin Houseware Co., Ltd.",
  "supplier_type": "Trading Company",
  "supplier_location": "Zhejiang, China",
  "membership": "Diamond Member",
  "member_since": 2019,
  "years_on_platform": 7,
  "is_audited_supplier": true,
  "port": "Ningbo Port",
  "is_sponsored": true,
  "keyword": "LED Light",
  "position": 1
}
```

The summary row of that run, trimmed:

```json
{
  "_type": "summary",
  "searches_requested": 3,
  "searches_read": 3,
  "pages_read": 9,
  "products_found": 270,
  "products_delivered": 210,
  "details_ok": 210,
  "details_failed": 0,
  "per_search": [
    { "search": "solar panel", "pages": 3, "products_found": 90, "products_delivered": 70, "stopped": "max_items_reached" },
    { "search": "bamboo toothbrush", "pages": 3, "products_found": 90, "products_delivered": 70, "stopped": "max_items_reached" },
    { "search": "https://www.made-in-china.com/products-search/hot-china-products/LED_Light.html", "pages": 3, "products_found": 90, "products_delivered": 70, "stopped": "max_items_reached" }
  ]
}
```

An error row for a link that is not a Made-in-China search (nothing charged):

```json
{ "_type": "error", "error_type": "invalid_url", "identifier": "https://example.com/not-mic", "reason": "Not a Made-in-China search link. Use a link that starts with https://www.made-in-china.com/productdirectory.do?word= or https://www.made-in-china.com/products-search/, or put the words in searchQueries." }
```

### Pricing

Pay per event: you pay for the products you receive, plus a flat $0.003 per run, whatever memory you choose. Opening product pages costs nothing extra.

| Event | When it is charged | Free plan | Bronze (Starter) | Silver (Scale) | Gold (Business) |
|---|---|---|---|---|---|
| `product-scraped` | Once per product row stored in your dataset | $2.69 per 1,000 | $2.51 per 1,000 | $2.24 per 1,000 | $1.88 per 1,000 |
| `run-start` | Once per run, after the first results page returned products | $0.003 | $0.003 | $0.003 | $0.003 |

The price of one product is the price per 1,000 divided by 1,000.

Never charged:

- links that are not Made-in-China searches (each gets an error row);
- a product that a second search of the same run finds again;
- products past your `maxItems`;
- the summary, info and error rows;
- a run with no valid input, or one whose searches return no products: the start fee is charged only once a results page has returned products;
- anything past your "Max cost per run". The actor checks the budget before each batch of rows and stops while the total is still below your limit, so the run ends SUCCEEDED with a partial result and a status message saying so.

### Run it on a schedule

1. Open the actor in Apify Console, set your input and click **Save as a new task**.
2. In the task, open **Schedules**, click **Add schedule** and pick how often (every day, every Monday at 08:00 and so on).
3. Compare runs on `product_id` and `price_low` to see new listings and price changes in your category.
4. Optional: add an integration (Google Sheets, Slack, a webhook) so each run lands where your team works.

### FAQ

#### What does this actor read?

Made-in-China.com's public product search and catalog pages, and, with `includeDetails` on, each listed product's public page, as anyone sees them without logging in. It does not log in, send inquiries or read contact details hidden behind a sign in.

#### How many products can I get?

Up to 5,000 per search and 100 searches per run. A results page holds 30 products; Made-in-China keeps serving pages deep into a search (page 60 of "bamboo toothbrush" still had 30 products in our test). A search ends when the pager has no next page, two pages in a row bring nothing new, or `maxItems` is reached.

#### Why do some rows have no price tiers or no business type?

Price tiers come from the product page and exist only when the supplier set quantity breaks; otherwise the listing has one price range, which is in `price_low` and `price_high`. The business type is filled when the supplier states one; many do not, on the search card or on their own pages. `member_since` and `years_on_platform` need `includeDetails` on.

#### What is the difference between includeDetails on and off?

Off, each row comes from the search card: title, price range, MOQ, card attributes, supplier, location, membership and badges. On, the product page adds price tiers, the year the supplier joined, business type where the card lacks it, the full spec table, trade terms, all images and the category path. On is slower (90 products took 77 seconds in our test, against 150 in 33 seconds off) and costs the same.

#### Are sponsored listings included?

Yes. The first 10 products of each keyword results page are paid placements; they have `is_sponsored: true`. Filter them out if you want the organic order only.

#### Can I filter by province, audited suppliers or price?

Filter the rows: `supplier_province`, `is_audited_supplier`, `is_manufacturer`, `price_low` and `moq_quantity` are separate columns for that. If you set filters on the Made-in-China site and the address bar shows them, paste that link into `startUrls`.

#### How long does a run take?

In our tests: 33 seconds for the "Try it" input (30 products, details on), 77 seconds for 90 products with details, 246 seconds for 210 products across 3 searches, and 33 seconds for 150 products with details off. The default time limit is 3,600 seconds; the actor stops before it and keeps every row.

#### Do I need an account, cookies or a proxy?

No. The actor reads public pages over Apify Proxy, which is included. Nothing to set up.

#### Which actor should I use for other marketplaces?

[Alibaba.com B2B Search](https://apify.com/themineworks/alibaba-b2b-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) for Alibaba suppliers, [IndiaMART Scraper](https://apify.com/themineworks/indiamart-suppliers?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) for Indian suppliers, [AliExpress Scraper](https://apify.com/themineworks/aliexpress-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) for retail prices of the same goods, and [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) to see what they sell for in Western retail.

#### Which formats can I download?

JSON, CSV, Excel, XML, RSS and HTML from the run's Storage tab or through the API. The dataset has three ready views: Products, Prices and MOQ, and Suppliers. In CSV and Excel, `attributes`, `specifications` and `price_tiers` are flattened into columns such as `attributes/Warranty` and `price_tiers/0/price`.

#### Can I use it from Claude, ChatGPT or Cursor (MCP)?

Yes, through Apify's MCP server. Connector URL: https://mcp.apify.com/?tools=themineworks/made-in-china-scraper

- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: turn on developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http made-in-china-scraper "https://mcp.apify.com/?tools=themineworks/made-in-china-scraper"`

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

The actor reads only public listings that anyone can see without logging in, mostly business information that suppliers publish to be found. You are responsible for how you use the data, including Made-in-China's terms and data protection law such as GDPR and CCPA. This is general information, not legal advice.

### Integrations

- **Google Sheets**: send each run's products to a sheet with Apify's Google Sheets integration; one row per product fits a sheet as is.
- **Make, Zapier and n8n**: start a run and read its dataset with the Apify apps and nodes, for example "new suppliers for our keyword every Monday to Slack".
- **Webhooks**: have Apify call your URL when a run succeeds, then fetch the dataset.
- **API and SDKs**: run it from Python or JavaScript with the Apify client, or with a plain HTTP call (see "Copy to your AI assistant" above).
- **MCP clients**: Claude, ChatGPT, Cursor and VS Code can run it as a tool through the connector URL in the FAQ.

### More from The Mine Works

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [AliExpress Scraper](https://apify.com/themineworks/aliexpress-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Kleinanzeigen.de Scraper](https://apify.com/themineworks/kleinanzeigen-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [eBay Product Listings Scraper](https://apify.com/themineworks/ebay-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Shopify Store Scraper](https://apify.com/themineworks/shopify-store-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [🛒 TikTok Shop Scraper](https://apify.com/themineworks/tiktok-shop-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Walmart Product & Price Scraper](https://apify.com/themineworks/walmart-product-price-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Vinted Scraper](https://apify.com/themineworks/vinted-listings-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [2GIS Places Scraper](https://apify.com/themineworks/2gis-places-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [OpenAlex Scraper](https://apify.com/themineworks/openalex-scholarly-works?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [SEC EDGAR Filings Scraper](https://apify.com/themineworks/sec-edgar-filings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [G2 Reviews Scraper](https://apify.com/themineworks/g2-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naver Blog Scraper](https://apify.com/themineworks/naver-blog-posts-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [WeChat Article Scraper 微信公众号文章](https://apify.com/themineworks/wechat-article-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Taobao Products Scraper 淘宝 天猫](https://apify.com/themineworks/taobao-products-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### Support

Found a search that returns fewer products than the site, or a field that comes back empty? Open an issue in the Issues tab with the input and the run ID, and we will look at it. For a field you need or a new source, email dmineworks@gmail.com.

*Search Made-in-China.com by keyword and get every product back as one row, with price range, quantity price tiers, MOQ, specs and the supplier's type, province, badges and years on the platform, no login.*

# Actor input Schema

## `searchQueries` (type: `array`):

Product keywords, one per line, as you would type them in the Made-in-China search box. Example: solar panel, led light, bamboo toothbrush. Each keyword is one search. Up to 100 searches per run.

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

Made-in-China search or catalog links copied from your browser, for example https://www.made-in-china.com/productdirectory.do?subaction=hunt\&style=b\&mode=and\&code=0\&comProvince=nolimit\&order=0\&isOpenCorrection=1\&word=solar+panel or https://www.made-in-china.com/products-search/hot-china-products/LED_Light.html. The pages after the first are followed from the link's own pager.

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

The most products to return for each keyword or search URL, 1 to 5,000. A results page holds 30 products. Example: 300.

## `includeDetails` (type: `boolean`):

On: each product's own page is opened too, for the quantity price tiers, the supplier's business type and the year it joined, years on the platform, the full Basic Info table, payment terms, port, all images and the category path. Off: rows come from the search cards only, which is faster. Same price either way.

## Actor input object example

```json
{
  "searchQueries": [
    "solar panel"
  ],
  "maxItems": 30,
  "includeDetails": true
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "searchQueries": [
        "solar panel"
    ],
    "maxItems": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/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 = {
    "searchQueries": ["solar panel"],
    "maxItems": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/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 '{
  "searchQueries": [
    "solar panel"
  ],
  "maxItems": 30
}' |
apify call themineworks/made-in-china-scraper --silent --output-dataset

```

## MCP server setup

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