JD.com Product Scraper
Pricing
from $0.45 / 1,000 item extracteds
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
Maintained by CommunityActor 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?
| Field | Description |
|---|---|
sku | JD.com numeric product SKU. |
url | Product detail URL used for extraction. |
title | Clean product title from the item page. |
shortTitle | Browser/page title. |
brandId | Brand identifier when exposed in page scripts. |
brandName | Brand name when exposed. |
shopId | JD.com shop ID when exposed. |
vendorId | Vendor identifier when exposed. |
shopName | Shop or seller name visible on the page. |
categoryIds | JD.com category identifiers from page scripts. |
categoryNames | Category names from breadcrumbs. |
price | Public price when the JD.com endpoint or page exposes it. |
listPrice | List/reference price when exposed. |
currency | Currency code, currently CNY. |
imageUrls | Product and page image URLs. |
mainImageUrl | First product image URL. |
commentCount | Review/comment count when public summary endpoint responds. |
goodRate | Positive rating ratio when exposed. |
averageScore | Average review score when exposed. |
productStatus | Availability/status hint such as listed. |
metaDescription | Page meta description. |
breadcrumbs | JD.com breadcrumb labels. |
rawApi | Raw public price/comment API snippets, included only when Fetch price and review APIs is enabled. |
scrapedAt | ISO 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
- Open the actor on Apify.
- Paste one or more JD.com item URLs into JD.com product URLs.
- Or paste numeric SKU IDs into JD.com SKU IDs.
- Set Maximum products to a safe limit.
- Leave Fetch price and review APIs enabled if you want optional enrichment.
- Run the actor.
- 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>.htmlURLs 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 ApifyClientimport osclient = 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.
Why not support keyword search?
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.
Related scrapers
You may also need marketplace and ecommerce actors from Automation Lab.
- https://apify.com/automation-lab/amazon-product-scraper
- https://apify.com/automation-lab/google-shopping-scraper
- https://apify.com/automation-lab/competitor-price-monitor
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.