1688.com Products Scraper
Pricing
from $4.99 / 1,000 results
1688.com Products Scraper
1688.com Products Scraper extracts product names, prices, images, sellers, ratings, specifications, and product URLs from 1688.com. Ideal for product research, supplier discovery, price comparison, sourcing, e-commerce, and market analysis.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Scraper Engine
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
1688.com Product Scraper — Prices, Order Volume and Supplier Scores
1688.com Product Scraper searches 1688.com by keyword and returns structured product data — price tiers, order/booked count, repurchase rate, and six supplier trade-service scores — as clean JSON, with no HTML parsing required. Every product streams into the dataset the instant it's found, with automatic CNY→USD conversion and a proxy fallback ladder that keeps the run alive when 1688.com pushes back. Enter your keywords below and hit Start to see it in action.
🤔 What is 1688.com Product Scraper?
1688.com Product Scraper is an Apify Actor that searches 1688.com — Alibaba Group's domestic Chinese B2B wholesale marketplace — by keyword and extracts every product listed in the results, including pricing tiers, demand signals, and supplier trust data, as structured JSON. It does not require a 1688.com account, login, or API key of any kind — it queries 1688.com's own public search endpoint the same way a visitor's browser does. It's built for sourcing teams, dropshippers, procurement analysts, and developers feeding product data into AI or automation pipelines.
🔓 What 1688.com product data is publicly available to scrape?
Everything shown on a 1688.com public search results page — no account or login required — is accessible: product titles, pricing tiers, order volume, supplier scores, and service badges. What's restricted sits behind a direct supplier inquiry, not a login wall.
| Data Category | Publicly Available | Restricted (behind supplier inquiry / RFQ) |
|---|---|---|
| Product title, image, price | ✅ Yes | — |
| Bulk price tiers & minimum order quantity | ✅ Yes | — |
| Order/booked count & repurchase rate | ✅ Yes | — |
| Supplier trade-service scores (composite, logistics, dispute, etc.) | ✅ Yes | — |
| Supplier company name, years on platform, inspection flags | ✅ Yes | — |
| Service tags, promotion tags, product badges | ✅ Yes | — |
| Direct supplier phone number / WeChat contact | ❌ No | Requires sending an inquiry through 1688.com |
| Full business license & factory audit documents | ❌ No | Requires supplier-side verification access |
| Negotiated buyer-specific pricing | ❌ No | Requires an account and an RFQ |
1688.com Product Scraper only returns publicly visible data — what any visitor sees. Nothing behind a login wall.
📦 What data can I extract with 1688.com Product Scraper?
1688.com Product Scraper returns product identity fields, pricing and demand metrics, and supplier trust signals for every listing matched by your search keywords.
🏷️ Product & listing details
| Field Name | Description |
|---|---|
offer_id | 1688.com's internal numeric ID for the listing. |
title | Product title, with the site's search-highlight markup stripped out. |
image_url | Main listing image URL (protocol-normalized to https://). |
detail_url | Canonical https://detail.1688.com/offer/{offer_id}.html product page link. |
source_detail_url | The raw listing URL as returned directly by the API. |
listing_type | Listing type as reported by the API (defaults to "normal"). |
price_type | Price type code from the API (defaults to "NORMAL"). |
price_label | Optional price description/qualifier text, if the API supplies one. |
query | The search keyword that returned this product. |
page | The search results page this product was found on. |
💰 Pricing, demand & supplier metrics
| Field Name | Description |
|---|---|
price / price_display | Combined display string, e.g. "54 (\$8.04)" — CNY price with an estimated USD amount in parentheses. |
price_cny | Unit price in CNY (whole number where the price has no decimal, per the site's own display convention). |
price_usd | Unit price converted to USD using the run's exchange rate. |
currency | Always "CNY" — the source currency. |
fx_rate_cny_usd | The CNY→USD rate actually used for this run's conversions. |
fx_rate_as_of | The date the exchange rate is from, or "static-estimate" if the live rate lookup failed. |
price_integer / price_decimal | Split whole-number and .decimal parts of the price for display formatting — both empty strings for whole-number prices. |
minimum_order_quantity / minimum_order_unit | MOQ and its unit (e.g. 个), parsed from the first bulk-price tier. |
quantity_prices | Raw bulk-price tiers as {quantity, price, price_usd} display strings. |
price_tiers | The same bulk-price tiers, typed: {min_quantity, max_quantity, unit, price_cny, price_usd}. |
order_count | Order/booked count as a string, straight from the site. |
booked_count | The same order/booked count, parsed to an integer. |
sold_count_text | Free-text "sold" or volume label shown near the price on the listing. |
repurchase_rate | Repurchase rate as a display string (e.g. "33%"). |
repurchase_rate_percent | The same repurchase rate as a number (e.g. 33). |
composite_score, consultation_score, logistics_score, dispute_score, return_score, goods_score | 1688.com's six official trade-service scores, each rounded to 2 decimals and returned as a string. |
supplier_scores | The same six scores together in one nested object, as numbers. |
🏭 Supplier & trust signals
| Field Name | Description |
|---|---|
shop_name | The supplier's shop/login name. |
member_id | 1688.com's internal member ID for the supplier account. |
province / city | Supplier location, in Chinese, exactly as 1688.com returns it. |
supplier_business_type | Business type code (e.g. factory) reported by the API. |
supplier_company_name | Supplier company name/description text shown under the listing's shop link. |
supplier_years_on_platform | Years the supplier has been trading on 1688.com. |
supplier_shop_url | Link to the supplier's storefront (normalized to https://). |
supplier_is_qualified | Whether the supplier carries 1688.com's qualification badge. |
supplier_is_power_merchant | Whether the supplier is flagged as a "Power Merchant." |
supplier_is_super_factory | Whether the supplier is flagged as a "Super Factory." |
supplier_factory_inspected | Whether the factory has been inspected by 1688.com. |
supplier_business_inspected | Whether the business registration has been inspected by 1688.com. |
service_tags | Deduplicated service/feature labels shown on the card (returns policy, fulfillment perks, verification badges, etc.). |
promotion_tags | Active promotion labels (e.g. discounts) from the listing's offer metadata. |
market_tags | Additional service-tag labels from the listing's offer metadata. |
product_badges | Badge/label text shown in the middle of the product card. |
is_sponsored | Whether the listing is a paid/promoted (P4P) placement. |
is_bid | Whether the listing is a bid-based placement. |
🛠️ Why not build this yourself?
1688.com does not offer a self-serve public API for searching product listings — 1688 Open Platform access is aimed at verified enterprise integrations, not ad-hoc keyword search. Building this yourself means reverse-engineering the site's signed request format, maintaining a cookie-based session that expires mid-run, and handling the site's own anti-bot slider-challenge whenever it triggers — all before you've parsed a single field. 1688.com Product Scraper already does this: it signs requests the way the live site's front-end does, re-extracts the site's own configuration values on every run so it keeps working when 1688.com rotates them, and automatically escalates through a direct → datacenter proxy → residential proxy ladder whenever a request gets blocked, so you don't have to buy, manage, or rotate proxies yourself.
🚀 How to use 1688.com Product Scraper
1688.com Product Scraper is published on the Apify Store and runs entirely inside Apify Console (or via the Apify API) — no 1688.com account needed.
- Open 1688.com Product Scraper on the Apify Store and click Try for free (an Apify account is required to run it).
- Add your search keywords under 🔍 Search Queries — this is the only required input.
- Optionally adjust 📦 Max Products per Query, 🔀 Sort Results By, and 🌐 Proxy Configuration.
- Click Start.
- Watch the run log for real-time progress, then open the Output tab and export the results as JSON, CSV, or Excel.
📈 How to scale to bulk product extraction
The queries input is an array, so bulk keyword search is native — paste any number of keywords into one run and every result is combined into a single output dataset, tagged with the query field that found it. Queries run concurrently within one run rather than one at a time, so queuing more keywords doesn't mean waiting on each one sequentially.
💡 What can you do with 1688.com product data?
- 📦 A dropshipping or Amazon/TikTok Shop seller sourcing new products uses
order_countandrepurchase_rate_percentto shortlist listings with proven demand before committing to a supplier. - 💵 A procurement analyst comparing suppliers uses
minimum_order_quantityandprice_tiersto line up bulk pricing across multiple factories before requesting samples. - 🏭 A supplier-vetting or quality-control lead uses
supplier_factory_inspected,supplier_is_qualified, andcomposite_scoreto screen manufacturers before wiring a deposit. - 📊 A market researcher benchmarking a category runs the same keyword with
sortTypeset to price ascending and descending, then comparesprice_cnyacross the result set to map out the market's price range. - 🤖 An AI engineer feeds
title,service_tags, andprice_tiersinto a sourcing-copilot RAG pipeline so an agent can answer supplier-shortlisting questions directly from live 1688.com data.
🛡️ How does 1688.com Product Scraper handle rate limits and blocking?
Every request starts on a direct connection for speed. If 1688.com responds with an HTTP 403/429 or serves its own anti-bot slider-challenge instead of real data, the Actor automatically escalates: direct → datacenter proxy → residential proxy, retrying the same page on the new tier. Once escalated to a residential proxy, every later request — for every query in the run — stays on it; the residential tier itself is retried with a fresh session up to 3 times before being treated as exhausted. A separate, generous budget tolerates raw connectivity failures (timeouts, DNS errors) without aborting the run over a few flaky requests. A session-expiry response triggers one transparent token refresh and retry before falling through to the same escalation path.
⚠️ If every proxy tier (including a retried residential proxy) is blocked, or the network is unreachable for too many consecutive requests, the Actor stops making requests and ends the run — whatever was already collected stays safely in the dataset.
⬇️ Input
1688.com Product Scraper's input is defined by its Apify input schema — only queries is required.
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
queries | Yes | array of strings | One or more product keywords to search on 1688.com. Each keyword is searched separately and all results are combined into a single output table. Paste as many as you like — bulk input is fully supported. | ["leather wallet", "wireless earbuds"] |
maxProducts | No | integer (default 50, min 1, max 100000) | Stop each keyword search after collecting this many unique products (1–1000). | 100 |
sortType | No | string enum (default "va_rmdarkgmv30") | How 1688.com should order results: va_rmdarkgmv30 (Best Selling), normal (Default), va_price_asc (Price: Low to High), va_price_desc (Price: High to Low). | "va_rmdarkgmv30" |
proxyConfiguration | No | object (default {"useApifyProxy": false}) | By default the Actor connects directly (no proxy) for maximum speed, then escalates automatically if blocked. Set the RESIDENTIAL group here to start directly on a residential proxy. | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} |
⚠️ The schema accepts values up to 100000 for maxProducts, but the Actor enforces a hard internal cap of 1,000 unique products per query, as stated in the field's own description — anything higher is silently clamped down to 1,000.
Example input
{"queries": ["leather wallet", "phone case", "wireless earbuds"],"maxProducts": 100,"sortType": "va_rmdarkgmv30","proxyConfiguration": { "useApifyProxy": false }}
⬆️ Output
Every matched product is pushed to the dataset the moment it's parsed, as one flat, typed JSON record with a consistent field set across every run. Export the full result set as JSON, CSV, Excel, or any other format Apify datasets support, or browse it through the Actor's built-in Overview, Pricing & MOQ, Supplier Info, Tags & Badges, and All Fields dataset views. This Actor bills on Apify's Pay-Per-Event model: each dataset item is one row_result charged event — no separate error or accounting rows are ever written to the dataset, so nothing is charged that isn't a real product record.
Example output
{"query": "leather wallet","page": 1,"offer_id": "703935478323","title": "Genuine Leather RFID-Blocking Trifold Wallet for Men","price": "54 ($8.04)","price_display": "54 ($8.04)","price_cny": 54,"price_usd": 8.04,"currency": "CNY","fx_rate_cny_usd": 0.1489,"fx_rate_as_of": "2026-09-02","price_integer": "","price_decimal": "","price_type": "NORMAL","price_label": null,"image_url": "https://cbu01.alicdn.com/img/ibank/O1CN01abc123xyz.jpg","shop_name": "狮莱顿皮具","member_id": "b2b-1234567890","province": "广东","city": "广州市","order_count": "625","booked_count": 625,"sold_count_text": "近30天销量625+","repurchase_rate": "33%","repurchase_rate_percent": 33,"detail_url": "https://detail.1688.com/offer/703935478323.html","source_detail_url": "//detail.1688.com/offer/703935478323.html","quantity_prices": [{ "quantity": "≥3个", "price": "54.00", "price_usd": "$8.04" },{ "quantity": "≥100个", "price": "48.00", "price_usd": "$7.15" }],"price_tiers": [{ "min_quantity": 3, "max_quantity": null, "unit": "个", "price_cny": 54, "price_usd": 8.04 },{ "min_quantity": 100, "max_quantity": null, "unit": "个", "price_cny": 48, "price_usd": 7.15 }],"minimum_order_quantity": 3,"minimum_order_unit": "个","service_tags": ["退货包运费", "先采后付", "深度验厂"],"promotion_tags": ["满减优惠"],"market_tags": ["品质商家"],"product_badges": ["深度验厂", "先采后付"],"listing_type": "normal","is_sponsored": false,"is_bid": false,"supplier_business_type": "factory","supplier_company_name": "广州狮莱顿皮具有限公司","supplier_years_on_platform": 5,"supplier_shop_url": "https://shop1234567890.1688.com/","supplier_is_qualified": true,"supplier_is_power_merchant": true,"supplier_is_super_factory": false,"supplier_factory_inspected": true,"supplier_business_inspected": true,"composite_score": "4.5","consultation_score": "4.6","logistics_score": "4.0","dispute_score": "4.8","return_score": "4.3","goods_score": "4.33","supplier_scores": {"composite": 4.5,"consultation": 4.6,"logistics": 4.0,"dispute": 4.8,"return": 4.3,"goods": 4.33}}
⚙️ How does it work?
1688.com Product Scraper talks directly to 1688.com's own public search API instead of driving a full browser. On startup, it opens the public search page once to pick up small, frequently-rotated configuration values — an API name, a version string, and a signing key — straight from the page's own inline script and linked bundle, then signs each search request the same way the live site's front-end does. Requests start on a direct connection for speed; if 1688.com's anti-bot system or an HTTP 403/429 blocks a request, the Actor automatically escalates to a datacenter proxy, then a residential proxy, retrying failed pages along the way. Because configuration values are re-extracted live on every run rather than hard-coded, the Actor keeps working even after 1688.com rotates them internally — the output schema documented above stays the same regardless of what changes on 1688.com's end. Only data visible on the public search results page is ever returned.
🔌 Integrations
1688.com Product Scraper runs on the Apify platform, so it works with anything that can call the Apify API.
Calling 1688.com Product Scraper programmatically
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run = client.actor("<YOUR_USERNAME>/1688-com-products-scraper").call(run_input={"queries": ["leather wallet", "wireless earbuds"],"maxProducts": 100,"sortType": "va_rmdarkgmv30",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["price_display"])
Works in Go, Ruby, Node.js, cURL — any language that can make an HTTP request.
No-code tools (n8n, Make)
In n8n, use the Apify node (or an HTTP Request node) pointed at this Actor's run endpoint, passing your Apify API token as a bearer credential. In Make, use Apify's own module for running an Actor and reading back its dataset items, mapping your keywords into the queries array field — no custom code required either way.
⚖️ Is it legal to scrape 1688.com products?
Scraping publicly available product data is generally lawful; 1688.com Product Scraper only extracts information that is already visible to any visitor on 1688.com's public search results, without logging in. Because this data is business and product information — listing titles, prices, and supplier metadata — rather than data about identifiable individuals, no personal-data regime like GDPR or CCPA applies here; the relevant considerations are 1688.com's own terms of service and database-rights law in your jurisdiction, both of which govern how scraped data may be stored and reused. Consult legal counsel if your use case involves bulk storage of personal data.
❓ Frequently asked questions
What 1688.com product fields does 1688.com Product Scraper return?
The top fields are title, price_cny/price_usd, minimum_order_quantity, order_count/repurchase_rate_percent, and composite_score. See What data can I extract above for the full field list.
Does 1688.com Product Scraper require a 1688.com account or login?
No. It queries 1688.com's public search page and search API directly, without ever authenticating as a 1688.com user or account holder.
How many products can I extract in one run?
Each keyword query is capped at up to 1,000 unique products. There's no limit on how many keywords you can queue in a single run — queries are combined into one dataset and processed concurrently.
What happens if a search query returns zero results?
The Actor logs that no results were found for that query and simply finishes it with zero products, while every other query in the same run keeps collecting independently — one query returning nothing never stops or fails the rest of the run.
Can I scrape multiple 1688.com products at once?
Yes. queries is an array — paste as many keywords as you like and every product from every query lands in the same output dataset, tagged with the query that found it.
Does 1688.com Product Scraper work with Claude, ChatGPT, and other AI agent tools?
Yes — it's callable as an HTTP endpoint through the Apify API, so any agent framework that can make an HTTP request can trigger a run and read back the resulting JSON.
How does 1688.com Product Scraper convert prices from CNY to USD?
It looks up a live CNY→USD exchange rate at the start of each run and applies it to every price; if the live lookup fails, it falls back to a fixed estimate instead. Either way, fx_rate_cny_usd and fx_rate_as_of on every record record exactly which rate was used.
Does 1688.com Product Scraper return data in a format LLMs can use directly?
Yes. Every record is typed, normalized JSON with consistent field names across runs — no HTML parsing or selectors needed. Pass it straight to an LLM, index it into a vector store, or feed it to an agent tool.
What happens when 1688.com changes its layout or anti-bot system?
The Actor is maintained and its output schema stays stable across 1688.com changes. It also re-extracts several of 1688.com's own configuration values live on every run, which reduces (though doesn't eliminate) breakage when those specific values rotate. No specific fix turnaround time is promised.
Can I use 1688.com Product Scraper without managing proxies or browser infrastructure?
Yes. There's no browser to run and no proxy to buy or configure — the Actor connects directly by default and automatically provisions Apify's own datacenter and residential proxies only if and when 1688.com blocks a request.
Which fields work best for AI training data and RAG indexing?
For RAG, index the high-information text fields: title, service_tags, and price_label. For training data, the most consistently structured fields across records are price_cny, minimum_order_quantity, repurchase_rate_percent, and composite_score — all typed primitives (numbers, strings, or booleans), never freeform HTML.
💬 Your feedback
Found a bug or missing a field? Let us know at dev.scraperengine@gmail.com — we handle custom solutions and feature requests directly.