# 3 Product

# 1 Products

# 1.1 Category List(GET)

Get product categories from CJ.

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/getCategory

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/getCategory' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

# Return

success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": [
        {
            "categoryFirstName": "Computer & Office",
            "categoryFirstList": [
                {
                    "categorySecondName": "Office Electronics",
                    "categorySecondList": [
                        {
                            "categoryId": "2252588B-72E3-4397-8C92-7D9967161084",
                            "categoryName": "Office & School Supplies"
                        },
                    ]...
                }
            ]    
        }
    ],
    "requestId": "ae543fd1-cdd7-4a61-974a-1340fea678c6"
}
Field Definition Type Length Note
categoryFirstName First level category name string 200
categoryFirstList First level category list Array -
categorySecondName Second level category name string 200
categorySecondList Second level category list Array -
categoryId Third level category ID string 200
categoryName Third level category name string 200

error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data object interface data return
requestId requestId string 48 Flag request for logging errors

# 1.2 Product List V2(GET)

Get all available products from CJ with criteria inquiry supported. V2 version uses elasticsearch search engine for higher performance product search capabilities.

Note:

  1. Supports keyword search
  2. Supports multiple filter conditions such as price range, category, country, etc.
  3. Supports sorting functionality
  4. Through the features parameter, you can selectively return product details and category information
  5. page minimum value 1, maximum value 1000; size minimum value 1, maximum value 100

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/listV2

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/listV2?page=1&size=20&keyWord=hoodie' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Parameter Definition Type Required Length Note
keyWord Search keyword string N 200 Product name or SKU keyword search
page Page number int N 20 Default 1, minimum 1, maximum 1000
size Quantity of results on each page int N 20 Default 10, minimum 1, maximum 100
categoryId Category ID string N 200 Filter products by third level category ID
lv2categoryList Second level category ID list array N Filter products by second level category ID list
lv3categoryList Third level category ID list array N Filter products by third level category ID list
countryCode Country code string N 200 Format: CN,US,GB,FR etc., filter products with inventory in specified countries
startSellPrice Start sell price decimal N Price filter start value
endSellPrice End sell price decimal N Price filter end value
addMarkStatus Is free shipping int N 1 0-not free shipping, 1-free shipping
productType Product type int N 15 4-Supplier product, 10-Video product, 11-Non-video product
productFlag Product flag int N 1 0-Trending products, 1-New products, 2-Video products, 3-Slow-moving products
startWarehouseInventory Start warehouse inventory int N Filter products with inventory greater than or equal to this value
endWarehouseInventory End warehouse inventory int N Filter products with inventory less than or equal to this value
verifiedWarehouse Verified warehouse type int N 1 null/0-All(default), 1-Verified inventory, 2-Unverified inventory
timeStart Listing time filter start long N Listing start time timestamp (milliseconds)
timeEnd Listing time filter end long N Listing end time timestamp (milliseconds)
zonePlatform Zone platform suggestion string N 200 Such as: shopify,ebay,amazon,tiktok,etsy etc.
isWarehouse Is global warehouse search boolean N 1 true-yes, false-no
sort Sort direction string N 4 desc-descending(default) / asc-ascending
orderBy Sort field int N 20 0=best match(default); 1=listing count; 2=sell price; 3=create time; 4=inventory
features Features list array N 200 Supported values: enable_description(return product details), enable_category(return product category information), enable_combine(return combine product info), enable_video(return video IDs)
supplierId Supplier ID string N 200 Filter products by supplier ID
hasCertification Has certification int N 1 0-No, 1-Yes
isSelfPickup Is self pickup int N 1 0-No, 1-Yes
customization Is customization product int N 1 0-No, 1-Yes

# Return

success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": {
        "pageSize": 20,
        "pageNumber": 1,
        "totalRecords": 1000,
        "totalPages": 50,
        "content": [
            {
                "productList": [
                    {
                        "id": "04A22450-67F0-4617-A132-E7AE7F8963B0",
                        "nameEn": "Personalized Belly-baring Cat Ear Hoody Coat",
                        "sku": "CJNSSYWY01847",
                        "spu": "CJNSSYWY01847",
                        "bigImage": "https://cc-west-usa.oss-us-west-1.aliyuncs.com/20210129/2167381084610.png",
                        "sellPrice": "11.85",
                        "nowPrice": "9.50",
                        "listedNum": 100,
                        "categoryId": "5E656DFB-9BAE-44DD-A755-40AFA2E0E686",
                        "threeCategoryName": "Hoodies & Sweatshirts",
                        "twoCategoryId": "5E656DFB-9BAE-44DD-A755-40AFA2E0E685",
                        "twoCategoryName": "Tops & Sets",
                        "oneCategoryId": "5E656DFB-9BAE-44DD-A755-40AFA2E0E684",
                        "oneCategoryName": "Women's Clothing",
                        "addMarkStatus": 1,
                        "isVideo": 0,
                        "videoList": [],
                        "productType": "ORDINARY_PRODUCT",
                        "supplierName": "",
                        "createAt": 1609228800000,
                        "warehouseInventoryNum": 500,
                        "totalVerifiedInventory": 500,
                        "totalUnVerifiedInventory": 0,
                        "verifiedWarehouse": 1,
                        "customization": 0,
                        "hasCECertification": 0,
                        "isCollect": 0,
                        "myProduct": false,
                        "discountPrice": "9.50",
                        "discountPriceRate": "20",
                        "description": "Product description...",
                        "deliveryCycle": "3-5",
                        "saleStatus": "3",
                        "authorityStatus": "1",
                        "isPersonalized": 0
                    }
                ],
                "relatedCategoryList": [
                    {
                        "categoryId": "xxx",
                        "categoryName": "Hoodies"
                    }
                ],
                "keyWord": "hoodie",
                "keyWordOld": "hoodie"
            }
        ]
    },
    "requestId": "f95cd31d-3907-47ce-ac1a-dfdee4315960"
}
Field Definition Type Length Note
pageSize Page size long 20 Number of products per page
pageNumber Current page number long 20 Current requested page number, starts from 1
totalRecords Total records long 20 Total number of products matching criteria, Maximum value: 6000.
totalPages Total pages long 20 Total pages
content Content list array Product data list

CjProductInfoSearchV2DTO object in content:

Field Definition Type Length Note
productList Product list Product[] Product information array
relatedCategoryList Related category list array Related categories matched by search keyword list
keyWord Search keyword string 200 Actual search keyword used
keyWordOld Original search keyword string 200 Original search keyword entered by user

Product object in productList:

Field Definition Type Length Note
id Product ID string 200 Unique product identifier
nameEn Product name (English) string 200 Product English name
sku Product SPU string 200 Product SPU code
spu Product SPU string 200 Product SPU code
bigImage Product main image string 200 Product main image URL
sellPrice Sell price string 20 Product sell price, unit: USD
nowPrice Discount price string 20 Product discount price
discountPrice Best discount price string 20 Best discount price
discountPriceRate Discount rate string 20 Discount percentage
listedNum Listed number int 20 Number of times this product is listed on the platform
isCollect Is collected int 1 0-not collected, 1-collected
categoryId Third level category ID string 200 Product third level category ID
threeCategoryName Third level category name string 200 Third level category name (returned only when features contains enable_category)
twoCategoryId Second level category ID string 200 Product second level category ID
twoCategoryName Second level category name string 200 Second level category name (returned only when features contains enable_category)
oneCategoryId First level category ID string 200 Product first level category ID
oneCategoryName First level category name string 200 First level category name (returned only when features contains enable_category)
addMarkStatus Is free shipping int 1 0-not free shipping, 1-free shipping
isVideo Has video int 1 0-no video, 1-has video
videoList Video ID list array Product video ID collection (returned only when features contains enable_video)
productType Product type string 20 Product type code
supplierName Supplier name string 200 Product supplier name
createAt Create time long 20 Product create timestamp (milliseconds)
setRecommendedTime Recommended time long 20 Set recommended timestamp
warehouseInventoryNum Warehouse inventory number long 20 Total inventory number
totalVerifiedInventory Total verified inventory int 20 Total verified inventory
totalUnVerifiedInventory Total unverified inventory int 20 Total unverified inventory
verifiedWarehouse Verified warehouse identifier int 1 1-Verified inventory, 2-Unverified inventory
customization Is customization product int 1 0-No, 1-Yes
isPersonalized Is personalized customization int 1 0-No, 1-Yes
hasCECertification Has CE certification int 1 0-No, 1-Yes
myProduct Is added to my products boolean 1 true-added, false-not added
description Product description string 2000 Detailed product description (returned only when features contains enable_description)
deliveryCycle Delivery cycle string 20 Product delivery cycle in days
saleStatus Sale status string 2 Fixed at 3, indicating that the product is in on sale state,3-On Sale
authorityStatus User visible permission string 1 0-private visible, 1-all visible
autStatus Product visibility string 1 Product visibility status
isAut Is permanent private string 1 0-not permanent private, 1-permanent private
isList Is listed int 1 0-not listed, 1-listed
syncListedProductStatus Listing status string 1 0-pending, 1-listing, 2-failed, 3-success, 4-cancelled
isAd Is advertisement product int 1 0-not ad, 1-ad product
activityId Advertisement product ID string 200 Advertisement activity ID
directMinOrderNum Minimum order quantity string 20 Minimum order quantity
zoneRecommendJson Zone recommend list set Zone recommend tag collection
inventoryInfo Warehouse inventory info string Warehouse inventory details JSON
variantKeyEn Variant property string 200 Variant property English description
variantInventories Variant inventory info string Variant inventory details JSON
propertyKey Product logistics property key string 200 Product logistics property keywords

Error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code Error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message Return message string 200
data Return data object Business data
requestId Request ID string 48 Flag request for logging errors

# 1.3 Global Warehouse List(GET)

Get the list of all available global warehouses.

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/globalWarehouseList

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/globalWarehouseList' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

# Request Parameters

No parameters required

# Return

success

{
    "code": 200,
    "success": true,
    "message": "Success",
    "data": [
        {
            "areaCn": "中国仓",
            "areaEn": "China Warehouse",
            "areaId": 1,
            "countryCode": "CN",
            "nameEn": "China",
            "valueEn": "CN",
            "disabled": false,
            "zh": "中国仓",
            "en": "China Warehouse",
            "de": "China-Lager",
            "fr": "Entrepôt Chine",
            "th": "คลังสินค้าจีน",
            "id": "1"
        },
        {
            "areaCn": "美国仓",
            "areaEn": "US Warehouse",
            "areaId": 2,
            "countryCode": "US",
            "nameEn": "United States",
            "valueEn": "US",
            "disabled": false,
            "zh": "美国仓",
            "en": "US Warehouse",
            "de": "US-Lager",
            "fr": "Entrepôt américain",
            "th": "คลังสินค้าสหรัฐ",
            "id": "2"
        }
    ],
    "requestId": "ae543fd1-cdd7-4a61-974a-1340fea678c6"
}
Field Definition Type Length Note
areaCn Warehouse name (CN) string 200 Chinese name of the warehouse
areaEn Warehouse name (EN) string 200 English name of the warehouse
areaId Warehouse ID int 20 Unique warehouse identifier
countryCode Country code string 10 ISO country code, e.g., CN, US, GB
nameEn Country name (EN) string 200 English name of the country
valueEn Warehouse code string 10 Warehouse code value, usually matches country code
disabled Is disabled boolean 1 true-disabled, false-available
zh Chinese name string 200 Multi-language support - Chinese
en English name string 200 Multi-language support - English
de German name string 200 Multi-language support - German
fr French name string 200 Multi-language support - French
th Thai name string 200 Multi-language support - Thai
id Warehouse string ID string 20 String format of warehouse ID

error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code Error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message Return message string 200
data Return data object Business data
requestId Request ID string 48 Flag request for logging errors

# 1.4 Product List(GET)

Deprecated

This endpoint is deprecated. Use 1.2 Product List V2 (/product/listV2) instead.

Its behaviour is unchanged, so existing integrations keep working during migration. However it will receive no further enhancements — please migrate as soon as you can.

Why it is deprecated: V2 is backed by elasticsearch, offering better search performance plus keyword search, multi-criteria filtering (price range, category, country) and sorting. Those capabilities will not be added to this endpoint.

Get all available products from CJ, criteria inquiry supported. 20 results for each page, fixed.

Note:

  1. Maximum return of 200 data per page.
  2. Free users or v1 users are limited to a maximum of 1000 requests per day.(2024-09-30 update)
  3. One IP is limited to a maximum of three users.(2024-09-30 update)
  4. Query the product list and add "deliveryTime" field (hours). The values are 24, 48, 72, or null (2024-11-15 update)

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/list

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/list' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Parameter Definition Type Required Length Note
pageNum Page number int N 20 Default 1, specifies the page number of the product list to retrieve
pageSize Quantity of results on each page int N 20 Default 20, number of products returned per page, maximum 200
categoryId category id string N 200 Inquiry criteria, filter products by category ID
pid Product id string N 200 Filter products by unique product identifier
productSku Product sku string N 200 Filter products by SKU
productName Product name string N 200 Fuzzy match by product Chinese name
productNameEn Product name(en) string N 200 Fuzzy match by product English name
productType Product type string N 200 Optional values: ORDINARY_PRODUCT, SUPPLIER_PRODUCT - Returns all types if not provided
countryCode countryCode string N 200 Example: CN, US - Filter products with inventory in specified countries
deliveryTime Delivery Time (hours) string N 200 Optional values: 24 (ships within 24 hours), 48 (ships within 48 hours), 72 (ships within 72 hours) - Returns only products meeting the specified delivery time
verifiedWarehouse Verified Inventory Type number N 1 Optional values: 1 (Verified), 2 (Unverified) - Not passing values means not restricting queries based on that type
startInventory the minimum inventory number N eg: 2, filter products with inventory greater than or equal to this value
endInventory the highest inventory number N eg: 10, filter products with inventory less than or equal to this value
createTimeFrom create time(start) string N 200 format: yyyy-MM-dd hh:mm:ss, filter products created after this time
createTimeTo create time(end) string N 200 format: yyyy-MM-dd hh:mm:ss, filter products created before this time
brandOpenId brand id long N 200 Inquiry criteria, filter by brand ID
minPrice minimum price number N 200 Example: 1.0 - Filter products with price greater than or equal to this value
maxPrice maximum price number N 200 Example: 2.5 - Filter products with price less than or equal to this value
searchType Search Type number N 5 Optional values: 0 (All products), 2 (Trending Products), 21 (Trending Products View More) - Default is 0
minListedNum Minimum Listed Num number N 10 Example: 1 - Returns products with listing count greater than or equal to this value
maxListedNum Maximum Listed Num number N 10 Example: 10 - Returns products with listing count less than or equal to this value
sort Sort Type string N 4 Optional values: desc (descending order), asc (ascending order) - Default: desc
orderBy Sort field string N 20 Optional values: createAt (sort by creation time), listedNum (sort by listing count) - Default: createAt
isSelfPickup Does the product support self pickup number N 1 Optional values: 1 (supported), 0 (not supported)
supplierId Supplier Id string N 40 Filter products by supplier ID
isFreeShipping Is Free Shipping? int N 1 Optional values: 0 (not free), 1 (free shipping)
customizationVersion Customization Version int N 1 Optional values: 1 (Platform Customized Version V1), 2 (Platform Customized Version V2), 3 (Customer Customized Version V1), 4 (Customer Customized Version V2), 5 (POD 3.0 Platform Customized) - Filter POD products by customization version

# Return

success

{
     "code": 200,
     "result": true,
     "message": "Success",
     "data": {
         "pageNum": 1,
         "pageSize": 20,
         "total": 1,
         "list": [
             {
                 "pid": "04A22450-67F0-4617-A132-E7AE7F8963B0",
                 "productName": "[\"猫耳朵卫衣\",\"定制卫衣\",\"个性化定制\"]",
                 "productNameEn": "Personalized Belly-baring Cat Ear Hoody Coat",
                 "productSku": "CJNSSYWY01847",
                 "productImage": "https://cc-west-usa.oss-us-west-1.aliyuncs.com/20210129/2167381084610.png",
                 "productWeight": 0,
                 "productType": null,
                 "productUnit": "unit(s)",
                 "sellPrice": 11.85,
                 "categoryId": "5E656DFB-9BAE-44DD-A755-40AFA2E0E686",
                 "categoryName": "Women's Clothing / Tops & Sets / Hoodies & Sweatshirts",
                 "remark": "",
                 "createTime": null,
                 "customizationVersion": 1
             }
         ]
     },
     "requestId": "f95cd31d-3907-47ce-ac1a-dfdee4315960"
}
Field Definition Type Length Note
pageNum Page number int 20 Current page number
pageSize Quantity of results on each page int 20 Number of products per page
total Total quantity of results int 20 Total number of products matching criteria
list Product list Product[] List of product data
pid Product ID string 200 Unique product identifier
productName Product name string 200 Product Chinese name, may be a JSON array string with multiple names
productNameEn Product name(EN) string 200 Product English name
productSku Product sku string 200 Product SKU code
productImage Product image string 200 Product main image URL
productWeight Product weight int 200 Unit: g
productType Product type byte 200 Product type code
productUnit Product unit string 48 Product selling unit
categoryId Category id string 200 Product category ID
categoryName Category name string 200 Product category name
remark Remark string 200 Product remark information
addMarkStatus Is shipping free? (Deprecated, please use isFreeShipping) int 1 0=Not free shipping, 1=free shipping
isFreeShipping Is shipping free? boolean 1 true for free shipping, false for paid shipping
listedNum Listed number int 200 Number of listings for this product on the platform
supplierName Supplier name string 200 Product supplier name
supplierId Supplier id string 200 Product supplier ID
sellPrice Sell price decimal - Product selling price
createTime Create time string - Product creation time on the platform
isVideo Has video int 1 1 means includes video, 0 means no video
saleStatus Sale status int 20 3 means approved for sale
customizationVersion Customization Version int 1 Custom product version number

Error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data object interface data return
requestId requestId string 48 Flag request for logging errors

# 1.5 Product Details(GET)

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/query

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/query?pid=000B9312-456A-4D31-94BD-B083E2A198E8' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Parameter Definition Type Required Length Note
pid Product id string Choose one of pid, productSku, variantSku 200 Inquiry criteria, unique product identifier
productSku Product sku string Choose one of pid, productSku, variantSku 200 Inquiry criteria, product SPU code
variantSku variant sku string Choose one of pid, productSku, variantSku 200 Inquiry criteria, variant SKU code
features features List N 200 Optional values: enable_combine (includes combination variants, returns combination product info when passed), enable_video (includes videos, returns product video info when passed)
countryCode Country Code string N 2 Country code such as CN, US - Only returns variants with inventory in that country, no restriction if not passed

# Return

Success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": {
        "pid": "000B9312-456A-4D31-94BD-B083E2A198E8",
        "productName": "[\"攀爬车 拖斗车 \",\"攀爬车 \",\"拖斗车 \"]",
        "productNameEn": "Small trailer model",
        "productSku": "CJJJJTJT05843",
        "bigImage": "https://cf.cjdropshipping.com/quick/product/c1f9aae8-2b96-4ca7-9a67-1441d9596e3d.jpg",
        "productImageSet": ["https://cf.cjdropshipping.com/quick/product/c1f9aae8-2b96-4ca7-9a67-1441d9596e3d.jpg","https://cf.cjdropshipping.com/quick/product/a7657750-4318-47e8-875f-b6220ac35354.jpg"],
        "productWeight": "1500.0",
        "productUnit": "unit(s)",
        "productType": "ORDINARY_PRODUCT",
        "categoryId": "87CF251F-8D11-4DE0-A154-9694D9858EB3",
        "categoryName": "Home & Garden, Furniture / Home Storage / Home Office Storage",
        "entryCode": "8712008900",
        "entryName": "模型",
        "entryNameEn": "model",
        "materialName": "[\"\",\"金属\"]",
        "materialNameEn": "[\"\",\"metal\"]",
        "materialKey": "[\"METAL\"]",
        "packingWeight": "1580.0",
        "packingName": "[\"\",\"塑料袋\"]",
        "packingNameEn": "[\"\",\"plastic_bag\"]",
        "packingKey": "[\"PLASTIC_BAG\"]",
        "productKey": "[\"颜色\"]",
        "productKeyEn": "Color",
        "productPro": "[\"普货\"]",
        "productProSet": ["普货"],
        "productProEn": "[\"COMMON\"]",
        "productProEnSet": ["COMMON"],
        "sellPrice": 58.09,
        "description": "....",
        "suggestSellPrice": "0.97-4.08",
        "listedNum": 392,
        "status": "3",
        "supplierName": "",
        "supplierId": "",
        "customizationVersion": 1,
        "customizationJson1": "",
        "customizationJson2": "",
        "customizationJson3": "",
        "customizationJson4": "",
        "variants": [
            {
                "vid": "D4057F56-3F09-4541-8461-9D76D014846D",
                "pid": "000B9312-456A-4D31-94BD-B083E2A198E8",
                "variantName": null,
                "variantNameEn": "Small trailer model Black",
                "variantSku": "CJJJJTJT05843-Black",
                "barcode": "6973990191234",
                "variantUnit": null,
                "variantKey": "Black-XXL",
                "variantLength": 300,
                "variantWidth": 200,
                "variantHeight": 100,
                "variantVolume": 6000000,
                "variantWeight": 1580.00,
                "variantSellPrice": 58.09,
                "createTime": "2019-12-31T11:14:12.000+00:00"
                "variantStandard": "long=110,width=110,height=30",
                "variantSugSellPrice": 0.97
                "combineVariants":[{}],
                "inventories": [
                    {
                        "countryCode": "CN",
                        "totalInventory": 12912,
                        "cjInventory": 0,
                        "factoryInventory": 12912,
                        "verifiedWarehouse": 2,
                        "stock": [
                            {
                                "stockId": "{6709CCD7-0DC7-43B1-B310-17AB499E9B0A}",
                                "inventory": 0,
                                "factoryInventory": 12912
                            }
                        ]
                    }
                ]
            }...
        ],
        "createrTime": "2019-12-24T01:06:37+08:00"
    },
    "requestId": "d8dc0b6d-0ed8-4e19-8f63-3f207ac39832"
}

Product

Field Definition Type Length Note
pid Product ID string 200 Unique product identifier
productName Product name string 20 Product Chinese name, in JSON array format
productNameEn Product name(EN) string 200 Product English name
productSku Product sku string 200 Product SKU,eg: CJJJJTJT05843
bigImage Product Main Image string 200 Product main image URL
productImageSet Product Images string[] 200 eg: ["https://cf.cjdropshipping.com/quick/product/c1f9aae8-2b96-4ca7-9a67-1441d9596e3d.jpg","https://cf.cjdropshipping.com/quick/product/a7657750-4318-47e8-875f-b6220ac35354.jpg"]
productWeight Product weight int 200 Unit: g
productType Product type int 200 Product type
productUnit Product unit string 48 Product selling unit
categoryId Category id string 200 Product category ID
categoryName Category name string 200 Category name, third-level category, concatenated by >, example: Home & Garden, Furniture > Home Storage > Home Office Storage
entryCode HS code string 200 Product customs code
entryName Customs name string 200 Product customs Chinese name
entryNameEn Customs name (EN) string 200 Product customs English name
materialNameSet Material(ZH) string[] 200 Product material Chinese name, eg: ["玻璃"]
materialNameEnSet Material (EN) string[] 200 Product material English name, eg: ["Glass"]
packingWeight Package weight string 200 Unit: g, total weight including packaging,eg:444.00-3884.00
packingNameSet Package name string[] 200 Packaging material Chinese name, eg: ["plastic_bag"]
packingNameEnSet Package name (EN) string[] 200 Packaging material English name, eg: ["Plastic bags"]
productKeySet Product Options(ZH) string[] 200 Product Options keywords, eg: ["Color","Size"]
productKeyEn Product Options (EN) string 200 Product Options, multiple options, joined by -, eg: Color-Size
productProSet Product logistics attributes(Chinese) string[] Chinese description of product logistics attributes. See Appendix 4:Product Logistics Property for the full enum
productProEnSet Product logistics attributes(English) string[] English description of product logistics attributes. See Appendix 4:Product Logistics Property for the full enum
addMarkStatus Is Free Shipping? int 1 0=not Free, 1=Free
description Description string 200 Detailed product description
sellPrice Sell price string 200 Product selling price
createTime Create time string 200 Product creation time on the platform
productVideo Product video ID list string[] 200 If the product contains videos and features are passed in enable_video, it will return
status status string 20 3 means approved for sale
suggestSellPrice suggest sell price string 20 Suggested retail price range
listedNum listed number int 20 Number of listings for this product
supplierName supplier name string 20 Product supplier name
supplierId supplier Id string 20 Product supplier ID
customizationVersion customization version int 20 Custom product version number
customizationJson1 customization json string 200 Custom information JSON data 1
customizationJson2 customization json string 200 Custom information JSON data 2
customizationJson3 customization json string 200 Custom information JSON data 3
customizationJson4 customization json string 200 Custom information JSON data 4
variants Variants Variant[] List of product variants

Variant

Field Definition Type Length Note
vid Variant Id string 200 Unique variant identifier
pid Product Id string 20 Parent product identifier
variantName Variant Name string 200 Variant Chinese name
variantNameEn Variant Name(en) string 200 Variant English name
variantSku Variant SKU string 200 Variant SKU code
barcode Barcode string 200 Unique identifier of the CJ variant, used in CJ warehouses; numeric only, present on all variants
variantImage Variant Image string 200 Variant image URL
variantStandard Variant Standard string 200 Variant specification description
variantUnit Variant Unit string 200 Variant selling unit
variantKey Variant Options string 200 Variant Options, multiple options, joined by -, eg: Black-XXL
variantLength Variant Length int 200 Unit: mm
variantWidth Variant Width int 200 Unit: mm
variantHeight Variant Height int 200 Unit: mm
variantVolume Variant Volume int 200 Unit: mm³
variantWeight Variant Weight double 200 Unit: g
variantSellPrice Variant SellPrice double 200 unit: $ (USD)
variantSugSellPrice Variant Suggest SellPrice double 200 unit: $ (USD)
createTime Vreater Time string 200 Variant creation time
combineNum number of Combine Variants int Number of sub-variants in combined products
combineVariants Combine Variants Variant[] 200 List of sub-variants for combined products

Error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data object interface data return
requestId requestId string 48 Flag request for logging errors

# 1.6 Add to My Product (POST)

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/addToMyProduct

# CURL

curl --location 'http://localhost:8081/api2.0/v1/product/addToMyProduct' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '{
    "productId": "1658748072937136128"
}'
Parameter Definition Type Required Length Note
productId CJ product id string Y 100

# Return

success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": true,
    "requestId": "a7d4d01b1eed4db9ac2cc1ab7903c98c",
    "success": true
}

error

{
    "code": 1600000,
    "result": false,
    "message": "The product has been added to My Products.",
    "data": null,
    "requestId": "b626475ff68242c3abfea562f9d4f899",
    "success": false
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data object interface data return
requestId requestId string 48 Flag request for logging errors

# 1.7 My Product List(GET)

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/myProduct/query

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/myProduct/query?keyword=CJWJWJYZ02543' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Parameter Definition Type Required Length Note
keyword sku/spu/product name string N 200
categoryId category id string N 200
startAt start time string N 200
endAt ent time string N 200
isListed isListed int N 200
visiable visiable int N 200
hasPacked hasPacked int N 200
hasVirPacked hasVirPacked int N 200

# Return

success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": {
        "pageSize": 10,
        "pageNumber": 1,
        "totalRecords": 536,
        "totalPages": 54,
        "content": [
            {
                "productId": "01118E21-A8B9-45CE-A16C-75232FB8A14A",
                "packWeight": "530.0",
                "weight": "480.0",
                "productType": "0",
                "propertyKeyList": [
                    "COMMON"
                ],
                "bigImage": "https://cf.cjdropshipping.com/15926688/9714688036284.jpg",
                "nameEn": "3D wooden three-dimensional puzzle",
                "sku": "CJWJWJJM00719",
                "hasPacked": 0,
                "sellPrice": "2.4",
                "discountPrice": null,
                "discountPriceRate": null,
                "defaultArea": "China Warehouse",
                "shopMethod": "CAI NIAO",
                "trialFreight": "0",
                "totalPrice": "2.40",
                "listedShopNum": "0",
                "vid": "7986724D-7214-4B4B-A184-493E7BD78F47",
                "areaId": "1",
                "areaCountryCode": "CN",
                "freightDiscount": "0",
                 "createAt": 1743218214000,
                "lengthList": [
                    335,
                    335
                ],
                "heightList": [
                    200,
                    200
                ],
                "widthList": [
                    225,
                    225
                ],
                "volumeList": [
                    15075000,
                    15075000
                ],
                "hasVirPacked": 1
            }
        ]
    },
    "requestId": "b0f251412bd0446cb56ba5988706d964",
    "success": true
}

product

Field Definition Type Length Note
productId Product ID string 200
productName Product name list 20
nameEn Product name(EN) string 200
sku Product sku string 200
bigImage Product image string 200
totalPrice Total price double 200 unit: $ (USD)
productType Product type byte 200
listedShopNum listed Shop Num string 48
createAt Added Time string 200
trialCountry trial Country string 200
trialFreight trial Freight string 200

error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data object interface data return
requestId requestId string 48 Flag request for logging errors

# 1.8 Query Packaging Products (with Inventory)(POST)

Page through the packaging products available to the current customer, at the variant dimension (B-side "pick a packaging" scenario).

Dimension note (key difference from 1.9): this endpoint is at the variant dimension — content[].id is the variant ID (vid) and can be passed directly as packVid when creating a packaging connection; each row also carries "variant SKU / dimensions (L×W×H) / inventory / connected count", for picking a packaging variant and building a connection; packingKey is matched as a whole combination (exact); marketing search bans and site risk control are not applied. 1.9 is at the product dimension — its id is the product ID (pid) and it only exposes "image / name / price (range price)", matches packingKey key-by-key, and does apply marketing search bans and site risk control.

⚠️ Both endpoints return a field named id, but they mean different things: 1.8's id = variant ID (vid), 1.9's id = product ID (pid). Only the endpoint tells them apart — the field name does not. packVid for a packaging connection must come from 1.8's id; passing 1.9's id will not link.

Note · implementation granularity (paging and row count are per product): downstream pages by packaging product — one product yields one row, and that row's id / sku / L/W/H are taken from the product's first variant. So this endpoint cannot enumerate all variants of a packaging product, and totalRecords is a product count, not a variant count.

Note · two different granularities within the same row: goodNum (inventory) is aggregated per product — the total across all variants and all warehouses of that product; correlationNum (connected count) is counted for that row's variant only. Do not compare them as if they were the same granularity.

Note · type decides the data scope: ALL/DESIGN return CJ public packaging (non-customized), while MY returns your own customized packaging (and only those that passed review).

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/packagingProduct/query

# CURL

curl --location 'https://developers.cjdropshipping.com/api2.0/v1/product/packagingProduct/query' \
     --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
     --header 'Content-Type: application/json' \
     --data '{
         "page": 2,
         "size": 20,
         "packingKey": ["PLASTIC_BAG"],
         "type": "MY",
         "keyword": "gift",
         "sku": "CJPACK001",
         "customization": 1,
         "isShop": true
     }'

# Request Parameters

parameter description type required length remark
page page number int N 20 starts from 1, default 1; values below 1 are treated as 1
size page size int N 20 default 20, maximum 100; values above 100 are capped at 100, values below 1 are treated as 1
packingKey packing filter List<String> N 3 exact match on the whole combination; more than 3 will be truncated to the first 3
type type string N 20 ALL/MY/DESIGN
keyword search keyword string N 100
sku packing SKU string N 100
customization POD product int N 20 0: non-custom, 1: custom, null/2: all
isShop whether to count connected number by shop dimension boolean N 1 true: by shop, false/omitted: by product

# Return

success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": {
        "pageSize": 20,
        "pageNumber": 2,
        "totalRecords": 1,
        "totalPages": 1,
        "content": [
            {
                "id": "vid01",
                "pid": "pid01",
                "pack": "Plastic Bag",
                "packKey": "PLASTIC_BAG",
                "image": "https://example.com/pack.jpg",
                "nameEn": "Gift Box",
                "name": "Gift Box",
                "sellPrice": "1.20",
                "correlationNum": 2,
                "length": 10,
                "width": 10,
                "height": 5,
                "weight": "0.20",
                "sku": "CJPACK001",
                "standard": "10x10x5",
                "goodNum": 50
            }
        ]
    },
    "requestId": "ae543fd1-cdd7-4a61-974a-1340fea678c6"
}

data: paging object.

return field description type remark
pageSize page size Long
pageNumber page number Long
totalRecords total records Long
totalPages total pages Long
content packaging product array array
content[].id variant ID string variant-dimension identifier (vid) — pass it as packVid when creating a packaging connection; taken from the packaging product's first variant
content[].pid product ID string
content[].image variant image string
content[].nameEn English name string
content[].name Chinese name string
content[].sellPrice sell price string
content[].sku packing SKU string
content[].standard size string
content[].correlationNum connected count int counted by this row's variant
content[].goodNum inventory int product dimension: total inventory of all variants & warehouses of this product, NOT this row's SKU

Important: goodNum is product-dimension total inventory while correlationNum is variant-dimension connected count - two different dimensions in the same row. Use an inventory API for single-variant stock.

# 1.9 Query CJ Packaging Products(POST)

Browse CJ pre-designed packaging products, at the product dimension (C-side product-card scenario).

Dimension note (key difference from 1.8): this endpoint is at the product dimension — every row is a packaging product and id is the product ID (pid), exposing only "image / name / price (range price)" for browsing and picking a packaging style; packingKey is matched key by key; marketing search bans and site risk control are applied (when triggered, the downstream returns its own business code and this API passes it through as-is). 1.8 is at the variant dimension — its id is the variant ID (vid), and it additionally exposes "variant SKU / dimensions / inventory / connected count", matches packingKey as a whole combination, and applies no risk control.

⚠️ Both endpoints return a field named id, but they mean different things: this endpoint's (1.9) id = product ID (pid) and cannot be used as packVid — to obtain the variant ID, SKU and inventory for building a connection, use the id returned by 1.8.

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/cjPackaging/query

# CURL

curl --location 'https://developers.cjdropshipping.com/api2.0/v1/product/cjPackaging/query' \
     --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
     --header 'Content-Type: application/json' \
     --data '{
         "page": 1,
         "size": 20,
         "packingKey": ["PLASTIC_BAG"],
         "keyword": "gift"
     }'

# Request Parameters

Identical to 1.8 (the downstream shares the same request model).

# Return

success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": {
        "pageSize": 20,
        "pageNumber": 1,
        "totalRecords": 1,
        "totalPages": 1,
        "content": [
            {
                "id": "pid01",
                "bigImage": "https://example.com/pack.jpg",
                "nameEn": "Gift Box",
                "customMessage": "Happy Birthday",
                "sellPrice": "1.20-3.50",
                "nowPrice": null
            }
        ]
    },
    "requestId": "ae543fd1-cdd7-4a61-974a-1340fea678c6"
}
return field description type remark
content[].id product ID string product-dimension identifier (pid) — not a variant ID and cannot be used as packVid; the identically named id in 1.8 is the variant ID
content[].bigImage product image string
content[].nameEn English name string
content[].customMessage custom message string
content[].sellPrice sell price string a price range (e.g. "1.20-3.50") when there is no unsold variant
content[].nowPrice current price string price range when unsold variants exist, otherwise null

Important - two differences from 1.8: (1) this API is product dimension (id is a pid, card essentials only) and 1.8 is variant dimension (id is a vid, additionally exposing sku/size/inventory/connected count) - the two id fields share a name but not a meaning, and are not interchangeable; (2) packingKey here matches each key individually, while 1.8 matches the whole combination exactly - the same filter values return different results across the two APIs, so do not reuse them across APIs.

Also note: the downstream has a time-window search ban switch and a QK-site keyword prefix restriction; when hit, the corresponding error code is passed through as-is.

# 1.10 Query Product Detail(POST)

Query the full product detail by product ID (variants, inventory, certifications, wholesale price, etc.).

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/productDetail/query

# CURL

curl --location 'https://developers.cjdropshipping.com/api2.0/v1/product/productDetail/query' \
     --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
     --header 'Content-Type: application/json' \
     --data '{
         "id": "pid01"
     }'

# Request Parameters

parameter description type required remark
id product ID string Y

# Return

The field names and example values in the tables below come from a real response of the test environment (POST /product/productDetail/query, id=1442332573555625984); field-name casing matches the real response character for character. The type and description columns come from the upstream product-detail service field definitions, not from guesswork.

⚠ Follow the exact letter case in the tables. This response mixes two naming styles: some fields are all lower case with no separator (e.g. nameen, sellprice, bigimg, packingkey, variantkeyen, authoritystatus, categoryid, supplierlink - 35 of them) - not lower camel case (not nameEn) and not upper case (not NAMEEN); the rest use regular lower camel case (e.g. totalInventory, countryCode, categoryIds, stanProducts).

Example (commonly used fields only; see the field tables below for the full set)

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": {
        "id": "1442332573555625984",
        "sku": "CJZD1005753",
        "name": "包装个性,包个,包个",
        "nameen": "Baozhuanggexingdingzhi2",
        "sellprice": "24.11",
        "bigimg": "https://cf.cjdropshipping.com/ff429ccc-bbf5-46e1-a4cc-c3e...",
        "category": "packing material>box>cardboard box",
        "categoryid": "21",
        "material": "玻璃,水",
        "materialen": "Glass, Water",
        "packing": "布袋,吊牌,贴纸,卡片,其他",
        "packingen": "Cloth bag, Tag, Sticker, Card, Other",
        "packingkey": "FARBIC_BAG, HANG_TAG, STICKER, KAPIAN, MATERIAL",
        "packweight": "10.00",
        "weight": "10.00",
        "variantkey": "容量-椰子",
        "variantkeyen": "capacity-color",
        "property": "普货, 含液体, 尖锐, POD2.0平台定制",
        "propertyen": "Ordinary, Liquid Contains, Sharp, POD2.0",
        "authoritystatus": "1",
        "producttype": "3",
        "customization": 1,
        "customizationVersion": 2,
        "saleStatus": "3",
        "listed": 9,
        "setNum": 5,
        "createdate": "1632742657000",
        "stanProducts": [
            {
                "id": "1442332573685649408",
                "pid": "1442332573555625984",
                "sku": "CJZD100575303CX",
                "nameen": "Baozhuanggexingdingzhi2 512GB Ornaments",
                "sellprice": "24.11",
                "variantkey": "512GB-Ornaments",
                "standard": "long=12,width=12,height=12",
                "weight": 10,
                "img": "https://cf.cjdropshipping.com/2c15d750-391a-404f-b...",
                "totalInventory": null,
                "wholesalePrice": {
                    "cjWholesalePrice": null,
                    "directWholesalePrice": null,
                    "updatePriceDate": null
                }
            }
        ],
        "variantInventory": [
            {
                "vid": "1442332573668872192",
                "inventory": [
                    {
                        "countryCode": "CN",
                        "totalInventory": 46083,
                        "cjInventory": 4041,
                        "factoryInventory": 42042,
                        "verifiedWarehouse": 1
                    }
                ]
            }
        ],
        "labelConfigs": [
            {
                "type": "CUT_LABEL",
                "amount": 4,
                "standardAmount": 0.1,
                "labelOptionName": null,
                "labelOptionValues": null
            }
        ],
        "zoneRecommendList": [
            {
                "zoneId": "2602281003410645700",
                "zoneDetailId": "2f26a301-2f61-48d6-ad44-e5094090a84f",
                "zonePlatform": "Etsy",
                "url": "/zone/2f26a301-2f61-48d6-ad44-e5094090a84f",
                "zonePlatformV2": "Etsy"
            }
        ],
        "excludeCountries": [
            "RU"
        ]
    },
    "requestId": "ae543fd1-cdd7-4a61-974a-1340fea678c6"
}

data (top level) (137 fields)

field type description example in this response
accountId string User ID
accountName string User name
addMarkStatus int Whether free shipping; 0: no, 1: yes 0
amountOnSale int 1688 inventory
autaccid string Users the product is visible to ""
authoritystatus string Product visibility; 1: visible to all, 2: partially visible "1"
batchNumber int 1688 minimum batch quantity
bigimg string Image URL "https://cf.cjdropshipping.com/ff4…
buytime string BUYTIME "3"
category string Category name "packing material>box>cardboard bo…
categoryIds string Category IDs (first / second / third level) "null,null,21"
categoryid string Third-level category ID "21"
certificationMaterialList array Product material asset list []
chart string Cross-border size chart configuration ""
cjTrusteeship int Whether the product is CJ-managed 0
commentCount int Number of product reviews 0
comprehensiveScore decimal Overall rating
consultingCount int consultingCount 0
country string Country
createdate string Creation time "1632742657000"
currency string Currency
customMessage string Personalisation settings "[{"img":"https://cf.cjdropship…
customeDesign string Personalisation settings
customertags string CUSTOMERTAGS
customization int Whether customised (0: no, 1: yes) 1
customizationVersion int Customisation version; 1: platform v1, 2: platform v2, 3: customer custom 1, 4: customer custom 2 2
description string Product description "

dsfsdfsdasfdasf

"
discountPrice string Discount price
discountPriceRate string Discount rate
discountStatus int discountStatus 0
disputeStatDate int Update time
domain array Domain list
domainName string Supplier domain
entryCode string Customs declaration code "2501001100"
entryName string Customs declaration name "森岛帆"
establishmentAt string Company establishment time (timestamp)
excludeCountries array Countries to exclude ["RU"]
expandField string Extension field
filmImages array Real-shot image list
generalHunpi boolean 1688 seller mixed-batch setting; true = ordinary mixed batch, false = not
id string Product ID "1442332573555625984"
img string Product image list "https://cf.cjdropshipping.com/ff4…
inventorcountry string Product inventory
inventory string Inventory information "{}"
isAut string Whether permanently private; 0: not permanent, 1: permanently private "0"
isCollect string Whether the product is favourited "0"
isHaveVideo string Whether the product has a video "NO_VIDEO"
isList boolean Whether listed; true: listed false
isNeedRequestDiscount boolean Whether a discount request is required false
isNeedRequestOSS boolean Whether an OSS request is required true
isOnePsale boolean Whether one-piece dropshipping is enabled; true: enabled, false: disabled
isOssData int Whether the data comes from OSS; 0: no, 1: yes 1
isPersonalized string Whether personalised; 0: no, 1: personalised
isSetWhole int Whether the stock-up price is enabled; 1: enabled, 0: disabled
isShowInquiry boolean Whether to show the inquiry button false
isUnsold string Whether the product is unsold; 1: unsold, 0: not unsold "0"
keywords string Search keywords (empty string when read from the legacy table; search_key in the new table) ""
labelConfigs array Label configuration list array of objects
labelJson string Product labels "["1779746964482039808", "17905…
latestPaymentDate int Latest order payment time (epoch millis; for an SPU, the maximum across its listed SKUs)
listed int Number of listings 9
logisticScore decimal Average logistics rating
material string Product material name (ZH) "玻璃,水"
materialen string Product material name (EN) "Glass, Water"
materialkey string Product material key "GLASS, WATER"
myProduct boolean Whether added to My Products false
name string Product name (ZH) "包装个性,包个,包个"
nameAbbList array Certificate abbreviation
nameen string Product name (EN) "Baozhuanggexingdingzhi2"
newImgList array Product image ["https://cf.cjdropshipping.com/ff
nowPrice string Discount price
numberEmployees int Number of employees
orderCount int Number of orders under this SPU 0
ov int Encryption version
ovk string Encryption key
packing string Packaging name (ZH) "布袋,吊牌,贴纸,卡片,其他"
packingen string Packaging name (EN) "Cloth bag, Tag, Sticker, Card, Ot…
packingkey string Product packaging key "FARBIC_BAG, HANG_TAG, STICKER, KA…
packweight string Packaging weight "10.00"
podV3CanDesign boolean Whether the POD 3.0 product is designable; false: no, true: yes
producttype string Product type "3"
property string Product attribute name (ZH) "普货, 含液体, 尖锐, POD2.0平台定制"
propertyen string Attribute name (EN) "Ordinary, Liquid Contains, Sharp,…
propertykey string Product attribute key "COMMON, HAVE_LIQUID, EDGE, POD2.0…
province string Province
qualificationList array Certification list []
qualityDisputeRate string Dispute rate "0.00"
saleStatus string Product sale status "3"
score decimal Average product rating
selfPickupPrice string Self-pickup price
sellprice string Selling price "24.11"
serviceScore decimal Average service rating
setNum int setNum 5
shop_id string Supplier shop ID
shop_logo string Supplier shop logo
shop_name string Supplier shop name
shopifyUrlException boolean Whether the Shopify redirect URL is abnormal false
sku string sku "CJZD1005753"
soldOut int Sales volume in the last 90 days
sourceFrom string Product source "0"
stanProducts array Variant list array of objects
supplier string Supplier ID
supplierName string Supplier name
supplierNameEn string Supplier shop name
supplierVersion int Inventory version for supplier self-shipped products; 0: legacy version, greater than 0: new version
supplier_id string Supplier ID
supplierlink string Supplier URL ""
supportLabels array Supported label service list []
syncListedProductStatus string Listing status of the product; 0: pending, 1: in progress, 2: failed, 3: succeeded, 4: cancelled
templateUrl string Template download URL ""
thirdAttributeList array Third-party product attributes
thirdMinOrderQuantity int Third-party minimum order quantity
thirdProductUrl string Third-party product URL
thirdSellPrice string Third-party product price
thirdVideoList array Third-party video list
totalQuantity int Total received quantity (for an SPU, the sum across its listed SKUs) 0
totalRefundQuantity int Total refunded quantity (for an SPU, the sum across its listed SKUs) 0
unit string Unit
unsoldPrice string Unsold price of the product
updateAt object Product update time; compared against the OSS upload time 1787822429000
updatePriceDate string Price update time "1632742657000"
uploadOssAt object OSS upload time; compared against the product update time 1787822471915
usdToRateConversionFee decimal USD-to-currency exchange fee rate as a decimal (0.04 = 4%)
usdTradeFee decimal USD transaction fee rate as a decimal (0.04 = 4%)
variantInventories string Variant inventory (internal ES/OSS data, not exposed externally)
variantInventory array Variant inventory array of objects
variantkey string Variant attribute key "容量-椰子"
variantkeyen string Variant attribute key "capacity-color"
verifiedWarehouse int 1: verified inventory, 2: inventory pending verification 1
videoList array Video ID list
wed2cUrlException boolean Whether the Wed2c redirect URL is abnormal false
weight string Product weight "10.00"
wholePriceType int Wholesale price type; 0: product level, 1: variant level, -1: no wholesale price
wholesaleOff int Whether the CJ wholesale price is set (1: enabled, 0: disabled) 10
woocommerceUrlException boolean Whether the WooCommerce redirect URL is abnormal false
xiaoShouJianYi string Sales suggestion
zoneRecommendList array Zone settings array of objects

stanProducts[] variant object (40 fields)

field type description example in this response
amountOnSale int 1688 inventory
countryInvs object Variant inventory
customResources array Customisation information
designTime int Time of the last design
designUser string Name of the last designer
discountPrice string Discount price
discountPriceRate string Discount rate
disputeStatDate int Update time
effectLinks array Rendering image list
expandField string Product wholesale price "{"values":{"value2":"装饰品",\…
freightDiscount int freightDiscount 100
id string Variant ID "1442332573685649408"
img string Variant image "https://cf.cjdropshipping.com/2c1…
invs array Inventory information
isCombine int Whether it is a combined product (0: no, 1: yes) 0
isUnsold string Whether the variant is unsold; 1: unsold, 0: not unsold "0"
isUnsoldVariant int Whether the variant is unsold (slow-moving) 0
latestPaymentDate int Latest order payment time for this SKU (epoch millis)
nameen string Variant name (EN) "Baozhuanggexingdingzhi2 512GB Orn…
nowPrice string Discount price
orderCount int Number of orders under this SPU 0
packweight decimal Packaging weight 10
pid string Product ID "1442332573555625984"
priceRatio decimal Suggested retail price ratio 0.3
qualityDisputeRate string Dispute rate "0.00"
selfCrdLinks array Original image list
selfPickupPrice decimal Self-pickup price
sellDiscount int Sales discount 100
sellprice string Variant selling price "24.11"
shopMethod string Shop name ""
sku string SKU "CJZD100575303CX"
standard string Dimensions, e.g. long=0,width=0,height=0 "long=12,width=12,height=12"
supportLabels array Supported label service list
thirdSellPrice string Third-party product price
totalInventory int Total variant inventory
tradePrice array Stock-up price
unsoldPrice decimal Unsold price of the variant
variantkey string Basic variant attributes "512GB-Ornaments"
weight decimal Variant weight 10
wholesalePrice object Wholesale price object

stanProducts[].wholesalePrice (3 fields)

field type description example in this response
cjWholesalePrice array CJ wholesale price
directWholesalePrice array Direct-shipping wholesale price
updatePriceDate int Direct-shipping wholesale price

variantInventory[] (2 fields)

field type description example in this response
inventory array Inventory information array of objects
vid string Variant ID "1442332573668872192"

variantInventory[].inventory[] (5 fields)

field type description example in this response
cjInventory int Actual inventory quantity 4041
countryCode string Country code "CN"
factoryInventory int Virtual inventory quantity 42042
totalInventory int Total inventory quantity 46083
verifiedWarehouse int 1: verified inventory, 2: inventory pending verification 1

labelConfigs[] (5 fields)

field type description example in this response
amount decimal Fee (USD) 4
labelOptionName string Label attribute name (e.g. Size)
labelOptionValues array Label attribute values (e.g. S/M/L)
standardAmount decimal Standard fee (USD) 0.1
type string Label type: CUT_LABEL / CHANGE_LABEL "CUT_LABEL"

zoneRecommendList[] (5 fields)

field type description example in this response
url string Redirect path "/zone/2f26a301-2f61-48d6-ad44-e50…
zoneDetailId string Zone ID "2f26a301-2f61-48d6-ad44-e5094090a…
zoneId string Zone ID "2602281003410645700"
zonePlatform string Recommended selling platform for the zone "Etsy"
zonePlatformV2 string Recommended selling platform for the zone "Etsy"

An empty "example in this response" cell means the field was empty for this particular product; it does not mean the field is always empty - it depends on the product (supplier info, discount price, video list, 1688-related fields, etc.). Rely on the "type" and "description" columns for the field's meaning.

# 1.11 Create Individualization Product(POST)

Create a POD individualization (customized) product.

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/individualization/add

# CURL

Below is a complete, actually working request (four colour variants, one text design area). Replace the values with those of your own product:

curl --location 'https://developers.cjdropshipping.com/api2.0/v1/product/individualization/add' \
     --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
     --header 'Content-Type: application/json' \
     --data '{
         "originalPid": "1448529739601022976",
         "cid": "87CF251F-8D11-4DE0-A154-9694D9858EB3",
         "nameEn": "You are the one",
         "printItemName": "You are the one",
         "description": "You are the one",
         "shopMethod": "Please Select",
         "type": "2",
         "variantKey": "颜色-像素",
         "variantKeyEn": "color-pixel1",
         "img": "https://cc-west-usa.oss-us-west-1.aliyuncs.com/xxx_AntiqueSilver.png,https://cc-west-usa.oss-us-west-1.aliyuncs.com/xxx_Khaki.png,https://cc-west-usa.oss-us-west-1.aliyuncs.com/xxx_LightGrey.png,https://cc-west-usa.oss-us-west-1.aliyuncs.com/xxx_Beige.png",
         "bigImg": "https://cc-west-usa.oss-us-west-1.aliyuncs.com/xxx_Beige.png",
         "customeDesign": [
             {
                 "areaName": "quyumingc",
                 "type": "1",
                 "layer": [
                     {
                         "type": "Text",
                         "imgsrc": "",
                         "title": "Your Color",
                         "info": "Excellent/178DPI",
                         "isShow": true,
                         "val": "Default Font",
                         "fontFamily": "Arial",
                         "fontSize": 16,
                         "fill": "#000",
                         "stroke": "#000",
                         "strokeWidth": 0,
                         "scaleX": 1,
                         "scaleY": 1,
                         "originX": "center",
                         "originY": "center",
                         "angle": 0,
                         "charSpacing": 0
                     }
                 ],
                 "links": [
                     "https://cc-west-usa.oss-us-west-1.aliyuncs.com/xxx_Beige.png"
                 ]
             }
         ],
         "variants": [
             {
                 "originalVid": "1448529741211635712",
                 "childsku": "Antique Silver-4k",
                 "img": "https://cc-west-usa.oss-us-west-1.aliyuncs.com/xxx_AntiqueSilver.png",
                 "variantKey": "Antique Silver-4k",
                 "nameEn": "You are the one Antique Silver 4k"
             },
             {
                 "originalVid": "1448529741245190144",
                 "childsku": "Beige-4k",
                 "img": "https://cc-west-usa.oss-us-west-1.aliyuncs.com/xxx_Beige.png",
                 "variantKey": "Beige-4k",
                 "nameEn": "You are the one Beige 4k"
             }
         ]
     }'

Three things in this example are the ones most often got wrong:

  1. img is a single string with multiple URLs joined by commas (four variant renders in the example) — it is not an array; bigImg holds exactly one URL.
  2. variantKey and variants[].variantKey share a name but not a meaning: the top-level one is the attribute dimension name (颜色-像素 in the example, dimensions joined by -), while the one inside a variant is that variant's attribute values (Antique Silver-4k).
  3. customeDesign is an array (one element per design area), not a single object — see "customeDesign structure" below.

# Request Parameters

parameter description type required remark
printItemName print item name string N You are the one in the example; usually the same as nameEn
description description string N
shopMethod shop method string N Passed through as-is; the example sends Please Select when nothing is chosen
customeDesign custom design content array N An array — one element per design area, see "customeDesign structure" below; passed through as-is
originalPid original product ID string N The base product; take it from 1.10 Query Product Detail
cid category ID string N Category ID of the base product (a GUID in the example)
variantKey variant key string N Attribute dimension name, dimensions joined by -, e.g. 颜色-像素; do not confuse it with variants[].variantKey
variantKeyEn variant key (English) string N The English dimension name, e.g. color-pixel1
img image string N Multiple URLs joined by commas into ONE string, typically one render per variant. Non-CJ image URLs are transferred automatically
bigImg big image string N Exactly one URL, usually one of those in img. Non-CJ image URLs are transferred automatically
variants variant list array N see below
nameEn English name string N English name of the new product
type type string N Passed through as-is; the example sends "2" (a string). Value semantics are business-defined
search search keyword string N
pageSize page size string N
pageNum page number string N
pid product ID string N
originalCustomeDesign original custom design string N
productSku product SKU string N
handleType POD3.0 batch submission marker int Conditional Required for POD3.0 products: 1=first submission (save the product), 3=last submission (calculate range price); for a single submission use 1. If omitted and the product is POD3.0: with a shelved variant → param error; with all variants unshelved → 500 (NPE). Whether it is POD3.0 is decided server-side and cannot be known in advance, so it is recommended to always pass 1. Values 0/2 are not recognized. The example above does not send it — its base product is not POD3.0, so it got away with that; with a POD3.0 base product the call would fail
mainDomain main domain string N
variants[].originalVid original variant ID string N Variant ID of the base product; take it from 2.1 Query All Variants
variants[].childsku child SKU string N The example sends the attribute values (e.g. Antique Silver-4k), not a full SKU code
variants[].img variant image string N Exactly one URL, the render for this variant. Non-CJ image URLs are transferred automatically, see below
variants[].variantKey variant key string N This variant's attribute values (e.g. Antique Silver-4k), unlike the top-level variantKey (dimension name)
variants[].nameEn English name string N English name of the variant; "product name + attribute values" in the example

About "required": none of the fields above is enforced at the request layer (hence N everywhere), but business-wise originalPid / cid / nameEn / variants / customeDesign are all indispensable — the CURL above is the minimum working set; send the fields it sends.

# Automatic image transfer

URLs sent in img / bigImg / variants[].img are automatically downloaded and transferred to CJ's image storage when they are not already on a CJ image domain; the CJ URL is what gets stored downstream. This avoids product images depending on external links, which may expire, be blocked by hotlink protection, or be unreachable in some regions.

  • URLs that are already CJ image links are not transferred again and are kept as-is.
  • A failed transfer does not block product creation: that image keeps the URL you sent and the product is still created. So if a product image is still your own external link, the transfer for that image failed (usually because the URL is not publicly reachable) — send a publicly accessible URL and retry.
  • The transfer uses originalPid to build the storage path, so no transfer happens when originalPid is omitted; images are stored with the original URLs.

# Sending multiple images

Only img accepts multiple images, joined by commas:

"img": "https://a.jpg,https://b.jpg"
  • bigImg and variants[].img accept exactly one URL; the whole string is treated as one address, so a comma inside them (URLs may legitimately contain commas) is never used to split the value.
  • When img carries multiple URLs, each of them is evaluated for transfer independently and the value is returned as a comma-joined string.

# customeDesign structure

customeDesign is an array; each element is one design area on the product (front, back, ...). The structure is produced by the CJ design tool and this endpoint passes it through as-is into the product's customisation data, so field names and casing must be copied exactly (note it is imgsrc, not imgSrc).

Parameter Definition Type Note
areaName design area name string Identifier of the area, quyumingc in the example; Front / Design Area are common on-site
type area type string "1" (a string) in the example; readable values such as Picture and Text also occur on-site — copy what the base product's design area is configured with
links area renders array<string> Composed render of this area per variant/colour, in the same order as the variants
layer layer list array Layers inside this area, see below

Each layer element (a text layer in the example):

Parameter Definition Type Note
type layer type string Text in the example; also Picture (image layer) and Picture and Text
val text content string The actual copy of a text layer, Default Font in the example
title layer title string Layer name shown in the design tool; image layers usually carry the file name
imgsrc image URL string Image layers only; text layers send an empty string "". Note the all-lowercase imgsrc
info quality hint string Generated by the design tool, e.g. Excellent/178DPI
isShow visible boolean
fontFamily font string e.g. Arial
fontSize font size int
charSpacing character spacing int
fill fill colour string Hex colour, e.g. #000
stroke stroke colour string
strokeWidth stroke width int 0 = no stroke
scaleX / scaleY horizontal / vertical scale number 1 = original size
originX / originY origin point string center in the example
angle rotation number In degrees, 0 = no rotation

Image layers additionally carry top / left (position) and fields like imgScalex; these are passed through as-is too — send whatever the design tool produced.

# Return

success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": {
        "statusCode": "200",
        "result": "1453252786299998208",
        "message": "200",
        "data": "CJPOD001"
    },
    "requestId": "ae543fd1-cdd7-4a61-974a-1340fea678c6"
}

failure (duplicate SKU as an example)

{
    "code": 1600000,
    "result": false,
    "message": "status error",
    "data": {
        "statusCode": "808",
        "result": null,
        "message": "status error",
        "data": null
    },
    "requestId": "ae543fd1-cdd7-4a61-974a-1340fea678c6"
}
return field description type remark
data.statusCode business status code string 200 = success, 808 = duplicate SKU, 504 = creation failed. Use this field to determine the business result
data.result operator ID string On success, the recorded creator ID; null on failure
data.message message string ⚠ On success this field is the string "200" (the status code), not a readable message; only on failure does it carry text (e.g. "status error")
data.data new product SKU string On success, the SKU of the newly created customized product (not the product ID); null on failure

Important - how to tell whether creation succeeded

Rely on data.statusCode: 200 means the product was created, and data.data is then the SKU of the new customized product. 808 (duplicate SKU) and 504 (creation failed) both mean the product was not created, and the outer result will be false.

Note that on success data.message is "200" rather than readable text (existing upstream behaviour) - do not use it to determine the result.

The creator is recorded by CJ from your API credential automatically - it cannot (and need not) be specified in the request.

# 1.12 Query Products By Image(POST)

Access requirement

This API has an account-level threshold:

  • Accounts at Level 3 or above can call it directly — no application and no approval required;
  • Accounts below Level 3 get 401 Unauthorized. Please raise your account level first;

Search for visually similar products in the CJ product catalog by providing an image URL. The API returns a list of matched products that are currently on sale.

Note

This API only returns products with saleStatus = 3 (Approved / On sale), and it returns product summary information only - it does not include the full variant list. For variants, sizing charts and other details, call 1.10 Query Product Detail.

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/queryProductsByImage

# CURL

curl --location 'https://developers.cjdropshipping.com/api2.0/v1/product/queryProductsByImage' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '{
    "imageUrl": "https://example.com/sample-product.jpg"
}'

# Request Parameters

parameter description type required length remark
imageUrl image URL string Yes 500 Must be a publicly accessible image URL

# Return

success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": [
        {
            "id": "2503130846171622700",
            "bigImage": "https://oss-cf.cjdropshipping.com/product/2025/07/07/08/a3f0d6db-38bf-4a18-baf4-9cf8c35346d8.jpg",
            "category": "Women's Clothing > Tops & Sets > Lady Dresses",
            "categoryId": "D2432903-0D4E-4787-886F-D3D9DA7890D9",
            "description": "<p><b>Overview:</b>...</p><p><b>Size:</b> S,M,L,XL</p>...",
            "image": "[\"https://oss-cf.cjdropshipping.com/product/2025/07/07/08/a3f0d6db-38bf-4a18-baf4-9cf8c35346d8.jpg\",\"https://cf.cjdropshipping.com/quick/product/8827d8d5-a8d8-4e2e-bdfc-ae88b9ee0985.jpg\"]",
            "inventory": null,
            "material": "[\"布料\"]",
            "materialEn": "[\"Cloth\"]",
            "materialKey": "[\"FABRIC\"]",
            "name": "[\"2025欧美跨境外贸夏季爆款性感女吊带露背荷叶边不规则连衣裙礼服\"]",
            "nameEn": "Women's Backless Ruffles Irregular Dress Summer Fashion Evening Party Club Split Suspender Maxi Dresses Clothing",
            "packWeight": "250.00-320.00",
            "packing": "[\"塑料袋\"]",
            "packingEn": "[\"Plastic bags\"]",
            "packingKey": "[\"PLASTIC_BAG\"]",
            "property": "[\"服装\"]",
            "propertyEn": "[\"Clothes\"]",
            "propertyKey": "[\"Clothes\"]",
            "saleStatus": "3",
            "sellPrice": "8.13-8.62",
            "sku": "CJLY2326436",
            "unit": null,
            "variantKey": "[\"颜色\",\"尺码\"]",
            "variantKeyEn": "[\"Color\",\"Size\"]",
            "weight": "230.00-300.00",
            "addMarkStatus": 0,
            "productType": "0",
            "listedNum": 622,
            "createAt": 1741855577000
        }
    ],
    "requestId": "a3189ad0a02e493fb4d2f422207b31e0"
}

empty result (data is an empty array when nothing matches)

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": [],
    "requestId": "7c2a1b3d-4e5f-6789-a0b1-c2d3e4f56789"
}

error (account level below Level 3 / invalid token)

{
    "code": 401,
    "result": false,
    "message": "Unauthorized",
    "data": null,
    "requestId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

# Return Parameters

return field description type length remark
code response code int 20 200 means success, Error Code Standard Table
result whether the request succeeded boolean 1
message response message string 200
data list of matched products array See the data field description below
requestId request Id string 48 Used for error log lookup

# data field description

return field description type remark
id product ID string
bigImage product display image (large) string image URL
category product category string
categoryId category ID string
description product description string Rich text in HTML format, may contain sizing chart images, product images, etc.
image product image list string JSON array string, e.g. ["https://...jpg","https://...jpg"]
inventory total inventory string May be null
material product material string JSON array format, e.g. ["Cloth"]
materialEn product material (English) string JSON array format, e.g. ["Cloth"]
materialKey product material key string JSON array format, e.g. ["FABRIC"]
name product name string JSON array string
nameEn product name (English) string
packWeight package weight string Unit: grams. May be a range, e.g. "250.00-320.00"
packing product packaging string JSON array format, e.g. ["Plastic bags"]
packingEn product packaging (English) string JSON array format, e.g. ["Plastic bags"]
packingKey product packaging key string JSON array format, e.g. ["PLASTIC_BAG"]
property product logistics attributes string JSON array format, e.g. ["Clothes"], ["Ordinary"]
propertyEn product logistics attributes (English) string JSON array format, e.g. ["Clothes"], ["Ordinary"]
propertyKey product logistics attributes key string JSON array format, e.g. ["Clothes"], ["COMMON"]
saleStatus product sale status string 3 = Approved (On sale). This API only returns products with saleStatus=3
sellPrice retail price string Unit: $ (USD). May be a single price or a range, e.g. "8.13-8.62", "9.95"
sku product SKU string
unit product selling unit string e.g. "pcs", "set". This is the measurement unit, NOT a currency unit; may be null for some products
variantKey variant dimension names (Chinese) string e.g. ["颜色","尺码"]. These are dimension names, not the actual variant values
variantKeyEn variant dimension names (English) string e.g. ["Color","Size"]. These are dimension names, not the actual variant values
weight product weight string Unit: grams. May be a range, e.g. "230.00-300.00"
addMarkStatus free shipping flag integer 0: No, 1: Yes
productType product type string 0 = Ordinary, 1 = Service, 3 = Packaging, 4 = Supplier, 5 = Supplier self-shipping
listedNum total listing count integer
createAt product creation time date Timestamp in milliseconds, e.g. 1741855577000

# productType reference

product type code description
ORDINARY_PRODUCT 0 Ordinary products, inventory and shipping managed by CJ
SERVICE_PRODUCT 1 Service products. If you transfer your own goods to a CJ warehouse, CJ provides warehousing services and marks it as a service item
PACKAGING_PRODUCT 3 Packaging products, used for packaging when shipped from the warehouse. They cannot be shipped separately and must be shipped together with other goods
SUPPLIER_PRODUCT 4 Supplier products. Inventory managed together with CJ's partner supplier, shipped by CJ
SUPPLIER_SHIPPED_PRODUCT 5 Supplier self-shipping products. Managed and shipped by the supplier directly

# Error Codes

code meaning suggested action
200 Success Process the returned data normally
401 Authentication failed (account level below Level 3, or invalid token) Make sure the account is at Level 3 or above, or refresh the token and retry
402 Reached the per-second call limit Wait and retry later. Consider a client-side rate-limiting queue
406 Request too frequent Wait a moment before retrying
429 Rate limit triggered (30 requests/second/app) Reduce the call frequency and retry

# FAQ

What currency is sellPrice in?

sellPrice is in $ (USD). For example, "15.99" means $15.99. The unit field is the product's selling measurement unit (e.g. "pcs", "set"), not the currency; it may be null for some products.

Where are the actual values for variantKey / variantKeyEn?

variantKey and variantKeyEn are only the variant dimension names (e.g. "Color", "Size"), not the actual variant values. To get each variant's specific attribute value combination (e.g. Black-XXL), call 1.10 Query Product Detail; in the returned variants array, each variant object's variantKey field contains the specific attribute values joined by -.

How to get color variations and sizing charts?

This API returns product summary information only and does not include the full variant list. Use 1.10 Query Product Detail to get the complete variants array, which includes each variant's variantKey (attribute value combination), variantImage (variant image), variantSellPrice (variant price in USD) and variantWeight, variantLength, variantWidth, variantHeight (variant dimensions and weight). For size charts, use 1.13 Query Cross-Country Size Chart, which returns structured sizing data directly. For products it does not yet cover (and for size chart images), you still need to extract them from the HTML content of the description field.

# 1.13 Query Cross-Country Size Chart(GET)

Query the cross-country size chart configured for a product by product id. Returns structured sizing data (the size code for each destination country/region and the measurement value for each size parameter), ready to render a size chart.

Note

1.10 Query Product Detail returns the raw stored string of the size chart — its format is not published and parsing it is not recommended. This API returns an already-parsed structured object and is the recommended way.

This API supports pid only — productSku / variantSku are not accepted. If you only have a SKU, first call 1.5 Product Details (which accepts pid / productSku / variantSku), take the pid from its response, then call this API.

Coverage

This capability only covers products created after this feature went live that have a size chart configured. Size charts of older products were not archived in the new way, so this API cannot retrieve them and returns configured = false. If you need the size chart of an older product, report the product to your Account Manager (AM); once the AM has filled it in, the product becomes retrievable through this API.

This API does not return size chart images. Size chart images are currently embedded in the product description rich text as ordinary images, with no dedicated type marker, so they cannot be reliably distinguished from the description.

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/sizeChart/query

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/sizeChart/query?pid=000B9312-456A-4D31-94BD-B083E2A198E8' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

# Request Parameters

parameter description type required length remark
pid Product id string Y 200 Unique product identifier. This API supports pid only

# Return

Size chart configured

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": {
        "pid": "000B9312-456A-4D31-94BD-B083E2A198E8",
        "configured": true,
        "baseVariantKey": "Size",
        "countries": ["EU US"],
        "sizeParams": ["Lenght", "Bust"],
        "paramUnits": {},
        "chartData": [
            {
                "baseValue": "L",
                "areaValues": [{ "country": "EU US", "value": "M" }],
                "paramValues": [
                    { "paramName": "Lenght", "unitCode": "", "main": "20", "sub": "7.87" },
                    { "paramName": "Bust", "unitCode": "", "main": "100", "sub": "39.37" }
                ]
            },
            {
                "baseValue": "M",
                "areaValues": [{ "country": "EU US", "value": "S" }],
                "paramValues": [
                    { "paramName": "Lenght", "unitCode": "", "main": "19", "sub": "7.48" },
                    { "paramName": "Bust", "unitCode": "", "main": "96", "sub": "37.80" }
                ]
            },
            {
                "baseValue": "S",
                "areaValues": [{ "country": "EU US", "value": "XS" }],
                "paramValues": [
                    { "paramName": "Lenght", "unitCode": "", "main": "18", "sub": "7.09" },
                    { "paramName": "Bust", "unitCode": "", "main": "92", "sub": "36.22" }
                ]
            },
            {
                "baseValue": "XL",
                "areaValues": [{ "country": "EU US", "value": "L" }],
                "paramValues": [
                    { "paramName": "Lenght", "unitCode": "", "main": "21", "sub": "8.27" },
                    { "paramName": "Bust", "unitCode": "", "main": "104", "sub": "40.94" }
                ]
            }
        ]
    }
}

Product queryable but no size chart configured

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": {
        "pid": "000B9312-456A-4D31-94BD-B083E2A198E8",
        "configured": false,
        "baseVariantKey": null,
        "countries": null,
        "sizeParams": null,
        "paramUnits": null,
        "chartData": null
    }
}

Product not found or not queryable

{
    "code": 1602001,
    "result": false,
    "message": "Product not found: pid:xxx",
    "data": null
}

# Return Parameters

parameter description type when null
pid Product id, echoed back from the request string Never null
configured Whether the product has a parsable size chart boolean Never null
baseVariantKey The attribute name used as the base value of the chart (e.g. Size), i.e. which product attribute this chart is laid out by string null when configured is false
countries Destination country/region list. The order is the column order, matching each row's areaValues position by position string array null when configured is false
sizeParams Size parameter name list (e.g. Bust, Waist). The order is the column order, matching each row's paramValues position by position string array null when configured is false
paramUnits Mapping of parameter name to unit code. Only non-length dimensions are listed; a parameter absent from this map is a length dimension object null when configured is false; an empty object when every parameter is a length dimension
chartData Size rows, one row per size level object array null when configured is false

chartData array element

parameter description type when null
baseValue Base value, i.e. the size level, e.g. S / M / L / 2XL string Never null
areaValues Size code per destination country, ordered the same as countries object array Never null; an empty array when countries is empty
paramValues Measurement value per size parameter, ordered the same as sizeParams object array Never null; an empty array when sizeParams is empty

chartData[].areaValues array element

parameter description type when null
country Destination country/region, one of the values in countries string Never null
value The size code for that country. Free text, displayed as-is with no conversion, may contain a hyphen such as US size 2-4 string Never null; an empty string when not filled in

chartData[].paramValues array element

parameter description type when null
paramName Parameter name, one of the values in sizeParams string Never null
unitCode Unit code declaring which dimension this parameter belongs to, see the unit reference below string Never null; a length dimension returns an empty string rather than null
main Main value, centimetres for a length dimension, grams for a weight dimension string Never null; an empty string when not filled in
sub Sub value, inches for a length dimension, pounds for a weight dimension, pre-converted by CJ so use it directly and do not convert yourself string Never null; an empty string when not filled in

# Unit reference

unitCode dimension main sub conversion
empty string Length cm inch inch = cm × 0.3937
g Weight gram pound lb = g ÷ 453.59237

The weight dimension is the recommended body weight (which weight range this size fits), not the product's net weight. If new dimensions are added later, only a new unitCode value appears — the response structure stays the same and your parsing logic needs no change.

# The four forms of main and sub

main and sub are always strings, with four forms that are independent of the dimension (a length can be a range; a weight can be a single value):

form length example (main / sub) weight example (main / sub)
Single value "88" / "34.65" "60000" / "132.28"
Closed range "88-92" / "34.65-36.22" "50000-60000" / "110.23-132.28"
Open range, greater or equal "≥88" / "≥34.65" "≥60000" / "≥132.28"
Open range, less or equal "≤92" / "≤36.22" "≤50000" / "≤110.23"
Empty "" / "" "" / ""

Do not call parseFloat on main / sub

parseFloat("88-92") silently truncates to 88 — the upper bound is lost with no error, and your buyer ends up seeing the wrong measurement. Treat them as strings; when you need to tell a single value from a range or an open range, check the ≥ / ≤ prefix and the hyphen yourself.

≥(U+2265) and ≤(U+2264) are non-ASCII characters — make sure your client handles UTF-8.

# Error Codes

code meaning suggested action
200 Success Process the returned data normally
1600002 No access token supplied (HTTP 401) Send a valid token in the CJ-Access-Token header. See Authentication
1600001 Access token is invalid or has expired (HTTP 401) Obtain a new token and retry. See Authentication
1600200 QPS limit exceeded (HTTP 429). This endpoint allows 2 requests/second by default Lower the call rate and apply retry backoff. When pulling size charts in bulk, call serially or add an interval between calls
1600300 Parameter error (HTTP 400), e.g. pid not supplied, or pid longer than 200 characters Fix the request parameters according to message in the response and retry
1600014 The account's API access has been disabled Reactivate it on the API authorisation page and retry
16900500 Insufficient API points Top up your points or wait for them to replenish, then retry
1600100 The endpoint has been taken offline Stop calling it and watch for platform announcements
1602001 Product not found (pid does not exist, or the product has been deleted) Check that the pid is correct
Other business code The product is not queryable for the current account, e.g. removed from shelves, private-visible product without authorisation, site restriction See message in the response for the reason

# FAQ

Why is chartData not ordered from the smallest size to the largest?

This API returns the stored order (the same order shown on the CJ product page); it does not represent size order. In the example above the order is L, M, S, XL. Sort it yourself if you need to display sizes from small to large.

What is "EU US" in countries? Why is it not a standard country code?

It is a combined value meaning "EU/US common sizing". The field is free text and its value is decided when the product is created, so it is not guaranteed to be an ISO country code. Do not parse or match it as a country code.

Is "Lenght" in sizeParams a typo? Can I hard-code parameter name matching?

Parameter names are the values entered when the product was created; they may contain spelling variants (such as Lenght) or spaces (such as Top Lenght). Do not hard-code parameter name matching — index into paramValues by the order of sizeParams.

Does configured = false always mean the product has no size chart?

No. Besides "genuinely not configured", a small number of products — supplier products in particular — may also return configured = false because of how product data is retrieved upstream. If you can see a size chart for the product on the CJ product page but this API returns false, contact your Account Manager (AM) to verify.

How long after configuring a size chart can it be queried through this API?

Sizing data comes from a product data snapshot, so there is a short delay after a size chart is configured or modified before it takes effect here. Product visibility is judged from the same snapshot; right after a product is removed from shelves or private-visible authorisation changes, this API may briefly still return the old conclusion — treat 1.5 Product Details as authoritative.

# 2 Variant

# 2.1 Inquiry Of All Variants (GET)

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/variant/query

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/variant/query?pid=00006BC5-E1F5-4C65-BE2B-3FE0956DA21C' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Parameter Definition Type Required Length Note
pid Product id string Choose one of three 200 Inquiry criteria
productSku Product sku string Choose one of three 200 Inquiry criteria
variantSku variant sku string Choose one of three 200 Inquiry criteria
countryCode Country Code string N 2 If the parameter has a value, only variants with inventory in that country will be returned. If no value is passed, inventory will not be restricted

# Return

success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": [
        {
            "vid": "1D72A20A-D113-4FAB-B4BA-6FE1A6A14A3A",
            "pid": "77501FB4-7146-452E-9889-CDF41697E5CF",
            "variantName": null,
            "variantNameEn": "Wwerwieurieowursdklfjskldjfklsdjfksljfklsdjfkldsjfksdjfksljfksdlfsfdfgf XS",
            "variantSku": "CJJSBGBG01517-XS",
            "barcode": "6973990191234",
            "variantStandard": "long=5,width=5,height=5",
            "variantUnit": null,
            "variantKey": "Black-XXL",
            "variantLength": 5,
            "variantWidth": 5,
            "variantHeight": 5,
            "variantVolume": 27,
            "variantWeight": 3.00,
            "variantSellPrice": 3.00,
            "createTime": null
        }
    ],
    "requestId": "00765963-35d0-4a6a-b5cf-aa6731793b10"
}
Field Definition Type Length Note
vid Variant ID string 200
pid Product ID string 200
variantName Variant name string 200
variantNameEn Variant name (EN) string 200
variantImage Variant image string 200
variantSku Variant sku string 200
barcode Barcode string 200 Unique identifier of the CJ variant, used in CJ warehouses; numeric only, present on all variants
variantUnit Variant unit string 200
variantProperty Variant property string 200
variantKey Variant Options string 200 Variant Options, multiple options, joined by -, eg: Black-XXL
variantLength Variant length int 200 Unit: mm
variantWidth Variant width int 200 Unit: mm
variantHeight Variant height int 200 Unit: mm
variantVolume Variant volume int 200 Unit: mm³
variantWeight Variant weight int 200 Unit: g
variantSellPrice Variant sell price BigDecimal 200 Unit: $ (USD)
createTime Create time string 200
variantStandard variant standard string 200
variantSugSellPrice variant suggest sell price BigDecimal 200 Unit: $ (USD)

error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data object interface data return
requestId requestId string 48 Flag request for logging errors

# 2.2 Variant Id Inquiry (GET)

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/variant/queryByVid

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/variant/queryByVid?vid=1371342252697325568' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Parameter Definition Type Required Length Note
vid Variant ID string Y 200 Inquiry criteria
features features string N 200 enable_inventory (includes inventory, returns variant inventory info (include storage id) when passed)

# Return

success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": {
        "vid": "1371342252697325568",
        "pid": "00006BC5-E1F5-4C65-BE2B-3FE0956DA21C",
        "variantName": null,
        "variantNameEn": "a-Baby pacifier chain test1 Grey",
        "variantSku": "CJJSBGDY00002-Grey",
        "barcode": "6973990191234",
        "variantUnit": null,
        "variantKey": "Black-XXL",
        "variantLength": 3,
        "variantWidth": 3,
        "variantHeight": 3,
        "variantVolume": 27,
        "variantWeight": 3.00,
        "variantSellPrice": 3.00,
        "createTime": "2021-03-15T14:07:26.000+00:00",
        "inventories": [
            {
                "countryCode": "CN",
                "totalInventory": 11092,
                "cjInventory": 0,
                "factoryInventory": 11092,
                "verifiedWarehouse": 2,
                "stock": [
                    {
                        "stockId": "{6709CCD7-0DC7-43B1-B310-17AB499E9B0A}",
                        "inventory": 0,
                        "factoryInventory": 11092
                    }
                ]
            }
        ]
    },
    "requestId": "9b86a5e2-40c3-492c-92b2-4634fa4c4a21"
}
Field Definition Type Length Note
vid Variant id string 200
pid Product id string 200
variantName Variant name string 200
variantNameEn Variant name (EN) string 200
variantImage Variant image string 200
variantSku Variant sku string 200
barcode Barcode string 200 Unique identifier of the CJ variant, used in CJ warehouses; numeric only, present on all variants
variantUnit Variant unit string 200
variantKey Variant Options string 200 Variant Options, multiple options, joined by -, eg: Black-XXL
variantLength Variant length int 200 Unit: mm
variantWidth Variant width int 200 Unit: mm
variantHeight Variant height int 200 Unit: mm
variantVolume Variant volume int 200 Unit: mm³
variantWeight Variant weight int 200 Unit: g
variantSellPrice Variant sell price BigDecimal 200 Unit: $ (USD)
createTime Create time string 200
variantStandard Variant standard string 200
inventories Variant inventory Inventory[] 200 List of variant inventory (include storage id)
- countryCode inventory country code string 200 Two-letter code of the country where the warehouse is located.for example:US
- totalInventory total inventory number integer 200
- cjInventory Inventory management in CJ warehouse integer 200
- factoryInventory Inventory management in factory integer 200
- verifiedWarehouse Verified Inventory type string 200 1: verified, 2: unverified
- stock Sub warehouse inventory info Stock[] 200
-- stockId Sub warehouse ID string 200
-- inventory Sub warehouse Inventory management in CJ warehouse integer 200
-- factoryInventory Sub warehouse Inventory management in factory integer 200

error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data object interface data return
requestId requestId string 48 Flag request for logging errors

# 3 Inventory

# 3.1 Inventory Inquiry(GET)

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/stock/queryByVid?vid=7874B45D-E971-4DC8-8F59-40530B0F6B77

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/stock/queryByVid?vid=7874B45D-E971-4DC8-8F59-40530B0F6B77' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Parameter Definition Type Required Length Note
vid Variant id string Y 200 Unique variant identifier

# Return

success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": [
        {
            "vid": "7874B45D-E971-4DC8-8F59-40530B0F6B77",
            "areaId": "1",
            "areaEn": "China Warehouse",
            "countryCode": "CN",
            "storageNum": 10877,
            "totalInventoryNum": 10877,
            "cjInventoryNum": 700,
            "factoryInventoryNum": 10177,
            "stock": [
                {
                    "stockId": "{6709CCD7-0DC7-43B1-B310-17AB499E9B0A}",
                    "inventory": 0,
                    "factoryInventory": 11092
                }
            ]
        }...
    ],
    "requestId": "bcde45ac-da31-4fc7-a05e-e3b23a1e6694"
}
Field Definition Type Length Note
vid Variant id bigint 200 Unique variant identifier
areaId Warehouse id int 20 Warehouse area ID
areaEn Warehouse name string 200 Warehouse area name
countryCode Country code(EN) string 20 Country code where warehouse is located
storageNum total inventory number, please use totalInventoryNum int 20 Deprecated, please use totalInventoryNum
totalInventoryNum total inventory number int 20 Total inventory quantity of this variant in the warehouse
cjInventoryNum Inventory management in CJ warehouse int 20 Inventory quantity managed directly by CJ
factoryInventoryNum Inventory management in factory int 20 Inventory quantity managed by the factory
stock Sub warehouse inventory info Stock[] 200
-- stockId Sub warehouse ID string 200
-- inventory Sub warehouse Inventory management in CJ warehouse integer 200
-- factoryInventory Sub warehouse Inventory management in factory integer 200

error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data object interface data return
requestId requestId string 48 Flag request for logging errors

# 3.2 Query Inventory by SKU (GET)

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/stock/queryBySku?sku=CJDS2012593

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/stock/queryBySku?sku=CJDS2012593' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Parameter Definition Type Required Length Note
sku SKU or SPU string Y 200

# Return

success

{
    "code": 200,
    "result": true,
    "message": "Success",
    "data": [
        {
            "areaEn": "China Warehouse",
            "areaId": 1,
            "countryCode": "CN",
            "totalInventoryNum": 777566,
            "cjInventoryNum": 0,
            "factoryInventoryNum": 777566,
            "countryNameEn": "China",
            "stock": null
        },
        {
            "areaEn": "US Warehouse",
            "areaId": 2,
            "countryCode": "US",
            "totalInventoryNum": 36,
            "cjInventoryNum": 36,
            "factoryInventoryNum": 0,
            "countryNameEn": "United States of America (the)",
            "stock": null
        }
    ],
    "requestId": "dd4c7d122df24b80a094a4aba073724f",
    "success": true
}
Field Definition Type Length Note
areaId Warehouse id int 20
areaEn Warehouse name string 200
countryCode Country code(EN) string 200
countryNameEn Country name string 200
totalInventoryNum total inventory number int 20
cjInventoryNum Inventory management in CJ warehouse int 20
factoryInventoryNum Inventory management in factory int 20
stock Sub warehouse inventory info Stock[] 200 May return null
-- stockId Sub warehouse ID string 200
-- inventory Sub warehouse Inventory management in CJ warehouse integer 200
-- factoryInventory Sub warehouse Inventory management in factory integer 200

error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data object interface data return
requestId requestId string 48 Flag request for logging errors

# 3.3 Query inventory by product ID (GET)

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/stock/getInventoryByPid?pid=1444929719182168064

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/stock/getInventoryByPid?pid=1444929719182168064' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Parameter Definition Type Required Length Note
pid Product Id string Y 40

# Return

success

{
    "success": true,
    "code": 200,
    "message": "",
    "data": {
        "inventories": [
            {
                "areaEn": "US Warehouse",
                "areaId": 2,
                "countryCode": "US",
                "totalInventoryNum": 264,
                "cjInventoryNum": 264,
                "factoryInventoryNum": 0,
                "countryNameEn": "US Warehouse",
                "stock": null
            }
        ],
        "variantInventories": [
            {
                "vid": "1796078021431009280",
                "inventory": [
                    {
                        "countryCode": "CN",
                        "totalInventory": 10044,
                        "cjInventory": 0,
                        "factoryInventory": 10044,
                        "verifiedWarehouse": 2,
                        "stock": [
                            {
                                "stockId": "{6709CCD7-0DC7-43B1-B310-17AB499E9B0A}",
                                "inventory": 0,
                                "factoryInventory": 11092
                            }
                        ]
                    }
                ]
            }
        ]
    },
    "requestId": "cb927bfa8400421e923a55f81eaafce0"
}
Field Definition Type Length Note
code error code int 20 Reference error code
message return message string 200
data Product Inventory Object object
- inventories product inventory list list
-- areaEn Warehouse Name string 20 China Warehouse
-- areaId Warehouse id int 1 1
-- countryCode Country Code string 2 CN
-- totalInventoryNum total inventory number int 20
-- cjInventoryNum Inventory management in CJ warehouse int 20
-- factoryInventoryNum Inventory management in factory int 20
-- countryNameEn Country Name string 200 China Warehouse
-- stock Sub warehouse inventory info list May return null
--- stockId Sub warehouse ID string 200
--- inventory Sub warehouse Inventory in CJ warehouse integer 200
--- factoryInventory Sub warehouse Inventory in factory integer 200
- variantInventories variant inventory list list
-- vid variant id string 20 China Warehouse
-- inventory inventory list list 1
--- countryCode Country Code string 2 CN
--- totalInventory total inventory number int 20 Actual API field name: totalInventory
--- cjInventory Inventory management in CJ warehouse int 20 Actual API field name: cjInventory
--- factoryInventory Inventory management in factory int 20 Actual API field name: factoryInventory
--- verifiedWarehouse Verified Inventory type int 200 1: verified, 2: unverified
--- stock Sub warehouse inventory info Stock[] 200
---- stockId Sub warehouse ID string 200
---- inventory Sub warehouse Inventory management in CJ warehouse integer 200
---- factoryInventory Sub warehouse Inventory management in factory integer 200
requestId requestId string 48 Flag request for logging errors

# 4 Product Reviews

# 4.1 Inquiry Reviews (GET)

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/productComments

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/productComments?pid=7874B45D-E971-4DC8-8F59-40530B0F6B77' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Parameter Definition Type Required Length Note
pid Product id string Y 200 Inquiry criteria
score score integer N 20 Inquiry criteria
pageNum page number int N 20 default: 1
pageSize page size int N 20 default: 20

# Return

success

{
    "success": true,
    "code": 0,
    "message": null,
    "data": {
        "pageNum": "1",
        "pageSize": "1",
        "total": "285",
        "list": [
            {
                "commentId": 1536993287524069376,
                "pid": "1534092419615174656",
                "comment": "excelente estado, llegó en una semana, cumple con lo descrito.\nBuena calidad de audio.",
                "commentDate": "2022-06-13T00:00:00+08:00",
                "commentUser": "F***o",
                "score": "5",
                "commentUrls": [
                    "https://cc-west-usa.oss-us-west-1.aliyuncs.com/comment/additional/0001/image/2022-06-15/1126211e-ca15-45ed-95f2-880567ebba37.jpg",
                    "https://cc-west-usa.oss-us-west-1.aliyuncs.com/comment/additional/0001/image/2022-06-15/291ab894-068f-4f4e-b01f-57df72902f58.jpg"
                ],
                "countryCode": "MX",
                "flagIconUrl": "https://cc-west-usa.oss-us-west-1.aliyuncs.com/national-flags/phone/US.png"
            }
        ],
    "requestId": "bcde45ac-da31-4fc7-a05e-e3b23a1e6694"
}
Field Definition Type Length Note
pid Product id String 200
commentId Comment id long 20
comment Comment string 200
commentUrls Comment url string[] 200
commentUser Comment user string 200
score score int 20
countryCode Country code string 20
commentDate Comment date string 200
flagIconUrl FlagIcon url string 200

error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data object interface data return
requestId requestId string 48 Flag request for logging errors

# 5 Sourcing

# 5.1 Create Sourcing (POST)

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/sourcing/create

# CURL

curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/product/sourcing/create' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
                --header 'Content-Type: application/json' \
                --data-raw '{
                    "thirdProductId": "",
                    "thirdVariantId": "",
                    "thirdProductSku": "",
                    "productName": "",
                    "productImage": "",
                    "productUrl": "",
                    "remark": "",
                    "price": "",
                    "acceptSimilar": 1
                }'
Parameter Definition Type Required Length Note
thirdProductId third product id string N 200
thirdVariantId third variant id string N 200
thirdProductSku third product sku string N 200
productName product name string Y 200
productImage product image string Y 200
productUrl product url string N 200
remark remark string N 200
price price BigDecimal N 200 Unit: $ (USD)
acceptSimilar accept similar products int N 1 0 = No (default), 1 = Yes. Corresponds to "Accept Similar Products" in My CJ sourcing details. Treated as 0 if omitted

# Return

success

{
    "success": true,
    "code": 0,
    "message": null,
    "data": {
        "cjSourcingId": "285",
        "result":"success",
     }
    "requestId": "bcde45ac-da31-4fc7-a05e-e3b23a1e6694"
}
Field Definition Type Length Note
cjSourcingId CJ sourcing id string 50
result search results string 20

error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data object interface data return
requestId requestId string 48 Flag request for logging errors

# 5.2 Query Sourcing(POST)

Deprecated

This endpoint is deprecated. Use 5.3 Query Sourcing List (/product/sourcing/queryList) instead.

Its behaviour is unchanged and it is not being taken offline yet, so existing integrations keep working during migration. However it will receive no further enhancements — please migrate as soon as you can.

Why it is deprecated: this endpoint queries one sourcing record only. Pass exactly 1 id in sourceIds; data is a single sourcing object. If you pass more than one, which record is returned is not guaranteed — do not rely on it.

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/sourcing/query

# CURL

curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/product/sourcing/query' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
                --header 'Content-Type: application/json' \
                --data-raw '{
                    "sourceIds": ["285"]
                }'
Parameter Definition Type Required Length Note
sourceIds CJ sourcing id string[] Y 200 Only 1 id is allowed; passing more gives no guaranteed result

# Return

success

{
    "success": true,
    "code": 0,
    "message": null,
    "data": {
        "sourceId": "285",
        "sourceNumber":"223333",
        "productId": "3324343434",
        "variantId":"4545456",
        "shopId": "285",
        "shopName":"aaaaaaa",
        "sourceStatus": "5",
        "sourceStatusStr":"搜品失败",
        "cjProductId": "285",
        "cjVariantSku":"CJ287690900",
        "failReason": 31,
        "failReasonStr": "The product link is invalid"
     }
    "requestId": "bcde45ac-da31-4fc7-a05e-e3b23a1e6694"
}
Field Definition Type Length Note
sourceId CJ sourcing id string 50
sourceNumber Search short code string 20
productId product id string 50
variantId variant id string 50
shopId shop id string 50
shopName shop name string 50
sourceStatus status string 10
sourceStatusStr status (chinese) string 50
cjProductId CJ product id string 50
cjVariantSku CJ variant sku string 50
failReason sourcing fail code int 20 Set only when sourcing failed; null otherwise
failReasonStr sourcing fail reason string 500 English text; null when the record has not failed

error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data object interface data return
requestId requestId string 48 Flag request for logging errors

# 5.3 Query Sourcing List(GET)

Query multiple sourcing records by a list of sourcing ids in one call. Returns a list of sourcing records.

This endpoint replaces the deprecated 5.2 Query Sourcing. Use it whether you need one record or many — to query a single record, just pass one sourceIds value.

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/sourcing/queryList?sourceIds=285&sourceIds=286

# CURL

curl --location --request GET 'https://developers.cjdropshipping.com/api2.0/v1/product/sourcing/queryList?sourceIds=285&sourceIds=286' \
                --header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Parameter Definition Type Required Length Note
sourceIds CJ sourcing id string[] Y 200 Repeat the parameter for multiple values; up to 100 per request

# Return

success

{
    "success": true,
    "code": 0,
    "message": null,
    "data": [
        {
            "sourceId": "285",
            "sourceNumber": "223333",
            "productId": "3324343434",
            "variantId": "4545456",
            "shopId": "285",
            "shopName": "aaaaaaa",
            "sourceStatus": "5",
            "sourceStatusStr": "Sourcing failed",
            "cjProductId": "285",
            "cjVariantSku": "CJ287690900",
            "failReason": 31,
            "failReasonStr": "The product link is invalid"
        },
        {
            "sourceId": "286",
            "sourceNumber": "223334",
            "productId": "3324343435",
            "variantId": "4545457",
            "shopId": "285",
            "shopName": "aaaaaaa",
            "sourceStatus": "3",
            "sourceStatusStr": "Sourcing succeeded",
            "cjProductId": "286",
            "cjVariantSku": "CJ287690901",
            "failReason": null,
            "failReasonStr": null
        }
     ],
    "requestId": "bcde45ac-da31-4fc7-a05e-e3b23a1e6694"
}

data is an array of sourcing objects. Fields of a single element:

Field Definition Type Length Note
sourceId CJ sourcing id string 50
sourceNumber CJ sourcing number String 50
productId product id String 50
variantId variant id String 50
shopId shop id String 50
shopName shop name String 50
sourceStatus sourcing status String 10
sourceStatusStr sourcing status text String 200
cjProductId CJ product id String 50
cjVariantSku CJ variant sku String 50
failReason sourcing fail code int 20 Set only when sourcing failed; null otherwise
failReasonStr sourcing fail reason String 500 English text; null when the record has not failed

Note

  • If some of the given ids are not found, the returned list contains only the records that were found. No placeholder element is added for a missing id.
  • If none of the given ids are found, the request fails (non-success code) and data is null.

error

{
    "code": 1600100,
    "result": false,
    "message": "Param error",
    "data": null,
    "requestId": "323fda9d-3c94-41dc-a944-5cc1b8baf5b1"
}
Field Definition Type Length Note
code error code int 20 Reference error code
result Whether or not the return is normal boolean 1
message return message string 200
data return data array interface data return
requestId requestId string 48 Flag request for logging errors
# Product Type
Product Type Code Description
ORDINARY_PRODUCT 0 Ordinary products, managed by CJ for inventory management
SERVICE_PRODUCT 1 Service products, If you need to transfer your own goods to CJ warehouse and CJ provides warehousing services, we will mark it as a service item.
PACKAGING_PRODUCT 3 Packaging products are used for packaging when shipped from the warehouse. They do not support separate shipping and need to be shipped together with other goods.
SUPPLIER_PRODUCT 4 Supplier products, It is a merchant that collaborates with CJ to manage inventory of goods.
SUPPLIER_SHIPPED_PRODUCT 5 Supplier products, managed and shipped by supplier management.
# Product Status
Status Code Description
3 On Sale
# Customization Version
Customization Version remark
0 Non-POD products
1 Platform Customized Version V1
2 Platform Customized Version V2
3 Customer Customized Version V1
4 Customer Customized Version V2
5 POD 3.0 Platform Customized

# 6 Video

# 6.1 Query Product Videos (POST)

Note

It is recommended that customers cache videos on their own servers instead of using CJ video URLs directly for end users. Heavy direct usage of CJ video playback URLs may affect service stability and could be rate-limited.

Important

When downloading videos, you must include a Referer header with the value https://developers.cjdropshipping.com/ in your request, otherwise the video server will reject the request.

Example:

curl -H "Referer: https://developers.cjdropshipping.com" -O "https://download-only-api.cjdropshipping.com/xxxxxx/video.mp4"

# URL

https://developers.cjdropshipping.com/api2.0/v1/product/queryVideosByProductId

# CURL

curl --location 'https://developers.cjdropshipping.com/api2.0/v1/product/queryVideosByProductId' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '{
    "productId": "1658748072937136128"
}'

# Request Parameters

Parameter Definition Type Required Length Note
productId CJ Product Id string Y 100

# Return

success

{
    "success": true,
    "code": 0,
    "message": "success",
    "data": [
        {
            "id": "abc39e6946dc4aa6b53f1813b53cfcb1",
            "locProductId": "1964955178105954305",
            "videoName": "123",
            "videoState": "ON_STATE",
            "videoUrl": "https://download-only-api.cjdropshipping.com/abc39e6946dc4aa6b53f1813b53cfcb1/xxxx.mp4",
            "videoNumber": null,
            "notCopyrightPrice": "",
            "copyrightPrice": "",
            "copyright": "1",
            "isFree": "1",
            "videoId": "abc39e6946dc4aa6b53f1813b53cfcb1",
            "videoSize": "4689615",
            "coverURL": "https://download-only-api.cjdropshipping.com/abc39e6946dc4aa6b53f1813b53cfcb1/snapshots/xxx.jpg",
            "duration": 39.521,
            "unit": "MB",
            "flag": "0",
            "isBuy": true,
            "payType": null,
            "playCount": 6543,
            "collectCount": 26,
            "downloadCount": 46,
            "showCount": 734,
            "shareNum": 12,
            "likeNum": 19,
            "commentCount": 0,
            "buyCount": 0,
            "videoType": 1,
            "copyrightBuyType": 4,
            "orderNum": 0,
            "videoByOut": null,
            "width": 960,
            "height": 540,
            "openIn": null
        }
    ],
    "requestId": "6106699663484b45829410eb75b5a4b3"
}

error

{
    "success": false,
    "code": 1600100,
    "message": "productId must be not empty",
    "data": null,
    "requestId": "ae543fd1-cdd7-4a61-974a-1340fea678c6"
}

# Response Parameters

Field Definition Type Length Note
success Success Flag boolean 1
code Error Code int 20 0 on success, Error Code Reference
message Response Message string 200
data Video List array Business data
requestId Request Id string 48 For log error tracking

# data Field Description

Field Definition Type Note
id Video Id string
locProductId Product Id string
videoName Video Name string
videoState Video Status string ON_STATE: Listed, DOWN_STATE: Unlisted, DELETE_STATE: Deleted
videoUrl Video URL string
videoNumber Video Number string
notCopyrightPrice Temporary Use Price string
copyrightPrice Permanent Use Price string
copyright Copyright string
isFree Is Free string 0: Paid, 1: Free
videoId Cloud Video ID string
videoSize Video Size string
coverURL Cover Image string
duration Duration float
unit Size Unit string M, kb
flag Flag string
isBuy Is Purchased boolean
payType Copyright Purchase Type string 0: Permanent, 1: Partial
playCount Play Count integer
collectCount Collect Count integer
downloadCount Download Count integer
showCount Impression Count integer
shareNum Share Count integer
likeNum Like Count integer
commentCount Comment Count integer
buyCount Purchase Count integer
videoType Video Type integer 0: Unboxing, 1: Marketing, 2: Review
copyrightBuyType Copyright Purchase Status integer 1: Not Purchased/Free, 2: Permanent, 3: Partial, 4: Both
orderNum Sort Order integer
videoByOut Is Bought Out boolean true: Bought Out, false: Not Bought Out
width Width long Pixels
height Height long Pixels
openIn Days Until Free integer