JD.com Product Scraper avatar

JD.com Product Scraper

Pricing

Pay per event

Go to Apify Store
JD.com Product Scraper

JD.com Product Scraper

Extract JD.com product details, prices, images, shops, categories, availability, and review signals from public item URLs or SKU IDs.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

Extract public JD.com product data from item URLs or SKU IDs.

The actor is built for ecommerce sourcing, retail intelligence, and competitor price-monitoring teams that need repeatable product snapshots from JD.com without manually opening every product page.

It focuses on stable JD.com detail pages first. Search pages can redirect or throttle, so keyword discovery is intentionally not part of the default MVP.

What does JD.com Product Scraper do?

JD.com Product Scraper loads public product detail pages such as https://item.jd.com/100012043978.html.

It saves one dataset row per product.

Each row can include title, SKU, canonical URL, brand/shop IDs, shop name, category breadcrumbs, images, current public price when available, review summary signals when available, and scrape timestamp.

Who is it for?

  • 🛒 Ecommerce sourcing teams comparing products across China retail channels.
  • 📊 Competitor price-monitoring analysts tracking JD.com SKU changes.
  • 🧾 Catalog operations teams enriching internal SKU lists with public JD.com metadata.
  • 🧪 Data teams building scheduled product availability checks.
  • 🤖 Automation teams feeding dashboards, alerts, and BI warehouses.

Why use this actor?

  • It accepts both product URLs and numeric SKU IDs.
  • It normalizes SKU IDs into JD.com item URLs automatically.
  • It uses HTTP extraction for low overhead instead of a browser-heavy workflow.
  • It stores structured fields ready for CSV, JSON, Excel, API, or database export.
  • It keeps the first-run input small and inexpensive.

What data can I extract?

FieldDescription
skuJD.com numeric product SKU.
urlProduct detail URL used for extraction.
titleClean product title from the item page.
shortTitleBrowser/page title.
brandIdBrand identifier when exposed in page scripts.
brandNameBrand name when exposed.
shopIdJD.com shop ID when exposed.
vendorIdVendor identifier when exposed.
shopNameShop or seller name visible on the page.
categoryIdsJD.com category identifiers from page scripts.
categoryNamesCategory names from breadcrumbs.
pricePublic price when the JD.com endpoint or page exposes it.
listPriceList/reference price when exposed.
currencyCurrency code, currently CNY.
imageUrlsProduct and page image URLs.
mainImageUrlFirst product image URL.
commentCountReview/comment count when public summary endpoint responds.
goodRatePositive rating ratio when exposed.
averageScoreAverage review score when exposed.
productStatusAvailability/status hint such as listed.
metaDescriptionPage meta description.
breadcrumbsJD.com breadcrumb labels.
rawApiOptional raw public price/comment API snippets.
scrapedAtISO timestamp for the extraction.

How much does it cost to scrape JD.com products?

This actor uses pay-per-event pricing.

You pay a small start fee per run and a per-product fee for each saved product row.

Keep test runs small while validating your SKU list.

For scheduled monitoring, batch products into sensible groups so every run produces useful output.

How to use it

  1. Open the actor on Apify.
  2. Paste one or more JD.com item URLs into JD.com product URLs.
  3. Or paste numeric SKU IDs into JD.com SKU IDs.
  4. Set Maximum products to a safe limit.
  5. Leave Fetch price and review APIs enabled if you want optional enrichment.
  6. Run the actor.
  7. Export the dataset as JSON, CSV, Excel, or via API.

Input options

JD.com product URLs

Use public product item pages.

Example:

[
{ "url": "https://item.jd.com/100012043978.html" }
]

JD.com SKU IDs

Use numeric JD.com SKU IDs.

Example:

["100012043978"]

The actor converts that SKU to:

https://item.jd.com/100012043978.html

Maximum products

Use this field to cap output volume.

The prefill is intentionally low so the first run is cheap.

Fetch price and review APIs

When enabled, the actor attempts public JD.com price and review summary endpoints.

If those endpoints timeout, redirect, or block, the actor still saves the product page fields.

Output example

{
"sku": "100012043978",
"url": "https://item.jd.com/100012043978.html",
"title": "茅台飞天 53%vol 500ml 贵州茅台酒(带杯)",
"shopName": "贵州茅台",
"categoryNames": ["酒类", "白酒", "茅台(MOUTAI)"],
"price": null,
"currency": "CNY",
"mainImageUrl": "https://img13.360buyimg.com/n1/...jpg",
"productStatus": "listed",
"scrapedAt": "2026-06-20T22:00:00.000Z"
}

Tips for reliable runs

  • Use exact JD.com item URLs or SKU IDs.
  • Avoid keyword search URLs for now; detail pages are the supported path.
  • Start with 1-5 products, then scale after reviewing output quality.
  • Keep scheduled runs focused on products you actually monitor.
  • If a product disappears from JD.com, the actor may skip it or mark it unavailable.

Integrations

Use this actor in repeatable ecommerce workflows.

  • Send dataset rows to Google Sheets for daily price checks.
  • Push JSON output into a warehouse for SKU-level trend analysis.
  • Trigger alerts when a product status or price changes.
  • Combine JD.com rows with other marketplace scrapers in a catalog monitor.
  • Feed product images and titles into enrichment or matching pipelines.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/jd-com-product-scraper').call({
skus: ['100012043978'],
maxItems: 1,
});
console.log(run.defaultDatasetId);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/jd-com-product-scraper').call(run_input={
'skus': ['100012043978'],
'maxItems': 1,
})
print(run['defaultDatasetId'])

cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~jd-com-product-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"skus":["100012043978"],"maxItems":1}'

MCP usage

Use the Apify MCP server with Claude Code or Claude Desktop to run this actor from your AI workflow.

MCP endpoint:

https://mcp.apify.com/?tools=automation-lab/jd-com-product-scraper

Claude Code setup:

$claude mcp add apify-jd-com-product-scraper https://mcp.apify.com/?tools=automation-lab/jd-com-product-scraper

Claude Desktop JSON config:

{
"mcpServers": {
"apify-jd-com-product-scraper": {
"url": "https://mcp.apify.com/?tools=automation-lab/jd-com-product-scraper"
}
}
}

Example prompts:

  • "Run the JD.com Product Scraper for SKU 100012043978 and summarize the catalog fields."
  • "Monitor these JD.com product URLs and tell me which rows have missing prices."
  • "Export the latest JD.com scraper dataset as CSV."

Scheduling

For monitoring, schedule the actor daily or weekly.

Use a stable SKU list.

Export each run to your dashboard or warehouse.

Compare rows by sku and scrapedAt.

Limitations

  • The actor supports public product detail pages.
  • Keyword search pages are not the default workflow.
  • Member-only, cart-only, coupon, login-only, or personalized prices are excluded.
  • Some price/review endpoints may occasionally fail; page-level extraction still continues.
  • JD.com can change page markup, so monitor critical production workflows.

FAQ and troubleshooting

Why is price empty?

JD.com may not expose a public price for that SKU in the current region or request context, or the optional price endpoint may be temporarily unavailable.

The actor still saves page fields so you can see the product identity and status.

Why was my URL skipped?

The actor needs a JD.com SKU in the URL or input.

Use a URL like https://item.jd.com/100012043978.html or provide 100012043978 in skus.

Search pages may redirect or behave differently from product detail pages.

The MVP prioritizes reliable URL/SKU monitoring.

Legality

This actor extracts publicly available product information from JD.com pages.

You are responsible for using the data lawfully and respecting JD.com terms, robots policies, applicable laws, and privacy requirements.

Do not scrape private account data, checkout data, or login-only content.

You may also need marketplace and ecommerce actors from Automation Lab.

Changelog

0.1

Initial URL/SKU-based JD.com product detail scraper.

Support

If a public JD.com product page fails, include the URL, SKU, run ID, and whether optional API details were enabled.