1688 APIdetail.m.1688.com ↗
Fetch structured product data from 1688.com wholesale listings: title, pricing tiers, SKU variants, seller info, ratings, and sales stats via one API call.
What is the 1688 API?
The 1688 Product Detail API exposes over 20 structured fields from a single 1688.com wholesale offer page through one endpoint, get_product. Pass a numeric offer_id and get back the full product record: tiered pricing in CNY, all SKU variants with per-variant stock and price, seller company profile, review summary, and sales counts — everything needed to analyze or replicate a product listing from China's largest domestic wholesale platform.
curl -X GET 'https://api.parse.bot/scraper/cf0c7ba8-8155-4b88-b396-e8e9ce4f7fb6/get_product?offer_id=1027862723893' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns the full detail of one 1688 product (offer) identified by its numeric offer id, as one object. Two upstream round trips: the product page (title, price tiers, category, SKU properties and per-SKU price/stock, specifications, main images, video, seller profile, rating summary, sales and shipping/logistics data) and the seller's description module (description text, images and raw HTML). Prices are in CNY and expressed as numbers; sales.sale_count is the numeric one-year sales figure while sales.sale_count_text is the site's rounded display string (e.g. '300+'). reviews.review_count is the total number of buyer reviews; reviews.rating is the product grade out of 5. Text values are in Simplified Chinese as published by the seller. Nullable fields: skus[].price and skus[].discount_price when the site publishes no per-variant price, sku_properties[].values[].image_url when a value has no swatch image, video_url when the listing has no video, description.text when the description consists only of images. A non-numeric offer id is rejected with a validation error; an offer id the site does not know (it redirects to its 404 page) returns a not-found error. The site rate-limits repeated page views from one network origin; such a response is reported as a temporary block and retried automatically.
| Param | Type | Description |
|---|---|---|
| offer_idrequired | string | Numeric 1688 offer id, the digits in the product URL (detail.1688.com/offer/<offer_id>.html or ...?offerId=<offer_id>). |
{
"type": "object",
"fields": {
"url": "canonical product page URL",
"skus": "array of concrete variants {sku_id, spec, spec_values, price, discount_price, available_quantity, sale_count}",
"price": "object: currency (CNY), min_price, max_price (numbers), display_price, unit, min_order_quantity, tiers (array of {price, min_quantity} quantity-break prices), price_type",
"sales": "object: sale_count (number, last year), sale_count_text (display string), sale_count_period, favorite_count, visitors_7_day",
"title": "product title",
"images": "array of main product image URLs",
"seller": "object: name (shop login name), company_name, registered_company_name, member_id, shop_url, service_score_text, repeat_buyer_rate_3m, is_verified_manufacturer",
"status": "listing status, e.g. PUBLISHED",
"reviews": "object: review_count, rating (out of 5), positive_rate_percent, impression_tags (array of {name, count})",
"category": "object with leaf_id and leaf_name of the site category",
"offer_id": "the product's offer id as a string",
"shipping": "object: ships_from, shipping_fee (CNY number), shipping_fee_type, free_shipping, delivery_promise, delivery_limit_days, unit_weight_kg, buyer_protections (array of {name, description})",
"video_url": "main product video URL or null",
"description": "object: text (plain text or null), images (array of URLs), html (raw description HTML)",
"sku_properties": "array of variant axes {name, values:[{name, image_url}]}",
"specifications": "array of product attributes {name, value, values}",
"available_quantity": "total orderable stock across SKUs"
},
"sample": {
"data": {
"url": "https://detail.1688.com/offer/1027862723893.html",
"skus": [
{
"spec": "289黑色>29码内长18CM",
"price": 36.5,
"sku_id": "6206571579226",
"sale_count": 0,
"spec_values": [
"289黑色",
"29码内长18CM"
],
"discount_price": 36.5,
"available_quantity": 990
}
],
"price": {
"unit": "双",
"tiers": [
{
"price": 35.5,
"min_quantity": 1
}
],
"currency": "CNY",
"max_price": 35.5,
"min_price": 35.5,
"price_type": "skuPrice",
"display_price": "35.50",
"min_order_quantity": 1
},
"sales": {
"sale_count": 324,
"favorite_count": 136,
"visitors_7_day": 2461,
"sale_count_text": "300+",
"sale_count_period": "一年内"
},
"title": "女童运动鞋2026新款春秋中大童跑步鞋女孩软底百搭老爹鞋儿童鞋子",
"images": [
"https://cbu01.alicdn.com/img/ibank/O1CN018hBw8D1ps7p4n1WDn_!!2219095015415-0-cib.jpg"
],
"seller": {
"name": "牛麦麦鞋厂",
"shop_url": "https://shop45542c44q08h0.1688.com",
"member_id": "b2b-222051805603625550",
"company_name": "温岭市泽国牛麦麦鞋业商行",
"service_score_text": "3.5分",
"repeat_buyer_rate_3m": "53.87%",
"registered_company_name": "温岭市泽国牛麦麦鞋业商行(个体工商户)",
"is_verified_manufacturer": true
},
"status": "PUBLISHED",
"reviews": {
"rating": 4.2,
"review_count": 101,
"impression_tags": [
{
"name": "价格不贵",
"count": 7
}
],
"positive_rate_percent": 79
},
"category": {
"leaf_id": "125314003",
"leaf_name": "童运动鞋"
},
"offer_id": "1027862723893",
"shipping": {
"ships_from": "浙江省台州市",
"shipping_fee": 5,
"free_shipping": false,
"unit_weight_kg": 0.6,
"delivery_promise": "承诺48小时发货",
"buyer_protections": [
{
"name": "7天无理由退货",
"description": "满足相应条件下,卖家需支持7天无理由,其中定制订单不支持“7天无理由退货”。"
}
],
"shipping_fee_type": "TEMPLATED",
"delivery_limit_days": 2
},
"video_url": "https://cloud.video.taobao.com/play/u/2220518056036/p/2/e/6/t/1/530844179001.mp4",
"description": {
"html": "<div id=\"offer-template-0\"></div><div><img src=\"https://cbu01.alicdn.com/img/ibank/O1CN017vh7231ps7p4nXXQX_!!2219095015415-0-cib.jpg\"/></div>",
"text": null,
"images": [
"https://cbu01.alicdn.com/img/ibank/O1CN017vh7231ps7p4nXXQX_!!2219095015415-0-cib.jpg"
]
},
"sku_properties": [
{
"name": "颜色",
"values": [
{
"name": "289黄色",
"image_url": "https://cbu01.alicdn.com/img/ibank/O1CN01ZgGaoR1ps7p4z0D4M_!!2219095015415-0-cib.jpg"
}
]
}
],
"specifications": [
{
"name": "鞋面材质",
"value": "超纤",
"values": [
"超纤"
]
}
],
"available_quantity": 27597
},
"status": "success"
}
}About the 1688 API
What get_product Returns
The get_product endpoint accepts a single required parameter, offer_id — the numeric identifier found in any 1688 product URL (e.g. detail.1688.com/offer/<offer_id>.html). The response is one consolidated object covering the full product record. The price field includes min_price, max_price, currency (always CNY), unit, min_order_quantity, and a tiers array for bulk pricing breaks. This makes it straightforward to model wholesale price ladders without scraping the page yourself.
SKUs, Specifications, and Images
The skus array contains every concrete variant of the product. Each entry carries sku_id, spec, spec_values, price, discount_price, available_quantity, and sale_count. The images array returns all main product image URLs. The status field reflects the current listing state (e.g. PUBLISHED), and the category object provides the leaf category id and name from the 1688 taxonomy.
Seller and Social Proof Fields
The seller object includes the shop login name, company_name, registered_company_name, member_id, shop_url, service_score_text, and repeat_buyer_rate. The reviews object provides review_count, rating (out of 5), positive_rate_percent, and an impression_tags array of named tags with occurrence counts. The sales object surfaces sale_count for the past year, a display string sale_count_text, favorite_count, and visitors_7_day — useful for gauging demand signals on a listing.
The 1688 API is a managed, monitored endpoint for detail.m.1688.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when detail.m.1688.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official detail.m.1688.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor price tier changes on competing 1688 wholesale listings using the
price.tiersarray - Aggregate per-SKU stock levels via
skus[].available_quantityto detect inventory trends - Build a China-to-overseas product sourcing tool that surfaces
seller.company_nameandrepeat_buyer_rate - Track weekly demand signals by comparing
sales.visitors_7_dayandsales.sale_countover time - Populate a product catalog with structured data: title, images, specs, and category from a single
offer_idlookup - Score supplier reliability by combining
reviews.positive_rate_percentwithreviews.impression_tagscounts - Detect listing status changes (e.g.
PUBLISHEDto delisted) for watchlisted wholesale products
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does 1688.com have an official public developer API?+
What does the `price` field actually contain, and how are bulk pricing tiers represented?+
price object includes min_price, max_price, display_price, currency (CNY), unit, and min_order_quantity. The tiers array holds one entry per price break, each with a price and the minimum quantity threshold at which that price applies. If the seller uses a single flat price, tiers will contain one entry.Does the API return the full product description HTML or rich text?+
Are seller-level metrics like transaction volume or store age returned?+
seller object covers name, company_name, registered_company_name, member_id, shop_url, service_score_text, and repeat_buyer_rate. Store-level aggregate metrics like total historical transaction volume or store age are not included in the current response. You can fork the API on Parse and revise it to add a seller-focused endpoint covering those fields.How fresh is the data, and does the API support batch lookups across multiple offer IDs?+
offer_id at request time, so freshness reflects the current state of the listing. The endpoint takes one offer_id per request; there is no batch parameter. For multiple products, issue one request per offer_id.