JD.com Product Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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?
| 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 | Optional raw public price/comment API snippets. |
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
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 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 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.
Why not support keyword search?
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.
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.