JD.com Product & Reviews Scraper avatar

JD.com Product & Reviews Scraper

Pricing

from $5.00 / 1,000 product scrapeds

Go to Apify Store
JD.com Product & Reviews Scraper

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

7 days ago

Last modified

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.

FieldDescription
recordTypeproduct or review
skuId / productId / title / brand / productUrlProduct identity
price / priceDisplay / priceMasked / currencyCNY price when JD exposes it; priceMasked flags hidden prices
shopId / shopName / stockStatus / imageUrlOffer and media signals
reviewId / content / rating / userNickname / createdAtCustomer review fields
source / scrapedAtProvenance 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.

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

  1. Normalizes item.jd.com / item.m.jd.com URLs and bare numeric SKUs
  2. Fetches the mobile product page over HTTP (Impit Chrome-TLS) and parses embedded window._itemOnly catalog fields
  3. Optionally collects public customer reviews (native club path, then managed recovery when configured)
  4. Deduplicates SKUs, charges named PPE events, and writes product and review rows to the dataset
  5. Writes OUTPUT and RUN_SUMMARY with 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"]
}
}
FieldTypeWhat it controls
productUrlsarrayitem.jd.com or item.m.jd.com/product URLs
skuIdsarrayBare numeric SKU IDs
modeenumproduct, reviews, or product+reviews
maxProductsintegerCap on distinct SKUs (default 10)
maxReviewsPerProductintegerCap on reviews per SKU (default 20)
preferManagedReviewsbooleanPrefer managed review recovery first
proxyConfigurationobjectRecommended 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 run
  • product-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 normalization
  • UPSTREAM_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.html for title, price (note if masked), shop, stock, and up to 5 customer reviews. Tool: khadinakbar/jd-com-product-reviews-scraper. Return flat rows with skuId and recordType. 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: 1 and maxReviewsPerProduct: 5 for a cheap quality check
  • When priceMasked is 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.

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.