Product API response models

With response_format: "standard" (default), product endpoints return the types below. Canonical TypeScript: packages/shared/src/products.ts.

Endpoints: detail · search · image search · parse

Response envelope {#envelope}

EndpointShape
detail, parse{ product: StandardProductDetail, request_id }
search, search-by-imageStandardProductList & { request_id }
upload-image{ channel, image_id, request_id }

StandardProductDetail {#standard-product-detail}

Full product snapshot for product pages and checkout. Map to orders: source_product_idoffer_id, variants[].sku_idspec_id (Procurement orders).

Identity & channel

FieldTypeDescription
idstringHIOBuy composite key: {channel}_{source_product_id}
channelstring1688, taobao, or weidian
source_product_idstring1688 = offerId; Taobao = mi_id (required for order APIs)
source_urlstringCanonical product page URL

Localized text (title, description)

FieldTypeDescription
originalstringMarketplace text (typically Chinese)
translatedstring | nullTranslation for requested language
languagestringLocale of translated
descriptionobject | nullLong-form detail (often HTML)

Pricing (price, price_tiers[])

All amounts CNY yuan (not fen). Prefer promotion_amount when set, else display_amount.

FieldTypeDescription
price.original_amountnumberList price before promotions
price.display_amountnumberBuyer-facing price (CNY)
price.promotion_amountnumber | nullPromotional unit price when applicable
price.original_currency / display_currencystringAlways CNY
price_tiers[]array1688 wholesale breaks; empty on Taobao
min_order_quantitynumber | null1688 MOQ
distribution_min_quantitynumber | null1688 dropship minimum

Media (images[], videos)

FieldTypeDescription
images[].urlstringImage CDN URL
images[].typeenummain, gallery, or variant
videos.main / videos.detailstring | null1688 videos; Taobao null

Attributes vs variants

Only variants[] drives SKU selection and order lines.

FieldRole
attributes[]CPV specs — display only, not for SKU resolution
variants[]Purchasable SKU matrix with price, stock, specs

Variant object (variants[])

FieldTypeDescription
sku_idstringPass as spec_id on order create
upstream_sku_idstring | null1688 numeric skuId
attributes[]arraySpec dimensions (color, size, …)
priceobjectSKU-level price in yuan
stocknumberAvailable qty; 0 = out of stock
imagestring | nullSKU primary image
shippingobject | null1688 package dimensions for freight
distributionobject | null1688 dropship pricing

Seller, shipping & metadata

FieldTypeDescription
seller.id / seller.namestringShop id and display name
seller.shop_urlstring | nullStorefront link
shipping.shipping_fromstring | nullDomestic dispatch region
shipping.domestic_shipping_feeobject | nullEstimated domestic fee in yuan
metadata.raw_categorystring | nullUpstream category
metadata.brandstring | nullDeclared brand
metadata.updated_atstringISO 8601 last sync
trade_scorestring | null1688 quality score

Example (truncated)

{
  "product": {
    "id": "1688_554456348334",
    "channel": "1688",
    "source_product_id": "554456348334",
    "title": {
      "original": "...",
      "translated": "...",
      "language": "en"
    },
    "price": {
      "display_amount": 29.9,
      "promotion_amount": 24.9
    },
    "variants": [
      {
        "sku_id": "b266e0...",
        "stock": 100
      }
    ]
  },
  "request_id": "req_..."
}

Channel field availability

Field1688TaobaoWeidian
videos, price_tiers, trade_scoreVaries
variants[].shipping, distribution
source_product_id for ordersofferIdmi_idPlatform id

StandardProductList {#standard-product-list}

From search and image search. Each items[] entry is a summary — call detail for SKU matrix.

FieldTypeDescription
channelstringMarketplace queried
keywordstringEcho of keyword (empty for pure image search)
page / page_sizenumberPagination applied
totalnumberUpstream total (may be approximate)
items[]arrayStandardProductListItem objects
pic_region_infoobjectImage search: detected crop region

StandardProductListItem

FieldTypeDescription
id, channel, source_product_id, source_urlstringUse source_product_id to fetch detail
titleLocalizedTitleListing title
priceProductPriceSummary price in CNY yuan
imagestringThumbnail URL
seller.namestringShop name

Upload-image response {#upload-image-response}

FieldTypeDescription
channelstringMarketplace that stored the image
image_idstringReuse in image search

Variant selection {#variant-selection}

  1. Load detail → read product.variants.
  2. Group by attributes[].original_name for dimension pickers.
  3. Filter variants on each user choice; disable out-of-stock options.
  4. Pass matching sku_id and source_product_id to order preview.