JD.com API
Search JD.com items by keyword to obtain product details, public reviews, pricing, and shop catalogs.
Retrieve individual item information using numeric IDs, every SKU of one product with skus, or the images in its description section with description_images; an item identifier and a shop identifier are not interchangeable. Prices and availability are request-time observations, not personal checkout or settlement terms.
Platform availability
- 24h health
- Normal
Last 30 days
Available capabilities
Each JD.com action, what it does, its price and its health over the last 24 hours. Open an action for its parameters, response fields and code samples.
| Capability | What it does | Per 1,000 | 24-hour health |
|---|---|---|---|
Searchsearch | Look up JD.com products for a search phrase and get up to five results with price, sales and review figures as displayed, positive-rating share, shop and promotion tags. | $1.39 per 1,000 requests | Normal |
Product detailsproduct_detail | Get the full JD.com product record for one item_id, including brand, model, price and original price, stock state, variants, barcode, warranty and JD Logistics status. | $1.39 per 1,000 requests | Normal |
Reviewsreviews | Read up to 10 buyer reviews of a JD.com product, with rating, follow-up review, variant bought, helpful votes, photos and the reviewer's PLUS status and purchase count. | $1.39 per 1,000 requests | Temporarily unavailable |
Shopshop | Browse up to 24 products from one JD.com store, each with item ID, title, price, currency and availability. | $1.39 per 1,000 requests | Temporarily unavailable |
Product priceproduct_price | Check the current displayed price and availability of one JD.com product by item_id, with the stated reason when it cannot be bought. | $1.39 per 1,000 requests | Temporarily unavailable |
All SKUs with pricesskus | List every SKU of a JD.com product from any one of its SKUs in item_id, one row per color, size or capacity, with price, stock state and purchase limit. | $1.39 per 1,000 requestsEach row counts as one call | Normal |
Description imagesdescription_images | Get every image in the description section of a JD.com product, top to bottom, as full-size image links numbered by position, with the total in image_count. | $1.39 per 1,000 requests | Normal |
Open a capability for its parameters, response fields, code samples and trial.
What does each JD.com action accept?
Each answer below pairs one callable action with its real inputs. Parameter meanings and allowed values are action-specific; a familiar name does not carry the same meaning across every platform.
Official sources are linked only to clarify the platform term beside them. They do not imply platform authorization or endorsement, and they do not add official-site features to the EveryInfra API contract.
| Action | Required | Optional | Delivery | Limit | Per 1,000 | Response fields |
|---|---|---|---|---|---|---|
searchSearch Look up JD.com products for a search phrase and get up to five results with price, sales and review figures as displayed, positive-rating share, shop and promotion tags. Pass the returned | keyword | — | Sync delivery | Catalog values: defaultLimit=5, maxLimit=5. A limit can control pages or per-parent expansion for some actions, so it is not always a final row count. | $1.39 per 1,000 requests | item_id · url · title · short_title · price · currency · sold_count · review_count · good_rate · shop_id · shop_name · shop_url · is_jd_self · promotion · sell_point · category_ids · image_url · platform |
product_detailProduct details Get the full JD.com product record for one | item_id | — | Sync delivery | — | $1.39 per 1,000 requests | item_id · url · title · price · price_display · price_masked · currency · available · unavailable_reason · shop_id · shop_name · shop_url · category_id · category · stock · stock_state · color · size · weight · image_url · image_urls · is_jd_self · brand · model · original_price · upc · warranty · product_area · is_jd_express · variant_count · variants · platform |
reviewsReviews Read up to 10 buyer reviews of a JD.com product, with rating, follow-up review, variant bought, helpful votes, photos and the reviewer's PLUS status and purchase count. Nicknames appear as JD shows them, possibly partly masked; the batch is not a complete history and is not cleared for republishing. | item_id | — | Sync delivery | Catalog values: defaultLimit=10, maxLimit=10. A limit can control pages or per-parent expansion for some actions, so it is not always a final row count. | $1.39 per 1,000 requests | id · item_id · text · review_append · rating · rating_scale · posted_at · color · size · useful_count · images · author_name · author_avatar_url · author_is_plus · buy_count · platform |
shopShop Browse up to 24 products from one JD.com store, each with item ID, title, price, currency and availability. Pass the shop's numeric | shop_id | — | Sync delivery | Catalog values: defaultLimit=24, maxLimit=24. A limit can control pages or per-parent expansion for some actions, so it is not always a final row count. | $1.39 per 1,000 requests | item_id · url · title · price · currency · shop_id · shop_name · shop_url · image_url · available · platform |
product_priceProduct price Check the current displayed price and availability of one JD.com product by | item_id | — | Sync delivery | — | $1.39 per 1,000 requests | item_id · url · price · currency · available · unavailable_reason · platform |
skusAll SKUs with prices List every SKU of a JD.com product from any one of its SKUs in | item_id | — | Sync delivery | Catalog values: defaultLimit=100, maxLimit=100. A limit can control pages or per-parent expansion for some actions, so it is not always a final row count. | $1.39 per 1,000 requestsEach row counts as one call | item_id · url · product_id · is_requested · title · properties · color · size · price · currency · on_sale · in_stock · stock_state · stock · purchase_limit · delivery_promise · is_presale · is_government_subsidy · is_billion_subsidy · is_flash_sale · promo_tags · upc · brand · image_url · shop_id · shop_name · is_jd_self · variant_count · platform |
description_imagesDescription images Get every image in the description section of a JD.com product, top to bottom, as full-size image links numbered by | item_id | — | Sync delivery | — | $1.39 per 1,000 requests | item_id · position · image_url · image_count · platform |
What do the JD.com search parameters mean?
Look up JD.com products for a search phrase and get up to five results with price, sales and review figures as displayed, positive-rating share, shop and promotion tags. Pass the returned item_id to the detail, review or price actions; order and coverage reflect one response, not the full catalog.
keywordRequired- Specifies the search query for JD.com
search. This must be a search phrase, not an item ID or shop selector, and matching results do not imply exhaustive catalog coverage.JD.com JOS and JD Union: Product and SKU Objects — JD.com's authorized open-platform and affiliate materials describe product and SKU objects such as names, primary images, categories, displayed prices, logistics, self-operated status, and order-volume signals. This terminology does not prove that every webpage or field is available, that a caller has access, or that EveryInfra implements the official interface. · Checked
What do the JD.com product_detail parameters mean?
Get the full JD.com product record for one item_id, including brand, model, price and original price, stock state, variants, barcode, warranty and JD Logistics status. When price_masked is true the displayed price is not exact, and a null stock means not shown, not zero.
item_idRequired- Identifies one JD.com product for
product_detail,reviews, orproduct_price. Pass the digit string returned bysearchor the canonical legacy URLhttps://item.jd.com/<digits>.htmlwithout a query or fragment; arbitrary, opaque, or cross-host URLs are not accepted as equivalent item identifiers.JD.com: Displayed-price Labels and Conditional Purchase Prices — JD.com distinguishes a real-time displayed label from final item prices and member, new-user, regional, or targeted benefits, while noting that some comparison information can be delayed or incomplete. Treat a returned price as the visible request-time snapshot, not a personal transaction price, settlement amount, or guarantee of absolute accuracy. · Checked
What do the JD.com reviews parameters mean?
Read up to 10 buyer reviews of a JD.com product, with rating, follow-up review, variant bought, helpful votes, photos and the reviewer's PLUS status and purchase count. Nicknames appear as JD shows them, possibly partly masked; the batch is not a complete history and is not cleared for republishing.
Full API reference: parameters, code samples, response example and health →item_idRequired- Identifies one JD.com product for
product_detail,reviews, orproduct_price. Pass the digit string returned bysearchor the canonical legacy URLhttps://item.jd.com/<digits>.htmlwithout a query or fragment; arbitrary, opaque, or cross-host URLs are not accepted as equivalent item identifiers.JD.com: Review and Photo-posting Rules — JD.com distinguishes reviews, follow-up reviews, images, replies, moderation, folded content, and masked nicknames. Public visibility can depend on review and privacy rules, so a returned set must not be described as the complete review history or as permission to redistribute reviewer content. · CheckedJD.com User Service Agreement (Effective January 20, 2026): Public Reviews and Access Boundaries — The JD.com User Service Agreement says review information is public and JD.com may use it under the agreement. It also says personal information generally is not disclosed to third parties without permission and prohibits stealing personal information or infringing lawful rights. This supports access and permission boundaries only; it does not grant EveryInfra or callers rights to redistribute, train on, or commercially reuse text, images, or user information. · Checked
What do the JD.com shop parameters mean?
Browse up to 24 products from one JD.com store, each with item ID, title, price, currency and availability. Pass the shop's numeric shop_id or its mall.jd.com link; the results do not prove the store's full inventory.
shop_idRequired- Identifies the shop used by the
shopaction. Pass a digit string or the canonical legacy URLhttps://mall.jd.com/index-<digits>.htmlwithout a query or fragment; cross-host URLs are rejected, and this selector does not accept a productitem_id.JD.com JSSDK: Separate SKU and Shop Targets — JD.com's redirect documentation uses `skuId` for a product-detail target and `shopId` for a shop-detail target. This supports keeping product and shop identifiers separate; it does not establish webpage collection rights, supported URL parsing, complete shop catalogs, or EveryInfra request behavior. · Checked
What do the JD.com product_price parameters mean?
Check the current displayed price and availability of one JD.com product by item_id, with the stated reason when it cannot be bought. This is a point-in-time reading, not a personal checkout price, member discount or settled amount.
item_idRequired- Identifies one JD.com product for
product_detail,reviews, orproduct_price. Pass the digit string returned bysearchor the canonical legacy URLhttps://item.jd.com/<digits>.htmlwithout a query or fragment; arbitrary, opaque, or cross-host URLs are not accepted as equivalent item identifiers.JD.com: Displayed-price Labels and Conditional Purchase Prices — JD.com distinguishes a real-time displayed label from final item prices and member, new-user, regional, or targeted benefits, while noting that some comparison information can be delayed or incomplete. Treat a returned price as the visible request-time snapshot, not a personal transaction price, settlement amount, or guarantee of absolute accuracy. · Checked
What do the JD.com skus parameters mean?
List every SKU of a JD.com product from any one of its SKUs in item_id, one row per color, size or capacity, with price, stock state and purchase limit. The first row is the SKU you sent, and price is what a signed-out buyer sees before checkout coupons.
item_idRequired- Identifies one JD.com product for
skusthrough any one of its SKUs. Pass the digit string, a JD product link (https://item.jd.com/<digits>.html,https://item.m.jd.com/product/<digits>.html, or awqitem.jd.compage opened inside WeChat), or share text that contains exactly one such link; tracking parameters in the link do not matter. Short links such as3.cnoru.jd.comare not accepted: open them in a browser first and copy the product page link.JD.com: Displayed-price Labels and Conditional Purchase Prices — JD.com distinguishes a real-time displayed label from final item prices and member, new-user, regional, or targeted benefits, while noting that some comparison information can be delayed or incomplete. Treat a returned price as the visible request-time snapshot, not a personal transaction price, settlement amount, or guarantee of absolute accuracy. · Checked
What do the JD.com description_images parameters mean?
Get every image in the description section of a JD.com product, top to bottom, as full-size image links numbered by position, with the total in image_count. Pass any of the product's SKUs or a product link in item_id; the gallery stays in product_detail, and a product without description images returns an empty result that is not charged.
item_idRequired- Identifies the JD.com product whose description images you want, through any one of its SKUs. Pass the digit string, a JD product link (
https://item.jd.com/<digits>.html,https://item.m.jd.com/product/<digits>.html, or awqitem.jd.compage opened inside WeChat), or share text that contains exactly one such link; tracking parameters in the link do not matter. Short links such as3.cnoru.jd.comare not accepted: open them in a browser first and copy the product page link.
How to use the JD.com API
- 01Read the public catalog and choose a platform action.
- 02Send the platform, action, and required parameters to POST /api/v1/social.
- 03Handle a synchronous result, or poll the returned job ID when the action runs asynchronously.
- 04Store the structured response fields needed by your application.
curl -X POST https://api.everyinfra.com/api/v1/social \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"platform":"jd","action":"search","params":{"keyword":"<keyword>"}}'
JD.com guides
Worked examples and methods built on these actions. Check the current actions, parameters and fields on this page first; an article's examples and limits do not replace the live catalog.
Unified Data API Getting Started: From Capability Catalog to First Available Result
Access multi-platform data using platform, action, and params: read the capability catalog, complete minimal requests, handle asynchronous tasks, partial results, and billing, and establish traceable data records.
Read the article →Commercializing Price Scraping: Building a Price Monitoring Product Merchants Will Renew
Why merchants pay for price monitoring and why they cancel subscriptions. Examine price data delivery methods, pricing units, and pilot acceptance through product matching, exception lists, and pricing approval workflows.
Read the article →API Failures, Credit Returns, and Reconciliation: How to Audit the Net Charge of a Request
Separate tasks, call attempts, delivery states, and wallet events to handle pre-charge rejections, empty results, and partial credit returns without double-counting, using integer-based offline examples.
Read the article →JD.com API questions
What can I retrieve with the JD.com API?
Set platform to jd. The current catalog lists search, product details, reviews, shop, product price, and more. These action names identify different JD.com objects or views; they are not interchangeable search modes.
Does JD.com have an official API?
JD's open platform (JOS) gives registered developers and partners logistics, marketing, cloud and authorized-login capabilities through apps they create and publish in its developer center. Product promotion for affiliates runs through the separate JD Union program.
Official sources: JD Open Platform (JOS) developer center · JD Union · Checked
Do I need a JD.com developer account or API key?
No. Requests go through EveryInfra with an EveryInfra API key: sign up, create a key in the console and send it as Authorization: Bearer <API_KEY>. You do not register a JD.com developer app, apply for JD.com API access or sign in with a JD.com account, and the actions return public JD.com data only.
How much does the JD.com API cost per 1,000 requests?
$1.39 per 1,000 requests, depending on the action; each action's price is listed in the table on this page and in the public catalog. There is no subscription: you top up a USD balance and pay per call, and failed calls and empty results are not charged.
Which input starts a JD.com `search` request?
Specifies the search query for JD.com search. This must be a search phrase, not an item ID or shop selector, and matching results do not imply exhaustive catalog coverage. Send it as keyword inside params.
Which fields can JD.com `search` return?
Its declared schema includes item_id, title, short_title, and price. A declared field can still be absent from an individual record, and every other action has its own field list.
Does every JD.com action return immediately?
Actions labeled asynchronous return a job ID you poll. skus runs synchronously only: it reads everything it returns (every target of a batch, or every SKU of a product) within the same call, and a request with "mode": "async" gets a 422 before anything is charged. Every other action can also run asynchronously: add "mode": "async" to the request body to receive a job ID immediately, useful for slow tasks or large limits. The current catalog contains sync delivery.