# 1688 Scraper (`automly/1688-scraper`) Actor

1688 Scraper: Scrape 1688.com wholesale products by keyword (Chinese or English), category, supplier shop or product link: price, quantity price breaks, minimum order, variants, stock, sales, specs, photos, plus supplier name, location, years, ratings and badges.

- **URL**: https://apify.com/automly/1688-scraper.md
- **Developed by:** [Automly](https://apify.com/automly) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.29 / 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

## 1688 Scraper

### What is 1688 Scraper?

**1688 Scraper** is a tool that lets you **scrape wholesale products and suppliers from 1688.com**, Alibaba's Chinese wholesale marketplace: title, unit price in yuan, quantity price breaks, minimum order quantity, variants (colors, sizes, models) with their own prices and stock, units sold, specifications, photos and video, plus the supplier's company name, province and city, years on 1688, trade scores, repeat-buyer rate and verification badges. Search by keyword in Chinese or English, open a category or a supplier's shop, or paste 1688 product links, click **Start**, and download the products as Excel, CSV or JSON.

- 🔎 **English or Chinese keywords:** `phone case` or `手机壳`, `wireless earbuds` or `蓝牙耳机`
- 💰 **Real wholesale pricing:** every quantity price break (1+, 100+, 2,000+ pieces) and the minimum order
- 🎨 **Full variant matrix:** every color, size and model with its own price and stock
- 🏭 **Supplier checks built in:** years on 1688, Super Factory, factory and business inspection, six trade scores, repeat-buyer rate
- ⚡ **Fast:** about 1,000 search results a minute, details for 20 products in about 15 seconds
- 🔓 **No login:** no 1688 account, cookies or Chinese phone number needed

### What can 1688 Scraper do?

- **Scrape 1688 search results** for any keyword, like `手机壳`, `连衣裙`, `蓝牙耳机`, `phone case` or `LED strip`
- **Scrape a 1688 category** by its id, like `1031910` (dresses)
- **Scrape every product of a 1688 supplier** from its shop link or member id
- **Scrape 1688 product pages** from their links or offer ids, with price breaks, variants and specifications
- **Find factories and suppliers** for a product, with their location, years on 1688 and trade scores
- **Filter like on the site:** price range in yuan, supplier province or city, sort by best match, best selling or price
- **Monitor 1688 prices and stock** with a daily schedule
- Export to Excel, CSV, JSON, HTML or XML, or send the data to Google Sheets, Make, Zapier and more

### What data can you extract from 1688?

| | | |
|---|---|---|
| 🏷️ Title and product link | 💰 Unit price (CNY) | 📦 Units sold |
| 📸 Main photo, all photos, video\* | 📉 Quantity price breaks\* | 🔢 Minimum order quantity\* |
| 🎨 Variants with price and stock\* | 📋 Specifications\* | 🗂️ Category\* |
| ⭐ Rating, review count, review tags\* | 🚚 Ships from, delivery promise\* | 🛒 Dropshipping channels\* |
| 🏭 Supplier name and company | 📍 Province and city | 📅 Years on 1688 |
| 📊 Six supplier trade scores | 🔁 Repurchase and repeat-buyer rates | ✅ Super Factory, inspected factory or business |

\* With **Include full product details** (on by default), and always for product links.

### How to scrape 1688.com

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open **1688 Scraper**.
3. Enter keywords, category ids, supplier shops or product links, one per line.
4. Set **Max products per search**, a sort order and any filters. Leave **Include full product details** on for price breaks, variants and supplier details.
5. Click **Start**, then download the products as Excel, CSV, JSON or HTML.

### How much does it cost to scrape 1688?

You pay per product saved, with no monthly fee. A product with full details (price breaks, variants, specifications, supplier profile) costs a little more than a product from a search list alone.

| Apify plan | Products per 1,000 | Products with full details per 1,000 |
|---|---|---|
| Free | $1.79 | $3.99 |
| Starter (Bronze) | $1.69 | $3.79 |
| Scale (Silver) | $1.49 | $3.49 |
| Business (Gold) and higher | $1.29 | $2.99 |

Platform usage is included in these prices, so you pay nothing else for the run.

Example: 1,000 products with full details cost $3.99 on the Free plan and $2.99 on Business. From search lists alone, the same 1,000 cost $1.79 and $1.29.

Every Apify account gets **$5 of free usage each month**, enough to try the scraper on real searches. **Max products per search** keeps a run's cost under control, and you can also set a maximum cost per run.

### ⬇️ Input

| Setting | What it does |
|---|---|
| **Search keywords** | What to search for, like `phone case` or `手机壳`, one per line. Chinese keywords usually find the most |
| **Max products per search** | Most products to save for each keyword, category or shop (default 100). Set 0 for all |
| **Include full product details** | Adds price breaks, minimum order, variants, specifications, photos and the supplier profile (on by default) |
| **Sort by** | Best match, best selling, price low to high or high to low |
| **Minimum / maximum price (CNY)** | Unit price range in Chinese yuan |
| **Supplier province / city** | Only suppliers in a province or city, in Chinese, like `广东` or `义乌` |
| **Categories** | 1688 category ids, like `1031910` |
| **Supplier shops** | Shop links like `https://gdglove.1688.com`, or member ids like `b2b-1674820511` |
| **Product links or offer IDs** | Links like `https://detail.1688.com/offer/617247852601.html` or ids like `617247852601`; search links work too |
| **Proxy configuration** | Leave the default |

Phone cases and Bluetooth earphones from Guangdong suppliers, best sellers first:

```json
{
  "searchQueries": ["phone case", "蓝牙耳机"],
  "maxItems": 200,
  "sortBy": "bestSelling",
  "province": "广东",
  "includeDetails": true
}
```

A supplier's whole catalogue and two product links:

```json
{
  "shops": ["https://gdglove.1688.com"],
  "maxItems": 0,
  "startUrls": [
    "https://detail.1688.com/offer/617247852601.html",
    "888190063353"
  ]
}
```

### ⬆️ Output

Each product is one row. A product from a search with full details looks like this (shortened):

```json
{
  "offerId": "891445205395",
  "title": "跨境X6骨传导蓝牙耳机内存长续航听音乐看剧运动跑步游泳耳机",
  "url": "https://detail.1688.com/offer/891445205395.html",
  "price": 119,
  "currency": "CNY",
  "soldCount": 200,
  "soldText": "已售200+件",
  "image": "https://cbu01.alicdn.com/img/ibank/O1CN010TXQtf1HgxFcony3a_!!944280788-0-cib.jpg",
  "province": "广东",
  "city": "东莞市",
  "supplierName": "深圳市声德数码科技有限公司",
  "supplierUrl": "https://sounder.1688.com",
  "supplierYears": 7,
  "supplierScores": { "overall": 5, "consultation": 5, "goods": 5, "logistics": 4.14, "returns": 5, "disputes": 5 },
  "superFactory": true,
  "factoryInspected": true,
  "badges": ["深度验厂", "回头率23%", "定制"],
  "priceMin": 105,
  "priceMax": 119,
  "priceTiers": [
    { "minQuantity": 1, "price": 119 },
    { "minQuantity": 1000, "price": 109 },
    { "minQuantity": 5000, "price": 105 }
  ],
  "minOrderQuantity": 1,
  "unit": "台",
  "variants": [
    { "skuId": "6111304185819", "name": "X6-白红32g内存", "options": ["X6-白红32g内存"], "price": null, "stock": 0, "image": null }
  ],
  "video": "https://cloud.video.taobao.com/play/u/944280788/p/2/e/6/t/1/511588032064.mp4",
  "attributes": [
    { "name": "芯片类型", "value": "杰理" },
    { "name": "功能", "value": "骨传导,支持音乐" }
  ],
  "categoryId": "1048186",
  "categoryName": "蓝牙耳机",
  "rating": 5.0,
  "positiveRatePercent": 97.9,
  "reviewCount": 47,
  "shipsFrom": "广东省东莞市",
  "deliveryPromise": "最快支付后7天发货",
  "dropshipChannels": ["Lazada", "Amazon", "Shopify", "Shopee"],
  "guarantees": ["退货包运费", "晚发必赔", "极速退款"],
  "listedAt": "2025-02-22T03:31:19Z",
  "companyName": "深圳市声德数码科技有限公司",
  "supplierType": "super factory",
  "supplierCardType": "factory",
  "supplierServiceScore": 5,
  "repeatBuyerRatePercent": 22.95,
  "rank": 7,
  "sourceType": "search",
  "source": "蓝牙耳机",
  "scrapedAt": "2026-10-22T13:14:24Z"
}
```

Without details, a row has the fields up to `isAd` plus where it came from. The Output tab has three tables: **Products**, **Prices and details** and **Suppliers**.

### What can you do with 1688 data?

- **Product sourcing for Amazon FBA, Shopify, TikTok Shop and dropshipping:** compare suppliers' real price breaks and minimum orders before you contact anyone.
- **Find factories, not middlemen:** filter on Super Factory, inspected factories and years on 1688, and read the supplier's company name and city.
- **Landed-cost and margin checks:** take the price at your order size from the price breaks, add shipping, and compare with your selling price.
- **Market research:** units sold, repurchase rates and review tags show what sells on China's biggest wholesale market.
- **Price and stock monitoring:** schedule a run every day and watch price breaks and stock change for the products you buy.
- **Supplier lists:** every product row carries the supplier's shop link and member id; paste them into **Supplier shops** to get each supplier's full catalogue.

### How to scrape a 1688 supplier's products

Copy the supplier's shop link (it looks like `https://name.1688.com`) or its member id (`b2b-...`, in every product row as `supplierMemberId`), paste it into **Supplier shops**, set **Max products per search** to 0 for the whole catalogue, and click **Start**.

### Can I search 1688 in English?

Yes. English keywords like `phone case` or `yoga mat` work, and 1688 finds Chinese listings for them. Chinese keywords (`手机壳`, `瑜伽垫`) usually return more and closer matches, since suppliers write their titles in Chinese. Titles, specifications and variant names come back in Chinese, as the suppliers wrote them.

### Use with AI agents (MCP)

AI agents can run 1688 Scraper through the Apify MCP server. Ask in plain words, for example "Find 50 Bluetooth earphone suppliers on 1688 in Guangdong with their price breaks", and the agent sends an input like:

```json
{ "searchQueries": ["蓝牙耳机"], "province": "广东", "maxItems": 50, "includeDetails": true }
```

### Integrations and API

Run 1688 Scraper from the Apify API, the Python or JavaScript client, or on a schedule in Apify Console. Each run can call a webhook when it finishes, so Make, Zapier, n8n or your own code can pick up new products. Results can go straight to Google Sheets, Airtable, Slack or any database.

### ❓FAQ

#### How many products can I get per keyword?

1688 lists up to 2,000 products per search and sort order. When you ask for more (or set 0), the scraper reads the same search in the other sort orders and adds the products it has not saved yet. Narrow searches with a price range, a province or a more specific keyword reach more of a large market.

#### Do I need a 1688 account?

No. 1688 Scraper reads only what 1688 shows to visitors who are not logged in. You don't need an account, cookies, a Chinese phone number or a VPN.

#### Why do some products have no price breaks?

Some suppliers price each variant on its own instead of by quantity. Those products have `priceTiers` empty and a `price` on each variant. Products sold by quantity have the breaks and no per-variant price.

#### Are the prices in US dollars?

No, all prices are in Chinese yuan (CNY), as 1688 shows them. Convert with today's exchange rate in your spreadsheet.

#### What does the "Sponsored" column mean?

`isAd` is true for products that suppliers paid to place in the search results. They are real products and are saved like any other; filter them out if you want only organic results.

#### Is it legal to scrape 1688?

The scraper collects publicly available product and business information that anyone can see on 1688 without logging in. It does not collect personal data. Make sure your use of the data follows the laws that apply to you and 1688's terms. This tool is not affiliated with or endorsed by 1688.com or Alibaba Group.

#### A run returned fewer products than I asked for. Why?

A keyword, category or shop can simply list fewer products than your maximum, and a product found by two of your inputs is saved once. The run report (in the Storage tab, **report-summary**) shows, for each input, how many products 1688 listed and how many were saved.

#### Something is missing or wrong. What should I do?

Open an issue in the **Issues** tab with the input you used. We read every issue and usually reply within a day. If the scraper works well for you, a review on the Store helps other buyers find it.

# Actor input Schema

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

What to search 1688 for, one keyword per line, e.g. phone case, 手机壳, wireless earbuds, 蓝牙耳机. Chinese keywords usually find the most products. Each keyword is searched separately and Max products applies to each one.

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

Most products to save for each keyword, category or shop, e.g. 100. Set 0 for every product 1688 lists (2,000 per sort order; past that, more are added from the other sort orders). Product links are always saved.

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

Open each product's page and add quantity price breaks, minimum order, variants (colors, sizes) with their prices and stock, total sold, stock, specifications, all photos, video, rating, review count, ships-from city, dropshipping channels and the supplier's company name, type, service score and repeat-buyer rate. Turn off for a faster, cheaper list of search results. Product links always come with details.

## `sortBy` (type: `string`):

Order of the search results, as on 1688: best match, best selling, or by price.

## `priceMin` (type: `integer`):

Only products from this unit price in Chinese yuan, e.g. 5. Leave empty for no minimum.

## `priceMax` (type: `integer`):

Only products up to this unit price in Chinese yuan, e.g. 50. Leave empty for no maximum.

## `province` (type: `string`):

Only suppliers in this province, in Chinese, e.g. 广东 (Guangdong), 浙江 (Zhejiang), 江苏 (Jiangsu). Several with commas: 江苏,浙江,上海.

## `city` (type: `string`):

Only suppliers in this city, in Chinese without 市, e.g. 深圳 (Shenzhen), 广州 (Guangzhou), 义乌 (Yiwu).

## `categoryIds` (type: `array`):

1688 category ids, e.g. 1031910 (dresses). Each gives the category's products. Every detailed product row carries its categoryId, so you can feed categories back here.

## `shops` (type: `array`):

Supplier shop links or member ids, e.g. https://gdglove.1688.com or b2b-1674820511. Each gives the supplier's products. Every product row carries the supplier's shop link and member id.

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

1688 product links or offer ids, e.g. https://detail.1688.com/offer/617247852601.html or 617247852601. Search links (s.1688.com), shop links and category links work here too.

## `proxyConfiguration` (type: `object`):

Leave the default.

## Actor input object example

```json
{
  "searchQueries": [
    "phone case"
  ],
  "maxItems": 20,
  "includeDetails": true,
  "sortBy": "relevance",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

No description

## `details` (type: `string`):

No description

## `suppliers` (type: `string`):

No description

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

No description

## `report` (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": [
        "phone case"
    ],
    "maxItems": 20,
    "includeDetails": true,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/1688-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": ["phone case"],
    "maxItems": 20,
    "includeDetails": True,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("automly/1688-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": [
    "phone case"
  ],
  "maxItems": 20,
  "includeDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call automly/1688-scraper --silent --output-dataset

```

## MCP server setup

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