1688.com API scraper - live wholesale search and full product detail for 1688.com, Alibaba's China-domestic B2B marketplace. Every result carries the correct unit price, minimum order quantity, the quantity price ladder, supplier company and city; product detail adds per-variant price, stock and kg weight. No account, no browser.
1688.com API scraper - live wholesale search and full product detail for 1688.com, Alibaba's China-domestic B2B marketplace. Every result carries the correct unit price, minimum order quantity, the quantity price ladder, supplier company and city; product detail adds per-variant price, stock and kg weight. No account, no browser.
/1688/v1/product/detail2 creditsFull detail for one 1688 offer, merged from the offer page and 1688's variant model in two calls. Returns the title, image gallery, the unit price in CNY, the price type (a shared quantity ladder vs per-variant pricing) and the full price ladder with the minimum quantity of each tier, the MOQ with its unit, total orderable stock, the mixed-batch terms sourcing buyers need, units sold, the full specification table (material, brand, model,...), the supplier company with its member and login ids and storefront url, and EVERY sellable variant with its own price, stock (canBookCount, present on 100% of variants) and shipping weight in kg where the supplier published it (absent on many, returned as null - never inferred). Colour / size / spec axes are returned alongside the variants. A dead or invented offer id returns NOT_FOUND.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| offer_id | required | — | A 1688 offer id (the digits in `m.1688.com/offer/<id>.html`) or a full offer url. Every `search` row returns the id as `id`. |
| max_rotations = 4 | optional | 1–8 | How many datacentre exits to try before giving up (1688 runs a per-exit request budget on search; a fresh exit clears it). Raise it only if you see transient block errors. |
/1688/v1/product/reviews1 creditBuyer reviews for one 1688 offer: the average star rating (out of 5), the positive-feedback percentage, the total review count, and a page of individual reviews with their text, the quantity bought, the variant, buyer photos and the date. 1688 masks buyer nicknames itself. Some offers have no reviews yet - that returns an empty list with a zero count, not an error.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| offer_id | required | — | A 1688 offer id (the digits in `m.1688.com/offer/<id>.html`) or a full offer url. Every `search` row returns the id as `id`. |
| max_rotations = 4 | optional | 1–8 | How many datacentre exits to try before giving up (1688 runs a per-exit request budget on search; a fresh exit clears it). Raise it only if you see transient block errors. |
curl -X POST https://api.reefapi.com/1688/v1/product/detail \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"offer_id":"864971848115"}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}