JD.com Product Scraper
Pricing
from $2.98 / 1,000 results
JD.com Product Scraper
Collect JD.com products from keyword searches, with titles, prices, shop details, review counts, positive review rates, categories and images. Provide Chinese or English keywords, or JD search URLs. Enable optional details to retrieve brands, barcodes, product images and variant options.
Pricing
from $2.98 / 1,000 results
Rating
0.0
(0)
Developer
Axiom Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Returns: one row per JD.com product with title, price, shopName, isSelfOperated, reviewCountText, goodRatePercent, categoryIds and productUrl.
Input: {"keywords": ["手机"], "maxItems": 50}
Best for: price monitoring on JD.com, competitor and brand research in China, building product lists for a category.
{"id": "100266223099","title": "OPPO Reno16 12GB+512GB 白色 2亿像素实况神机 5G小直屏 智能 拍照 学生 旗舰店手机 新款 国家补贴","price": 4198,"currency": "CNY","shopName": "OPPO京东自营旗舰店","isSelfOperated": true,"reviewCountText": "10万+","goodRatePercent": 98}
What does JD.com Product Scraper do?
JD.com Product Scraper is a JD.com scraper that turns a JD search into a clean table. Give it one or more keywords (Chinese or English, such as 手机, 机械键盘 or iphone 16) or JD search URLs, and it returns one row per product: title, price in Chinese yuan, shop, whether JD itself sells it (京东自营), review count, positive review rate, review keyword tags, installment offer, category ids, listing date and product image. Switch on product details to also get the brand, every product image, the UPC/EAN barcode, the selected variant and all variant options.
It reads JD's public product search (京东热卖 on re.jd.com), the search landing JD serves to visitors who are not logged in, so it needs no JD account, no cookies and no login. It pages through the results 48 products at a time, removes duplicates and stops at the number of products you ask for. Think of it as a simple JD.com API for product search: you send keywords, you get structured JSON, CSV or Excel back.
Typical jobs: tracking prices of your own or competing products on JD.com, comparing self-operated JD listings with third-party shops, collecting barcodes and variant lists for a catalogue, and researching which brands and shops rank for a keyword in China's largest retail marketplace.
What data can you get from JD.com?
| Field | Description | Example |
|---|---|---|
id | JD SKU id of the product | 100266223099 |
sourceUrl | The re.jd.com search page the product was read from | https://re.jd.com/search?keyword=%E6%89%8B%E6%9C%BA&page=1 |
keyword | The keyword the product was found for | 手机 |
position | 1-based rank within the keyword's results, across pages | 1 |
page | The search results page the product came from | 1 |
title | Product title | OPPO Reno16 12GB+512GB 白色 ... |
price | Price in Chinese yuan as shown to logged-out visitors | 4198 |
currency | Always CNY | CNY |
productUrl | Product page on item.jd.com | https://item.jd.com/100266223099.html |
imageUrl | Main product image | https://img14.360buyimg.com/n1/jfs/...jpg |
shopId | JD shop id | 1000004065 |
shopName | Shop name | OPPO京东自营旗舰店 |
vendorId | JD vendor (seller account) id | 1000004065 |
spuId | Product family id shared by all variants | 100266223099 |
categoryIds | JD category ids, level 1 to 3 | ["9987","653","655"] |
reviewCountText | Review count as JD shows it | 10万+ |
goodRatePercent | Positive review share in percent | 98 |
reviewTags | Review keywords JD extracted | ["小巧精致","手感一流"] |
installmentText | Interest-free installment offer | 12期免息 |
isSelfOperated | True when sold by JD itself (京东自营) | true |
isGlobal | True for cross-border JD Global products | false |
listedAt | When the product went on sale (ISO 8601) | 2026-05-18T16:00:03.000Z |
brand | Brand name (with includeDetails) | OPPO |
images | All product image URLs (with includeDetails) | ["https://img14.360buyimg.com/n1/..."] |
variantColor | The variant this SKU is (with includeDetails) | 白色 |
upc | UPC/EAN barcode(s), several joined by ; (with includeDetails) | 6942675408535;6942675422760 |
variantOptions | Variant option names and their values (with includeDetails) | {"外观": ["白色","黑色"]} |
scrapedAt | When the row was extracted (ISO 8601) | 2026-10-15T19:11:15.689Z |
Review data is aggregate only: the review count, the positive rate and the review tags. Individual review texts are not part of JD's public search and are not returned. Fields JD doesn't show for a product are null (smaller shops often have no review count or installment offer).
How to use JD.com Product Scraper
- Open JD.com Product Scraper in Apify Console and click Try for free.
- Enter one or more keywords in Keywords or JD search URLs, one per line. You can paste a JD search URL such as
https://search.jd.com/Search?keyword=机械键盘&enc=utf-8; the Actor reads itskeywordparameter. - Set Maximum results. It is a total for the whole run, shared evenly across your keywords.
- Turn on Include product details if you need the brand, all images, the barcode and the variants.
- Click Start, wait for the run to finish, then export the dataset as JSON, CSV, Excel, XML or HTML, or read it through the API.
Tips:
When you search several keywords, each one gets an even share of maxItems. If a keyword has fewer products than its share, the rest goes to the next keywords. A product that shows up for two keywords is returned once, for the first keyword.
A keyword JD has no products for (for example a typo or random letters) returns no rows for that keyword and a warning in the log. JD then shows unrelated fallback products, and the Actor deliberately skips them.
Runs normally need no proxy. If JD blocks a request, the Actor retries it on a fresh session, and switches to Apify residential proxy by itself when no proxy was set. You can also choose a proxy in the Proxy configuration field.
Input
| Field | Type | Required | Description |
|---|---|---|---|
keywords | array of strings | Yes | Search terms in Chinese or English, or JD search URLs (search.jd.com or re.jd.com with a keyword parameter). |
maxItems | integer | No | Maximum number of products in total across all keywords, 1-2000, default 50. |
includeDetails | boolean | No | Also open each product's mobile page for brand, images, barcode and variants. One extra request per product. Default false. |
proxyConfiguration | object | No | Proxy settings. Default: no proxy, with an automatic switch to Apify residential proxy if JD blocks. |
{"keywords": ["手机", "https://search.jd.com/Search?keyword=%E6%9C%BA%E6%A2%B0%E9%94%AE%E7%9B%98&enc=utf-8"],"maxItems": 100,"includeDetails": false,"proxyConfiguration": { "useApifyProxy": false }}
Output
Each product is one item in the run's dataset. These two items come from a real run with {"keywords": ["手机"], "maxItems": 3, "includeDetails": true} (lists shortened):
[{"id": "100266223099","sourceUrl": "https://re.jd.com/search?keyword=%E6%89%8B%E6%9C%BA&page=1","keyword": "手机","position": 1,"page": 1,"title": "OPPO Reno16 12GB+512GB 白色 2亿像素实况神机 5G小直屏 智能 拍照 学生 旗舰店手机 新款 国家补贴","price": 4198,"currency": "CNY","productUrl": "https://item.jd.com/100266223099.html","imageUrl": "https://img14.360buyimg.com/n1/jfs/t1/436065/18/21206/35608/6a103191F544252f9/008332032073e42e.jpg","shopId": "1000004065","shopName": "OPPO京东自营旗舰店","vendorId": "1000004065","spuId": "100266223099","categoryIds": ["9987","653","655"],"reviewCountText": "10万+","goodRatePercent": 98,"reviewTags": ["小巧精致","手感一流","时尚美观","尺寸适宜","使用简便"],"installmentText": "12期免息","isSelfOperated": true,"isGlobal": false,"listedAt": "2026-05-18T16:00:03.000Z","brand": "OPPO","images": ["https://img14.360buyimg.com/n1/jfs/t1/535240/4/2906/147332/6acf4574F1f7000b0/00837d07d0d8dd47.jpg","https://img14.360buyimg.com/n1/jfs/t1/529029/11/9246/90045/6aba04c3F6cae3fec/0083320320655327.png","https://img14.360buyimg.com/n1/jfs/t1/528180/17/10514/53279/6aba04c3Fc5d516ae/0083320320dfee22.jpg"],"variantColor": "白色","upc": "6942675408535;6942675422760","variantOptions": {"外观": ["白色","白色+Bubble套装","黑色","紫色"],"存储容量": ["12GB+256GB(简装版 无配件)","12GB+256GB","12GB+512GB","16GB+256GB"],"自定义": ["国家补贴15%至高减500","无国补资格选此项-全国补贴10%"]},"scrapedAt": "2026-10-15T19:11:15.689Z"},{"id": "10213564240483","sourceUrl": "https://re.jd.com/search?keyword=%E6%89%8B%E6%9C%BA&page=1","keyword": "手机","position": 2,"page": 1,"title": "小米(MI) 17pro max 16GB+512GB 24期免息可选 2026新品上市5G红米手机Note15大电池龙晶玻璃抗摔补贴 天青蓝 8GB+256GB+送蓝牙耳机 24期免息【三年延保+碎屏险+运费险】","price": 1998,"currency": "CNY","productUrl": "https://item.jd.com/10213564240483.html","imageUrl": "https://img14.360buyimg.com/n1/jfs/t1/405061/34/5998/108780/69b9266fFcaf8b8af/00833203204def60.jpg","shopId": "184088523","shopName": "慕霖轩手机专营店","vendorId": "184088523","spuId": "10034174409770","categoryIds": ["9987","653","655"],"reviewCountText": "1000+","goodRatePercent": 99,"reviewTags": ["时尚美观","手感一流","功能强大","高端大气","精美漂亮"],"installmentText": "24期免息","isSelfOperated": false,"isGlobal": false,"listedAt": "2026-03-17T10:20:53.000Z","brand": "小米(MI)","images": ["https://img14.360buyimg.com/n1/jfs/t1/405061/34/5998/108780/69b9266fFcaf8b8af/00833203204def60.jpg","https://img14.360buyimg.com/n1/jfs/t1/405507/19/2810/118414/69b92671F8fb8aa99/0083320320e4ec18.png","https://img14.360buyimg.com/n1/jfs/t1/404300/16/10041/97790/69b92670Fb9bde0b9/0083320320d56066.jpg"],"variantColor": "天青蓝 8GB+256GB+送蓝牙耳机","upc": null,"variantOptions": {"外观": ["子夜黑 8GB+256GB+送蓝牙耳机","雪松白 8GB+256GB+送蓝牙耳机","天青蓝 8GB+256GB+送蓝牙耳机","子夜黑 12GB+256GB+送蓝牙耳机"],"存储容量": ["24期免息【三年延保+碎屏险+运费险】"]},"scrapedAt": "2026-10-15T19:11:19.917Z"}]
You can download the dataset as JSON, CSV, Excel, XML, RSS or an HTML table, or fetch it from the Apify API.
How much does it cost to scrape JD.com?
JD.com Product Scraper is charged per result. You pay only for the products returned, and maxItems caps how many that can be, so you always know the most a run can cost. Product details (includeDetails) do not add a separate charge, but runs take longer because each product needs one more page. See the Pricing tab for the current price.
Use with AI agents (MCP)
Connect JD.com Product Scraper to Claude, Cursor or any MCP client through the Apify MCP server:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?tools=axiomworks/jd-com-product-scraper"}}}
Example prompts:
- "Find the 30 cheapest JD self-operated listings for 'iphone 16' on JD.com and list price, shop and review count."
- "Search JD.com for 机械键盘 with product details and give me brand, UPC and variant options for the top 10."
- "Compare positive review rates of the top 50 JD.com results for 手机 by shop."
Integrations and API
Run JD.com Product Scraper from your own code with the Apify API. Set APIFY_TOKEN to your Apify API token (send it in the Authorization header, never in the URL).
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("axiomworks/jd-com-product-scraper").call(run_input={"keywords": ["手机"], "maxItems": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["price"], item["shopName"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('axiomworks/jd-com-product-scraper').call({ keywords: ['手机'], maxItems: 50 });const { items } = await client.dataset(run.defaultDatasetId).listItems();
cURL
curl -X POST "https://api.apify.com/v2/acts/axiomworks~jd-com-product-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords": ["手机"], "maxItems": 50}'
The Integrations tab connects the Actor to Make, Zapier, n8n, Google Sheets, Slack and webhooks, so you can send new JD.com prices to a spreadsheet or trigger a workflow when a run finishes. Schedule a run daily or hourly to build a price history.
FAQ
Where do the results come from? From JD's public product search (京东热卖, re.jd.com), which JD serves to visitors who are not logged in. Its ranking includes promoted products, so the order can differ from what a logged-in user sees on search.jd.com. Product details come from JD's public mobile product pages (item.m.jd.com).
Is the price the price I would pay? It is the price JD shows logged-out visitors on its public search, in Chinese yuan. Coupons, PLUS member prices and regional subsidies that apply after login or at checkout are not included.
Can I get individual reviews?
No. JD only shows aggregate review data publicly: the review count (reviewCountText), the positive rate (goodRatePercent) and review tags (reviewTags). Individual review texts need a logged-in session, which this Actor never uses.
Why is reviewCountText a text and not a number?
JD rounds review counts into texts such as 200+ or 10万+ (100,000+). The Actor keeps JD's text exactly so nothing is invented. 万 means 10,000.
Why did my keyword return 0 results? JD found no products for it. For an unknown term JD shows unrelated fallback products, which the Actor skips on purpose. Check the spelling, try the Chinese term, or use a broader keyword.
How many products can I get per keyword? JD lists up to about 160 pages of 48 products for a keyword, and the Actor stops when a page adds nothing new. For niche keywords the later pages contain related products that JD adds to fill the list.
Can I scrape a single product URL? Not on its own: the real price is only in JD's search results, so the Actor works from keywords. Search for the product name or model number instead.
Do I need a proxy? Usually not. If JD blocks a request, the Actor retries on a fresh session and, when no proxy is set, switches to Apify residential proxy automatically.
Is it legal to scrape JD.com?
JD.com Product Scraper collects only publicly available product information that JD shows to any visitor without logging in: product titles, prices, shops and aggregate review numbers. It does not log in, does not collect personal data and does not bypass any CAPTCHA. You are responsible for how you use the data, including JD's terms and the laws that apply to you. If you are unsure, ask a lawyer.
JD.com Product Scraper is an independent tool. It is not affiliated with, endorsed by or sponsored by JD.com.
Related Actors
| Actor | What it does |
|---|---|
| Shopee Search Results Scraper | Product search results from Shopee, the Southeast Asian marketplace. |
Feedback
Found a bug or need a field that isn't here? Open an issue on the Issues tab and we'll look at it.