Product API Reference (v2)
Summary
This page lists the complete endpoints, parameters, and response structure of the Product API v2 (current version, recommended for new integrations): keyword search, image search, product details, image upload, and shipping fee calculation on Taobao and 1688.
If you are using the v1 version, see Product API v1 (Legacy). For a step-by-step walkthrough, see Searching for products.
All endpoints are POST, require an authentication header (JWT or API Key), and require the platform parameter with the value taobao or alibaba.
| Endpoint | Description | Platform |
|---|---|---|
POST /v2/products/search | Search products by keyword | ✅ Taobao ✅ 1688 |
POST /v2/products/search-by-image | Search products by image | ✅ Taobao ✅ 1688 |
POST /v2/products/find | Get product details | ✅ Taobao ✅ 1688 |
POST /v2/products/detail | Get full product details | ✅ Taobao ✅ 1688 |
POST /v2/products/upload-image | Upload an image to Alibaba’s server | ✅ Taobao ✅ 1688 |
POST /v2/products/shipping-fee | Calculate shipping fee | ✅ Taobao ❌ 1688 |
Search products by keyword
POST /v2/products/search
Example request:
{
"platform": "taobao",
"q": "áo thun cotton",
"lang": "vi",
"sort": "SALE_QTY_DESC",
"page": 1,
"size": 20,
"filter": {
"priceRange": { "min": 0, "max": 100 }
}
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
platform | string | ✅ | Platform: taobao or alibaba |
q | string | ❌ | Search keyword |
lang | string | ❌ | Title translation language: vi, en, ru, ko, ja. Translated data is in the title_en key; the title key remains the original Chinese |
sort | string | ❌ | Sort order (see table below) |
filter | object | ❌ | Result filter (see table below) |
page | number | ❌ | Page number, starting from 1 |
size | number | ❌ | Results per page: 20 to 40 |
keywordTranslate | boolean | ❌ | Translate the search keyword to the language matching lang |
Sort results (sort)
| Value | Description | Platform |
|---|---|---|
PRICE_ASC | Price ascending | ✅ Taobao ✅ 1688 |
PRICE_DESC | Price descending | ✅ Taobao ✅ 1688 |
SALE_QTY_ASC | Sales quantity ascending | ✅ Taobao ✅ 1688 |
SALE_QTY_DESC | Sales quantity descending | ✅ Taobao ✅ 1688 |
RETENTION_ASC | Repurchase rate ascending | ❌ Taobao ✅ 1688 |
RETENTION_DESC | Repurchase rate descending | ❌ Taobao ✅ 1688 |
Filter results (filter)
| Parameter | Description | Platform |
|---|---|---|
filter.priceRange | Price range in CNY: { "min": 0, "max": 100 } | ✅ Taobao ✅ 1688 |
filter.shopId | Products from the same seller. Taobao uses a numeric shop id; 1688 uses an alphanumeric shopId | ✅ Taobao ✅ 1688 |
filter.sellerLevel | Seller level: L1 – L4 (see table below) | ❌ Taobao ✅ 1688 |
filter.isFactory | Only get products from super factories | ❌ Taobao ✅ 1688 |
filter.ffmOutbound | Fast outbound criteria: FFMO1 – FFMO6 (see table below) | ❌ Taobao ✅ 1688 |
filter.ffmDelivery | Fast delivery criteria: FFMD0 – FFMD2 (see table below) | ❌ Taobao ✅ 1688 |
filter.allowReturn | Allow 7-day no-reason return | ❌ Taobao ✅ 1688 |
filter.allowDropship | Allow dropship | ❌ Taobao ✅ 1688 |
filter.freeshipForDropship | Allow dropship + freeship | ❌ Taobao ✅ 1688 |
filter.newArrival | Newly updated products: 7DAY, 30DAY | ❌ Taobao ✅ 1688 |
filter.platformPick | Platform-selected sources for the domestic market | ❌ Taobao ✅ 1688 |
filter.globalPick | Platform-selected sources for the international market | ❌ Taobao ✅ 1688 |
filter.dropshipPick | Platform-selected sources for dropship | ❌ Taobao ✅ 1688 |
filter.categoryId | Filter by category ID | ❌ Taobao ✅ 1688 |
filter.categoryIdList | Filter by a list of category IDs | ❌ Taobao ✅ 1688 |
filter.sellerOpenId | Search within a single store (when set, q is the in-store keyword) | ❌ Taobao ✅ 1688 |
ffmOutbound values
| Value | Description |
|---|---|
FFMO1 | Shipment rate within 24h < 95% |
FFMO2 | Shipment rate within 24h >= 95% |
FFMO3 | Shipment rate within 24h > 99% |
FFMO4 | Shipment rate within 48h < 95% |
FFMO5 | Shipment rate within 48h >= 95% |
FFMO6 | Shipment rate within 48h > 99% |
ffmDelivery values
| Value | Description |
|---|---|
FFMD0 | Same day delivery |
FFMD1 | Delivery within 24h |
FFMD2 | Delivery within 48h |
newArrival values
| Value | Description |
|---|---|
7DAY | Newly updated products in the last 7 days |
30DAY | Newly updated products in the last 30 days |
sellerLevel values
| Value | Description |
|---|---|
L1 | Total rating 5 stars |
L2 | Total rating 4.5 – 5 stars |
L3 | Total rating 4 – 4.5 stars |
L4 | Total rating below 4 stars |
Search products by image
Note: This feature does not apply to the Free plan.
POST /v2/products/search-by-image
There are 2 ways to search by image; you must pass exactly one of the following parameters:
1. Search by image URL — use the imgUrl parameter
Only image links from Alibaba can be used: *.alicdn.com.
{
"platform": "taobao",
"imgUrl": "https://img.alicdn.com/bao/uploaded/i3/694223667/O1CN01zSjKgp1cxXRQZsDLA_!!694223667.jpg",
"lang": "vi",
"page": 1,
"size": 20
}
2. Search by uploaded image — use the imgId parameter
First upload the image via the Upload image API to get an imageId, then pass it to imgId:
{
"platform": "alibaba",
"imgId": "image-123",
"lang": "vi",
"page": 1,
"size": 20
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
platform | string | ✅ | Platform: taobao or alibaba |
imgUrl | string | ❌* | Alibaba image URL (*.alicdn.com) |
imgId | string | ❌* | ID of an image uploaded via POST /v2/products/upload-image |
lang | string | ❌ | Title translation language: vi, en, ru, ko, ja |
sort | string | ❌ | Sort order (same values as keyword search) |
filter | object | ❌ | Filter: supports filter.priceRange and filter.categoryId |
page | number | ❌ | Page number, starting from 1 |
size | number | ❌ | Results per page: 1 to 20 |
keyword | string | ❌ | Additional keyword when searching by image |
keywordTranslate | boolean | ❌ | Translate the search keyword |
* At least one of imgUrl or imgId is required.
Get detailed product information
POST /v2/products/find
POST /v2/products/detail
Both endpoints share the same request structure and return detailed product information. detail returns fuller details and is suitable when you need 1688 data.
{
"platform": "taobao",
"id": "734467086498",
"lang": "vi"
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
platform | string | ✅ | Platform: taobao or alibaba |
id | string | ❌ | Product identifier: Taobao mi_id or item_url; 1688 offerId |
lang | string | ❌ | Title translation language: vi, en, ru, ko, ja |
If you encounter short links like
https://e.tb.cn/h.hPY04k4RPfAco8F?tk=0CCI430IUqd, you must first process the link to get the original link — use the Unshorten link API to get the original link and product ID.
Product price types
| Price Attribute | Description | Platform |
|---|---|---|
price | Regular price. For 1688, wholesale price without freeship, quantity depends on seller settings | ✅ Taobao ✅ 1688 |
promotion_price | Promotion price, lower than or equal to the regular price | ✅ Taobao ✅ 1688 |
retail_price | Retail price + freeship from 1 product, for dropshipping. Usually appears in selected 1688 products | ❌ Taobao ✅ 1688 |
dropship_price | Retail price for 1 item, usually equal to the regular price. Depends on whether the seller has dropship active | ❌ Taobao ✅ 1688 |
Warning: If you display prices to customers on an extension/web/app, add a warning that prices may be higher than those viewed directly on Taobao/1688. If you find API prices are higher, contact customer service for help adjusting prices when creating purchase orders.
Taobao: prioritize displaying and applying the promotion price; if none exists, use the regular price.
1688: price application logic depends on the quote_type field:
| Value | Description |
|---|---|
direct | Get wholesale price by price and promotion_price |
by_sku | Get price by SKU |
by_volume | Get price by price_range, depends on the minimum order quantity moq |
Seller levels on 1688
Seller level is used to determine credibility on 1688, determined through the seller_type field:
| Value | Description |
|---|---|
seller | Regular seller |
merchant | Professional seller, verified by 1688 |
factory | Manufacturing factory, verified by 1688 and meeting 1688 direct evaluation standards |
Field values in extra_info
| Value | Description |
|---|---|
isOnePsale | Does it support dropshipping? |
isSupportMix | Does it allow buying multiple products in one order? |
isOnePsaleFreePostage | Does it support dropshipping + freeship? |
noReason7DReturn | Does it allow no-reason return within 7 days? |
1688_yx | Is it a selected source? |
Calculate shipping fee
Taobao only.
POST /v2/products/shipping-fee
{
"platform": "taobao",
"id": "734467086498",
"addressInfo": {
"country": "VN",
"state": "Hanoi",
"city": "Hanoi",
"district": "Hoan Kiem"
}
}
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
platform | string | ✅ | Fixed to taobao |
id | string | ❌ | Product identifier: mi_id or item_url |
addressInfo.country | string | ✅ | Receiving country |
addressInfo.state | string | ✅ | Province/state |
addressInfo.city | string | ✅ | City |
addressInfo.district | string | ❌ | District |
The response contains post_fee (shipping fee in CNY), currency, item_id, mi_id, and item_resource.
Upload image
Used to get an
imageIdfor image search (theimgIdparameter).
POST /v2/products/upload-image
The request uses multipart/form-data:
| Field | Type | Required | Description |
|---|---|---|---|
file | file | ✅ | The image file to upload |
platform | string | ✅ | Platform: taobao or alibaba |
Response: { "imageId": "image-123" }.
Response structure
Response field names use snake_case. Each platform returns its own product structure:
find/detail→ a product object (Product)search/search-by-image→{ "paginate": { "total", "current", "size" }, "items": [...] }(thepaginatekey may be absent when there is no pagination metadata)
Core fields (present on both platforms)
| Field | Description |
|---|---|
id | Product ID |
title | Original title (Chinese) |
title_en | Translated title (when called with lang) |
description | Product description |
quote_type | Quote type: direct / by_sku / by_volume |
price | Regular price |
promotion_price | Promotion price |
quantity | Stock quantity |
unit | Unit of measure |
shop_id | Seller ID |
shop_name | Store name |
moq | Minimum order quantity |
category_id | Category ID |
category_name | Category name |
category_path | Category path |
img_urls | Product image list |
seller_type | Seller type: seller / merchant / factory |
status | Product status |
skus | Variant list (color, size) |
attributes | Product attributes |
1688-only fields
In addition to the core fields, a 1688 response adds the following fields (grouped by topic):
- Pricing:
price_range,channel_price,promotion_model,fenxiao_sale_info,is_jxhy - Media:
video_urls,white_image,translated_img_urls,translated_white_image - Translation:
description_en,unit_en - Sales/reviews:
sold,review,level - Shipping:
shipping_info - Category:
top_category_id,second_category_id,third_category_id - Identifiers & links:
mp_id,item_type,batch_number,product_cargo_number,original_product_url,seller_shop_url,promotion_url - Metadata:
selling_point,offer_identities,create_date,is_select,certificate_list,seller_mix_setting - Other:
extra_info,sku_price_ranges
Note: A field entirely absent from the response means the field does not belong to the platform you are calling. A field with a
nullvalue means there is no data for that field in this request.
For the complete field list and detailed descriptions: Swagger API.
FAQ
Why is the product price from the API different from the price shown on the Taobao/1688 website?
- The API we are using is part of Alibaba’s cross-border logistics system, and its pricing is determined independently — separate from the prices shown on the website.
- Unlike the API, the website can distinguish between new and returning visitors, which allows it to apply targeted promotions or vouchers based on user type — a capability the API does not support.
Is there a test environment?
No. The default account already includes 200 free requests for trial integration.
Is the data real-time?
Yes, the data is retrieved directly from Taobao and 1688.
Do you support image search?
Yes, we support searching by image URL and uploaded image.
Related links
- How-to: Searching for products
- Legacy: Product API v1 (Legacy)
- Tools: Elim CLI — search products from the terminal
- Full API reference: openapi.elim.asia/api