1688.com Products Scraper avatar

1688.com Products Scraper

Pricing

from $4.99 / 1,000 results

Go to Apify Store
1688.com Products Scraper

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

Scraper Engine

Maintained by Community

Actor 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 CategoryPublicly AvailableRestricted (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❌ NoRequires sending an inquiry through 1688.com
Full business license & factory audit documents❌ NoRequires supplier-side verification access
Negotiated buyer-specific pricing❌ NoRequires 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 NameDescription
offer_id1688.com's internal numeric ID for the listing.
titleProduct title, with the site's search-highlight markup stripped out.
image_urlMain listing image URL (protocol-normalized to https://).
detail_urlCanonical https://detail.1688.com/offer/{offer_id}.html product page link.
source_detail_urlThe raw listing URL as returned directly by the API.
listing_typeListing type as reported by the API (defaults to "normal").
price_typePrice type code from the API (defaults to "NORMAL").
price_labelOptional price description/qualifier text, if the API supplies one.
queryThe search keyword that returned this product.
pageThe search results page this product was found on.

💰 Pricing, demand & supplier metrics

Field NameDescription
price / price_displayCombined display string, e.g. "54 (\$8.04)" — CNY price with an estimated USD amount in parentheses.
price_cnyUnit price in CNY (whole number where the price has no decimal, per the site's own display convention).
price_usdUnit price converted to USD using the run's exchange rate.
currencyAlways "CNY" — the source currency.
fx_rate_cny_usdThe CNY→USD rate actually used for this run's conversions.
fx_rate_as_ofThe date the exchange rate is from, or "static-estimate" if the live rate lookup failed.
price_integer / price_decimalSplit whole-number and .decimal parts of the price for display formatting — both empty strings for whole-number prices.
minimum_order_quantity / minimum_order_unitMOQ and its unit (e.g. ), parsed from the first bulk-price tier.
quantity_pricesRaw bulk-price tiers as {quantity, price, price_usd} display strings.
price_tiersThe same bulk-price tiers, typed: {min_quantity, max_quantity, unit, price_cny, price_usd}.
order_countOrder/booked count as a string, straight from the site.
booked_countThe same order/booked count, parsed to an integer.
sold_count_textFree-text "sold" or volume label shown near the price on the listing.
repurchase_rateRepurchase rate as a display string (e.g. "33%").
repurchase_rate_percentThe same repurchase rate as a number (e.g. 33).
composite_score, consultation_score, logistics_score, dispute_score, return_score, goods_score1688.com's six official trade-service scores, each rounded to 2 decimals and returned as a string.
supplier_scoresThe same six scores together in one nested object, as numbers.

🏭 Supplier & trust signals

Field NameDescription
shop_nameThe supplier's shop/login name.
member_id1688.com's internal member ID for the supplier account.
province / citySupplier location, in Chinese, exactly as 1688.com returns it.
supplier_business_typeBusiness type code (e.g. factory) reported by the API.
supplier_company_nameSupplier company name/description text shown under the listing's shop link.
supplier_years_on_platformYears the supplier has been trading on 1688.com.
supplier_shop_urlLink to the supplier's storefront (normalized to https://).
supplier_is_qualifiedWhether the supplier carries 1688.com's qualification badge.
supplier_is_power_merchantWhether the supplier is flagged as a "Power Merchant."
supplier_is_super_factoryWhether the supplier is flagged as a "Super Factory."
supplier_factory_inspectedWhether the factory has been inspected by 1688.com.
supplier_business_inspectedWhether the business registration has been inspected by 1688.com.
service_tagsDeduplicated service/feature labels shown on the card (returns policy, fulfillment perks, verification badges, etc.).
promotion_tagsActive promotion labels (e.g. discounts) from the listing's offer metadata.
market_tagsAdditional service-tag labels from the listing's offer metadata.
product_badgesBadge/label text shown in the middle of the product card.
is_sponsoredWhether the listing is a paid/promoted (P4P) placement.
is_bidWhether 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.

  1. Open 1688.com Product Scraper on the Apify Store and click Try for free (an Apify account is required to run it).
  2. Add your search keywords under 🔍 Search Queries — this is the only required input.
  3. Optionally adjust 📦 Max Products per Query, 🔀 Sort Results By, and 🌐 Proxy Configuration.
  4. Click Start.
  5. 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_count and repurchase_rate_percent to shortlist listings with proven demand before committing to a supplier.
  • 💵 A procurement analyst comparing suppliers uses minimum_order_quantity and price_tiers to line up bulk pricing across multiple factories before requesting samples.
  • 🏭 A supplier-vetting or quality-control lead uses supplier_factory_inspected, supplier_is_qualified, and composite_score to screen manufacturers before wiring a deposit.
  • 📊 A market researcher benchmarking a category runs the same keyword with sortType set to price ascending and descending, then compares price_cny across the result set to map out the market's price range.
  • 🤖 An AI engineer feeds title, service_tags, and price_tiers into 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.

ParameterRequiredTypeDescriptionExample Value
queriesYesarray of stringsOne 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"]
maxProductsNointeger (default 50, min 1, max 100000)Stop each keyword search after collecting this many unique products (1–1000).100
sortTypeNostring 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"
proxyConfigurationNoobject (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 ApifyClient
client = 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.

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.