# 1688 Wholesale Scraper - 50+ Fields, 250+ Products/Min (`zen-studio/1688-wholesale-scraper`) Actor

Extract 50+ fields per product from 1688.com at 250+ products/minute. Tiered wholesale pricing, supplier verification, factory stats, dropship channels, certifications, trade service scores. Search by keyword (Chinese/English) or offer IDs. JSON output, no login required.

- **URL**: https://apify.com/zen-studio/1688-wholesale-scraper.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Lead generation, E-commerce, Automation
- **Stats:** 7 total users, 2 monthly users, 96.6% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

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

## 1688 Wholesale Scraper | Fastest China B2B Supplier Data Extraction (2026)

<blockquote style="border-left:4px solid #4C945E;background:#F0FDF4;padding:12px 16px">
<span style="font-size:16px;font-weight:700;color:#1C1917">50+ fields per result at 250+ products/minute</span> <span style="font-size:15px;color:#57534E"> — full supplier verification, tiered wholesale pricing, and dropship intelligence from 1688.com. The fastest and richest 1688 scraper on Apify.</span>
</blockquote>

<table>
<tr>
<td colspan="2" style="padding:10px 14px;background:#FF4700;border:none;border-radius:4px 4px 0 0">
<span style="color:#fff;font-size:14px;font-weight:700;letter-spacing:0.5px">1688.com Scraper Suite</span>
<span style="color:#FFD6C2;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;China B2B wholesale intelligence</span>
</td>
</tr>
<tr>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;background:#FFF3EB;border-right:none;border-top:none;vertical-align:top;width:50%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-ghXSMZcW3GxsCrkiR-5hnvsKv4Yt-1688-wholesale-scraper-logo.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/1688-wholesale-scraper" style="color:#FF4700;text-decoration:none;font-weight:700;font-size:14px">1688 Wholesale Scraper</a><br>
<span style="color:#FF4700;font-size:12px;font-weight:600">&#10148; You are here</span>
</td>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:50%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-qiJM8oaLCfBelBxkP-ad7SxvAETZ-1688-wholesale-scraper-logo.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/1688-reviews-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">1688 Reviews Scraper</a><br>
<span style="color:#78716C;font-size:12px">Buyer reviews, ratings, specs</span>
</td>
</tr>
</table>

#### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

````

zen-studio/1688-wholesale-scraper on Apify. Call: ApifyClient("TOKEN").actor("zen-studio/1688-wholesale-scraper").call(run\_input={...}), then client.dataset(run\["defaultDatasetId"]).list\_items().items for results. Key inputs: keywords (array of search terms, Chinese or English, each searched separately), offerIds (array, alternative to keywords), maxResults (int, per keyword, default 100). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/zen-studio~1688-wholesale-scraper/builds/default (Bearer TOKEN) → inputSchema (JSON string, parse it), actorDefinition.storages.dataset.views.overview.transformation.fields (output field list), readme. Requires CN residential proxy. Get token: https://console.apify.com/account/integrations

````

### How It Works

<table align="center" style="border:none;border-collapse:collapse;background:transparent;width:100%">
<tr>
<td align="center" style="border:none;padding:0">
<img src="https://iili.io/B7LPxol.png" width="840" alt="1688.com — what this Actor scrapes"/>
</td>
</tr>
<tr>
<td align="center" style="border:none;padding:8px 0">
<img src="https://iili.io/qVhQ8N9.png" width="72" alt=""/>
</td>
</tr>
<tr>
<td align="center" style="border:none;padding:0">
<a href="https://console.apify.com/actors/ghXSMZcW3GxsCrkiR/input"><img src="https://iili.io/B7LPuK7.png" width="840" alt="Step 1 — Configure your search"/></a>
</td>
</tr>
<tr>
<td align="center" style="border:none;padding:8px 0">
<img src="https://iili.io/qVhQvA7.png" width="72" alt=""/>
</td>
</tr>
<tr>
<td align="center" style="border:none;padding:0">
<a href="https://console.apify.com/actors/ghXSMZcW3GxsCrkiR/input"><img src="https://iili.io/B7LPcDx.png" width="840" alt="Step 2 — Paste as input JSON or run via API"/></a>
</td>
</tr>
<tr>
<td align="center" style="border:none;padding:8px 0">
<img src="https://iili.io/qVhQ8N9.png" width="72" alt=""/>
</td>
</tr>
<tr>
<td align="center" style="border:none;padding:0">
<img src="https://iili.io/B7LPMKP.png" width="840" alt="Step 3 — 50+ fields per product, ready to use"/>
</td>
</tr>
</table>

### How to Scrape 1688.com Wholesale Data

#### Basic — single keyword
```json
{
  "keywords": ["wireless earbuds"],
  "maxResults": 50
}
````

#### Multiple keywords in one run

```json
{
  "keywords": ["wireless earbuds", "phone case", "蓝牙耳机"],
  "maxResults": 100
}
```

Each keyword is searched separately. `maxResults` applies per keyword, so this returns up to 300 products total. Every result includes a `sourceKeyword` field so you can tell which keyword produced it.

#### Best-selling products under 50 CNY

```json
{
  "keywords": ["手机壳"],
  "maxResults": 100,
  "priceMax": 50,
  "sortBy": "bestSelling"
}
```

#### Specific products by offer ID

```json
{
  "offerIds": ["735353578254", "672929783458", "927875250705"]
}
```

#### Verified factories in Shenzhen with low MOQ

```json
{
  "keywords": ["silicone case"],
  "province": "广东",
  "city": "深圳市",
  "minOrderQuantity": 50,
  "merchantType": "superFactory",
  "maxResults": 200
}
```

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `keywords` | array | — | Search terms, Chinese or English. Each keyword is searched separately. Ignored if `offerIds` is set. |
| `offerIds` | array | `[]` | Specific offer IDs to scrape directly. Skips search. |
| `maxResults` | integer | `50` | Max products per keyword (1-10,000). Ignored in offerIds mode. |
| `priceMin` | integer | — | Minimum unit price in CNY. |
| `priceMax` | integer | — | Maximum unit price in CNY. |
| `province` | string | — | Supplier province (Chinese name, e.g. `广东`, `浙江`). |
| `city` | string | — | Supplier city (Chinese name, e.g. `深圳市`, `义乌市`). |
| `minOrderQuantity` | integer | — | Filter by supplier MOQ threshold. |
| `merchantType` | string | `any` | `any`, `superFactory` (超级工厂), or `verifiedMerchant` (实力商家). |
| `sortBy` | string | `relevance` | `relevance`, `bestSelling`, `priceAsc`, `priceDesc`. |
| `includeSkuDetails` | boolean | `false` | Include full SKU variant matrix (colors, sizes, stock per variant). |
| `proxyCountryMode` | string | `rotate` | `rotate`, `CN`, or `HK`. |
| `proxyConfiguration` | object | Apify residential | Proxy settings. Residential required. |

### What Data Can You Extract from 1688.com?

Every result includes:

**Product**

- Title, detail URL, offer ID, category ID/name, unit, top category
- Full image gallery (all images, not just the main one), video URL, description URL
- Tiered wholesale pricing (quantity breaks with min/max quantity and price per tier)
- Product specs (material, style, function, brand, dimensions — 15-20 attributes typical)
- SKU variants (optional): colors, sizes, models, per-variant stock and sales
- Order count, total sales, repurchase rate, tags, out-of-stock flag

**Supplier**

- Company name, founded year, province, city, login ID, user ID, member ID
- Seller type (super factory, TP factory, shili factory, brand-certified)
- Certification: type, number, link to inspection report
- Six trade service scores: composite, goods, logistics, dispute, return, consultation
- Factory stats (super factory only): employees, area (m²), patents, main devices, scale tier, certifications
- Stats (other tiers): repeat buyers, cross-border buyers, repeat rate, positive review rate, response rate, brand partner, total offers
- Verification flags: super factory, TP factory, shili factory, brand-certified, factory, TP, hyper, brand+, processing

**Dropship intelligence**

- Supported channels (Taobao/Cainiao, Pinduoduo, Xiaohongshu, Douyin, Kuaishou, etc.)
- Consign price (with shipping bundled)
- Metrics: 24h/48h pickup rates, 7-day/30-day orders, distributor count, downstream store count, publish date

**Shipping**

- Delivery promise in hours and days, carrier name, total shipping cost (CNY), unit weight (kg), origin location

**Promotions & flags**

- Shop promotions (minimum spend, coupon codes, bundles)
- Product flags: SKU offer, pre-sell, consign market, free sample, buyer protection, WeChat supply

#### Output Example

```json
{
  "offerId": "927875250705",
  "title": "跨境苹果17pm手机壳磁吸16pro肤感防摔iphone15promax磨砂保护套",
  "detailUrl": "https://detailp4p.1688.com/buyer/offerdetail/927875250705.html",
  "price": { "min": 7.5, "max": 9.0, "currency": "CNY" },
  "quantityPrices": [
    { "quantityRange": "1~99个", "quantityMin": 1, "quantityMax": 99, "price": 9.0 },
    { "quantityRange": "100~2999个", "quantityMin": 100, "quantityMax": 2999, "price": 8.5 },
    { "quantityRange": "≥3000个", "quantityMin": 3000, "quantityMax": null, "price": 7.5 }
  ],
  "images": [
    "https://cbu01.alicdn.com/img/ibank/O1CN01CB5wap.jpg",
    "https://cbu01.alicdn.com/img/ibank/O1CN01zrereb.jpg",
    "... 7 more"
  ],
  "videoUrl": "https://cloud.video.taobao.com/play/.../538822573635.mp4",
  "province": "广东",
  "city": "佛山市",
  "orderCount": 2746,
  "saledCount": 382271,
  "saledCountStr": "38万+",
  "repurchaseRate": 0.56,
  "tags": ["退货包运费", "先采后付", "回头率56%"],
  "categoryName": "手机保护套",
  "unit": "个",
  "supplier": {
    "companyName": "佛山市南海区三丰手机配件有限公司",
    "foundedYear": 2014,
    "sellerType": "super_factory",
    "memberId": "b2b-2850655109d72ea",
    "userId": "2850655109",
    "shopUrl": "http://shop1460393846166.1688.com",
    "isFactoryInspected": true,
    "certification": {
      "type": "sgs",
      "number": "编号:CANWT00466895",
      "reportUrl": "https://r.1688.com/auth/fcaReportWireless.htm?..."
    },
    "scores": {
      "composite": 5.0, "goods": 4.0, "logistics": 4.0,
      "dispute": 5.0, "return": 4.33, "consultation": 4.5
    },
    "stats": {
      "factoryArea": 10380,
      "employees": 350,
      "patents": 33,
      "mainDevices": 46,
      "scaleTier": "规上企业",
      "certifications": "FDA认证",
      "brandPartner": "品胜",
      "totalOffers": 180
    },
    "flags": {
      "isSuperFactory": true, "isFactory": true, "isTp": true,
      "isTpFactory": false, "isBrandPlus": false, "isProcessingTag": true
    }
  },
  "specs": [
    { "name": "材质", "value": "其他" },
    { "name": "款式", "value": "保护壳" },
    { "name": "品牌", "value": "三丰" },
    { "name": "功能", "value": "防震,磁吸,防磨,防摔" },
    { "name": "工艺", "value": "注塑" }
  ],
  "dropship": {
    "enabled": true,
    "consignPrice": "¥13.00包邮 去铺货",
    "channels": ["淘宝(菜鸟)", "拼多多", "抖音"],
    "metrics": {
      "orders30d": "100以内",
      "pickupRate48h": 1.0,
      "pickupRate24h": 0.5,
      "distributorCount": "3000+",
      "downstreamStoreCount": "400+",
      "publishDate": "2025年5月"
    }
  },
  "shipping": {
    "deliveryHours": 48,
    "deliveryDays": 2,
    "logisticsText": "承诺48小时发货",
    "totalCost": 4.0,
    "unitWeight": 0.03,
    "location": "广东省佛山市"
  },
  "promotions": [
    {
      "type": "SHOP_PROMOTION",
      "name": "满优惠",
      "label": "满500元包邮",
      "detail": "单笔订单满500元，免快递运费"
    }
  ],
  "productFlags": {
    "isSkuOffer": true, "isPreSell": false, "isConsignMarket": true,
    "isFreeSample": true, "isBuyerProtection": true, "isWeChatSupply": true
  },
  "descriptionUrl": "https://air.1688.com/pages/od/app-desc/d7p56fw2w/index.html?...",
  "winportUrl": "https://winport.m.1688.com/page/index.html?memberId=b2b-...",
  "isOutOfStock": false,
  "sourceKeyword": "手机壳",
  "scrapedAt": "2026-04-05T09:08:04.876341+00:00"
}
```

### Advanced Usage

#### Find suppliers with patents and large factories

```json
{
  "keywords": ["bluetooth speaker"],
  "merchantType": "superFactory",
  "sortBy": "bestSelling",
  "maxResults": 100
}
```

The `supplier.stats.patents`, `employees`, and `factoryArea` fields let you filter post-scrape for serious manufacturers vs resellers.

#### Build a dropship sourcing list

```json
{
  "keywords": ["LED strip light"],
  "sortBy": "bestSelling",
  "priceMax": 30,
  "maxResults": 500
}
```

Filter results where `dropship.enabled = true` and `dropship.metrics.pickupRate48h > 0.95` for reliable fulfillment partners.

#### Full product audit with SKU variants

```json
{
  "offerIds": ["735353578254", "672929783458"],
  "includeSkuDetails": true
}
```

Adds full `skuDetails` matrix — every color/size combination with stock and sales data per variant.

#### City-specific supplier research

```json
{
  "keywords": ["硅胶制品"],
  "city": "东莞市",
  "minOrderQuantity": 100,
  "maxResults": 300
}
```

### Pricing

**$4.99 per 1,000 products** (free tier). Apify Starter/Scale/Business plans get volume discounts down to **$3.99/1,000**. Platform usage included.

### FAQ

**How many results can I extract?**
Up to 10,000 per keyword. Set `maxResults` to any value between 1 and 10,000. With multiple keywords, each keyword gets its own budget.

**Can I search multiple keywords at once?**
Yes. Pass an array of keywords and each is searched separately in a single run. Results land in one dataset with a `sourceKeyword` field so you can tell which keyword produced each result.

**How fresh is the data?**
Real-time. Every product, price, and supplier stat is fetched live on each run — no caching.

**Do I need a 1688 account?**
No. All data is publicly visible on 1688.com. No login, no cookies, no session setup.

**Does it work with English keywords?**
Yes, but Chinese keywords typically return more and better results since 1688 is a domestic Chinese marketplace. The scraper also translates certain category terms automatically.

**Can I scrape specific products without searching?**
Yes. Pass product IDs in the `offerIds` array. The ID appears in any 1688 product URL as `offerId=...`.

**How fast is it?**
Search runs sequentially on a token-holding connection; supplier and product detail fetches run in parallel (40 concurrent per run) with automatic seller deduplication. Typical throughput: 250+ fully-enriched products per minute.

**Can I filter by supplier verification?**
Yes. Set `merchantType` to `superFactory` (top-tier manufacturers) or `verifiedMerchant` (trusted sellers). Combine with `province`/`city` and `minOrderQuantity` for precise targeting.

**What's the difference between `orderCount`, `saledCount`, and `repurchaseRate`?**
`orderCount` is the 30-day order volume shown in search results. `saledCount` is lifetime sales (from product detail page). `repurchaseRate` is the % of buyers who re-ordered — a strong quality signal.

**Do I get product images?**
Yes. Every result includes the full image gallery (not just the main image), plus the product video URL when available.

**What happens if a supplier's data is incomplete?**
Fields return `null` rather than dropping entries. You always get the product data, and the scraper retries supplier fetches automatically on anti-bot blocks.

### Scraping Product Reviews

This actor focuses on product and supplier data. For buyer reviews (star ratings, review text, buyer location, purchased specs, repeat-customer flags), use the dedicated [1688 Reviews Scraper](https://apify.com/zen-studio/1688-reviews-scraper). Copy the `offerId` values from this actor's output and paste them into the Reviews Scraper's `productUrls` input. Each review is a flat JSON row with 19 fields, paginated up to 500 reviews per product.

### Support

- **Bugs**: Issues tab
- **Features**: Issues tab

### Legal Compliance

Extracts publicly available data from 1688.com. Users must comply with 1688 terms of service and data protection regulations (GDPR, CCPA). This tool is for research, sourcing, and competitive analysis purposes.

***

*Fast 1688.com scraper with full product, supplier, dropship, and shipping data in every result.*

# Actor input Schema

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

Products to search for. Works with <b>English</b> (wireless earbuds, phone case) or <b>Chinese</b> (手机壳, 蓝牙耳机).<br><br>Each keyword is searched separately. <b>Max results</b> applies per keyword.<br><br>Chinese keywords typically return more results since 1688 is a domestic Chinese marketplace.<br><br>Ignored if <b>Offer IDs</b> are provided.

## `offerIds` (type: `array`):

Specific product IDs to scrape directly (skips search). The ID appears in any 1688 product URL as <code>offerId=<b>735353578254</b></code>.<br><br>If filled, the <b>keywords</b> and <b>filters</b> are ignored.

## `maxResults` (type: `integer`):

Maximum products to scrape per keyword. Set to <b>10,000</b> for unlimited scraping. Ignored when <b>Offer IDs</b> are filled.

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

How to sort search results.

## `includeSkuDetails` (type: `boolean`):

Add the full SKU variant matrix (colors, sizes, models with per-variant stock and sales). Significantly increases output size per product.<br><br>Leave off if you only need product-level data.

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

Only include products with unit price ≥ this value. In Chinese yuan.

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

Only include products with unit price ≤ this value. In Chinese yuan.

## `minOrderQuantity` (type: `integer`):

Only include suppliers whose minimum order is ≤ this value. Useful for finding suppliers willing to sell small quantities.

## `merchantType` (type: `string`):

Filter by supplier verification tier.<br><br><b>Super Factory</b> (超级工厂): top-tier manufacturers with verified production capacity.<br><b>Verified Merchant</b> (实力商家): trusted sellers with strong track records.

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

Filter suppliers by province. Use Chinese name, e.g. <code>广东</code> (Guangdong), <code>浙江</code> (Zhejiang), <code>江苏</code> (Jiangsu).

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

Filter suppliers by city. Use Chinese name, e.g. <code>深圳市</code> (Shenzhen), <code>广州市</code> (Guangzhou), <code>义乌市</code> (Yiwu).

## Actor input object example

```json
{
  "keywords": [
    "wireless earbuds"
  ],
  "offerIds": [],
  "maxResults": 100,
  "sortBy": "relevance",
  "includeSkuDetails": false,
  "merchantType": "any"
}
```

# Actor output Schema

## `results` (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": [
        "wireless earbuds"
    ],
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/1688-wholesale-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": ["wireless earbuds"],
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/1688-wholesale-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 '{
  "keywords": [
    "wireless earbuds"
  ],
  "maxResults": 100
}' |
apify call zen-studio/1688-wholesale-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=zen-studio/1688-wholesale-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "1688 Wholesale Scraper - 50+ Fields, 250+ Products/Min",
        "description": "Extract 50+ fields per product from 1688.com at 250+ products/minute. Tiered wholesale pricing, supplier verification, factory stats, dropship channels, certifications, trade service scores. Search by keyword (Chinese/English) or offer IDs. JSON output, no login required.",
        "version": "0.0",
        "x-build-id": "b8WPRfHycr9NuyJkZ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/zen-studio~1688-wholesale-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-zen-studio-1688-wholesale-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/zen-studio~1688-wholesale-scraper/runs": {
            "post": {
                "operationId": "runs-sync-zen-studio-1688-wholesale-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/zen-studio~1688-wholesale-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-zen-studio-1688-wholesale-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": {
                    "keywords": {
                        "title": "Search keywords (English or Chinese) 🔍",
                        "type": "array",
                        "description": "Products to search for. Works with <b>English</b> (wireless earbuds, phone case) or <b>Chinese</b> (手机壳, 蓝牙耳机).<br><br>Each keyword is searched separately. <b>Max results</b> applies per keyword.<br><br>Chinese keywords typically return more results since 1688 is a domestic Chinese marketplace.<br><br>Ignored if <b>Offer IDs</b> are provided.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "offerIds": {
                        "title": "Offer IDs",
                        "type": "array",
                        "description": "Specific product IDs to scrape directly (skips search). The ID appears in any 1688 product URL as <code>offerId=<b>735353578254</b></code>.<br><br>If filled, the <b>keywords</b> and <b>filters</b> are ignored.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max results (set 10000 for unlimited)",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum products to scrape per keyword. Set to <b>10,000</b> for unlimited scraping. Ignored when <b>Offer IDs</b> are filled.",
                        "default": 100
                    },
                    "sortBy": {
                        "title": "Sort order",
                        "enum": [
                            "relevance",
                            "bestSelling",
                            "priceAsc",
                            "priceDesc"
                        ],
                        "type": "string",
                        "description": "How to sort search results.",
                        "default": "relevance"
                    },
                    "includeSkuDetails": {
                        "title": "Include SKU variants",
                        "type": "boolean",
                        "description": "Add the full SKU variant matrix (colors, sizes, models with per-variant stock and sales). Significantly increases output size per product.<br><br>Leave off if you only need product-level data.",
                        "default": false
                    },
                    "priceMin": {
                        "title": "Minimum price (CNY)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include products with unit price ≥ this value. In Chinese yuan."
                    },
                    "priceMax": {
                        "title": "Maximum price (CNY)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include products with unit price ≤ this value. In Chinese yuan."
                    },
                    "minOrderQuantity": {
                        "title": "Minimum order quantity",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Only include suppliers whose minimum order is ≤ this value. Useful for finding suppliers willing to sell small quantities."
                    },
                    "merchantType": {
                        "title": "Merchant type",
                        "enum": [
                            "any",
                            "superFactory",
                            "verifiedMerchant"
                        ],
                        "type": "string",
                        "description": "Filter by supplier verification tier.<br><br><b>Super Factory</b> (超级工厂): top-tier manufacturers with verified production capacity.<br><b>Verified Merchant</b> (实力商家): trusted sellers with strong track records.",
                        "default": "any"
                    },
                    "province": {
                        "title": "Supplier province",
                        "type": "string",
                        "description": "Filter suppliers by province. Use Chinese name, e.g. <code>广东</code> (Guangdong), <code>浙江</code> (Zhejiang), <code>江苏</code> (Jiangsu)."
                    },
                    "city": {
                        "title": "Supplier city",
                        "type": "string",
                        "description": "Filter suppliers by city. Use Chinese name, e.g. <code>深圳市</code> (Shenzhen), <code>广州市</code> (Guangzhou), <code>义乌市</code> (Yiwu)."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
