1688 Wholesale Products Scraper

Scrape 1688 wholesale product listings, prices, MOQs, sales signals, and supplier details from public search and offer pages.

Data fields

FieldTypeDescription
offerIdstringValue exported as offerId.
titlestring | nullValue exported as title.
detailUrlstringValue exported as detailUrl.
sourceKeywordstring | nullValue exported as sourceKeyword.
searchPageinteger | nullValue exported as searchPage.
positioninteger | nullValue exported as position.
pricenumber | nullValue exported as price.
priceTextstring | nullValue exported as priceText.

Input preview

keywordsSearch keywords *
maxResultsMaximum products
offerIdsOffer IDs (planned detail mode)
offerUrlsOffer URLs (planned detail mode)
priceMinMinimum price (CNY)
priceMaxMaximum price (CNY)

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

Ready-to-run examples

Open a saved Apify example, adjust the input, and run the actor in your own Apify account.

View all examples

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Use this 1688 wholesale products scraper to scrape public 1688 wholesale product search results by keyword and export sourcing-ready product rows: offer IDs, titles, prices, MOQ text when shown, transaction signals, supplier/location signals, images, badges, and canonical product URLs. It supports 1688 wholesale products API workflows and helps export 1688 wholesale products data for recurring sourcing research.

Why use it

1688 is Alibaba's domestic China wholesale marketplace. This Actor helps sourcing, dropshipping, procurement, and ecommerce research teams build spreadsheets from public product search results without manually copying mobile pages.

Input example

{
  "keywords": ["手机壳", "蓝牙耳机"],
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}

Output example

{
  "offerId": "1912412526",
  "title": "定制硅胶手机套 创意手机软胶保护套 滴胶卡通公仔手机壳厂家定制",
  "detailUrl": "https://dj.1688.com/ci_bb?...",
  "sourceKeyword": "手机壳",
  "searchPage": 1,
  "position": 2,
  "price": 5,
  "priceText": "¥5.0 成交1笔",
  "currency": "CNY",
  "moq": null,
  "moqText": null,
  "soldText": "成交1笔",
  "bookedCount": 1,
  "imageUrl": "https://...",
  "images": ["https://..."],
  "supplier": { "name": null, "url": null, "location": null, "badges": [], "yearsActive": null, "isVerified": null },
  "serviceTags": ["深度验厂"],
  "canonicalUrl": "https://detail.1688.com/offer/1912412526.html",
  "scrapedAt": "2026-08-02T16:37:22.934Z",
  "error": null
}

Input settings

Field Type Description
keywords string[] Product search terms. Chinese terms usually produce the strongest 1688 matches.
maxResults integer Maximum unique products to save across all keywords.
priceMin, priceMax number Optional local price filters after price extraction.
minOrderQuantity integer Optional local MOQ filter when MOQ is visible.
province, city string Optional exact supplier location filters when location is visible.
proxyConfiguration object Residential Apify proxy is recommended for 1688 access.

Tips and limits

  • Use Chinese keywords for the broadest 1688 coverage.
  • Keep maxResults low when testing because residential proxy access costs real bandwidth.
  • If a search produces fewer rows than requested, the Actor stops after duplicate or empty pagination pages instead of looping indefinitely.
  • 1688 may vary which supplier or MOQ fields are visible on search cards.

Who is it for

  • Ecommerce sourcing teams comparing wholesale product candidates on 1688.
  • Dropshipping operators who need repeatable product research exports.
  • Procurement analysts checking MOQ, price text, supplier signals, and product images.
  • Marketplace data teams building internal lead lists from public 1688 search pages.
  • Agencies preparing supplier/product shortlists for clients without manually copying cards.

API usage

JavaScript

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/1688-wholesale-products-scraper').call({
  keywords: ['手机壳'],
  maxResults: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient

client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/1688-wholesale-products-scraper').call(run_input={
    'keywords': ['手机壳'],
    'maxResults': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~1688-wholesale-products-scraper/runs?token=YOUR_APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"keywords":["手机壳"],"maxResults":20}'

After the run succeeds, download rows from the run's default dataset using the dataset ID returned by the API.

MCP and agents

Use this Actor from agents through Apify MCP with the Actor tool enabled for 1688-wholesale-products-scraper. Send the same JSON input you would use in the Apify console.

Example Claude Desktop command:

claude mcp add apify -- npx -y @apify/actors-mcp-server --actors fetch_cat/1688-wholesale-products-scraper

Example MCP JSON configuration:

{
  "mcpServers": {
    "apify": {
      "command": "npx",
      "args": ["-y", "@apify/actors-mcp-server", "--actors", "fetch_cat/1688-wholesale-products-scraper"],
      "env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
    }
  }
}

Example prompts:

  • "Run the 1688 wholesale products scraper for 手机壳 and return the lowest visible prices."
  • "Export 20 public 1688 product rows for 蓝牙耳机 and summarize supplier/location signals."
  • "Compare product badges and MOQ text for 数据线 search results."

Support

Open an issue on the Actor page if a public 1688 search result is missing or if you need help choosing inputs.

Common questions

Questions and answers reused from the canonical actor README.

What data can I export with 1688 wholesale products scraper?

You can export offer IDs, product titles, visible prices, MOQ text when shown, transaction text, supplier/location signals, images, badges, search position, and product URLs from public 1688 product search pages.

Can I run 1688 Wholesale Products Scraper through an API, schedule, or MCP client?

Yes. Run it from the Apify API, schedule repeat jobs in Apify Console, or connect it to agents through Apify MCP using the examples above.

How much does it cost to use 1688 Wholesale Products Scraper?

The Actor uses pay-per-event pricing. The live Pricing tab shows the current start and per-item rates before you run it.

Why are some fields empty?

1688 does not expose every supplier, SKU, shipping, or description field in every public search card. Empty optional fields mean the source did not expose that value in the current route.