1688 Product Details, Prices and SKUs API, No Login
Pricing
from $3.50 / 1,000 products
1688 Product Details, Prices and SKUs API, No Login
1688 Product Details, Prices and SKUs API: paste 1688.com product URLs or offer ids, get quantity price tiers, SKU prices and stock, attributes, images, sold count and supplier company per product. Schedule it to monitor wholesale prices. Pay per product; failed URLs are free.
Pricing
from $3.50 / 1,000 products
Rating
0.0
(0)
Developer
HH Online Ventures
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Security
Limited permissionsShare
1688 Product Details, Prices and SKUs API
1688 Product Details, Prices and SKUs API: paste 1688.com product URLs or offer ids, get quantity price tiers, SKU prices and stock, attributes, images, sold count and supplier company per product. Schedule it to monitor wholesale prices. Pay per product; failed URLs are free.
What data does 1688 Product Details, Prices and SKUs API return?
Each run returns one dataset item per result with these fields:
| Field | Type | Description |
|---|---|---|
offerId | string or null | 1688's numeric offer id, as a string. Null on an error row when the entry held no id. |
url | string | The product page, https://detail.1688.com/offer/ID.html. On an error row, the URL that was tried (or your entry when it was not a 1688 product link). |
inputUrl | string | Your entry exactly as given, so you can match rows to your list. |
title | string | The product title as the supplier wrote it (usually Chinese). |
currency | string | Always CNY: 1688 prices are in Chinese yuan. |
priceType | string or null | How the page prices the product: rangePrice (one price per order quantity, see priceTiers) or skuPrice (a price per variant, see priceRange and skus). |
priceTiers | array of object | Wholesale price by order quantity: from minQuantity units up, each unit costs price (CNY). Empty when prices are per SKU. |
priceRange | object or null | Lowest and highest unit price (CNY) when prices are per SKU; null when the page prices by quantity. |
minOrderQuantity | integer or null | Smallest quantity the supplier sells in one order. |
unit | string or null | The selling unit as the page shows it, for example 个 (piece) or 件 (item). |
soldText | string or null | The page's own sold figure, for example 10万+ (100,000 or more) or 300+. |
soldCount | integer or null | The lower bound of soldText as a number: 10万+ is 100000, 3700+ is 3700. Null when the page shows none. |
skuProps | array of object | The option groups buyers choose from (for example 颜色, color) with each value and its image link when the page has one. |
skus | array of object | Every variant: skuId, specs (its option values), price, discountPrice, stock (units the page says can be ordered) and soldCount. A field the page does not show for a variant is null. |
attributes | array of object | Product attributes from the page's parameter table (material, size, brand ...), as name and value. |
images | array of string | Product image links (cbu01.alicdn.com), main images first. |
categoryIds | object or null | 1688 category ids: top (top-level category) and post (the category the offer is listed in). |
location | object or null | Where the product ships from: province, city and the page's own text (for example 广东省佛山市). |
seller | object | The supplier business: registered company name, 1688 member id and shop link. No account handle, user id or contact details. |
scrapedAt | string | When this row was collected (ISO 8601, UTC). |
error | string or null | Null on a product row. On a free error row, why no product was delivered for this entry. |
Sample output
Real output from the prefilled example input (first 1 of 1 results; lists longer than 10 entries are cut to their first 10 here, the dataset holds them all):
[{"offerId": "735353578254","url": "https://detail.1688.com/offer/735353578254.html","inputUrl": "https://detail.1688.com/offer/735353578254.html","title": "适用iphone18PRO大视窗磁吸手机壳15磨砂漏标苹果11秒变17保护套","currency": "CNY","priceType": "rangePrice","priceTiers": [{"minQuantity": 2,"price": 9},{"minQuantity": 500,"price": 8.5},{"minQuantity": 5000,"price": 7.5}],"priceRange": null,"minOrderQuantity": 2,"unit": "个","soldText": "1.8万+","soldCount": 18000,"skuProps": [{"name": "颜色","values": [{"name": "樱桃红【纳米磨砂防指纹手汗】","imageUrl": "https://cbu01.alicdn.com/img/ibank/O1CN01mLerzF1OFCHJw6Hvh_!!3872131675-0-cib.jpg"},{"name": "橙色【纳米磨砂防指纹手汗","imageUrl": "https://cbu01.alicdn.com/img/ibank/O1CN01ewTYsW1OFCVTwByxb_!!3872131675-0-cib.jpg"},{"name": "沙漠金【纳米磨砂防指纹手汗】","imageUrl": "https://cbu01.alicdn.com/img/ibank/O1CN01fERjZg1OFCTLhY97Y_!!3872131675-0-cib.jpg"},{"name": "钛金灰【纳米磨砂防指纹手汗】","imageUrl": "https://cbu01.alicdn.com/img/ibank/O1CN01HTCT631OFCIm7p2og_!!3872131675-0-cib.jpg"},{"name": "海军蓝【纳米磨砂防指纹手汗】","imageUrl": "https://cbu01.alicdn.com/img/ibank/O1CN01JuqQMA1OFCHQOJIWf_!!3872131675-0-cib.jpg"},{"name": "暗紫【纳米磨砂防指纹手汗】","imageUrl": "https://cbu01.alicdn.com/img/ibank/O1CN01Z5vACN1OFCHTgcyBw_!!3872131675-0-cib.jpg"},{"name": "黑色【纳米磨砂防指纹手汗】","imageUrl": "https://cbu01.alicdn.com/img/ibank/O1CN01rIIXQU1OFCHUpOPHV_!!3872131675-0-cib.jpg"},{"name": "远峰蓝【纳米磨砂防指纹手汗】","imageUrl": "https://cbu01.alicdn.com/img/ibank/O1CN01aEtGNC1OFCHSNBuY0_!!3872131675-0-cib.jpg"},{"name": "粉色【纳米磨砂防指纹手汗】","imageUrl": "https://cbu01.alicdn.com/img/ibank/O1CN01RhV1Wj1OFCHPmG3Wg_!!3872131675-0-cib.jpg"},{"name": "暗绿【纳米磨砂防指纹手汗】","imageUrl": "https://cbu01.alicdn.com/img/ibank/O1CN01BsdHNH1OFCHZ7rG8w_!!3872131675-0-cib.jpg"}]},{"name": "适用型号","values": [{"name": "iPhone 18promax","imageUrl": null},{"name": "iPhone 18pro","imageUrl": null},{"name": "iPhone 17PROMAX","imageUrl": null},{"name": "iPhone 17PRO","imageUrl": null},{"name": "iPhone 17","imageUrl": null},{"name": "iPhone 17AIR","imageUrl": null},{"name": "iPhone 16PROMAX","imageUrl": null},{"name": "iPhone 16PRO","imageUrl": null},{"name": "iPhone 16","imageUrl": null},{"name": "iPhone 16PLUS","imageUrl": null}]}],"skus": [{"skuId": "5994388491383","specs": ["海军蓝【纳米磨砂防指纹手汗】","iPhone 15PLUS"],"price": null,"discountPrice": null,"stock": 9999,"soldCount": 0},{"skuId": "6117535683935","specs": ["钛金灰【纳米磨砂防指纹手汗】","iPhone 17PROMAX"],"price": null,"discountPrice": null,"stock": 9976,"soldCount": 0},{"skuId": "6117540027003","specs": ["橙色【纳米磨砂防指纹手汗","iPhone 17PRO"],"price": null,"discountPrice": null,"stock": 9997,"soldCount": 0},{"skuId": "5994388491461","specs": ["粉色【纳米磨砂防指纹手汗】","iPhone 16PLUS"],"price": null,"discountPrice": null,"stock": 9985,"soldCount": 0},{"skuId": "5994388491451","specs": ["粉色【纳米磨砂防指纹手汗】","iPhone 15PROMAX"],"price": null,"discountPrice": null,"stock": 9997,"soldCount": 0},{"skuId": "6117535683976","specs": ["暗绿【纳米磨砂防指纹手汗】","iPhone 17PRO"],"price": null,"discountPrice": null,"stock": 9993,"soldCount": 0},{"skuId": "6288175910358","specs": ["黑色【纳米磨砂防指纹手汗】","iPhone 18promax"],"price": null,"discountPrice": null,"stock": 9821,"soldCount": 0},{"skuId": "6134484685798","specs": ["樱桃红【纳米磨砂防指纹手汗】","iPhone 14PLUS"],"price": null,"discountPrice": null,"stock": 9995,"soldCount": 0},{"skuId": "5994388491411","specs": ["暗紫【纳米磨砂防指纹手汗】","iPhone 12PRO"],"price": null,"discountPrice": null,"stock": 9998,"soldCount": 0},{"skuId": "6117540027011","specs": ["橙色【纳米磨砂防指纹手汗","iPhone 12PRO"],"price": null,"discountPrice": null,"stock": 9998,"soldCount": 0}],"attributes": [{"name": "材质","value": "PC"},{"name": "功能","value": "其它,磁吸,防摔,抗指纹"},{"name": "款式","value": "防摔款"},{"name": "品牌","value": "潮虹兔"},{"name": "工艺","value": "磨砂"},{"name": "流行元素","value": "磨砂"},{"name": "风格","value": "商务,情侣,时尚,民族风,个性,潮流,奢华,创意,日韩风,复古风,中国风,潮牌,北欧风,小香风,简约,欧美,暗黑风,轻奢风,ins风"},{"name": "颜色","value": "樱桃红【纳米磨砂防指纹手汗】,橙色【纳米磨砂防指纹手汗,沙漠金【纳米磨砂防指纹手汗】,钛金灰【纳米磨砂防指纹手汗】,海军蓝【纳米磨砂防指纹手汗】,暗紫【纳米磨砂防指纹手汗】,黑色【纳米磨砂防指纹手汗】,远峰蓝【纳米磨砂防指纹手汗】,粉色【纳米磨砂防指纹手汗】,暗绿【纳米磨砂防指纹手汗】"},{"name": "适用型号","value": "iPhone 18promax,iPhone 18pro,iPhone 17PROMAX,iPhone 17PRO,iPhone 17,iPhone 17AIR,iPhone 16PROMAX,iPhone 16PRO,iPhone 16,iPhone 16PLUS,iPhone 15PROMAX,iPhone 15PRO,iPhone 15,iPhone 15PLUS,iPhone 14PROMAX,iPhone 14PRO,iPhone 14,iPhone 14PLUS,iPhone 13PROMAX,iPhone 13PRO,iPhone 13,iPhone 12PROMAX,iPhone 12PRO,iPhone 12,iPhone 11PROMAX,iPhone 11PRO,iPhone 11"},{"name": "支持订制","value": "支持"}],"images": ["https://cbu01.alicdn.com/img/ibank/O1CN01lAdPke1OFCTM0qUJK_!!3872131675-0-cib.jpg","https://cbu01.alicdn.com/img/ibank/O1CN01Y6UOuGbwKnH1chua_!!3872131675-0-cib.jpg","https://cbu01.alicdn.com/img/ibank/O1CN01UsmJRC1OFCTNRUGl7_!!3872131675-0-cib.jpg","https://cbu01.alicdn.com/img/ibank/O1CN01DywbdD1OFCTM0owg1_!!3872131675-0-cib.jpg","https://cbu01.alicdn.com/img/ibank/O1CN016z43Pk1OFCVurQGUT_!!3872131675-0-cib.jpg","https://cbu01.alicdn.com/img/ibank/O1CN01mLerzF1OFCHJw6Hvh_!!3872131675-0-cib.jpg","https://cbu01.alicdn.com/img/ibank/O1CN01ewTYsW1OFCVTwByxb_!!3872131675-0-cib.jpg","https://cbu01.alicdn.com/img/ibank/O1CN01fERjZg1OFCTLhY97Y_!!3872131675-0-cib.jpg","https://cbu01.alicdn.com/img/ibank/O1CN01HTCT631OFCIm7p2og_!!3872131675-0-cib.jpg","https://cbu01.alicdn.com/img/ibank/O1CN01JuqQMA1OFCHQOJIWf_!!3872131675-0-cib.jpg"],"categoryIds": {"top": 7,"post": 1046694},"location": {"province": "广东省","city": "深圳市","text": "广东省深圳市"},"seller": {"companyName": "深圳市亿佳合兴科技有限公司","memberId": "b2b-38721316754ec7c","shopUrl": "https://winport.m.1688.com/page/index.html?memberId=b2b-38721316754ec7c"},"scrapedAt": "2026-11-04T20:00:00.000Z","error": null}]
Use cases
- Sourcing and supplier research: paste the 1688 offers you are comparing and get their wholesale price tiers, minimum order, SKU prices and stock, and the supplier company in one table.
- Wholesale price monitoring: schedule the actor daily or weekly on the same offer list and compare price tiers, SKU prices and stock run by run.
- Dropshipping and cross-border catalogs: pull titles, attributes, option values with their images, and product images for the offers you list, ready for your own translation and import.
- Market and category research: collect sold counts, shipping locations and category ids for a set of offers you found by hand or with another tool.
- AI agents and automations: a clean, typed dataset that an agent or a Make, Zapier or n8n flow can read directly, one row per product.
Input examples
The prefilled example input. It runs in seconds and returns a handful of results:
{"productUrls": ["https://detail.1688.com/offer/735353578254.html"],"maxItems": 10}
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
productUrls | array | yes | 1688 product links, one per line (bulk paste works): https://detail.1688.com/offer/735353578254.html (a query string is fine and is dropped), the mobile form https://m.1688.com/offer/735353578254.html, or just the numeric offer id 735353578254. Anything else gets a free error row. Duplicates are fetched once. Up to 5,000 per run. | |
maxItems | integer | no | Stop after this many products are in your dataset. You pay per product, so this also caps the cost of a run. Leave empty to fetch every entry. | |
maxRetries | integer | no | 2 | How many more times a page that arrives without product data (1688 often answers a load with an error) is fetched before the product gets a free error row. Retries go through a proxy in China. |
How much does 1688 Product Details, Prices and SKUs API cost?
This actor uses pay-per-event pricing: you pay only for results you get, plus a small fee per run. Higher Apify plans get a lower price per result.
| Event | Free plan | Bronze plan | Silver plan | Gold plan |
|---|---|---|---|---|
| Product (per 1,000) | $4.40 | $4.40 | $4.00 | $3.50 |
| Actor start (per run) | $0.00039 | $0.00039 | $0.00039 | $0.00039 |
1,000 results cost $4.40039 on the Bronze plan. In one run, 1,000 results cost $4.40039 on the Free plan, $4.40039 on the Bronze plan, $4.00039 on the Silver plan and $3.50039 on the Gold plan, including the actor start.
Product: One 1688 product row with data in your dataset. Rows for entries that deliver no product (not a product link, not available, or no data after retries) are free. Actor start: Charged once when a run starts (Apify counts one start per GB of memory). You can set a maximum cost per run in the run options; the actor stops cleanly when it is reached.
Schedule and monitor
Monitor 1688 wholesale prices and stock: save your offer list as a task and schedule it daily or weekly. Each run adds a dataset with the current price tiers, SKU prices, stock and sold count of every product and a scrapedAt time, so you can track changes in a spreadsheet or alert on them.
Run 1688 Product Details, Prices and SKUs API on a schedule to keep your data fresh and to monitor what changed since the last run:
- Run the actor once with your input, then save that input as a task in Apify Console.
- Open Schedules in Apify Console, click Create new, choose the task and set how often it runs with a cron expression, for example
0 6 * * 1for every Monday at 06:00. Schedules support time zones and daylight saving time. - Every scheduled run writes a new dataset. Compare it with the previous run, or send it onward with a webhook or one of the integrations below.
Integrations and API
1688 Product Details, Prices and SKUs API runs on the Apify platform, so its results can go wherever Apify connects:
- API: start a run and read the results over HTTP from any language (examples below).
- Make, Zapier and n8n: Apify has official integrations for all three. Run the actor from a Make scenario, a Zap or an n8n workflow and pass each result to the next step, such as a spreadsheet, a CRM or a chat message.
- Webhooks: have Apify call your own URL when a run succeeds or fails, for example to load the new dataset into your system.
- Schedules: run it automatically at the times you choose (see Schedule and monitor above).
- Downloads: export any run's dataset as JSON, CSV, Excel, XML, HTML table, RSS or JSONL.
Run it with the API
One request starts a run and returns its dataset items, for runs that finish within 300 seconds. For bigger runs, start the run, then read its dataset when it finishes.
curl -X POST "https://api.apify.com/v2/actors/hhonlineventures~1688-product-details/run-sync-get-dataset-items" \-H "Authorization: Bearer <YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"productUrls": ["https://detail.1688.com/offer/735353578254.html"], "maxItems": 10}'
JavaScript, with npm install apify-client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('hhonlineventures/1688-product-details').call({"productUrls": ["https://detail.1688.com/offer/735353578254.html"], "maxItems": 10});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python, with pip install apify-client:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("hhonlineventures/1688-product-details").call(run_input={'productUrls': ['https://detail.1688.com/offer/735353578254.html'], 'maxItems': 10})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Your API token is in Apify Console under API & Integrations.
Use with AI agents (MCP)
AI agents can run 1688 Product Details, Prices and SKUs API as a tool through the Apify MCP server (https://mcp.apify.com). The agent reads the input schema and the output fields above, fills in the input and gets the dataset back, with no glue code.
To give an agent exactly this actor, add the server to your MCP client with the actor in the tools parameter:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=hhonlineventures/1688-product-details"}}}
On first connection your browser opens so you can sign in to Apify and approve access. A client that cannot do that can send an Authorization: Bearer <YOUR_APIFY_TOKEN> header instead, and a client that runs only local servers can start npx -y @apify/actors-mcp-server with APIFY_TOKEN set.
Then ask in plain language, for example:
Run 1688 Product Details, Prices and SKUs API with this input:
{"productUrls": ["https://detail.1688.com/offer/735353578254.html"], "maxItems": 10}. Show me the results as a table.
The server also has search-actors, fetch-actor-details and call-actor tools, which let an agent find this actor in Apify Store, read its details and run it. Agent runs are charged the same pay-per-event prices as any other run.
Limits
- You bring the product links or offer ids. The actor reads the public product page of each offer; it does not search 1688 or list a shop's products.
- All text is 1688's own, mostly Chinese: titles, option names, attributes and units are not translated. Prices are in Chinese yuan (CNY).
- 1688 often answers a load with an error instead of the page. The actor then tries again (2 more times by default, through a proxy in China); if the product still does not arrive, its row is free and says so. Expect some products of a large list to need a second run.
- A page load takes from a few seconds to about a minute (a refused load takes about a minute), and about 10 pages are fetched at a time. In our 100-product test run on 2026-11-04, 91 products arrived and the run took about 10 minutes.
- Some offers have no product page in the normal layout (for example service listings); they get a free row with
product not available. stockis the quantity the page says can be ordered, andsoldCountis the lower bound of the page's own sold text (for example10万+becomes 100000); neither is an exact inventory or sales figure.- Up to 5,000 entries per run.
What this actor is not
- Not a search tool: no keyword or image search and no category browsing. You need the product links or offer ids.
- Not a shop or supplier list scraper: it returns the supplier's company name, member id and shop link for each product, not lists of shops or suppliers.
- Not a translator: the data comes in the language 1688 shows, mostly Chinese.
- Not a contact finder: no supplier phone numbers, e-mail addresses, contact names or account handles.
- Not a review scraper: no reviews or ratings text.
- Not a description scraper: the long description (the image and HTML part of the page) is not fetched; no video files or download links either.
Search terms buyers use
- 1688 scraper
- 1688 product scraper
- 1688 product details API
- 1688 price scraper
- 1688 SKU scraper
- 1688.com product data
- 1688 wholesale price monitor
- Alibaba 1688 scraper
- 1688 offer details
- Chinese wholesale product data API
FAQ
What do I need to run it?
Only 1688 product links or offer ids and an Apify account. No 1688 or Taobao account, login, cookies or API key. Paste the links one per line, or send them as the productUrls array through the API.
Which link formats work?
Desktop product links like https://detail.1688.com/offer/735353578254.html (tracking parameters after ? are fine and are dropped), mobile links like https://m.1688.com/offer/735353578254.html, and bare offer ids like 735353578254. Search, shop and category links are not product links and get a free error row.
What am I charged for?
One product event per product row in your dataset, plus the actor start. Entries that deliver no product (not a product link, not available, or no data after the retries) are free, and so are duplicates, which are fetched once.
Why did some products come back as error rows?
1688 turns away part of all page loads, more on some days than others. The actor retries each product up to 2 more times by default (you can raise maxRetries to 4), and you pay nothing for a product that did not arrive. Running the failed offer ids again later usually gets most of them.
How are prices shown?
priceType says how the supplier prices the product. With rangePrice, priceTiers lists the unit price from each order quantity up (for example 9 CNY from 2 units, 8.5 CNY from 500). With skuPrice, each variant has its own price in skus, and priceRange gives the lowest and highest. minOrderQuantity is the smallest order the supplier accepts.
Is the data translated into English?
No. Titles, option values and attributes come exactly as 1688 shows them, mostly in Chinese. Field names and the structure are in English, so you can translate the text with your own tool after the run.
Can I track price and stock changes?
Yes. Save the input as a task and schedule it (for example every day). Each run adds a new dataset with the current prices, stock and sold counts and a scrapedAt time, so you can compare runs or send them to a spreadsheet.
What happens if I set a maximum cost per run?
The actor fetches only as many products as your limit pays for, then stops cleanly. Every product in your dataset was charged once; nothing else was.
Is it legal to collect this data?
The actor reads only public product pages, the same ones anyone can open without logging in, never logs in, and leaves out supplier contact details and account handles. You are responsible for how you use the data and for following 1688's terms and the laws that apply to you.