Made-in-China Products & Suppliers Scraper
Pricing
from $0.03 / 1,000 item extracteds
Made-in-China Products & Suppliers Scraper
Scrape public Made-in-China product listings, prices, MOQ, supplier names, locations, badges, images, and sourcing diagnostics.
Pricing
from $0.03 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
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"}
Pricing
This actor uses pay-per-event pricing. You pay a small start event for each run and then per product row saved to the dataset. Keep maxItems low for test runs, then increase it for production sourcing batches.
For the current rates, open the live Apify Pricing tab: https://apify.com/fetch_cat/made-in-china-products-suppliers-scraper/pricing
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 ApifyClientimport osclient = 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().itemsprint(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.
FAQ
Can I export the data to CSV or Excel?
Yes. Open the default dataset after the run and choose CSV, Excel, JSON, XML, RSS, or HTML export.
Does the actor scrape private supplier accounts?
No. It is designed for public Made-in-China listing pages only.
Why are some fields empty?
Made-in-China pages do not show every field on every listing. Empty fields mean the value was not visible or could not be parsed reliably from the listing.
How do I keep costs predictable?
Start with a small maxItems value, confirm that the output fits your workflow, and then raise maxItems for production runs.
Related actors
If you need broader ecommerce or B2B sourcing coverage, check the Apify Store for other product, marketplace, and supplier scrapers from the same publisher.
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.