1688.com Products Scraper
Under maintenancePricing
from $3.99 / 1,000 results
1688.com Products Scraper
Under maintenanceExtract public 1688.com product results with bulk price tiers, supplier badges, specifications, and demand metrics.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
Coding Frontned
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
What this Actor does
This Actor collects product cards from public search pages on 1688.com. Search with product keywords or provide one or more 1688 search URLs. Results can include product links, visible prices and bulk price tiers, minimum order quantities (MOQ), supplier details, product images, specifications, and source-labelled demand signals. When product detail collection is enabled, Schema.org Product and Offer data found on matching public product pages can add fields such as product identifiers, availability, reviews, and offer details.
Use the results to compare products and suppliers, research wholesale options, or build a product shortlist. If a page needs JavaScript to display products, the Actor also tries a browser. It does not sign in or solve CAPTCHA pages, so accessible results depend on 1688 and the search you provide.
How to run it
- Open the Actor's Input tab.
- Enter keywords in Product keywords, or paste one or more public 1688 search URLs. The default search is
wireless earbuds. - Choose whether to collect product detail page data, a product limit, page range, and any filters. The input form is enough; you do not need to write code.
- Click Start.
- Open Dataset to view or download product records. Open Output summary for the separate run summary.
Input
All input fields are optional. If you provide no search URL or keyword, the Actor uses the default searchQuery value, wireless earbuds. Search URLs take precedence: when at least one valid source URL is supplied, keyword fields do not create additional searches.
Search settings
| Field | Type | Required? | Default | What it does |
|---|---|---|---|---|
searchQuery | Text | Optional | wireless earbuds | One keyword search in Chinese or English, up to 300 characters. |
queries | List of text | Optional | Uses searchQuery | Adds up to 100 keyword searches, with up to 300 characters per entry. |
sourceUrls | List of URLs | Optional | Empty list | Searches up to 100 public 1688 search URLs. URL entries must point to 1688 search pages. |
maxItems | Integer | Optional | 100 | Maximum number of products saved across the entire run. Range: 1–1,000. |
maxPages | Integer | Optional | 1 | Maximum pages to visit for each keyword search or URL. Range: 1–20. |
startPage | Integer | Optional | 1 | First page number for each search. Range: 1–1,000. |
deduplicate | Boolean | Optional | true | Keep one record per canonical product URL across the run. |
sortBy | Text choice | Optional | relevance | Sort the collected results by one of the choices below. Sorting is applied after collection and filtering. |
queries and searchQuery are combined when both contain values. The input form may prefill searchQuery; clear it if you want to use only queries. A supplied search URL takes precedence over all keyword searches. Repeated URLs are removed.
Keyword fields are combined and deduplicated, with at most 100 unique queries kept for a run.
sortBy choice | Order |
|---|---|
relevance | Keep the order found on the collected pages. |
minPrice | Lowest minimum price first. |
maxPrice | Lowest maximum price first. |
title | Product title alphabetically. |
supplierName | Supplier name alphabetically. |
demandMetric | Lowest visible demand metric first. |
The product limit maxItems is shared across all searches. maxPages applies separately to each search or URL. Reaching maxItems is normal completion and does not make the run partial.
Product and supplier filters
Filters are optional and apply after detail collection. When a filter needs a value that is missing from a product record, that product does not pass that filter. With detail collection enabled, up to maxItems candidates are selected using the requested sort and their search-page values. Detail information can change those values; the final selected records are filtered and sorted again. Some candidates may fail your filters, so fewer products can be saved. Price values use the currency shown by 1688; the Actor does not convert currencies or combine ranges from different currencies. If both price bounds are set, minPrice must be no greater than maxPrice.
| Field | Type | Required? | Default | What it does |
|---|---|---|---|---|
minPrice | Number | Optional | No lower bound | Keep products whose observed price range reaches this amount or higher. Minimum: 0. |
maxPrice | Number | Optional | No upper bound | Keep products whose observed price range starts at this amount or lower. Minimum: 0. |
minOrderQuantity | Number | Optional | No filter | Keep products whose observed MOQ is at least this amount. Minimum: 0. |
minRating | Number | Optional | No filter | Keep products with an observed rating at or above this value. Minimum: 0. |
minSales | Number | Optional | No filter | Keep products with a visible demand metric at or above this value. Minimum: 0. The metric can represent different activity labels shown by the source. |
minSupplierYears | Number | Optional | No filter | Keep suppliers with an observed operating-year value at or above this number. Minimum: 0. |
location | Text | Optional | No filter | Match part of the supplier location without regard to capitalization. Maximum length: 120 characters. |
supplierType | Text | Optional | No filter | Match the displayed supplier type without regard to capitalization. Maximum length: 80 characters. |
factoryOnly | Boolean | Optional | false | Keep products whose visible supplier details identify a factory. |
crossBorderOnly | Boolean | Optional | false | Keep products with a visible cross-border signal. |
dispatchWithin24h | Boolean | Optional | false | Keep products with a visible 24-hour dispatch signal. |
requiredBadges | List of text | Optional | Empty list | Require every listed badge phrase to appear in the supplier badges. Maximum: 50 entries. |
Information to include
| Field | Type | Required? | Default | What it does |
|---|---|---|---|---|
includeMedia | Boolean | Optional | true | Include product image URLs when they are available. |
includeAttributes | Boolean | Optional | true | Include category paths and specifications when available. |
includeSupplierDetails | Boolean | Optional | true | Include supplier fields and the nested supplier object when available. |
includeProductDetails | Boolean | Optional | true | Fetch supported Schema.org Product and Offer fields from matching public pages, for up to maxItems selected products. Turn off to use search-page data only. A detail-page failure leaves an already collected product record available. |
Input examples
A small keyword search:
{"searchQuery": "bamboo drawer organizer","maxItems": 20,"maxPages": 1}
Filter and sort a product search:
{"searchQuery": "thermal label printer","minPrice": 1,"maxPrice": 20,"factoryOnly": true,"sortBy": "minPrice","maxItems": 40}
Search multiple 1688 URLs and deduplicate products:
{"sourceUrls": ["https://s.1688.com/selloffer/offer_search.htm?keywords=reusable%20shopping%20bag","https://s.1688.com/selloffer/offer_search.htm?keywords=paper%20gift%20box"],"maxPages": 2,"maxItems": 50,"deduplicate": true}
Continue from a later page:
{"searchQuery": "stainless steel lunch container","startPage": 2,"maxPages": 3,"maxItems": 30}
Use search-page data only and omit optional images, specifications, and supplier details:
{"searchQuery": "recycled cotton tote bag","includeMedia": false,"includeAttributes": false,"includeSupplierDetails": false,"includeProductDetails": false,"maxItems": 25}
Request settings
Most users can keep these values as they are. Timeouts and delays are in milliseconds.
| Field | Type | Required? | Default | What it does |
|---|---|---|---|---|
requestTimeoutMs | Integer | Optional | 30000 ms | Per-request timeout. Range: 5,000–120,000 ms. |
requestDelayMs | Integer | Optional | 500 ms | Pause between page requests and retry attempts. Range: 0–10,000 ms. |
maxRequestRetries | Integer | Optional | 2 | Extra attempts after retryable request failures. Range: 0–5. |
maxConcurrency | Integer | Optional | 1 | Number of independent searches processed at once. Range: 1–4. |
maxResponseBytes | Integer | Optional | 5,000,000 bytes | Reject an HTML response larger than this size. Range: 100,000–20,000,000 bytes. |
userAgent | Text | Optional | Built-in Chrome 131 user agent | Identification for standard requests. With the default value, the browser uses its own identity; a custom value applies to both. Maximum length: 300 characters. |
proxyConfiguration | Object | Optional | { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "CN" } | Uses Apify Residential Proxy in China by default. Set useApifyProxy to false for direct access, or change apifyProxyGroups and apifyProxyCountry to use another available route. proxyUrls, if used, accepts up to 20 valid HTTP or HTTPS proxy URLs. Residential traffic adds charges. |
Output
Each dataset item is one product record. The schema-required fields are id, title, and productUrl. Other fields are optional and appear only when the source provides them. Product detail fields are collected only when includeProductDetails is enabled and the public detail page exposes supported Schema.org data. Missing information is omitted; the Actor does not fill in unavailable numbers, text, or links.
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Illustrative product record: The product details and links are illustrative, not a verified live product. The supplier metric labels and scores demonstrate the source-backed field shape and are not tied to this example product.
{"id": "1688:123456789","title": "Reusable cotton shopping bag","description": "Reusable cotton bag with reinforced handles.","brand": "Illustrative Bag Brand","sku": "BAG-REC-01","mpn": "RB-38-62","gtin": "06912345678901","availability": "https://schema.org/InStock","itemCondition": "https://schema.org/NewCondition","priceValidUntil": "2026-12-31","productUrl": "https://detail.1688.com/offer/123456789.html","priceTiers": [{"minQuantity": 50,"maxQuantity": 199,"price": 3.2,"currency": "CNY","unit": "piece"},{"minQuantity": 200,"price": 2.5,"currency": "CNY","unit": "piece"}],"minPrice": 2.5,"maxPrice": 3.2,"currency": "CNY","minOrderQuantity": 50,"supplierName": "Illustrative cotton goods supplier","supplierUrl": "https://illustrative-supplier.1688.com/","supplierType": "factory","isFactory": true,"supplierBadges": ["Factory supplier","Buyer protection"],"supplierLocation": "Guangdong","supplierYears": 8,"responseRate": 98.5,"returnRate": 1.2,"repeatBuyerRate": 54,"supplierServiceRatings": {"采购咨询": 4.5,"退换体验": 4.3,"品质体验": 4.3,"纠纷解决": 5,"物流时效": 3.7},"buyerProtection": true,"transactions90d": 420,"specifications": {"Material": "Recycled cotton","Bag width": "38 cm","Handle length": "62 cm"},"categoryPath": ["Bags","Shopping bags","Reusable bags"],"imageUrl": "https://cbu01.alicdn.com/illustrative/cotton-bag-front.jpg","imageUrls": ["https://cbu01.alicdn.com/illustrative/cotton-bag-front.jpg","https://cbu01.alicdn.com/illustrative/cotton-bag-detail.jpg"],"demandMetric": 3200,"demandLabel": "sold 3,200","demand": {"salesCount": 3200,"label": "sold 3,200","period": "last 90 days"},"rating": 4.8,"reviewCount": 84,"ratingCount": 72,"bestRating": 5,"worstRating": 1,"offers": [{"url": "https://detail.1688.com/offer/123456789.html","price": 3.2,"currency": "CNY","availability": "https://schema.org/InStock","itemCondition": "https://schema.org/NewCondition","priceValidUntil": "2026-12-31","sellerName": "Illustrative cotton goods supplier","sellerUrl": "https://illustrative-supplier.1688.com/","minQuantity": 50,"maxQuantity": 199,"unit": "piece"},{"lowPrice": 2.5,"highPrice": 3.2,"currency": "CNY","minQuantity": 200,"unit": "piece"}],"crossBorder": true,"dispatchWithin24h": true,"pricing": {"currency": "CNY","unit": "piece","minOrderQuantity": 50,"minPrice": 2.5,"maxPrice": 3.2,"tiers": [{"minQuantity": 50,"maxQuantity": 199,"price": 3.2,"currency": "CNY","unit": "piece"},{"minQuantity": 200,"price": 2.5,"currency": "CNY","unit": "piece"}]},"supplier": {"name": "Illustrative cotton goods supplier","url": "https://illustrative-supplier.1688.com/","type": "factory","isFactory": true,"location": "Guangdong","badges": ["Factory supplier","Buyer protection"],"years": 8,"responseRate": 98.5,"returnRate": 1.2,"repeatBuyerRate": 54,"serviceRatings": {"采购咨询": 4.5,"退换体验": 4.3,"品质体验": 4.3,"纠纷解决": 5,"物流时效": 3.7},"buyerProtection": true,"transactions90d": 420},"product": {"categoryPath": ["Bags","Shopping bags","Reusable bags"],"specifications": {"Material": "Recycled cotton","Bag width": "38 cm","Handle length": "62 cm"},"imageUrls": ["https://cbu01.alicdn.com/illustrative/cotton-bag-front.jpg","https://cbu01.alicdn.com/illustrative/cotton-bag-detail.jpg"]},"logistics": {"crossBorder": true,"dispatchWithin24h": true}}
Output fields
MOQ means minimum order quantity. The top-level fields make common comparisons easier; matching information can also appear in the nested objects. Product identity and offer fields come from the public detail page when the page supplies them. brand describes the product brand and is separate from the supplier.
| Field | Type | Required? | Meaning |
|---|---|---|---|
id | Text | Required | Product identifier. |
title | Text | Required | Product title. |
description | Text | Optional | Product description from the public detail page, when provided. |
brand | Text | Optional | Product brand. This is kept separate from supplier identity. |
sku | Text | Optional | Source-provided stock keeping unit. |
mpn | Text | Optional | Source-provided manufacturer part number. |
gtin | Text | Optional | Source-provided Global Trade Item Number. |
availability | Text | Optional | Availability value supplied for the product. |
itemCondition | Text | Optional | Condition value supplied for the product. |
priceValidUntil | Text | Optional | Price validity date supplied by the source. |
productUrl | URL | Required | Direct product page link. |
priceTiers | List of objects | Optional | Bulk prices. Each tier may contain minimum and maximum quantities, price, currency, and unit. |
minPrice | Number | Optional | Lowest observed price. |
maxPrice | Number | Optional | Highest observed price. |
currency | Text | Optional | Currency code shown with a price, such as CNY. |
minOrderQuantity | Number | Optional | Observed MOQ. |
supplierName | Text | Optional | Supplier name. |
supplierUrl | URL | Optional | Supplier page link. |
supplierType | Text | Optional | Supplier type shown on the page. |
isFactory | Boolean | Optional | Whether a factory signal was observed. |
supplierBadges | List of text | Optional | Visible supplier badges. |
supplierLocation | Text | Optional | Supplier location. |
supplierYears | Number | Optional | Supplier years shown on the page. |
responseRate | Number | Optional | Supplier response rate when shown. |
returnRate | Number | Optional | Supplier return or returned-order rate only when the source labels it as such. The 1688 回头率 measure is a repeat-buyer rate, not a return rate. |
repeatBuyerRate | Number | Optional | Supplier repeat-buyer rate shown by the source label 回头率, expressed as a percentage. It is separate from returned orders. |
supplierServiceRatings | Object of numbers | Optional | Supplier service scores keyed by the source's visible labels, such as 采购咨询 or 物流时效. These are supplier scores, not product ratings or reviews. |
buyerProtection | Boolean | Optional | Whether buyer protection was indicated. |
transactions90d | Number | Optional | Supplier transactions over 90 days when shown. |
specifications | Object of text | Optional | Product attributes, such as material or size. |
categoryPath | List of text | Optional | Product category path. |
imageUrl | URL | Optional | First available product image. |
imageUrls | List of URLs | Optional | Available product images. |
demandMetric | Number | Optional | Visible sales or order activity metric used by supported demand filters. Review counts are reported separately. |
demandLabel | Text | Optional | Source label for the demand metric. |
demand | Object | Optional | Source-labelled salesCount, label, and period values when available. |
rating | Number | Optional | Product rating when available. |
reviewCount | Number | Optional | Number of reviews reported by the source. |
ratingCount | Number | Optional | Number of ratings reported by the source. |
bestRating | Number | Optional | Upper bound of the source's rating scale. |
worstRating | Number | Optional | Lower bound of the source's rating scale. |
offers | List of objects | Optional | Product offer data. Each offer may include its URL, price or price range, currency, availability, item condition, validity date, seller, quantity bounds, and unit. |
crossBorder | Boolean | Optional | Whether a cross-border signal was observed. |
dispatchWithin24h | Boolean | Optional | Whether a 24-hour dispatch signal was observed. |
pricing | Object | Optional | currency, unit, minOrderQuantity, minPrice, maxPrice, and tiers. |
supplier | Object | Optional | Supplier name, URL, type, factory signal, location, badges, years, response, return and repeat-buyer rates, service ratings, buyer protection, and 90-day transactions. Its serviceRatings map uses the source's visible labels. |
product | Object | Optional | Category path, specifications, and product image URLs. |
logistics | Object | Optional | Cross-border and 24-hour dispatch signals. |
Within supplier, repeatBuyerRate mirrors the top-level value and serviceRatings mirrors supplierServiceRatings. The 1688 label 回头率 describes repeat buyers, not returned products or orders. The service score map keeps the source labels as keys; these are supplier service scores, not product ratings, reviews, or rating counts.
Offer objects may contain these source-provided fields:
| Offer field | Type | Meaning |
|---|---|---|
url | URL | Offer link. |
price | Number | Specific offer price. |
lowPrice | Number | Lower price in an aggregate offer. |
highPrice | Number | Upper price in an aggregate offer. |
currency | Text | Currency code supplied with the offer price. |
availability | Text | Offer availability value. |
itemCondition | Text | Offer condition value. |
priceValidUntil | Text | Offer price validity date. |
sellerName | Text | Offer seller name. |
sellerUrl | URL | Offer seller link. |
minQuantity | Number | Minimum quantity for the offer. |
maxQuantity | Number | Maximum quantity for the offer. |
unit | Text | Unit supplied for the offer quantity or price. |
Run status
| Status | What it means |
|---|---|
SUCCEEDED | At least one validated product record was saved. |
SUCCEEDED with limited results | A collection or write problem stopped part of the run after one or more products were saved. Saved products remain in the dataset. |
FAILED | No real product records were saved. This includes blocked or empty searches and searches where no products pass the filters. |
The completion message reports the saved product count. Reaching the requested maxItems limit is normal completion. The run summary is stored separately from product records.
Output summary
The Output summary link in the Output tab opens OUTPUT_SUMMARY from the run's default Key-value store. The summary is stored separately from the product dataset and contains only these three fields:
{"status": "SUCCEEDED","itemsStored": 25,"isPartial": false}
| Field | Type | Required? | Meaning |
|---|---|---|---|
status | Text | Required | SUCCEEDED when at least one real product was saved; otherwise FAILED. |
itemsStored | Nonnegative integer | Required | Number of validated product writes that completed during the run. |
isPartial | Boolean | Required | true when a failure stopped part of collection after products were saved; otherwise false. |
A run with no saved products has status: "FAILED", itemsStored: 0, and isPartial: false. Error details are written to the run log, not to the summary.
Tips and access
- A product limit is a maximum, not a promised result count. More pages or fewer filters may return more products when those pages are accessible.
- If a search is blocked or asks for sign-in or verification, check the run log. This Actor does not bypass those access pages.
- Missing prices, supplier details, and attributes are omitted. Filters that need a missing value exclude that product.
- Current pricing is $3.99 per 1,000 dataset records, plus $0.001 per actor start per GB (minimum 1 GB), plus Apify platform usage. Check the Actor's Pricing tab for current prices before running larger searches. More pages, retries, and proxy use can increase resource use.
- For support, use the Actor's Issues tab. Include the run ID and describe the input and problem; do not post credentials or other private values.
- Use public data responsibly and follow 1688's terms and applicable rules. This Actor is not affiliated with or endorsed by 1688.