1688 Wholesale Products Scraper
Pricing
from $2.50 / 1,000 results
1688 Wholesale Products Scraper
Scrape 1688.com wholesale products by English or Chinese keyword or link, no login or cookies. Get bulk price tiers, MOQ, units sold, supplier trust, SKUs and shipping in USD or other currencies. Filter factories. Clean JSON for sourcing and price tracking.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Data WiKi
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
4
Monthly active users
3 days ago
Last modified
Categories
Features
Share
🚀 What is 1688 Wholesale Products Scraper?
1688 Wholesale Products Scraper is an Apify Actor that works as a 1688 scraper: it searches 1688.com, China's B2B wholesale marketplace, by English or Chinese keyword or product link. It returns one row per product with bulk price tiers, minimum order, units sold, supplier details and shipping, ready to export as JSON, CSV or Excel.
- Search in English or Chinese: English keywords are translated for you, so you do not need to know Chinese.
- Wholesale prices you can compare: prices stay in yuan and are also converted to one of 16 currencies you choose.
- Supplier filters: keep only factories, wholesalers or agents, or only suppliers with a Super Factory, Verified Merchant or Source Flagship badge.
- No login: the Actor reads public pages that any visitor can see, so you only need an Apify account.
- Runs on Apify: as an Apify 1688 scraper it comes with schedules, webhooks, the API and integrations.
Click Try for free, enter a keyword and press Start.
📊 What data can you extract with this 1688 scraper?
The Actor works as a 1688 data scraper and saves one row per product. The dataset schema documents 61 fields, shown in ten ready-made tables (overview, pricing, sales and reviews, supplier, tags and services, images and video, product details, SKU variants, shipping, search details). You can export the 1688 product data as JSON, CSV, Excel, HTML or XML. Fields marked "details" are filled only when Full product page details is on or when you pass product links.
| Field | Description | Example |
|---|---|---|
offerId | 1688 product (offer) ID | 1044116406462 |
title | Product title in Chinese, as listed on 1688 | 无线蓝牙耳机 |
titleEn | Machine-translated English title; empty when translation is off | Wireless Bluetooth headset |
detailUrl | Link to the product page on 1688 | https://detail.1688.com/offer/1044116406462.html |
price | Price in CNY (min, max, display, currency, priceType, promoLabel) plus converted min and max | { "min": 120.5, "max": 143 } |
quantityPrices | Price per quantity range | [{ "quantityMin": 1, "price": 120.5 }] |
listPriceTiers | Price tiers before promotions (details) | [] |
minOrderQuantity | Smallest quantity a buyer can order | 1 |
unit | Selling unit | PCS |
minOrderCostCNY | First tier price times minimum order quantity | 120.5 |
minOrderCostConverted | Minimum order cost in your chosen currency | 17.97 |
bulkDiscountPct | Percent saved between the first and last price tier | 12 |
images | Product image URLs, full size | ["https://..."] |
videoUrl | Product video (details) | "https://..." |
videoCoverUrl | Cover image of the product video (details) | "https://..." |
skuImages | One image per colour or model variant (details) | ["https://..."] |
province | Supplier province in Chinese | 广东 |
city | Supplier city in Chinese | 深圳市 |
orderCount | Order count shown on the listing | 2300 |
soldCount | Units sold as shown on the listing | 100000 |
soldCountIsLowerBound | True when the listing shows a "+" figure, so the real number is at least soldCount | true |
soldScope | 1688 for sales on 1688, allChannels for sales across all channels | 1688 |
soldDisplay | Sales text exactly as shown on 1688 | 已售10万+件 |
totalSold | Total units sold from the product page (details) | 150000 |
salesDisplay | Sales text and period from the product page (details) | "..." |
stock | Units in stock (details) | 5000 |
repurchaseRate | Share of buyers who ordered again, 0 to 1 | 0.32 |
offerRepurchaseRate | Repurchase rate of this product, 0 to 1 | 0.28 |
reviews | Positive rate, grade, review counts and impression tags (details) | { ... } |
isPromoted | True when the listing is a paid placement | false |
block | Listing block marker; NORMAL for ordinary results | NORMAL |
tags | Listing tags in Chinese | ["包邮"] |
tagsEn | English version of tags | ["Free shipping"] |
serviceTags | Service badges in Chinese | ["7天包换"] |
serviceTagsEn | English version of serviceTags | ["7-day exchange"] |
isFactoryDirect | True when the supplier is a manufacturer | true |
supplierTrust | Score from 0 to 100 plus the list of signals that make it up | { "score": 27, "signals": [...] } |
supplier | Company, IDs, type, TrustPass years, inspections, shop links and service scores | { "companyName": "..." } |
specs | Product attribute table (details) | [{ "name": "...", "value": "..." }] |
variantOptions | Options by axis such as colour and size (details) | [...] |
skuDetails | Full SKU variant matrix with price, stock, sales and weight (details) | [...] |
shipping | Dispatch location, logistics text, weight, postage and free-shipping threshold (details) | { ... } |
services | Service guarantees (details) | [...] |
productFlags | Yes/no flags such as SKU offer, pre-sell, mix order (details) | { ... } |
brand | Brand name (details) | "..." |
categoryId | Leaf category ID (details) | "..." |
categoryName | Leaf category name (details) | "..." |
topCategoryId | Top-level category ID (details) | "..." |
listedAt | When the product was listed (details) | 2025-03-01T00:00:00Z |
updatedAt | When the product was last changed (details) | 2026-09-20T00:00:00Z |
dropship | Whether one-piece dropshipping is supported, and the sales channels (details) | { ... } |
isPriceHidden | True when the supplier hides the price (details) | false |
descriptionUrl | Link to the long-form description (details) | "https://..." |
coupons | Coupons offered on the product (details) | [...] |
sameDesignUrl | Link to look-alike products on 1688 | "https://..." |
matchedFilters | Supplier filters that were applied by the search | ["superFactory"] |
sourceKeyword | The keyword you typed | wireless earbuds |
searchKeyword | The Chinese keyword that was searched | 无线耳机 |
detailStatus | ok, blocked or error (details) | ok |
scrapedAt | When the row was collected (ISO date) | 2026-10-26T08:30:00+00:00 |
error | Why an input returned no product (only in no-result rows) | no results |
⚠️ The
supplierTrustscore is calculated by this Actor from signals on the listing, and the signals are listed in the same row. It is not a rating from 1688. Fields that 1688 does not publish for a product are absent or empty in its row.
💡 Use cases for 1688 data
- 1688 product sourcing: search a keyword and compare
price,quantityPricesandminOrderQuantityacross many suppliers to shortlist what to order. It turns China product sourcing into a repeatable search instead of manual browsing. - Find suppliers on 1688: filter by
supplierTypeand merchant badge, switch on One offer per supplier, and keep the saved rows as a supplier list. Rerun it for each product category. - China wholesale suppliers: the
supplierobject holds company, type, TrustPass years, inspections and shop links for each seller. - Verified suppliers: the Verified Merchant badge filter helps you find a 1688 verified supplier.
- Super Factory suppliers: the Super Factory badge filter keeps sellers that carry the 1688 super factory badge.
- Factory direct offers: the
isFactoryDirectfield marks manufacturers, which helps you look for 1688 factory direct offers instead of middlemen. - 1688 dropshipping research: switch on One-piece dropshipping or Ships within 48 hours, then read
dropshipandshippingwith product page details. - Bulk price tiers:
quantityPrices,bulkDiscountPctandminOrderCostConvertedshow how the price falls with quantity and what a minimum order costs in your currency. - Wholesale price tracking: schedule the same search and compare the
priceandscrapedAtvalues between runs to use the Actor as a 1688 price tracker. - Demand research: sort by best selling and read
soldCount,orderCountandrepurchaseRatefor 1688 product research. The same fields support wholesale product research for a new niche. - Marketplace price checks: put 1688 wholesale data next to resale prices from resale price monitoring. That gives you a 1688 price comparison before you commit to a purchase.
- Spreadsheets and agents: export 1688 to CSV or Excel for buyers and finance, or pass the JSON rows to an AI agent.
🛠️ How to scrape 1688 products
These steps give you product sourcing from China without opening product pages by hand.
- Create a free Apify account.
- Open 1688 Wholesale Products Scraper in the Apify Store.
- Enter Search keywords (English or Chinese, one per line) or paste Product links or IDs.
- Add filters if you need them, such as Maximum price (CNY), Max minimum-order quantity or Supplier type.
- Click Start and watch the log: each saved product shows its price, sales and minimum order.
- Open the Output tab or download the dataset as JSON, CSV, Excel, HTML or XML.
How to find suppliers on 1688 with a keyword
Enter the product in Search keywords, set Supplier type to factory or wholesaler, and switch on One offer per supplier. Each saved row then comes from a different supplier. The supplier object gives you a 1688 supplier scraper view of company, type and shop links.
How to compare bulk prices
Set Sort order to price low to high, set Max minimum-order quantity to the largest first order you can accept, and read quantityPrices and minOrderCostConverted in the pricing table.
💰 How much does it cost to scrape 1688?
1688 Wholesale Products Scraper uses pay per event pricing: you pay for each product row it saves, plus a tiny start fee per run. The prices below were read from the live Actor on 2026-10-26; see the Pricing tab for current rates.
| Event | Event key | Price |
|---|---|---|
| Results (primary event) | main_result | per product row, by plan tier (table below) |
| Actor Start | apify-actor-start | $0.00005 per run (one event per GB of memory; the Actor is set to 1024 MB) |
| Result (dataset item) | apify-default-dataset-item | $0.00001 per saved result, a small platform charge on top of the product price, the same on every plan tier |
| Plan tier | Per product | Per 1,000 products |
|---|---|---|
| Free | $0.004 | $4.00 |
| Bronze | $0.0035 | $3.50 |
| Silver | $0.003 | $3.00 |
| Gold and above | $0.0025 | $2.50 |
The tier table shows the main_result price only. The dataset-item charge adds $0.01 per 1,000 saved results on every tier.
Example: 500 products on a Bronze plan cost 500 x $0.0035 = $1.75, plus 500 x $0.00001 = $0.005 for the dataset-item charge, plus the $0.00005 start fee, which is $1.75505 in total. The same 500 products on a Silver plan cost 500 x $0.003 = $1.50, plus $0.005, plus $0.00005, which is $1.50505. Apify platform usage (compute) is billed on top of the events above.
You can set a maximum cost per run in the Apify run options. When that limit is reached, the Actor stops cleanly and keeps the rows already saved.
⬇️ Input
Nothing is strictly required, but this 1688 product scraper needs either Search keywords or Product links or IDs. When product links are filled, keywords and filters are ignored and every product page is read for full details. Max results per keyword applies to each keyword separately: the form default is 10, the schema maximum is 10,000, and 0 means everything the search can reach. See the Input tab for every option.
{"keywords": ["wireless earbuds", "手机壳"],"maxResults": 20,"sortBy": "bestSelling","priceMax": 50,"minOrderQuantity": 100,"merchantType": "verifiedMerchant","province": ["Guangdong"],"convertTo": "USD"}
To read specific products, pass links or IDs instead:
{"urls": ["https://detail.1688.com/offer/735353578254.html", "735353578254"]}
Keyword search and product link modes
Keyword mode runs a separate 1688 product search for each keyword and reads every result page. In this mode the Actor acts as a 1688 search scraper, and each listing becomes one row.
Link mode reads each pasted link or ID in full, so you can scrape 1688 product data for products you already know. Turn on Full product page details to use the Actor as a 1688 SKU scraper with colours, sizes, stock and weight. Each product is saved as soon as it is read.
Input tips
💡 Chinese keywords are searched as typed. English keywords are translated when English titles and tags is on; if you switch it off, English keywords are searched as typed and results are weaker.
💡 Enter the 1688 minimum order quantity you can accept in Max minimum-order quantity. It keeps suppliers whose minimum order is at most that number, so it suits small test orders, and products with no stated minimum are kept. Minimum price (CNY) and Maximum price (CNY) work in yuan, where 0 means no limit.
⚠️ One-piece dropshipping and Ships within 48 hours cannot be combined: dropshipping wins. If you give both cities and provinces, the cities are used for the search and the provinces are checked on every product. Paid ads are left out unless you switch on Include paid ads.
⬆️ Output
The scraped results are shown as a dataset in the Storage tab and in the Output tab as ten tables. The table view does not show all the fields. Export the dataset as JSON, CSV, Excel, HTML or XML, which is how you save 1688 products to JSON or a spreadsheet. A SUMMARY file in the key-value store holds the run counts. A keyword or link that returns nothing gets one extra row with the reason in error. Because every search result becomes one row, the Actor also serves as a 1688 listings scraper for a whole category. The pricing and sales tables work as a 1688 data extractor that needs no code.
The following example is illustrative: the values are made up to show the shape of a row, built from the dataset fields. Real rows have more fields, and the details fields are filled only with product page details.
{"offerId": "1044116406462","title": "无线蓝牙耳机 长续航降噪","titleEn": "Wireless Bluetooth headset long battery noise reduction","detailUrl": "https://detail.1688.com/offer/1044116406462.html","price": { "min": 120.5, "max": 143, "currency": "CNY", "minConverted": 17.97, "maxConverted": 21.33, "convertedCurrency": "USD" },"quantityPrices": [{ "quantityRange": "1-99", "quantityMin": 1, "quantityMax": 99, "price": 143 }, { "quantityRange": "100+", "quantityMin": 100, "quantityMax": null, "price": 120.5 }],"minOrderQuantity": 1,"unit": "PCS","minOrderCostCNY": 143,"bulkDiscountPct": 15.7,"province": "广东","city": "深圳市","soldCount": 100000,"isPromoted": false,"isFactoryDirect": true,"supplierTrust": { "score": 27, "signals": ["+3 TrustPass 2 yrs", "+20 composite service score 5.0/5"] },"sourceKeyword": "wireless earbuds","scrapedAt": "2026-10-26T08:30:00+00:00"}
⚠️ Limitations and error handling
- Search ceiling: 1688 lets one search reach about 2,000 rows. The Actor works past that where it can, and the log notes when a search topped out.
- Product pages are best effort: 1688 refuses some product pages. The search data of that row is still saved,
detailStatussaysok,blockedorerror, and the run summary counts them. After repeated refusals the Actor stops reading product pages for the rest of the run. - Scope: the Actor covers 1688 wholesale China listings only. Other marketplaces are not supported.
- Link mode needs the product page: link mode works as a 1688 product extractor, so a refused product page gives an error row instead of data.
- Public data only: no login-only pages, no supplier phone numbers or emails, and no way to place orders or contact suppliers.
- Prices: converted prices use the exchange rate at run time; if the live rate cannot be read, an approximate rate is used and a warning is logged.
- Maximum results: the schema allows up to 10,000 per keyword. Run a small test to see how many products your filters leave.
Inputs that return nothing get a row with an error text. Typical values:
| Error text | What to do |
|---|---|
no results | Try another keyword or looser filters. |
only paid ads were found (...) | Switch on Include paid ads or change the keyword. |
all N rows examined were rejected by: ... | Loosen the filters named in the message. |
1688 refused the search - try again later or use a proxy | Retry later, or choose a proxy in the input. |
the product page was refused for this connection ... | Retry later; product links need the product page. |
the product page could not be read | Check the link, then retry. |
Input mistakes stop the run with a clear message, for example a minimum price above the maximum price, a negative Max results per keyword, or no keywords and no links. If 12 requests in a row cannot connect, the run stops and says so. Rows saved before a stop are kept.
🔌 Integrating 1688 Wholesale Products Scraper with other apps
1688 Wholesale Products Scraper runs on the Apify platform, so you can start it from code, put it on a schedule, and trigger a webhook or workflow when a run finishes.
- Use the Apify API (the API tab has ready-made JavaScript, Python and CLI snippets) as a 1688 scraper API for your own tools. You send the input as JSON and receive the rows as JSON.
- This is not the official 1688 API; it is a way to run searches and read 1688 data from your own code.
- Connect results to Make, Zapier, Google Sheets, Slack or Airbyte through the Apify integrations.
- Schedule the same keywords weekly and compare datasets to watch wholesale prices over time.
- AI agents can find and run the Actor through the Apify MCP server at
https://mcp.apify.com.
🔗 Other scrapers by data_wiki
This 1688 wholesale scraper is one of several Actors by the same developer.
| Actor | What it extracts | When to use it |
|---|---|---|
| Facebook Marketplace scraper | Prices, photos and locations from public Marketplace listings | Check resale prices of products you plan to source |
| Douyin search scraper | Douyin videos, authors, hashtags and engagement by keyword | Spot Chinese short-video product trends before sourcing |
| Douyin profile scraper | Followers, posts and hashtags of public Douyin creators | Research creators who promote products in China |
| Airbnb price research scraper | Airbnb listings, prices and reviews | A different topic, for rental price research |
| AI model price comparison data | Prices per million tokens, context size and provider speed of OpenRouter models | You also compare prices of AI models, not wholesale goods |
| Pinterest pins and boards | Product ideas and creators from Pinterest searches | You look for product ideas on Pinterest before checking supplier prices |
| TikTok Shop sales and price scraper | Retail prices, units sold, SKUs and reviews from TikTok Shop by keyword | When you want the retail side to compare with 1688 wholesale prices |
| Shopee retail price scraper | Shopee products with price, discount, rating, seller and location by keyword, category, shop or link | You want to see retail prices on Shopee for a product you source wholesale |
⚖️ Is it legal to scrape 1688?
1688 Wholesale Products Scraper only extracts data that any visitor can see on 1688 and does not extract private data such as supplier emails or phone numbers. Results may still contain personal data, so collect it only with a legitimate reason and consider GDPR (Regulation (EU) 2016/679) and the site's terms. Consult a lawyer if you are unsure. Read Apify's posts on the legality of web scraping and ethical web scraping.
❓ FAQ
Does this 1688 scraper need a login or account on 1688?
No. It is a 1688 scraper no login required: the Actor reads public pages only, so you need just an Apify account.
How much does it cost to run?
You pay per saved product row, from $0.0025 to $0.004 depending on your plan tier. A $0.00001 charge per saved result and a $0.00005 start fee are added. See the pricing section above and the Pricing tab.
How many products can I scrape?
Max results per keyword defaults to 10 and the schema allows up to 10,000; 0 means everything a search can reach, which is about 2,000 rows per search. Duplicates across keywords are saved once.
Can I search 1688 in English?
Yes. English keywords are translated to Chinese before searching, and titles and tags are added in English next to the Chinese originals. Prices stay in yuan and are also converted to the currency you pick in Also show prices in.
Can I scrape private data or contact suppliers?
No. The Actor reads public product and supplier data only. It does not log in, place orders, send messages or collect contact details.
Do I need proxies?
No. The Actor starts without a proxy and switches to another connection by itself when a request is refused. You can also choose a proxy in the input.
Can I use it through an MCP server?
Yes. The hosted Apify MCP server at https://mcp.apify.com lets AI agents search for the Actor, read its details and run it, then receive structured rows.
Why do I get fewer results than expected?
Your filters may remove many rows, for example a low minimum order, a province or a minimum units sold. The log lists how many products were left out and why. Paid ads are left out unless you switch on Include paid ads.
Why does a row say detailStatus blocked?
1688 refused that product page. The search data of the row is still saved. Try again later or read fewer products at once.
💬 Your feedback
Found a bug or need another field? Open an issue in the Issues tab of the Actor. Need a custom solution? Contact hello.datawiki@gmail.com.