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

method

string

Yes

jingdong.ware.productbigfield.get

API method name

app_key

string

Yes

Developer app key

access_token

string

Yes

OAuth2 access token

timestamp

string

Yes

2025-04-30 14:10:00

Current timestamp (formatted)

v

string

Yes

2.0

API version

sign

string

Yes

Signature (see previous article)

360buy_param_json

string

Yes

{"skuId":123456789}

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 requests

import 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

page

1

Page number, starting from 1

pageSize

20

Items per page, maximum is 50

cid1

737

First-level category ID (e.g., phones)

brandId

14026

Brand ID (optional)

keyword

"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

  1. List First, Then Detail
    Use search.sku.list to quickly fetch products of interest, then call productbigfield.get to display detailed information only when necessary.

  2. 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

  3. Avoid Frequent Full Data Fetches
    JD enforces rate limits on excessive full product queries. Use delta updates, time-based filtering, or change notifications instead.

  4. 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 360buy_param_json

401

Invalid access_token

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