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
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.

CapabilityWhat it doesPer 1,00024-hour health
SearchsearchLook 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 requestsNormal
Product detailsproduct_detailGet 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 requestsNormal
ReviewsreviewsRead 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 requestsTemporarily unavailable
ShopshopBrowse up to 24 products from one JD.com store, each with item ID, title, price, currency and availability.$1.39 per 1,000 requestsTemporarily unavailable
Product priceproduct_priceCheck 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 requestsTemporarily unavailable
All SKUs with pricesskusList 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 callNormal
Description imagesdescription_imagesGet 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 requestsNormal

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.

ActionRequiredOptionalDeliveryLimitPer 1,000Response fields
search

Search

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.

keyword—Sync deliveryCatalog 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 requestsitem_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_detail

Product details

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_id—Sync delivery—$1.39 per 1,000 requestsitem_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
reviews

Reviews

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 deliveryCatalog 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 requestsid · 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
shop

Shop

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_id—Sync deliveryCatalog 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 requestsitem_id · url · title · price · currency · shop_id · shop_name · shop_url · image_url · available · platform
product_price

Product 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. This is a point-in-time reading, not a personal checkout price, member discount or settled amount.

item_id—Sync delivery—$1.39 per 1,000 requestsitem_id · url · price · currency · available · unavailable_reason · platform
skus

All SKUs with prices

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_id—Sync deliveryCatalog 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 callitem_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_images

Description 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. 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_id—Sync delivery—$1.39 per 1,000 requestsitem_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.

Full API reference: parameters, code samples, response example and health →
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.

Full API reference: parameters, code samples, response example and health →
item_idRequired
Identifies one JD.com product for product_detail, reviews, or product_price. Pass the digit string returned by search or the canonical legacy URL https://item.jd.com/<digits>.html without 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, or product_price. Pass the digit string returned by search or the canonical legacy URL https://item.jd.com/<digits>.html without 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. · Checked
JD.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.

Full API reference: parameters, code samples, response example and health →
shop_idRequired
Identifies the shop used by the shop action. Pass a digit string or the canonical legacy URL https://mall.jd.com/index-<digits>.html without a query or fragment; cross-host URLs are rejected, and this selector does not accept a product item_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.

Full API reference: parameters, code samples, response example and health →
item_idRequired
Identifies one JD.com product for product_detail, reviews, or product_price. Pass the digit string returned by search or the canonical legacy URL https://item.jd.com/<digits>.html without 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.

Full API reference: parameters, code samples, response example and health →
item_idRequired
Identifies one JD.com product for skus 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 a wqitem.jd.com page opened inside WeChat), or share text that contains exactly one such link; tracking parameters in the link do not matter. Short links such as 3.cn or u.jd.com are 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.

Full API reference: parameters, code samples, response example and health →
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 a wqitem.jd.com page opened inside WeChat), or share text that contains exactly one such link; tracking parameters in the link do not matter. Short links such as 3.cn or u.jd.com are not accepted: open them in a browser first and copy the product page link.

How to use the JD.com API

  1. 01Read the public catalog and choose a platform action.
  2. 02Send the platform, action, and required parameters to POST /api/v1/social.
  3. 03Handle a synchronous result, or poll the returned job ID when the action runs asynchronously.
  4. 04Store the structured response fields needed by your application.
jd_search.sh
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.

Build

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 →
Blog

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 →
Build

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.