JD Open Platform Practical Guide ③: Full Analysis of Product Query and Detail APIs
Introduction
In the previous two articles, we covered how to register, obtain credentials, and debug APIs, as well as how to handle signature generation and authorization. In this part, we officially move into practical API usage, starting with the product module to explain two of the most common and representative interfaces:
jingdong.ware.productbigfield.get
: Query for detailed information of a single product;jingdong.search.sku.list
: Search for a list of products, supporting pagination and filters.
We will provide full parameter specifications, response structure breakdowns, and code samples to help you quickly build competence in calling JD’s product APIs.
1. Product Detail API: jingdong.ware.productbigfield.get
This API is used to retrieve detailed information about a specific product (SKU or SPU), including title, main image, price, inventory, brand, attributes, and more. It is a fundamental interface for building product detail pages.
1.1 API Endpoints
Sandbox:
https://sandbox-api.jd.com/routerjson
Production:
https://api.jd.com/routerjson
It is recommended to use the sandbox environment for initial testing before switching to the production environment.
1.2 Request Parameters
Parameter | Type | Required | Example | Description |
---|---|---|---|---|
| string | Yes |
| API method name |
| string | Yes | — | Developer app key |
| string | Yes | — | OAuth2 access token |
| string | Yes |
| Current timestamp (formatted) |
| string | Yes |
| API version |
| string | Yes | — | Signature (see previous article) |
| string | Yes |
| Business parameters in JSON format |
1.3 Sample Response
{"jingdong_ware_productbigfield_get_responce": {
"code": 0,
"skuId": 123456789,
"title": "Apple iPhone 15 Pro",
"price": "7999.00",
"stock": 125,
"brand": "Apple",
"category": "Mobile Phones",
"images": ["https://img.jd.com/image1.jpg", "https://img.jd.com/image2.jpg"],
"attributes": [
{"key": "Screen Size", "value": "6.1 inches"},
{"key": "Storage", "value": "256GB"},
{"key": "Processor", "value": "A17 Pro"},
{"key": "Color", "value": "Silver"}
]
}
}
Attribute fields are dynamic and vary by product category.
1.4 Example Code (Python)
import requestsimport json
from your_sign_utils import generate_sign
params = {
"method": "jingdong.ware.productbigfield.get",
"app_key": YOUR_APP_KEY,
"access_token": YOUR_ACCESS_TOKEN,
"timestamp": "2025-05-01 10:00:00",
"v": "2.0",
"360buy_param_json": json.dumps({"skuId": 123456789})
}
sign = generate_sign(params, YOUR_APP_SECRET)
params["sign"] = sign
response = requests.get("https://api.jd.com/routerjson", params=params)
print(response.json())
It is recommended to include proper error handling to enhance stability.
2. Product List API: jingdong.search.sku.list
This API allows searching for products based on keywords, brand, category, and supports pagination. It returns a list of basic product data and is widely used for building search result and category list pages.
2.1 Request Parameters
Parameter | Example | Description |
---|---|---|
| 1 | Page number, starting from 1 |
| 20 | Items per page, maximum is 50 |
| 737 | First-level category ID (e.g., phones) |
| 14026 | Brand ID (optional) |
| "iPhone" | Search keyword |
Wrapped inside 360buy_param_json
:
{"page": 1,
"pageSize": 10,
"keyword": "iPhone",
"cid1": 737
}
2.2 Sample Response
{"jingdong_search_sku_list_responce": {
"code": 0,
"result": {
"totalItem": 200,
"skuList": [
{
"skuId": 123456,
"name": "Apple iPhone 15",
"price": "7999.00",
"imagePath": "https://img.jd.com/iphone.jpg"
},
{
"skuId": 123457,
"name": "Apple iPhone 15 Pro Max",
"price": "9999.00",
"imagePath": "https://img.jd.com/iphone_pro.jpg"
}
]
}
}
}
Each item only includes summary information. Use productbigfield.get
to retrieve full details.
2.3 Pagination Suggestions
Maximum 50 items per page; use 20–50 depending on your use case.
Use
totalItem
to calculate total pages:totalItem ÷ pageSize
.When fetching in batches, implement a paging loop and retry mechanism to avoid overloading the API and hitting rate limits.
3. Practical Tips and Recommendations
List First, Then Detail
Usesearch.sku.list
to quickly fetch products of interest, then callproductbigfield.get
to display detailed information only when necessary.Optimize Image Sizes
Returned image URLs support size suffixes. You can append parameters to scale images, for example:https://img.jd.com/path.jpg!cc_290x290
Avoid Frequent Full Data Fetches
JD enforces rate limits on excessive full product queries. Use delta updates, time-based filtering, or change notifications instead.Use Multiple Filters for Accuracy
In addition to keywords, include category and brand filters for more accurate results and improved performance.
4. Error Code Reference
Error Code | Cause | Resolution |
---|---|---|
3001 | Invalid parameters or JSON | Check the format of |
401 | Invalid | Reauthorize and refresh the token |
403 | No permission for this API | Apply for the corresponding API scopes |
500 | Internal server error | Retry later or contact JD technical support |
Enable error logging in your system to aid in debugging and troubleshooting.
5. Summary and Next Preview
In this article, we have:
Learned how to call JD’s product detail and product list APIs;
Understood how to pass complex parameters using
360buy_param_json
;Mastered techniques for handling pagination, image size optimization, and filtering by brand/category;
Built a complete product display flow from search to detail view.
Articles related to APIs :
For seamless and efficient access to the Jingdong API, please contact our team : support@luckdata.com