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

Scrape 1688.com, China's wholesale market, without a login: keyword search in English or Chinese, full product pages with variants and specs, image search by photo, and factory and wholesaler lists. Prices in CNY and USD, English translations included. API ready.

- **URL**: https://apify.com/blueskyscraper/1688-scraper.md
- **Developed by:** [BlueskyScraper](https://apify.com/blueskyscraper) (community)
- **Categories:** E-commerce, Lead generation, Agents
- **Stats:** 6 total users, 4 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.70 / 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** gets data from **1688.com — China's wholesale market — without an account**: keyword search **in English or Chinese**, full product pages, **search by image** and lists of **factories and wholesalers**. Prices in **CNY and USD**, units sold, repeat-buyer rate, variants with images, specifications and supplier badges, with **English translations included**. **$1 per 1,000 products, no start fee.**

### Tested head-to-head — 5 October 2026

![1688 scrapers tested head-to-head: this Actor returns 20 products in 13 seconds with English titles, $1 per 1,000 products, $3 per 1,000 product pages, $0.50 per 1,000 image matches, no start fee](https://api.apify.com/v2/key-value-stores/tZJ3TnhQJ1jqUQVXq/records/1688-tested-2026-10-05.png)

The same requests went to this Actor and to the most-used 1688 scrapers on the Apify Store: 20 products for `yoga mat` typed in English, 3 product pages and 20 image-search matches for one photo.

| | This Actor | The others |
|---|---|---|
| 20 products returned in | **13.2 s** | 7.4 s (10 of 20 rows) – 74 s |
| English titles and specs | **yes, included** | 1 of 6 |
| Price and stock of every variant (SKU) | **yes, included** | 2 of 6 |
| Rating summary and factory profile (staff, area, equipment) | **yes, included** | 1 of 6, as a paid add-on |
| 3 product pages returned in | **9.3 s** | 11.7–32.8 s |
| Price per 1,000 products | **$1** | $1.00–5.24 |
| Price per 1,000 product pages | **$3** | $3.00–6.63 |
| Price per 1,000 image matches | **$0.5** | $0.75 + run fee – $5.00 |
| Supplier list mode | **yes** | 1 other — returned 0 rows |
| Start fee | **none** | 2 of 6 charge one |

### What can 1688 Scraper do?

| Mode | Give it | You get |
|---|---|---|
| **Products** | keywords (`yoga mat`, `蓝牙耳机`) or 1688 search URLs | one row per product: title + English title, price CNY/USD, units sold, repeat-buyer rate, images, service tags, supplier |
| **Product details** | product URLs or IDs | the full page: price range, MOQ, stock, **every variant with its own price and stock**, rating summary, factory profile, specs, weight, ship-from city |
| **Image search** | links to product photos | the 1688 listings that look like your photo — the factory behind an Amazon or AliExpress product |
| **Suppliers** | keywords | one row per factory or wholesaler: type, province, years, staff, factory area, response rate, factory audit, price range, sample products |

Filters: price range in CNY, **factories only**, provinces or cities (`浙江`, `义乌`), best-selling first, skip sponsored listings. **Monitoring mode** returns only new products on scheduled runs.

### Who uses it?

- **Dropshippers and Amazon / TikTok Shop sellers** — find the factory price of a product and its real sales.
- **Sourcing agents** — shortlist manufacturers by province, audit badge and repeat-buyer rate.
- **Market researchers** — track prices and best sellers in a category over time.
- **AI agents** — clean JSON with English fields, through the Apify API or MCP.

### How much does it cost?

| Row | Price |
|---|---|
| **Product** (keyword search result) | $0.001 — $1 per 1,000 |
| **Image match** (one product found by your photo) | $0.0005 — $0.5 per 1,000 |
| **Product page** (full details) | $0.003 — $3 per 1,000 |
| **Supplier** (one factory or wholesaler) | $0.002 — $2 per 1,000 |

No start fee, no proxy charge, no extra fee for English translations or image uploads. Error rows and rows removed by your filters are never billed. **Maximum rows per run** is a hard ceiling on the bill.

### ⬇️ Input

```json
{
    "mode": "products",
    "keywords": ["yoga mat", "phone case"],
    "sortBy": "sales",
    "manufacturersOnly": true,
    "maxResultsPerInput": 300
}
```

### ⬆️ Output

```json
{
    "type": "product",
    "productId": "787646790056",
    "title": "TPE抗菌瑜伽垫专业防滑加厚女加宽健身垫家用减震静音舞蹈垫定制",
    "titleEn": "TPE antibacterial yoga mat - professional anti-slip, thickened, widened women's home fitness mat, custom",
    "url": "https://detail.1688.com/offer/787646790056.html",
    "priceCny": 21,
    "priceUsd": 2.95,
    "soldText": "已售900+件",
    "soldCount": 900,
    "repurchaseRate": "4%",
    "serviceTagsEn": ["Factory audited on site", "24/7 response", "Buy now, pay later", "Dropshipping with free shipping"],
    "supplierName": "福清胜德智造科技有限公司",
    "supplierType": "Manufacturer",
    "supplierProvince": "福建",
    "supplierYears": 17,
    "supplierRepeatBuyerRate": "41%",
    "factoryAudited": true
}
```

### ❓ FAQ

#### What is 1688.com?

1688.com is Alibaba's wholesale marketplace for China's domestic market — the factory prices that Alibaba.com, AliExpress, Amazon and TikTok Shop sellers buy from. Prices are in Chinese yuan (CNY) and usually far below Alibaba.com for the same item.

#### Can I search in English?

Yes. An English keyword is translated into the Chinese search words 1688 expects (both are in the row: `keywordGiven` and `query`), and every title, specification, variant and tag gets an English copy (`titleEn`, `attributesEn`, `variantsEn`…). Chinese keywords work as they are. Switch **Add English translations** off if you only want the Chinese originals.

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

No. The Actor needs no login, no cookies and no proxy settings. 1688 limits how often one address may search; when it refuses, the request moves to a fresh address by itself.

#### How are USD prices worked out?

With the day's CNY→USD exchange rate (fetched once per run). The CNY price is always in the row too — it is what the supplier charges.

#### Why are some supplier scores empty?

1688 shows the service scores (overall, inquiries, logistics, disputes, returns, goods) only for some suppliers in search results. Years, type, province, repeat-buyer rate and audit badges are there for almost all.

#### Is it legal to scrape 1688?

The Actor reads only what 1688.com shows any visitor without an account: public listings and shop pages. It does not collect personal contact details.

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

1688 shows about 3,000 products per search (50 pages of 60). Split broad searches into several keywords or price ranges.

### You might also like

| Actor | What it does |
|---|---|
| [1688 Products Scraper](https://apify.com/blueskyscraper/1688-products-scraper) | Search results by English or Chinese keyword, prices in CNY and USD |
| [1688 Product Details Scraper](https://apify.com/blueskyscraper/1688-product-details-scraper) | Full product pages: variants with images, specs, stock, weight |
| [1688 Image Search Scraper](https://apify.com/blueskyscraper/1688-image-search-scraper) | Find the factory listings behind any product photo |
| [1688 Supplier Scraper](https://apify.com/blueskyscraper/1688-supplier-scraper) | Chinese factories and wholesalers for any product, one row each |
| [Alibaba Scraper](https://apify.com/blueskyscraper/alibaba-scraper) | The same for Alibaba.com: products, suppliers, buying requests |

# Actor input Schema

## `mode` (type: `string`):

<b>Products</b> — 1688 search results: title (with English translation), price in CNY and USD, units sold, repeat-buyer rate, the factory or wholesaler with years, province and audit badges. <b>Product details</b> — the full product page: price range, minimum order, stock, variants with images, specifications, weight, ship-from city, services. <b>Image search</b> — products that look like your photo. <b>Suppliers</b> — one row per factory or wholesaler selling a product.

## `keywords` (type: `array`):

In English or Chinese: <code>yoga mat</code>, <code>bluetooth earphones</code>, <code>蓝牙耳机</code>. English words are translated into the Chinese search words 1688 expects (the row shows both). Each keyword is one search.

## `productUrls` (type: `array`):

Product pages for <b>Product details</b>: <code>https://detail.1688.com/offer/787646790056.html</code>, the mobile link <code>m.1688.com/offer/…</code> or just the ID <code>787646790056</code>.

## `imageUrls` (type: `array`):

For <b>Image search</b>: links to product photos (.jpg, .png, .webp) — an Amazon, AliExpress, Shopify or your own picture. 1688 returns the factories selling the same or a similar item.

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

Any 1688 link, routed automatically: a search results page (<code>s.1688.com/selloffer/offer_search.htm?keywords=…</code>), a product page, or an image link.

## `maxResultsPerInput` (type: `integer`):

Cap for each keyword, image or URL, not for the whole run. 1688 shows up to ~3,000 products per search (60 per page).

## `minPriceCny` (type: `number`):

Products cheaper than this are skipped (free). 1 USD ≈ 7.1 CNY.

## `maxPriceCny` (type: `number`):

Products dearer than this are skipped (free).

## `manufacturersOnly` (type: `boolean`):

Keep only suppliers registered as manufacturers (生产加工) or with an on-site factory audit.

## `provinces` (type: `array`):

Only suppliers from these places, in Chinese: <code>浙江</code> (Zhejiang), <code>广东</code> (Guangdong), <code>义乌</code> (Yiwu), <code>深圳</code> (Shenzhen). Empty = all.

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

1688's best match, or best-selling first (sales in the last 30 days).

## `excludeAds` (type: `boolean`):

Leave out products placed by paid ads (marked <code>isAd</code>). Skipped rows are free.

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

Products and Image search: one full product-page row per result — variants with images, specifications, stock, weight, ship-from city, services — billed as a product page.

## `includeVariants` (type: `boolean`):

Product pages also get <b>every variant (SKU) with its own price and stock</b>, the <b>rating summary</b> with review tags and the latest reviews, and the <b>factory profile</b> — founded, staff, factory area, equipment, OEM/ODM, response rate, certifications. Included in the product-page price.

## `includeFactoryProfile` (type: `boolean`):

Suppliers mode: each supplier row also gets founded date, staff, factory area, equipment, OEM/ODM, new designs per year, response rate and certifications. Included in the supplier price.

## `translateToEnglish` (type: `boolean`):

Titles, specifications, variants, tags and company names get an English copy next to the Chinese original (<code>titleEn</code>, <code>attributesEn</code>…). Included in the price.

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

Stop after this many rows in the whole run — a hard ceiling on cost.

## `monitoringStoreName` (type: `string`):

Give the run a name (e.g. <code>new-yoga-mats</code>) and every later run with the same name returns <b>only rows it has not delivered before</b> — new products, new suppliers. Schedule it daily. Empty = normal run.

## Actor input object example

```json
{
  "mode": "products",
  "keywords": [
    "yoga mat"
  ],
  "maxResultsPerInput": 60,
  "manufacturersOnly": false,
  "sortBy": "bestMatch",
  "excludeAds": false,
  "includeDetails": false,
  "includeVariants": true,
  "includeFactoryProfile": true,
  "translateToEnglish": true,
  "maxItems": 10000
}
```

# Actor output Schema

## `rows` (type: `string`):

One row per product, product page or supplier; error rows explain inputs that could not be read.

# 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 = {
    "keywords": [
        "yoga mat"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("blueskyscraper/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 = { "keywords": ["yoga mat"] }

# Run the Actor and wait for it to finish
run = client.actor("blueskyscraper/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 '{
  "keywords": [
    "yoga mat"
  ]
}' |
apify call blueskyscraper/1688-scraper --silent --output-dataset

```

## MCP server setup

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