JD.com Product Scraper avatar

JD.com Product Scraper

Pricing

from $0.45 / 1,000 item extracteds

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

from $0.45 / 1,000 item extracteds

Rating

5.0

(1)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

0

Bookmarked

33

Total users

5

Monthly active users

2 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, validates them early, and deduplicates equivalent inputs by SKU.
  • 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 never saves or charges an item event for an empty verification-page result.
  • 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.
rawApiRaw public price/comment API snippets, included only when Fetch price and review APIs is enabled.
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

This option is enabled by default for price-monitoring workflows. When enabled, the actor attempts public JD.com price and review summary endpoints and includes available raw API snippets in rawApi. Set it to false to skip optional enrichment when the product page loads; rawApi is then omitted.

If those endpoints timeout, redirect, or block, the actor still saves useful product page fields. When the desktop product page is a JD verification or generic response, the actor immediately tries the public mobile detail page and then bounded public API fallback instead of repeating the same blocked route. If neither route returns useful product data, the run fails clearly and creates no empty row or item charge for that product.

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 item.jd.com/<sku>.html URLs or numeric SKU IDs. Other hosts, search URLs, and malformed values are rejected with a clear reason.
  • 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 --transport http apify-jd-com-product-scraper https://mcp.apify.com/?tools=automation-lab/jd-com-product-scraper

Claude Desktop setup

Add this JSON to your Claude Desktop MCP configuration:

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

Cursor setup

Add the same MCP server URL as a remote HTTP server in Cursor Settings → MCP.

VS Code setup

Add the same MCP server URL as an HTTP MCP server in your VS Code MCP configuration.

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; useful page-level extraction still continues.
  • A verification page with no useful public API fallback fails the run rather than producing a misleading empty result.
  • 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 useful page fields so you can see the product identity and status. If JD.com exposes neither useful page data nor useful fallback API data, the run fails instead of saving and charging for an empty row.

Why was my URL skipped?

The actor accepts numeric SKUs and item detail URLs on item.jd.com only.

Use a URL like https://item.jd.com/100012043978.html or provide 100012043978 in skus. Unsupported hosts, search URLs, and malformed values are rejected before scraping.

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

The MVP prioritizes reliable URL/SKU monitoring.

Data handling and dependencies

Extraction is deterministic and does not use AI models or send data to an AI provider. The Actor requests public JD.com product pages and public price/review-summary endpoints. Cloud runs use Apify Residential Proxy with a China exit by default; users do not provide proxy credentials.

Results and input remain in the run's Apify storage under your account retention settings. The Actor creates no external result cache. Logs contain operational counts, public SKUs/URLs, and errors—not proxy credentials or private account data. You can delete runs, datasets, input records, and logs using Apify storage controls.

Legality

This actor extracts publicly available product information from JD.com pages. It is an independent tool and is not affiliated with, endorsed by, or sponsored by JD.com.

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.