# 1688 Scraper (No Login) - Wholesale Prices, MOQ & Suppliers (`headply/1688-scraper`) Actor

Scrape 1688.com without an account: search by keyword or open product links and get wholesale price tiers, minimum order, units sold, stock and price per variant, plus the supplier's name, ratings and repeat-buyer rate. Scheduled 'what changed' mode for price and stock tracking.

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

## Pricing

from $1.75 / 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 (No Login): wholesale prices, MOQ, stock and suppliers

Get products from **1688.com**, China's biggest wholesale marketplace, into a spreadsheet. Type a keyword or paste
product links, press Start, and get every product's **price, price breaks by quantity, minimum order, units sold, stock
and the price and stock of every variant**, together with the **supplier's company, ratings, repeat-buyer rate and
years on 1688**. No 1688 account, no cookies, no login.

Made for sourcing agents, dropshippers, Amazon and Shopify sellers, importers and price researchers who need 1688
data in bulk instead of clicking through product pages one by one.

### What you can do with it

- **Find suppliers for a product:** search 保温杯 (vacuum flask) and compare 60, 600 or 3,000 offers by price,
  minimum order and how often buyers come back to each supplier.
- **Check a supplier before you order:** factory or trader, years on 1688, service score, rating and positive-review
  rate, all in one row.
- **Track prices and stock:** schedule the run daily and get only the products whose price, sales or stock changed.
- **Feed your catalogue or tools:** clean JSON, CSV or Excel with stable English field names.

### How to use it, step by step

#### 1. Tell it what to look for

Type one or more keywords in **Keywords or search links**. Chinese keywords give the best results (for example
`保温杯`, `手机壳`, `连衣裙`), English keywords also work. You can paste 1688 search page links instead, or product
links and IDs in **Product links or IDs**.

Set **Max products per search** (1688 shows 60 per page; you can go up to 3,000) and leave **Full product details**
on to get variants, stock and the supplier profile.

![Input: one keyword, 20 products, full details on](https://api.apify.com/v2/key-value-stores/IQ2Afx4n4jiqjVvuD/records/1688-scraper-01-input.png)

#### 2. Press Start

The run in these screenshots searched `保温杯` with 20 products and full details. It finished in **23 seconds**.
Large searches take longer: about 1,000 products with full details in 10 minutes, or 3,000 products in search-only
mode in a little over 2 minutes.

#### 3. Read the products

The **Products** view shows the photo, title, lowest and highest price, minimum order, unit, units sold, stock and
the number of variants. Open any row to see everything, including each variant with its own price and stock.

![Products view: price range, minimum order, units sold, stock and variants](https://api.apify.com/v2/key-value-stores/IQ2Afx4n4jiqjVvuD/records/1688-scraper-02-products.png)

#### 4. Compare the suppliers

Switch to the **Suppliers** view to compare who sells each product: company name, factory or trader, years on 1688,
repeat-buyer rate over the last 3 months, rating, positive-review rate, where it ships from and a link to the shop.

![Suppliers view: company, type, years on 1688, repeat buyers and rating](https://api.apify.com/v2/key-value-stores/IQ2Afx4n4jiqjVvuD/records/1688-scraper-03-suppliers.png)

#### 5. Export or connect

Download the results as Excel, CSV, JSON or XML from the **Export** button, or pull them from the API, n8n, Make or
Zapier. To keep a list fresh, schedule the run (see *Track prices and stock* below).

### Settings

| Setting | What it does | Default |
|---|---|---|
| Keywords or search links | Words to search on 1688, or 1688 search page links | — |
| Product links or IDs | 1688 product pages or just the number in the link | — |
| Max products per search | How many products each keyword or search link returns (up to 3,000) | 60 |
| Full product details | On: variants with price and stock, price breaks, minimum order, supplier profile. Off: search data only, cheaper and faster | On |
| Only new or changed products | For scheduled runs: return only products that are new or changed since the last run | Off |
| Monitor name | Keeps separate memories for different schedules | default |

With no input at all, the run returns a small live sample (5 products for "phone case") so you can see the output.

### Example output

One product from the run above (shortened: the real row has all 128 variants and every image):

```json
{
  "offerId": "674035283676",
  "url": "https://detail.1688.com/offer/674035283676.html",
  "title": "跨境750ml大容量小口瓶304不锈钢保温杯户外运动车载便携磨砂水杯",
  "currency": "CNY",
  "price": 13,
  "priceMax": 23,
  "priceType": "per-variant",
  "minOrderQuantity": 1,
  "unit": "个",
  "soldCount": 107111,
  "stockTotal": 11976665,
  "variantCount": 128,
  "variants": [
    { "skuId": "6261554607345", "name": "橡胶漆-熏衣紫+手提小口瓶 / 500ml", "price": 17, "stock": 95148 },
    { "skuId": "6261554607288", "name": "橡胶漆-浅蓝+手提小口瓶 / 750ml", "price": 21, "stock": 97414 }
  ],
  "shipsFrom": "浙江省金华市",
  "deliveryPromise": "承诺48小时发货·常发圆通快递",
  "searchPosition": 1,
  "isSponsored": true,
  "supplier": {
    "name": "永康市迎庆杯业有限公司",
    "type": "factory",
    "yearsOnPlatform": 11,
    "serviceScore": 5,
    "repeatBuyerRate3m": 51.92,
    "rating": 5,
    "positiveReviewRate": 99.8,
    "reviewCount": 14427,
    "shopUrl": "https://yingqingbeiye.1688.com"
  },
  "dataLevel": "full"
}
```

**Price breaks by quantity.** Some suppliers price by order size instead of by variant. Those products have
`"priceType": "quantity-tiers"` and a `priceTiers` list, for example yoga pants at ¥59 from 1 piece, ¥49
from 200 and ¥39 from 300:

```json
"priceTiers": [
  { "minQuantity": 1, "price": 59 },
  { "minQuantity": 200, "price": 49 },
  { "minQuantity": 300, "price": 39 }
]
```

Search-only rows (Full product details off) carry the title, price, units sold, image, supplier name, shop link,
years on 1688, repeat-buyer rate and the supplier's service scores, with `"dataLevel": "search"`.

### Track prices and stock

Turn on **Only new or changed products**, give the schedule a **Monitor name** and schedule the run (daily, for
example). The first run returns everything. Each later run returns only products that are new, or whose price, units
sold or stock changed, with a `changes` object (old price, sales and stock difference). Unchanged products are not
returned and not billed.

### Pricing

You pay per product delivered:

| Event | Price |
|---|---|
| Product with full details | $2.50 per 1,000 (down to $1.75 on higher Apify plans) |
| Product with search data only | $0.80 per 1,000 |
| Run start | $0.001 |

Examples: 60 products with full details cost about **$0.15**; 1,000 cost about **$2.50**; a 3,000-product
search-only list costs about **$2.40**. Products that don't exist, duplicates and unchanged products are never
charged, and you can cap any run with Apify's maximum cost per run. On Apify's free plan a run returns up to 10
products.

### Use it from code or n8n

```bash
curl -X POST "https://api.apify.com/v2/acts/headply~1688-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords": ["保温杯"], "maxProductsPerSearch": 60}'
```

In n8n, Make or Zapier, use the Apify integration with the Actor `headply/1688-scraper` and the same input.

### FAQ

**Is the data in English?** 1688 is a Chinese marketplace, so titles, variant names and locations come in Chinese as
the supplier wrote them. Field names are in English, and prices and numbers work in any spreadsheet. Prices are in
Chinese yuan (CNY).

**Chinese or English keywords?** Both work. Chinese keywords return the established, best-selling products; English
keywords tend to find newer cross-border listings.

**Are the ratings for the product or the supplier?** 1688 shows ratings and review counts for the supplier as a
whole, so they are in the `supplier` object. Brand-new listings with no sales yet often have no rating at all; those
fields are then empty.

**What does "units sold" mean?** The sales count 1688 shows on the product page. In search-only mode it is the
rounded figure from the search page (for example "60+" becomes 60).

**Why is `isSponsored` true on some products?** Those listings are ads in 1688's search results. They are real
products; the flag lets you filter them out.

**Does it need my 1688 account?** No. No account, no cookies, no login.

### Related Actors

- [TikTok Shop Scraper](https://apify.com/headply/tiktok-shop-scraper): sales and stock on TikTok Shop in 10 countries.
- [Jumia Scraper](https://apify.com/headply/jumia-price-intelligence): product prices and sellers in 8 African countries.

# Actor input Schema

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

What to search on 1688, one per line: words (Chinese works best, e.g. 手机壳; English also works) or 1688 search page links.

## `products` (type: `array`):

1688 product pages (https://detail.1688.com/offer/123456789012.html) or just the number in the link.

## `maxProductsPerSearch` (type: `integer`):

How many products to return for each keyword or search link (1688 shows 60 per page).

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

On: every product is opened for variants with price and stock, price tiers, minimum order and the supplier profile. Off: search result data only (title, price, units sold, supplier, scores), cheaper and faster.

## `monitorChanges` (type: `boolean`):

Return only products that are new or whose price, units sold or stock changed since the last run with the same monitor name. Unchanged products are not returned or billed.

## `monitorName` (type: `string`):

Keeps separate memories for different schedules (e.g. 'phone-cases-daily').

## `selfTest` (type: `boolean`):

Fail the run when nothing is delivered (health checks).

## Actor input object example

```json
{
  "keywords": [
    "手机壳",
    "yoga pants"
  ],
  "products": [
    "https://detail.1688.com/offer/622657029344.html"
  ],
  "maxProductsPerSearch": 20,
  "includeDetails": true,
  "monitorChanges": false,
  "monitorName": "default",
  "selfTest": false
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "keywords": [
        "手机壳",
        "yoga pants"
    ],
    "products": [
        "https://detail.1688.com/offer/622657029344.html"
    ],
    "maxProductsPerSearch": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("headply/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 pants",
    ],
    "products": ["https://detail.1688.com/offer/622657029344.html"],
    "maxProductsPerSearch": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("headply/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 pants"
  ],
  "products": [
    "https://detail.1688.com/offer/622657029344.html"
  ],
  "maxProductsPerSearch": 20
}' |
apify call headply/1688-scraper --silent --output-dataset

```

## MCP server setup

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