# Made-in-China Product Scraper (`akash9078/made-in-china-product-scraper`) Actor

Scrape product data, pricing, and supplier information from Made-in-China.com. Search by keyword or URL to extract structured product listings with FOB prices, MOQs, specifications, certifications, images, and verified supplier details for market research, sourcing, and competitive analysis.

- **URL**: https://apify.com/akash9078/made-in-china-product-scraper.md
- **Developed by:** [Akash Kumar Naik](https://apify.com/akash9078) (community)
- **Categories:** AI, Automation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 product scrapeds

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 Product Scraper — Extract Product Data, Prices & Supplier Info

Scrape product data from [Made-in-China.com](https://www.made-in-china.com), one of the largest B2B platforms connecting global buyers with Chinese suppliers. Search by keyword or paste product URLs to extract structured product listings, FOB pricing tiers, specifications, certifications, images, and verified supplier details — all on the [Apify platform](https://apify.com) with scheduling, API access, and webhook integrations.

### What data can the Made-in-China Product Scraper extract?

| Data Field | Type | Description |
|------------|------|-------------|
| Product title | string | Full product listing title |
| Model number | string | Manufacturer model or SKU |
| FOB price | string | Price range (e.g. USD 1.50 – 3.00) |
| Pricing tiers | array | Volume-based quantity pricing |
| MOQ | string | Minimum order quantity |
| Lead time | string | Delivery lead time |
| Description | string | Product description text |
| Images | array | Product image URLs (deduplicated, high-res) |
| Specifications | object | Key-value specification pairs |
| Certifications | array | Product certifications (CE, RoHS, SGS, etc.) |
| Supplier name | string | Company name |
| Supplier rating | string | Rating score |
| Supplier years | string | Years in business on platform |
| Supplier verified | boolean | Audited/verified supplier status |
| Supplier contact | object | Email, phone, website |
| URL | string | Direct product page link |

### Features

- **Search by keyword** — Enter any product term (e.g. "bluetooth speaker", "furniture luxury") and the scraper searches Made-in-China.com automatically
- **Direct URL scraping** — Paste individual product or product group URLs for targeted extraction
- **Multi-query support** — Run multiple searches or URLs in a single execution
- **Structured product data** — Clean, normalized output ready for analysis
- **Supplier intelligence** — Supplier name, rating, years in business, verification status, and contact details
- **Automatic pagination** — Crawls all pages in product group/category listings
- **Residential proxy rotation** — Built-in Apify proxy support to avoid rate limiting

### Why scrape Made-in-China.com?

| Use Case | Description |
|----------|-------------|
| **Market research** | Analyze competitor products, pricing strategies, and catalog depth |
| **Product sourcing** | Compare suppliers, MOQs, and pricing tiers across thousands of products |
| **Price monitoring** | Track FOB price changes and volume-based pricing over time |
| **Lead generation** | Discover verified suppliers with detailed product catalogs |
| **Competitive analysis** | Monitor product offerings, certifications, and specifications |

### How much does it cost to scrape Made-in-China.com?

Pay-per-event pricing — you only pay for what you use:

| Event | Price | Description |
|-------|-------|-------------|
| Actor start | $0.00005 | Automatic charge when run starts |
| Product scraped | $0.01 | Per successfully scraped product |

**Example:** Scraping 500 products costs approximately **$5.00**. Scalable from a single test run to thousands of products.

All data is accessible via the [Apify API](https://docs.apify.com/api/v2), can be scheduled to run automatically, and integrates with tools like Zapier, Make, and custom webhooks — no infrastructure to manage.

### How to use the Made-in-China Product Scraper

1. **Find products** — Browse Made-in-China.com and copy product group URLs or individual product URLs, or type a search keyword
2. **Configure input** — Add URLs or search terms to the `queries` array
3. **Set limits** — Use `maxItems` to control the number of products scraped and manage costs
4. **Run** — Start the Actor and view results in the dataset
5. **Export** — Download as JSON, CSV, Excel, or access via API

### Input reference

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| **queries** | array | — | Product URLs or search keywords. Auto-detects: if it starts with `http(s)://` it's a URL, otherwise a search term |
| **maxItems** | integer | 50 | Maximum products to scrape (0 = unlimited) |
| **includeImages** | boolean | true | Extract product image URLs |
| **proxyConfig** | object | Apify Residential | Proxy configuration |

#### Input example

```json
{
  "queries": [
    "https://sunlink-furniture.en.made-in-china.com/product-group/zegaGQnxWIVp/Recliner-Sofa-1.html",
    "wireless earbuds",
    "bluetooth speaker portable"
  ],
  "maxItems": 200,
  "includeImages": true
}
````

#### Output example

```json
{
  "url": "https://example.en.made-in-china.com/product/Recliner-Sofa.html",
  "scrapedAt": "2026-07-14T10:30:00.000Z",
  "title": "Modern Recliner Sofa Living Room Furniture",
  "modelNumber": "SL-RS-001",
  "fobPrice": "USD 568.0",
  "pricingTiers": [
    { "quantity": "1 - 50", "price": "$568.00" },
    { "quantity": "51 - 200", "price": "$520.00" }
  ],
  "moq": "1 Set",
  "leadTime": "15-25 days",
  "images": ["https://image.made-in-china.com/product1.webp"],
  "specifications": {
    "Material": "PU Leather",
    "Frame Material": "Metal",
    "Style": "Modern"
  },
  "certifications": ["SGS", "CE"],
  "supplierName": "Example Furniture Co., Ltd.",
  "supplierRating": "4.8/5",
  "supplierYears": "15 years",
  "supplierVerified": true
}
```

### Tips for best results

- **Use Apify Residential proxies** — The default proxy configuration helps avoid rate limiting and IP blocks
- **Start with search keywords** — Use broad terms like "furniture" or "electronics" to discover products, then refine with specific product group URLs
- **Set maxItems** — Always set a reasonable `maxItems` limit to control costs during testing
- **Product group pages** — Starting from a product group/category page yields more complete results than individual product URLs
- **Schedule runs** — Use Apify's scheduling feature to monitor prices and product availability over time

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

This scraper extracts publicly available product data. Web scraping public data for business research purposes is generally legal. Review Made-in-China.com's Terms of Service and use data responsibly.

### Support

Report issues or request features on the Actor's Issues tab. For custom requirements, contact the developer.

# Actor input Schema

## `queries` (type: `array`):

Product URLs or search keywords. Each entry auto-detects: if it starts with http(s):// it's treated as a URL, otherwise as a search term.

Examples:
URL:  https://sunlink-furniture.en.made-in-china.com/product-group/zegaGQnxWIVp/Recliner-Sofa-1.html
Search:  furniture luxury
Search:  bluetooth speaker

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

Maximum number of products to scrape (0 = unlimited)

## `includeImages` (type: `boolean`):

Extract product image URLs

## `proxyConfig` (type: `object`):

Proxy setup to prevent IP blocks and ensure reliable scraping

## Actor input object example

```json
{
  "queries": [
    "furniture luxury",
    "https://sunlink-furniture.en.made-in-china.com/product-group/zegaGQnxWIVp/Recliner-Sofa-1.html"
  ],
  "maxItems": 50,
  "includeImages": true,
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

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

Complete dataset of scraped products with all fields

## `overview` (type: `string`):

Quick overview of scraped products with key fields

## `detailed` (type: `string`):

Complete product details with specifications

## `errors` (type: `string`):

List of URLs that failed to scrape with error details

# 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 = {
    "queries": [
        "furniture luxury",
        "https://sunlink-furniture.en.made-in-china.com/product-group/zegaGQnxWIVp/Recliner-Sofa-1.html"
    ],
    "maxItems": 50,
    "includeImages": true,
    "proxyConfig": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("akash9078/made-in-china-product-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 = {
    "queries": [
        "furniture luxury",
        "https://sunlink-furniture.en.made-in-china.com/product-group/zegaGQnxWIVp/Recliner-Sofa-1.html",
    ],
    "maxItems": 50,
    "includeImages": True,
    "proxyConfig": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("akash9078/made-in-china-product-scraper").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 '{
  "queries": [
    "furniture luxury",
    "https://sunlink-furniture.en.made-in-china.com/product-group/zegaGQnxWIVp/Recliner-Sofa-1.html"
  ],
  "maxItems": 50,
  "includeImages": true,
  "proxyConfig": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call akash9078/made-in-china-product-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Made-in-China Product Scraper",
        "description": "Scrape product data, pricing, and supplier information from Made-in-China.com. Search by keyword or URL to extract structured product listings with FOB prices, MOQs, specifications, certifications, images, and verified supplier details for market research, sourcing, and competitive analysis.",
        "version": "1.0",
        "x-build-id": "4GNE6symzUxOtg4pM"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/akash9078~made-in-china-product-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-akash9078-made-in-china-product-scraper",
                "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/akash9078~made-in-china-product-scraper/runs": {
            "post": {
                "operationId": "runs-sync-akash9078-made-in-china-product-scraper",
                "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/akash9078~made-in-china-product-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-akash9078-made-in-china-product-scraper",
                "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",
                "properties": {
                    "queries": {
                        "title": "Queries",
                        "minItems": 0,
                        "maxItems": 50,
                        "type": "array",
                        "description": "Product URLs or search keywords. Each entry auto-detects: if it starts with http(s):// it's treated as a URL, otherwise as a search term.\n\nExamples:\n  URL:  https://sunlink-furniture.en.made-in-china.com/product-group/zegaGQnxWIVp/Recliner-Sofa-1.html\n  Search:  furniture luxury\n  Search:  bluetooth speaker",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum Products",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of products to scrape (0 = unlimited)",
                        "default": 50
                    },
                    "includeImages": {
                        "title": "Include Images",
                        "type": "boolean",
                        "description": "Extract product image URLs",
                        "default": true
                    },
                    "proxyConfig": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy setup to prevent IP blocks and ensure reliable scraping",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
