JD APIjd.com ↗
Search JD.com products, get recommendations, related keywords, and corporate news via 4 endpoints. Returns SKU, price, ratings, and shop data.
What is the JD API?
The JD.com API exposes 4 endpoints covering product search, recommendations, related keyword discovery, and corporate newsroom content from one of China's largest e-commerce platforms. The search_products endpoint returns paginated product listings with fields like sku_id, price, comment_count, good_rate, and shop_id — giving developers structured access to live catalog data without building a custom crawler.
curl -X GET 'https://api.parse.bot/scraper/1ee95c11-c5ec-44b3-a893-7f64c6f4e6c0/search_products?page=1&query=%E6%89%8B%E6%9C%BA' \ -H 'X-API-Key: $PARSE_API_KEY'
Keyword search over JD.com's hot-sale product listings (re.jd.com). Each call returns one page of up to 48 sponsored/hot-sale products matching the keyword, with price, thumbnail, tracking click URL, canonical product URL, shop id/name, comment-count bucket (a string such as '200+' or '2万+') and good-rating percentage (number). Two upstream round trips per call (the search page, then the page's paging feed). Paginates via the 1-based integer page input; omitting it returns page 1. total and total_pages come from the site's result summary and has_more tells whether a further page exists; a page beyond total_pages returns an empty products array with has_more=false. Results for the same page vary slightly between calls because the listing is ad-ranked. Unknown keywords are not rejected by the site: it returns loosely related products rather than an empty list.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). Values below 1 are rejected. |
| queryrequired | string | Search keyword (e.g. '手机', '笔记本电脑'). |
{
"type": "object",
"fields": {
"page": "integer, the requested page number",
"query": "string, the search keyword used",
"total": "integer, total matching products reported by the site",
"has_more": "boolean, true when page < total_pages",
"products": "array of product objects with sku_id, title, price (string, CNY), image_url, click_url (tracking redirect), product_url (canonical item page), comment_count (string bucket such as '200+'), good_rate (number, percent of positive reviews), shop_id and shop_name",
"total_pages": "integer, number of pages available (48 products per page)"
},
"sample": {
"data": {
"page": 1,
"query": "手机",
"products": [
{
"price": "4299.00",
"title": "蔡司陆地8x32手机望远镜高清镀膜大视野大口径双筒林业户外观鸟演唱会",
"sku_id": "100050973863",
"shop_id": 1000451565,
"click_url": "https://ccc-x.jd.com/dsp/nc?ext=abc",
"good_rate": 97,
"image_url": "https://img10.360buyimg.com/n1/jfs/t1/422944/9/18516/99691/69ef0cc7F8e3b668f/0083320320f59272.jpg",
"comment_count": "1000+"
}
]
},
"status": "success"
}
}About the JD API
Product Search and Recommendations
The search_products endpoint accepts a required query string (e.g. 手机 or 笔记本电脑) and an optional page integer for pagination. Each product object in the products array includes sku_id, title, price, image_url, click_url, comment_count, good_rate, and shop_id. The get_product_recommendations endpoint takes the same parameters but returns a recommendations array — note that results are not strictly filtered to the query keyword, so the response may include loosely related items.
Related Keywords and Search Intelligence
The get_related_keywords endpoint takes a single query string and returns a keywords array of related search terms as strings. This is useful for expanding keyword sets for price monitoring tools, SEO research targeting the Chinese market, or building autocomplete features that align with JD.com's own search behavior.
Corporate News
The get_corporate_news endpoint (POST) pulls articles from JD.com's corporate newsroom. Each article object in the news array includes id, title, excerpt, categories, banner, alt_banner, and a created Unix timestamp. An optional limit integer caps the number of returned articles. This endpoint covers investor relations content, product announcements, and company updates.
The JD API is a managed, monitored endpoint for jd.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when jd.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official jd.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor price changes on specific JD.com SKUs by polling
search_productswith targeted queries - Build a product comparison tool using
sku_id,price, andgood_ratefields from search results - Expand Chinese-language keyword lists for SEO or ad campaigns using
get_related_keywords - Track JD.com corporate announcements and press releases via
get_corporate_newswithcreatedtimestamps - Aggregate seller data by collecting
shop_idvalues across paginated search results - Surface similar product suggestions in a shopping app using
get_product_recommendations - Research consumer sentiment signals using
comment_countandgood_rateacross product categories
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does JD.com have an official developer API?+
What does `search_products` return that `get_product_recommendations` does not?+
search_products returns comment_count and good_rate fields per product, which indicate review volume and positive rating percentage. The get_product_recommendations response omits those fields, returning only sku_id, title, price, image_url, click_url, and shop_id.Are product reviews or individual review text available through this API?+
comment_count and good_rate as aggregate signals but does not return individual review text, reviewer profiles, or star breakdowns. You can fork it on Parse and revise to add a review-detail endpoint.Does the API cover product inventory or stock status?+
How does pagination work across the search endpoints?+
search_products and get_product_recommendations accept an optional page integer. The response echoes the requested page value alongside the results array. There is no total_pages or total_results field returned, so you would need to increment the page parameter and detect an empty results array to determine the last page.