Scrape public Made-in-China.com product search results for ecommerce sourcing, supplier lead generation, and procurement research. The actor saves structured product rows with product names, URLs, prices, MOQ text, images, supplier names, supplier URLs, badges, and scrape metadata.
What you can do
- Search Made-in-China.com by product keyword, such as
solar panelorsteel pipe. - Start from Made-in-China search or listing URLs.
- Limit pages and maximum saved products for predictable runs.
- Filter by parsed minimum order quantity when MOQ is available.
- Export results from the Apify dataset as JSON, CSV, Excel, XML, RSS, or HTML.
Who is it for
This scraper is useful for sourcing managers, import/export teams, ecommerce operators, marketplace researchers, and B2B lead generation teams that need a repeatable way to collect Made-in-China product listings.
Common workflows include:
- comparing supplier coverage for a product category,
- building a shortlist of potential manufacturers,
- monitoring visible pricing and MOQ ranges,
- enriching procurement spreadsheets with product and supplier URLs,
- collecting public product leads before manual outreach.
Input
Use either query or startUrls. query creates Made-in-China search pages automatically. startUrls accepts search or listing URLs when you already know the exact page to scrape. Use maxItems and maxPages to control run size.
Input fields
query— product keyword to search on Made-in-China.com.startUrls— direct Made-in-China listing/search URLs.maxItems— maximum product rows to save.maxPages— maximum pages to request for each keyword.minMoq— optional parsed MOQ filter.includeDetails— reserved for detail-page enrichment where supported.proxyConfiguration— Apify Proxy settings.
Input recipes
Keyword search
{
"query": "solar panel",
"maxItems": 20,
"maxPages": 1,
"proxyConfiguration": { "useApifyProxy": true }
}
Start URL
{
"startUrls": [
{ "url": "https://www.made-in-china.com/products-search/hot-china-products/solar_panel.html" }
],
"maxItems": 50,
"maxPages": 1,
"proxyConfiguration": { "useApifyProxy": true }
}
MOQ-focused search
{
"query": "stainless steel bottle",
"maxItems": 100,
"maxPages": 3,
"minMoq": 500,
"proxyConfiguration": { "useApifyProxy": true }
}
Output
Each dataset item represents one product listing and can include:
productName,productUrl,productIdpriceRaw,priceMin,priceMax,currencymoqRaw,moqValue,moqUnitimageUrl,imageUrlssupplierName,supplierUrl,supplierLocation- supplier indicators such as audited supplier, diamond member, OEM/sample/video mentions
sourceUrl,searchQuery,pageNumber,scrapedAt,extractionStatus
Output example
{
"productName": "Solar Panel 550W Mono Module",
"productUrl": "https://www.made-in-china.com/product/...html",
"priceRaw": "US$0.10-0.15 / watt",
"moqRaw": "MOQ: 100 Pieces",
"supplierName": "Example Energy Co., Ltd.",
"sourceUrl": "https://www.made-in-china.com/products-search/hot-china-products/solar_panel.html",
"scrapedAt": "2026-07-30T15:25:00.000Z"
}
API usage
Run the actor from the Apify Console, Apify API, Apify CLI, or any Apify client. API users can pass the same JSON input shown above and then read the default dataset items after the run succeeds.
Apify CLI
apify call fetch_cat/made-in-china-products-suppliers-scraper --input-file input.json
Node.js
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/made-in-china-products-suppliers-scraper').call({
query: 'solar panel',
maxItems: 20,
maxPages: 1,
proxyConfiguration: { useApifyProxy: true }
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python
from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/made-in-china-products-suppliers-scraper').call(run_input={
'query': 'solar panel',
'maxItems': 20,
'maxPages': 1,
'proxyConfiguration': {'useApifyProxy': True},
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
cURL
curl "https://api.apify.com/v2/acts/fetch_cat~made-in-china-products-suppliers-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"query":"solar panel","maxItems":20,"maxPages":1,"proxyConfiguration":{"useApifyProxy":true}}'
MCP
You can use this actor through the Apify MCP server from Claude Desktop, Claude Code, Cursor, or other MCP-compatible clients.
Claude Code setup
claude mcp add apify --env APIFY_TOKEN=$APIFY_TOKEN -- npx -y @apify/actors-mcp-server
MCP JSON configuration
{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server"],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_TOKEN"
}
}
}
}
Example prompts showing MCP usage
- "Run
fetch_cat/made-in-china-products-suppliers-scraperfor solar panels with 20 max items and summarize supplier names." - "Scrape this Made-in-China search URL and return product name, price, MOQ, and supplier URL as a table."
- "Get 50 Made-in-China product leads for stainless steel bottles and export the dataset to CSV."
Pass the same JSON input fields shown in the Input recipes section. After the run finishes, read the default dataset items for product and supplier rows.
Data quality
Made-in-China listing cards vary by category and page layout. Fields that are not visible in a listing are returned as null or an empty array/object instead of guessed values.
The actor keeps the original text for values such as price and MOQ so you can audit the source wording. Parsed numeric fields are best-effort helpers for filtering and sorting.
Limits and pagination
Set maxPages to crawl additional search pages and maxItems to stop after the requested number of saved products. The actor deduplicates product URLs within each fetched page and preserves partial output if a later page fails.
For first tests, use maxItems between 5 and 20. For larger sourcing exports, increase maxItems gradually and review the dataset fields before running at scale.
Troubleshooting
If a run returns fewer items than expected, try a more specific keyword, a direct Made-in-China search URL, or a lower maxPages value for a quick verification run. Some pages can temporarily return anti-bot or transient HTTP responses.
If you use a start URL, make sure it points to Made-in-China.com and loads public listing content in a normal browser. Invalid URLs are skipped with a warning.
Support
If you need a field that is visible on Made-in-China.com but missing from the dataset, open an Apify issue with your input and an example product URL so we can evaluate it.
Notes
Made-in-China.com can occasionally return anti-bot or transient HTTP responses. The actor logs those responses, preserves any already-scraped results, and finishes cleanly instead of discarding partial output.