JD.com API
Search JD.com items by keyword to obtain product details, public reviews, pricing, and shop catalogs.
Get one item with its numeric ID. Get every SKU of a product with skus, and its description images 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
- 92%
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. | $1.39 per 1,000 requests | Healthy · health 91% |
Product detailsproduct_detail | Get the full JD.com product record for one item_id. | $1.39 per 1,000 requests | Healthy · health 100% |
Reviewsreviews | Read up to 10 buyer reviews of a JD.com product. | $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. | $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. | $1.39 per 1,000 requestsEach row counts as one call | Healthy · health 92% |
Description imagesdescription_images | Get every image in the description section of a JD.com product, top to bottom. | $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 features of the official site are not part of the EveryInfra API unless this page lists them.
| 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. Each result has 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. Get 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. Each full-size link is 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. Each result has 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 apply to 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. It includes 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. 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. Get 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 healthitem_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. If the product cannot be bought, you get the stated reason. 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. You get one row per color, size or capacity, with price, stock state and purchase limit. The first row is the SKU you sent. 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. Each full-size link is numbered by position, and image_count holds the total. Pass any SKU of the product or a product link in item_id. The gallery stays in product_detail. 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
- 01Choose a platform action from the public catalog.
- 02Send the platform, action, and required parameters to POST /api/v1/social.
- 03Read the result from the response. For an asynchronous action, poll the returned job ID.
- 04Store the response fields that your application needs.
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 articleCommercializing 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 articleAPI 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 articleJD.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 the 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.