1688 Global Scraper - Products, Rankings & Suppliers avatar

1688 Global Scraper - Products, Rankings & Suppliers

Pricing

from $3.00 / 1,000 results

Go to Apify Store
1688 Global Scraper - Products, Rankings & Suppliers

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

kane liu

Maintained by Community

Actor stats

1

Bookmarked

10

Total users

6

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

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 offerIds or product links in startUrls.
  • Supplier: provide memberIds to collect company profiles and available contacts.
  • Enrichment: includeDetails is on by default, with one detail attempt; includeLeads normally follows it. These options add fields to existing rows, not separately billed rows. includeContactInfo is 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.

FieldDescriptionExample
offerIdProduct identifier123456789
titleProduct title in its source languageClear phone case
detailUrlProduct pagehttps://detail.1688.com/offer/123456789.html
sellerNameSupplier nameExample Supplier
priceMinLowest captured price in priceCurrency1.25
priceCurrencyUSD for Global results; CNY for direct detailsUSD
priceInCnySeparate CNY reference price, if supplied9.00
mainImageMain product image URLhttps://example.com/product.jpg
minimumOrderQuantityMinimum order quantity shown2
salesTextSales wording as displayedSold 100+
rankPosition in the selected ranking1
monthlySalesNumeric monthly sales, where shown in rankings150
detailPriceCurrencyCurrency of additional domestic detail pricesCNY
skuInfoMapAvailable SKU prices and stock information{}
descriptionUrlProduct description link, not the product landing pagenull
detailStatusWhether details were collected or remain unavailablenot_requested
detailMissingGroupsDetail groups that could not be collected[]
capturedAtCapture timestamp, when provided2026-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.

FieldDescriptionExample
recordTypeKind of rowsupplier
supplierMemberIdSupplier identifierb2b-example123
orgCompany name and identifiers{"name":"Example Supplier"}
companyProfileAvailable company profile information{}
phonesPublished contacts; not guaranteed[{"value":"+1 555 0100","type":"mobile"}]
addressPublished supplier address{"full":null}
geoSupplier coordinates when present{"lat":null,"lng":null}
webShop link and available Wangwang IM link{"website":null,"socials":[]}
supplierOffersReferenced product IDs, up to 50 per supplier["123456789"]
leadAbsencesReasons contact fields are unavailable{}

How to scrape 1688 Global

  1. Open 1688 Global Scraper in Apify Console. A free Apify account is enough to try it.
  2. Fill one target field, such as keyword.
  3. Set maxResults to 3 for your first run.
  4. Click Start and wait for completion.
  5. 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.

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

FieldWhat to enterDefault
modeauto, search, ranking, detail or supplierauto
keywordOne product phraseEmpty; form example phone case
offerIdsList of product IDsEmpty
startUrlsList of 1688 product URLsEmpty
memberIdsList of supplier member IDsEmpty
maxResultsRow limit per keyword or ID, from 1 to 10070; form prefill 3
maxPagesSearch pages, from 1 to 51
rankingNameRanking tabMost_Popular
categoryIdNumeric ranking category54
categoryLevelCategory depth, from 1 to 31
countryCodeTwo-letter ranking countryCN
includeDetailsAdd details to search/ranking productstrue
maxDetailItemsDetail attempts for search/ranking, at most 201
includeLeadsAdd supplier contacts and company fieldsFollows includeDetails; enabled in supplier mode
maxLeadItemsSupplier enrichment rows, at most 100Follows maxDetailItems; maxResults in supplier mode
includeDescriptionInclude available description text/imagestrue
includeContactInfoAttempt extra published landline/fax fieldsfalse
proxyCountryLeave the supported value unchangedUS

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}
  • maxItems and limit are accepted aliases for maxResults.
  • With competing targets, the priority is startUrls, offerIds, memberIds, then keyword. 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_REPORT in the run's key-value store records filled, corrected, inferred and ignored fields. INPUT_ECHO shows the settings used.
  • Enabled detail or supplier enrichment needs a positive corresponding attempt limit. includeContactInfo requires includeLeads.

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 planPrice per rowPrice 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-sync and run-sync-get-dataset-items wait at most 300 seconds and can return no rows while a run is paused. For longer jobs, start asynchronously and read the dataset after SUCCEEDED, 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 ApifyClient
client = 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.

RouteWhat it returns
GET /Service readiness information
GET /healthHealth status
GET /input-exampleAn example input for a normal run
GET /openapi.jsonThe 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

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 keyword is supported per run; do not pass an array of search phrases.
  • Dates, translation of every language and complete catalog coverage are not promised.

More e-commerce and marketplace scrapers from the same publisher:

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.