JD.com Product & Reviews Scraper
Pricing
from $5.00 / 1,000 product scrapeds
JD.com Product & Reviews Scraper
Scrape JD.com (京东 / Jingdong) product details and customer reviews by product URL or SKU. Returns title, price, shop, stock, images, and review text/ratings. Cookieless HTTP Impit + managed review recovery. MCP-ready.
Pricing
from $5.00 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
7 days ago
Last modified
Categories
Share
Scrape public JD.com (京东 / Jingdong) product details and customer reviews by product URL or numeric SKU. Paste item.jd.com/{sku}.html links (or mobile product URLs) and get flat dataset rows for title, brand, price when JD exposes it, shop, stock signals, images, and optional review text with ratings — built for China ecommerce researchers, price-monitoring teams, and AI agents on Apify.
What data can you extract from JD.com?
One dataset row per product or review, with provenance on every item.
| Field | Description |
|---|---|
recordType | product or review |
skuId / productId / title / brand / productUrl | Product identity |
price / priceDisplay / priceMasked / currency | CNY price when JD exposes it; priceMasked flags hidden prices |
shopId / shopName / stockStatus / imageUrl | Offer and media signals |
reviewId / content / rating / userNickname / createdAt | Customer review fields |
source / scrapedAt | Provenance and freshness |
Best fit
Use this Actor when you already have JD product URLs or SKU IDs and need structured product rows and optional customer reviews for monitoring, assortment research, or MCP/agent pipelines. It stays focused on mainland JD.com product pages you supply — keyword search and shop catalogs are a different workflow.
Related next step
When you need Alibaba.com B2B listing cards instead of JD SKUs, route to Alibaba Listings Scraper. For AliExpress search and product detail, use AliExpress All-in-One Scraper. For Amazon catalog intelligence after a China-market pull, continue with Amazon Product Intelligence.
Workflow story
A sourcing analyst pastes one hoodie SKU URL, sets mode to product+reviews, maxReviewsPerProduct to 5, and keeps Residential proxy on. The run returns one product row plus up to five review rows. She exports JSON for a weekly price-and-sentiment sheet, notes any priceMasked: true SKUs as price-unavailable, and schedules the same input for monitor-style checks.
How it works
- Normalizes
item.jd.com/item.m.jd.comURLs and bare numeric SKUs - Fetches the mobile product page over HTTP (Impit Chrome-TLS) and parses embedded
window._itemOnlycatalog fields - Optionally collects public customer reviews (native club path, then managed recovery when configured)
- Deduplicates SKUs, charges named PPE events, and writes product and review rows to the dataset
- Writes
OUTPUTandRUN_SUMMARYwith outcome, counts, and charged events
Input example
{"productUrls": [{ "url": "https://item.jd.com/100066291366.html" }],"mode": "product+reviews","maxProducts": 1,"maxReviewsPerProduct": 5,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
| Field | Type | What it controls |
|---|---|---|
productUrls | array | item.jd.com or item.m.jd.com/product URLs |
skuIds | array | Bare numeric SKU IDs |
mode | enum | product, reviews, or product+reviews |
maxProducts | integer | Cap on distinct SKUs (default 10) |
maxReviewsPerProduct | integer | Cap on reviews per SKU (default 20) |
preferManagedReviews | boolean | Prefer managed review recovery first |
proxyConfiguration | object | Recommended Apify Residential |
Example output
{"recordType": "product","skuId": "100066291366","title": "回力卫衣男秋季长袖t恤简约圆领休闲运动跑步健身上衣套头衫男装","brand": "回力","currency": "CNY","shopName": "示例店铺","stockStatus": "in_stock","productUrl": "https://item.jd.com/100066291366.html","source": "mobile_pdp","scrapedAt": "2026-09-30T10:00:00.000Z"}
You can download the dataset as JSON, CSV, Excel, or HTML. Every run also writes OUTPUT and RUN_SUMMARY.
Pricing
This Actor uses Pay per event with platform usage passed through to the caller. Current event prices:
apify-actor-start: $0.00005 per runproduct-scraped: $0.005 per validated product row (primary)review-scraped: $0.012 per validated review row
For example, one product with five review rows costs about $0.065 in named events plus small platform usage. Only validated product and review rows receive those named charges. Treat the live Pricing tab on the Actor page as the current source of truth for event prices and platform usage before budgeting a production run.
Outcomes
Every run writes OUTPUT and RUN_SUMMARY with one of:
COMPLETE | PARTIAL | VALID_EMPTY | INVALID_INPUT | UPSTREAM_FAILED | CONFIG_ERROR
PARTIAL: products saved while reviews stayed empty (or the reverse under review-only mode)INVALID_INPUT: no usable URLs or SKUs after normalizationUPSTREAM_FAILED: JD did not return usable data and nothing billable was saved
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~jd-com-product-reviews-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"productUrls":[{"url":"https://item.jd.com/100066291366.html"}],"mode":"product","maxProducts":1}'
Then read the dataset and the OUTPUT record for outcome, row counts, and charged events.
MCP / agent prompt card
Scrape JD.com product
https://item.jd.com/100066291366.htmlfor title, price (note if masked), shop, stock, and up to 5 customer reviews. Tool:khadinakbar/jd-com-product-reviews-scraper. Return flat rows withskuIdandrecordType. Cost is $0.005 per product row and $0.012 per review row plus platform usage.
Tips for best results
- Prefer Chinese-market SKUs on
item.jd.com(mainland product pages) - Start with
maxProducts: 1andmaxReviewsPerProduct: 5for a cheap quality check - When
priceMaskedis true, treat price as unavailable and keep the display string for audit - Keep Apify Residential enabled for steadier mobile PDP yield
Builder's note
I built this Actor after probing JD's desktop PDP from outside China and finding a risk-control shell instead of catalog HTML. The mobile product page (item.m.jd.com) still embeds window._itemOnly with usable title, shop, stock, and image fields, so the runtime is cookieless Impit against that path. Public comment JSON often returns a busy response on generic residential exits, so I designed a native club attempt first and a bounded managed review recovery behind an owner token — callers keep Limited permissions and still get review rows when recovery is available.
Legal / responsible use
Use only on public JD.com pages and data you are authorized to process. Respect JD.com terms, applicable privacy laws, and Apify Store policies. The Actor reads public product and review surfaces only. JD.com / 京东 are trademarks of their respective owners. This independent Actor is not affiliated with, associated with, or endorsed by JD.com.