1688 Global Scraper - Products, Rankings & Suppliers
Pricing
from $3.00 / 1,000 results
1688 Global Scraper - Products, Rankings & Suppliers
Collect 1688 Global products, rankings, product details and supplier profiles. Keep USD search prices separate from CNY details, and pay per delivered row plus a start fee.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
10
Total users
6
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
1688 Global Scraper
Collect 1688 Global product searches, rankings, product details and supplier information as rows you can export.
- Search products with English titles and USD prices.
- Read ranking positions, monthly sales and supplier signals when available.
- Open product IDs or URLs for details, including original CNY prices.
- Collect supplier profiles and published contacts without proxy setup.
- Pay only for the rows you receive: $3.00 per 1,000 rows on the Free plan, plus a small start fee.
What does 1688 Global Scraper do?
1688 Global Scraper collects product and supplier information from 1688.com. Search and ranking results cover the Global English/USD catalog, not domestic Chinese search. Direct product details keep the source language and CNY prices.
- Search: enter one product phrase in
keyword. - Ranking: choose
mode: "ranking"and a ranking tab or category. - Detail: provide
offerIdsor product links instartUrls. - Supplier: provide
memberIdsto collect company profiles and available contacts. - Enrichment:
includeDetailsis on by default, with one detail attempt;includeLeadsnormally follows it. These options add fields to existing rows, not separately billed rows.includeContactInfois off by default.
What data can you extract from 1688 Global?
Product rows
Search, ranking and detail modes return product rows. Fields vary by mode and availability.
| Field | Description | Example |
|---|---|---|
offerId | Product identifier | 123456789 |
title | Product title in its source language | Clear phone case |
detailUrl | Product page | https://detail.1688.com/offer/123456789.html |
sellerName | Supplier name | Example Supplier |
priceMin | Lowest captured price in priceCurrency | 1.25 |
priceCurrency | USD for Global results; CNY for direct details | USD |
priceInCny | Separate CNY reference price, if supplied | 9.00 |
mainImage | Main product image URL | https://example.com/product.jpg |
minimumOrderQuantity | Minimum order quantity shown | 2 |
salesText | Sales wording as displayed | Sold 100+ |
rank | Position in the selected ranking | 1 |
monthlySales | Numeric monthly sales, where shown in rankings | 150 |
detailPriceCurrency | Currency of additional domestic detail prices | CNY |
skuInfoMap | Available SKU prices and stock information | {} |
descriptionUrl | Product description link, not the product landing page | null |
detailStatus | Whether details were collected or remain unavailable | not_requested |
detailMissingGroups | Detail groups that could not be collected | [] |
capturedAt | Capture timestamp, when provided | 2026-10-24T08:00:00Z |
Supplier rows and supplier fields on products
Supplier mode writes recordType: "supplier"; it does not invent a product ID or price. These contact fields can also enrich product rows.
| Field | Description | Example |
|---|---|---|
recordType | Kind of row | supplier |
supplierMemberId | Supplier identifier | b2b-example123 |
org | Company name and identifiers | {"name":"Example Supplier"} |
companyProfile | Available company profile information | {} |
phones | Published contacts; not guaranteed | [{"value":"+1 555 0100","type":"mobile"}] |
address | Published supplier address | {"full":null} |
geo | Supplier coordinates when present | {"lat":null,"lng":null} |
web | Shop link and available Wangwang IM link | {"website":null,"socials":[]} |
supplierOffers | Referenced product IDs, up to 50 per supplier | ["123456789"] |
leadAbsences | Reasons contact fields are unavailable | {} |
How to scrape 1688 Global
- Open 1688 Global Scraper in Apify Console. A free Apify account is enough to try it.
- Fill one target field, such as
keyword. - Set
maxResultsto3for your first run. - Click Start and wait for completion.
- Open the dataset and download JSON, CSV or Excel, or read it through the API.
Empty input starts an example search for phone case, capped at three rows. Normal start and row charges apply. Filling one target selects its matching mode automatically. Explicit ranking mode needs no target and does not start the example search.
Search
Enter a single product phrase in keyword. English is the most predictable choice for the Global catalog. Set maxPages to control search pages, from one to five.
Ranking
Set mode to ranking. Choose Most_Popular, New_Arrivals, Trending or Ranked_by_L30_Days_Total_Orders in rankingName. countryCode filters the ranking; it does not select a different search market.
Detail
Enter numeric offerIds or 1688 product URLs in startUrls. URLs must identify an offer through /offer/<number>.html or an offerId query parameter. Detail mode attempts each selected product, independently of the search enrichment limit.
Supplier
Enter memberIds, not shop URLs. Both b2b- IDs and older alphanumeric IDs are accepted. Supplier mode attempts the selected suppliers even if optional product enrichment is disabled. Contacts and legal names may be Chinese.
What to fill in
| Field | What to enter | Default |
|---|---|---|
mode | auto, search, ranking, detail or supplier | auto |
keyword | One product phrase | Empty; form example phone case |
offerIds | List of product IDs | Empty |
startUrls | List of 1688 product URLs | Empty |
memberIds | List of supplier member IDs | Empty |
maxResults | Row limit per keyword or ID, from 1 to 100 | 70; form prefill 3 |
maxPages | Search pages, from 1 to 5 | 1 |
rankingName | Ranking tab | Most_Popular |
categoryId | Numeric ranking category | 54 |
categoryLevel | Category depth, from 1 to 3 | 1 |
countryCode | Two-letter ranking country | CN |
includeDetails | Add details to search/ranking products | true |
maxDetailItems | Detail attempts for search/ranking, at most 20 | 1 |
includeLeads | Add supplier contacts and company fields | Follows includeDetails; enabled in supplier mode |
maxLeadItems | Supplier enrichment rows, at most 100 | Follows maxDetailItems; maxResults in supplier mode |
includeDescription | Include available description text/images | true |
includeContactInfo | Attempt extra published landline/fax fields | false |
proxyCountry | Leave the supported value unchanged | US |
Search:
{"keyword":"phone case","maxResults":3}
Ranking:
{"mode":"ranking","rankingName":"Trending","categoryId":"54","maxResults":3}
Detail (replace the illustrative ID with a real product ID):
{"offerIds":["123456789"],"maxResults":1}
Supplier (replace the illustrative ID with a known member ID):
{"memberIds":["b2b-example123"],"maxResults":1}
maxItemsandlimitare accepted aliases formaxResults.- With competing targets, the priority is
startUrls,offerIds,memberIds, thenkeyword. Ignored targets are reported. - Unknown fields alone do not fail a run. Close misspellings can be corrected; other unknown fields are ignored with a note.
- Unusable targets stop the run before row charges with
INVALID_INPUT, naming the field and expected format. Some invalid filters fall back to defaults instead. INPUT_REPORTin the run's key-value store records filled, corrected, inferred and ignored fields.INPUT_ECHOshows the settings used.- Enabled detail or supplier enrichment needs a positive corresponding attempt limit.
includeContactInforequiresincludeLeads.
Output example
Illustrative search row; values are examples, not a live offer or quote:
{"recordType": "product","offerId": "123456789","title": "Clear phone case","sellerName": "Example Supplier","priceMin": 1.25,"priceCurrency": "USD","detailUrl": "https://detail.1688.com/offer/123456789.html","keyword": "phone case","page": 1,"position": 1,"detailStatus": "not_requested","phones": [],"emails": []}
Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. Nested fields are easiest to retain in JSON.
Why use this 1688 Global scraper?
- Pay per delivered row. Product and supplier rows cost the same; added detail fields do not create extra charges.
- Keep usable partial results. Available partial rows can be delivered when collection ends early. Already-written rows remain in the dataset; an immediate manual stop does not guarantee delivery of unfinished work.
- Keep currencies separate. CNY detail enrichment never overwrites a Global USD search price.
- See missing information. Status fields explain absent details and contacts instead of inventing values.
- Handle multiple IDs. Submit product or supplier ID lists in one run, using one mode.
- No proxy setup. You do not need to configure proxies.
How much does it cost to scrape 1688 Global?
The Actor uses pay-per-event pricing: a start event costs $0.005, plus $0.003 per delivered row. Platform usage is included in these prices.
| Apify plan | Price per row | Price per 1,000 rows |
|---|---|---|
| Free | $0.003 | $3.00 |
| Starter | $0.003 | $3.00 |
| Scale | $0.003 | $3.00 |
| Business | $0.003 | $3.00 |
Start events are counted per GB of allocated memory, with at least one event. At the default 1,024 MB (1 GB) setting, the start fee is $0.005. For example, three delivered rows cost 3 × $0.003 + $0.005 = $0.014.
maxResults applies to each keyword or ID, defaults to 70 and accepts 1–100. Actual output can be smaller because of unavailable products, page limits or missing required fields. Free Apify plan users are limited to 200 rows per run and 10 runs of this Actor, set by its developer.
The whole run stops at Maximum cost per run (maxTotalChargeUsd in the API). A run with no delivered rows has no row charge; its start fee still applies. Enrichment adds fields, not additional product or supplier rows.
What happens when the run timeout is too short
When collection needs longer than the remaining timeout and automatic resumption is accepted, the run pauses with a message such as "Queued on the collection backend; this run will resume automatically when results are ready (about N s)." It temporarily appears as ABORTED.
When results are ready, the same run resumes, writes to the same dataset and can finish as SUCCEEDED. A resumed delivery can show "Resumed: delivering N rows." Rows already delivered are skipped to prevent duplicate row delivery and charging. Collection errors can still fail the run.
- Automatic pauses are capped at three per run. Keep the default timeout of 3600 seconds to reduce interruptions.
run-syncandrun-sync-get-dataset-itemswait at most 300 seconds and can return no rows while a run is paused. For longer jobs, start asynchronously and read the dataset afterSUCCEEDED, or use a succeeded-event webhook.
Use with AI agents and the API
Apify MCP server (Claude, ChatGPT, Cursor, VS Code)
Add the Actor to an MCP client supporting remote servers:
https://mcp.apify.com?tools=lentic_clockss/1688-global-scraper
Sign in with Apify through OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool returns run and dataset IDs; the agent can read rows with get-dataset-items. For clients without remote support, run npx @apify/actors-mcp-server --tools lentic_clockss/1688-global-scraper with APIFY_TOKEN set.
Example prompt: "Find three phone case products on 1688 Global and return their titles, prices, currencies and product links."
Apify API
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/1688-global-scraper").call(run_input={"keyword": "phone case", "maxResults": 3})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/1688-global-scraper').call({keyword: 'phone case', maxResults: 3,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
For asynchronous HTTP, send the JSON input to POST https://api.apify.com/v2/acts/lentic_clockss~1688-global-scraper/runs, with Authorization: Bearer <YOUR_APIFY_TOKEN>. After completion, read GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.
Standby HTTP endpoint
Base URL: https://lentic-clockss--1688-global-scraper.apify.actor.
| Route | What it returns |
|---|---|
GET / | Service readiness information |
GET /health | Health status |
GET /input-example | An example input for a normal run |
GET /openapi.json | The endpoint's OpenAPI description |
These are information endpoints, not product-collection routes. Start searches through normal Actor runs using the API above.
Integrations
Connect results to Google Sheets, Make, Zapier, n8n, Slack, Airtable or your webhook through the Actor's Integrations tab. Use Apify Schedules for repeated runs.
中文使用说明
这个采集器提供国际版商品搜索、榜单、商品详情和供应商资料。搜索时填写 keyword,建议使用英文商品词;填写 offerIds 或 startUrls 可查看指定商品,填写 memberIds 可查看供应商。榜单需要把 mode 设为 ranking。首次把 maxResults 设为三,先检查结果是否符合需要。
国际版搜索价格保留美元,国内详情价格保留人民币,两者不会混用。详情和供应商补充资料可能不完整,电话、地址等缺失时不会猜测。每条交付结果收费,补充字段不另算一条,另有启动费。空输入会运行最多三条的示例搜索,同样按正常价格收费。运行完成后可导出表格;若因自动续跑暂时显示 ABORTED,请等待原运行恢复,不必重复提交。
FAQ
Is it legal to scrape 1688?
Use only data you are entitled to collect. You are responsible for 1688's terms and applicable data-protection laws. Personal data needs a lawful basis; public availability alone is not permission for every use.
Why did my run end as ABORTED?
Check the status message. An automatic-resumption message means the same run is paused pending results. A manual abort or unrelated failure is not a promise of automatic recovery.
How many results can I get?
Set maxResults from 1 to 100 per input. ID lists support up to 100 entries. Availability, page limits, the Free plan limits and your maximum charge can reduce delivered rows.
Why are some fields empty?
The source may omit information or restrict access. Check detailStatus, detailMissingGroups, leadStatus, companyStatus, contactInfoStatus and leadAbsences before relying on an empty value.
Are all prices in USD?
No. Global search/ranking prices are USD, while direct domestic product details use CNY. Always read priceCurrency; enrichment prices have their own detailPriceCurrency.
Are supplier phones and emails guaranteed?
No. Phones depend on what each supplier publishes. The current extractor leaves emails empty. Wangwang IM links may be present, but unrelated social profiles are not inferred.
Can a successful run contain zero rows?
Yes. A confirmed empty Global search can finish as SUCCEEDED with VALID_ZERO_RESULTS. Check RUN_SUMMARY. A failed collection or rejected incomplete products is different from a confirmed empty search.
Can I disable detail enrichment?
For search/ranking, set includeDetails and includeLeads to false for card-only results. Direct detail and supplier modes still attempt their requested entities.
Limitations
- No domestic login-only search, purchasing, private buyer quotations or RFQs.
- Detail fields, stock, contacts and shipping information are not guaranteed or binding quotations.
- Product rows missing required title, product link or positive price can be omitted. Supplier rows need an identifier and name.
- A single
keywordis supported per run; do not pass an array of search phrases. - Dates, translation of every language and complete catalog coverage are not promised.
Related scrapers
More e-commerce and marketplace scrapers from the same publisher:
- Walmart Product Scraper
- Temu Product Scraper
- Allegro Scraper
- TikTok Shop Product Scraper
- Amazon Search, Category & Best Sellers Scraper
- Coupang Product Scraper
- MercadoLibre Scraper
- Rakuten Japan Scraper
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Found a problem or need another field? Open an issue in the Issues tab of this Actor's page and include the run ID and the input you used.