# 04. Storage
# 1 Storage Info
# 1.1 Get Storage Info (GET)
# URL
https://developers.cjdropshipping.com/api2.0/v1/warehouse/detail
# CURL
curl --location 'https://developers.cjdropshipping.com/api2.0/v1/warehouse/detail?id=201e67f6ba4644c0a36d63bf4989dd70' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| id | Storage ID | string | Y | 200 |
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": {
"id": "201e67f6ba4644c0a36d63bf4989dd70",
"name": "Cranbury Warehouse",
"areaId": 2,
"areaCountryCode": "US",
"address1": "Cranbury, New Jersey ",
"address2": null,
"contacts": null,
"phone": "+1-9095862127",
"city": "Cranbury",
"province": "New Jersey",
"logisticsBrandList": [
{
"id": "USPS",
"name": "USPS"
},
{
"id": "FedEx",
"name": "FedEx"
},
{
"id": "UPS",
"name": "UPS"
},
{
"id": "GOFO",
"name": "GOFO"
},
{
"id": "DHL",
"name": "DHL"
},
{
"id": "UniUni",
"name": "UniUni"
},
{
"id": "CBT",
"name": "CBT"
}
],
"isSelfPickup": null,
"zipCode": null
},
"requestId": "2b97f15603384fe4832e85617cf07d9c",
"success": true
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| id | Storage Id | string | 200 | |
| name | name | string | 200 | |
| areaId | area id | integer | 200 | |
| areaCountryCode | country code | string | 200 | |
| province | province | string | 200 | |
| city | city | string | 200 | |
| address1 | address1 | string | 200 | |
| address2 | address2 | string | 200 | |
| contacts | contacts | string | 200 | |
| phone | phone number | string | 200 | |
| isSelfPickup | Is support self pickup | integer | 1 | 1: support 0: not supported |
| zipCode | zip Code | string | 200 | |
| logisticsBrandList | Supported logistics brands | list | 200 | |
| - id | Logistics brand ID | string | 200 | |
| - name | Logistics brand Name | string | 200 |
error
{
"code": 1608001,
"result": false,
"message": "Warehouse info not found",
"data": null,
"requestId": "c5d92fbc9c794c5caa0ce453dd9c9236",
"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 |
# 2 Private Inventory
All APIs below query private inventory data for the account bound to the current CJ-Access-Token. The server automatically binds the current user, so userId is not required in the request body.
# 2.1 Query Private Inventory SPU Page (POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/product/stock/privateInventory/querySpuPage
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/product/stock/privateInventory/querySpuPage' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"pageNum": 1,
"pageSize": 20,
"keyword": "shirt",
"availableStock": true,
"productId": "1234567890",
"sku": "CJNS000000101AZ",
"sortField": "totalWarehouseQuantity",
"sortType": "desc"
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| pageNum | Page number | integer | N | 20 | Default 1 |
| pageSize | Page size | integer | N | 20 | Default 20 |
| keyword | Search keyword | string | N | 200 | Fuzzy search by product name/SPU/SKU |
| availableStock | Only products with available stock | boolean | N | 1 | true-yes |
| pack | Is packaging product | boolean | N | 1 | true-yes |
| serviceProd | Is service product | boolean | N | 1 | true-yes |
| pod | Is POD product | boolean | N | 1 | true-yes |
| productId | Product ID | string | N | 200 | CJ product ID |
| sku | SKU | string | N | 200 | Product SKU |
| sortField | Sort field | string | N | 100 | e.g. totalWarehouseQuantity, minStockPrice |
| sortType | Sort type | string | N | 10 | asc/desc |
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": {
"pageSize": 20,
"pageNumber": 1,
"totalRecords": 1,
"totalPages": 1,
"content": [
{
"productId": "1234567890",
"productName": "Private Inventory Product",
"spu": "CJNS0000001",
"productPic": "https://...",
"productType": "NORMAL",
"skuQuantity": 3,
"totalWarehouseQuantity": 100,
"minStockPrice": 1.23,
"maxStockPrice": 2.34,
"warehouseQuantityInfoList": [
{
"countryCode": "US",
"warehouseQuantity": 100,
"clientTransitQuantity": 0
}
]
}
]
},
"requestId": "2b97f15603384fe4832e85617cf07d9c"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| pageSize | Page size | long | 20 | Pagination field |
| pageNumber | Current page | long | 20 | Pagination field |
| totalRecords | Total records | long | 20 | Pagination field |
| totalPages | Total pages | long | 20 | Pagination field |
| content | SPU inventory list | list | ||
| productId | Product ID | string | 200 | |
| productName | Product name | string | 500 | |
| spu | SPU | string | 200 | |
| productPic | Product image | string | 500 | |
| productType | Product type | string | 100 | |
| skuQuantity | SKU quantity | integer | 20 | |
| totalWarehouseQuantity | Total warehouse inventory | long | 20 | |
| minStockPrice | Minimum inventory unit price | BigDecimal | (18,2) | Unit: USD |
| maxStockPrice | Maximum inventory unit price | BigDecimal | (18,2) | Unit: USD |
| warehouseQuantityInfoList | Warehouse inventory list | list | ||
| - countryCode | Warehouse country code | string | 20 | e.g. CN, US |
| - warehouseQuantity | Warehouse inventory quantity | long | 20 | |
| - clientTransitQuantity | In-transit quantity | long | 20 |
# 2.2 Query Private Inventory SKU List By Product ID (POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/product/stock/privateInventory/querySkuListByProductId
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/product/stock/privateInventory/querySkuListByProductId' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"productId": "1234567890",
"keyword": "black",
"variantId": "9876543210"
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| productId | Product ID | string | Y | 200 | CJ product ID |
| keyword | Search keyword | string | N | 200 | Fuzzy search by SKU/specification |
| variantId | Variant ID | string | N | 200 | CJ variant ID |
# Return Fields
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| data | SKU inventory list | list | ||
| merchantId | Merchant ID | string | 200 | |
| productId | Product ID | string | 200 | |
| variantId | Variant ID | string | 200 | |
| sku | SKU | string | 200 | |
| productName | Product name | string | 500 | |
| variantKey | Variant attributes | string | 500 | |
| variantValue1 | Variant value 1 | string | 200 | |
| variantValue2 | Variant value 2 | string | 200 | |
| variantValue3 | Variant value 3 | string | 200 | |
| bigImage | Variant image | string | 500 | |
| minStockPrice | Minimum inventory unit price | BigDecimal | (18,2) | Unit: USD |
| maxStockPrice | Maximum inventory unit price | BigDecimal | (18,2) | Unit: USD |
| warehouseQuantityInfoList | Warehouse inventory list | list | Same as 2.1 |
# 2.3 Query Private Inventory SKU Detail Page (POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/product/stock/privateInventory/querySkuDetailPage
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/product/stock/privateInventory/querySkuDetailPage' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"pageNum": 1,
"pageSize": 20,
"sku": "CJNS000000101AZ",
"productId": "1234567890",
"storageIds": ["US"],
"availableStock": true
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| pageNum | Page number | integer | N | 20 | Default 1 |
| pageSize | Page size | integer | N | 20 | Default 20 |
| sku | SKU | string | N | 200 | |
| productId | Product ID | string | N | 200 | |
| keyword | Search keyword | string | N | 200 | Fuzzy search by SKU/product name |
| orderCode | Stock order code | string | N | 200 | Source order code of private inventory |
| storageIds | Warehouse ID list | list | N | 200 | e.g. CN, US |
| availableStock | Only SKUs with available stock | boolean | N | 1 | true-yes |
| pack | Is packaging product | boolean | N | 1 | true-yes |
| serviceProd | Is service product | boolean | N | 1 | true-yes |
| pod | Is POD product | boolean | N | 1 | true-yes |
| skuList | SKU list | list | N | Exact query by multiple SKUs |
# Return Fields
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| pageSize/pageNumber/totalRecords/totalPages | Pagination fields | long | 20 | Same as 2.1 |
| content | SKU detail list | list | ||
| merchantId | Merchant ID | string | 200 | |
| sku | SKU | string | 200 | |
| variantId | Variant ID | string | 200 | |
| productId | Product ID | string | 200 | |
| productName | Product name | string | 500 | |
| storageId | Warehouse ID | string | 100 | |
| clientTransitQuantity | In-transit quantity | long | 20 | |
| clientAvailableQuantity | Available quantity | long | 20 | |
| clientLockQuantity | Locked quantity | long | 20 | |
| clientUseQuantity | Used quantity | long | 20 | |
| clientDisputeQuantity | Dispute quantity | long | 20 | |
| clientDisputeCompleteQuantity | Completed dispute quantity | long | 20 | |
| clientFreezeQuantity | Frozen quantity | long | 20 | |
| variantKey | Variant attributes | string | 500 | |
| bigImage | Variant image | string | 500 |
# 2.4 Query Private Inventory Batch Detail By SKU (POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/product/stock/privateInventory/querySkuDetailListBySku
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/product/stock/privateInventory/querySkuDetailListBySku' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"sku": "CJNS000000101AZ",
"orderCode": "SY230101000001",
"storageIds": ["US"],
"availableStock": true
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| sku | SKU | string | Y | 200 | Query SKU |
| keyword | Search keyword | string | N | 200 | Fuzzy search |
| orderCode | Stock order code | string | N | 200 | Source order code of private inventory |
| storageIds | Warehouse ID list | list | N | 200 | e.g. CN, US |
| availableStock | Only batches with available stock | boolean | N | 1 | true-yes |
# Return Fields
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| data | SKU batch detail list | list | ||
| merchantId | Merchant ID | string | 200 | |
| sku | SKU | string | 200 | |
| orderCode | Stock order code | string | 200 | Source order code of private inventory |
| storage | Warehouse name | string | 200 | |
| storageId | Warehouse ID | string | 100 | |
| unitPrice | Inventory unit price | integer | 20 | Subject to API return unit |
| productId | Product ID | string | 200 | |
| orderQuantity | Order quantity | long | 20 | |
| clientTransitQuantity | In-transit quantity | long | 20 | |
| clientAvailableQuantity | Available quantity | long | 20 | |
| clientLockQuantity | Locked quantity | long | 20 | |
| clientUseQuantity | Used quantity | long | 20 | |
| clientDisputeQuantity | Dispute quantity | long | 20 | |
| clientDisputeCompleteQuantity | Completed dispute quantity | long | 20 | |
| clientFreezeQuantity | Frozen quantity | long | 20 |
# 2.5 Query Private Inventory SKU Flow Page (POST)
# URL
https://developers.cjdropshipping.com/api2.0/v1/product/stock/privateInventory/querySkuFlowByCondition
# CURL
curl --location --request POST 'https://developers.cjdropshipping.com/api2.0/v1/product/stock/privateInventory/querySkuFlowByCondition' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data-raw '{
"pageNum": 1,
"pageSize": 20,
"sku": "CJNS000000101AZ",
"orderCode": "SY230101000001",
"eventOrderCode": "ORDER230101000001",
"storageId": "US",
"recordId": "REC123456",
"clientVisible": 1
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| pageNum | Page number | integer | N | 20 | Default 1 |
| pageSize | Page size | integer | N | 20 | Default 20 |
| sku | SKU | string | N | 200 | Query SKU flow |
| orderCode | Stock order code | string | N | 200 | Source order code of private inventory |
| eventOrderCode | Business order code | string | N | 200 | Order/business code that caused the inventory change |
| storageId | Warehouse ID | string | N | 100 | e.g. CN, US |
| unitPrice | Inventory unit price | integer | N | 20 | Subject to API return unit |
| recordId | Flow record ID | string | N | 200 | Exact query by flow record |
| clientVisible | Client visibility flag | integer | N | 1 | 1-visible, 0-invisible |
# Return
success
{
"code": 200,
"result": true,
"message": "Success",
"data": {
"pageSize": 20,
"pageNumber": 1,
"totalRecords": 1,
"totalPages": 1,
"content": [
{
"clientRecordId": "REC123456",
"eventDesc": "Stock in",
"changeQuantity": 10,
"createDate": 1704067200000,
"eventOrderCode": "ORDER230101000001",
"orderCode": "SY230101000001",
"storage": "US Warehouse",
"storageId": "US",
"clientAvailableQuantity": 100,
"clientAvailableChangeQuantity": "+10"
}
]
},
"requestId": "2b97f15603384fe4832e85617cf07d9c"
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| pageSize/pageNumber/totalRecords/totalPages | Pagination fields | long | 20 | Same as 2.1 |
| content | SKU flow list | list | ||
| clientRecordId | Client flow record ID | string | 200 | |
| eventDesc | Flow event description | string | 500 | |
| changeQuantity | Change quantity | long | 20 | Positive means increase, negative means decrease |
| createDate | Created time | long | 20 | Timestamp |
| eventOrderCode | Business order code | string | 200 | Order/business code that caused the inventory change |
| eventOrderCodeType | Business order code type | integer | 20 | Subject to API enum return |
| clientVisible | Client visibility flag | integer | 1 | 1-visible, 0-invisible |
| orderCode | Stock order code | string | 200 | Source order code of private inventory |
| storage | Warehouse name | string | 200 | |
| storageId | Warehouse ID | string | 100 | |
| unitPrice | Inventory unit price | integer | 20 | Subject to API return unit |
| clientTransitQuantity | In-transit quantity | long | 20 | |
| clientAvailableQuantity | Available quantity | long | 20 | |
| clientLockQuantity | Locked quantity | long | 20 | |
| clientUseQuantity | Used quantity | long | 20 | |
| clientDisputeQuantity | Dispute quantity | long | 20 | |
| clientDisputeCompleteQuantity | Completed dispute quantity | long | 20 | |
| clientFreezeQuantity | Frozen quantity | long | 20 | |
| clientTransitChangeQuantity | In-transit quantity change | string | 50 | e.g. +1, -1 |
| clientAvailableChangeQuantity | Available quantity change | string | 50 | e.g. +1, -1 |
| clientLockChangeQuantity | Locked quantity change | string | 50 | e.g. +1, -1 |
| clientUseChangeQuantity | Used quantity change | string | 50 | e.g. +1, -1 |
| clientDisputeChangeQuantity | Dispute quantity change | string | 50 | e.g. +1, -1 |
| clientDisputeChangeCompleteQuantity | Completed dispute quantity change | string | 50 | e.g. +1, -1 |
| clientFreezeChangeQuantity | Frozen quantity change | string | 50 | e.g. +1, -1 |
| skuDetailInfo | SKU inventory snapshot | object | Quantity after change for each inventory dimension |
error
{
"code": 1600100,
"result": false,
"message": "Param error",
"data": null,
"requestId": "2b97f15603384fe4832e85617cf07d9c"
}
# 2.6 Query Warehouse Order Pictures (POST)
Query photos of orders being processed in the warehouse.
# URL
https://developers.cjdropshipping.com/api2.0/v1/storehouseCenterWeb/syncStorehouseVideoRequests
# CURL
curl --location 'https://developers.cjdropshipping.com/api2.0/v1/storehouseCenterWeb/syncStorehouseVideoRequests' \
--header 'CJ-Access-Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '{
"orderIdList": ["ORDER001", "ORDER002"]
}'
| Parameter | Definition | Type | Required | Length | Note |
|---|---|---|---|---|---|
| orderIdList | Order ID list | List<String> | Y | - |
# Return
success
{
"code": 200,
"data": [
{
"orderId": "ORDER001",
"pictureJson": [
{
"url": "https://example.com/pic1.jpg",
"type": "packing"
}
]
}
],
"message": "success",
"success": true
}
| Field | Definition | Type | Length | Note |
|---|---|---|---|---|
| orderId | Order ID | string | 200 | |
| pictureJson | Picture JSON list | Array | - |
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 Product 5 Shopping →