Наша собственная статистика посещений включена всегда. Google Analytics помогает нам понять, как пользуются нашими публичными страницами (но не вашим рабочим пространством после входа), и включается только с вашего разрешения. См. нашу политику конфиденциальности.

API JD.com Сведения о товаре

POST

Состояние API

Состояние за 24 ч
Норма
Среднее время за 24 ч
—
  • Стабильно / норма
  • Доступно
  • Ограничено
  • Почти недоступно
Норма

Получите полную запись товара JD.com по одному item_id. В ней есть бренд, модель, цена и исходная цена, статус наличия, варианты, штрихкод, гарантия и статус JD Logistics. Если price_masked равно true, отображаемая цена неточная. Значение null для наличия означает «не указано», а не ноль.

Возможность «Сведения о товаре JD.com» возвращает сведения об одном товаре JD по item_id: название, бренд и модель, цену и исходную цену, доступность, состояние остатков, все изображения товара, варианты, штрихкод, текст о происхождении и гарантии, а также магазин, продаёт ли товар JD напрямую и доставляет ли его JD Logistics. Используйте её, чтобы узнать, сколько товар стоит прямо сейчас, можно ли его купить и кто его доставляет: для мониторинга цен, сбора характеристик товаров конкурентов и обогащения каталога.

Передайте числовой ID товара или простую ссылку на страницу товара item.jd.com без параметров запроса и фрагмента; новые непрозрачные ссылки на товары не принимаются. Прежде чем читать цену, проверьте price_masked: JD показывает цены только после входа или при выполнении условий членства, и если значение true, price_display не содержит точную цену продажи. available и unavailable_reason показывают, можно ли купить товар сейчас.

Цена: $1.39 за 1 000 запросов ($0.001389 за вызов). Неудачные вызовы и пустые результаты не оплачиваются. Синхронный режим. Для долгих задач добавьте в тело запроса "mode": "async", получите job_id и опрашивайте статус.

Промпт для ИИ

Помогите мне написать скрипт для сбора данных через эндпоинт EveryInfra JD.com Сведения о товаре (jd/product_detail).

Как работает эндпоинт:
- Запрос: POST https://api.everyinfra.com/api/v1/social с заголовком Authorization: Bearer <API key>. Читайте ключ из переменной окружения EVERYINFRA_API_KEY и никогда не прописывайте его в коде.
- В теле запроса укажите platform: jd и action: product_detail, а параметры передайте в params.
- Обязательные параметры:
  - item_id: Определяет один товар JD.com для product_detail, reviews или product_price. Передайте строку цифр, которую возвращает search, или канонический устаревший URL https://item.jd.com/<digits>.html без строки запроса и фрагмен…
- Возвращает один объект. Основные поля: item_id (Числовой ID товара JD), url, title, price, price_display (Строка цены точно в том виде, как она о…), price_masked (Замаскировал ли JD цену на странице тов…), currency, available (Можно ли было купить товар на момент по…), unavailable_reason (Причина недоступности товара для продаж…), shop_id (Числовой ID магазина JD), shop_name (Публичное название магазина), shop_url (Публичная страница магазина JD); всего полей: 31, полный список: https://api.everyinfra.com/api/v1/social/catalog?platform=jd.
- Пример тела запроса:
{
  "platform": "jd",
  "action": "product_detail",
  "params": {
    "item_id": "https://item.jd.com/100012043978.html"
  }
}
- Цена: $1.39 за 1 000 запросов; неудачные и пустые результаты не оплачиваются.
- Для десятков или сотен целей добавьте в тело запроса "mode": "async": вы сразу получите job_id и сможете опрашивать GET https://api.everyinfra.com/api/v1/jobs/{job_id}, чтобы получить результат.
- При ответе 422 исправьте запрос, используя предложенные в ошибке имена параметров и допустимые значения; при ответе 429 или 503 подождите указанное в Retry-After время и повторите попытку.

Прежде чем писать код, спросите меня, какие цели мне нужны, сколько их будет, какие поля мне нужны и в каком формате вывести результат; затем согласуйте со мной план и примерную стоимость.

Параметры запроса

ИмяРасположениеТипОбязательныйПо умолчаниюОписание
AuthorizationheaderstringДа-Укажите Bearer, а после него — ваш API-ключ. Создайте ключ в консоли; никогда не указывайте его в URL и не храните в репозитории кода.
platformbodystringДаjdИдентификатор платформы, фиксированное значение.
actionbodystringДаproduct_detailИдентификатор возможности, фиксированное значение.
item_idbody.paramsstringДа-Определяет один товар JD.com для product_detail, reviews или product_price. Передайте строку цифр, которую возвращает search, или канонический устаревший URL https://item.jd.com/<digits>.html без строки запроса и фрагмента; произвольные, непрозрачные URL и URL с других хостов не считаются равнозначными идентификаторами товара.

Примеры кода

bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "jd",
  "action": "product_detail",
  "params": {
    "item_id": "https://item.jd.com/100012043978.html"
  }
}'

Спецификация OpenAPI (JSON)Примеры читают ключ из переменной окружения EVERYINFRA_API_KEY; скопированный код никогда не содержит ваш ключ.

Пример ответа

Реальный ответ

Получено October 24, 2026 at 18:28 (UTC) вызовом этого API с параметрами из примера кода выше. results и count — реальный ответ этого вызова, из которого удалены персональные данные (имена, никнеймы, аватары, ссылки на профили, контакты). id, billing и quota меняются при каждом вызове, поэтому показана только их структура.

json
{
  "id": "req_…",
  "platform": "jd",
  "action": "product_detail",
  "results": {
    "item_id": "100012043978",
    "url": "https://item.jd.com/100012043978.html",
    "title": "茅台飞天 53%vol 500ml 贵州茅台酒(带杯)【需预约购买】",
    "price": 1041,
    "price_display": "1??9",
    "currency": "CNY",
    "available": false,
    "shop_id": "1000475228",
    "shop_name": "贵州茅台",
    "shop_url": "https://mall.jd.com/index-1000475228.html",
    "category_id": "9435",
    "stock": 156,
    "stock_state": "out_of_stock",
    "color": "1759(需预约)",
    "size": "单瓶装",
    "weight": "1.1kg",
    "image_url": "https://img14.360buyimg.com/n1/jfs/t1/498128/6/14354/78100/6a8678aeFd76e6a0c/008332032059c4fa.jpg",
    "image_urls": [
      "https://img14.360buyimg.com/n1/jfs/t1/498128/6/14354/78100/6a8678aeFd76e6a0c/008332032059c4fa.jpg",
      "https://img14.360buyimg.com/n1/jfs/t1/442358/22/5618/62044/6a17b873F63dd4c14/00833203206f6884.jpg",
      "https://img14.360buyimg.com/n1/jfs/t1/538344/32/1045/88182/6aba0a86F8862dac1/00833203209ef461.jpg"
    ],
    "brand": "茅台",
    "model": "白酒",
    "original_price": 1041,
    "upc": "•••;•••",
    "warranty": "无质保",
    "product_area": "贵州仁怀",
    "is_jd_express": false,
    "variant_count": 9,
    "variants": [
      {
        "sku_id": "100278756721",
        "image_url": "https://img14.360buyimg.com/n1/jfs/t1/442358/22/5618/62044/6a17b873F63dd4c14/00833203206f6884.jpg"
      },
      {
        "sku_id": "100153291833",
        "image_url": "https://img14.360buyimg.com/n1/jfs/t1/538344/32/1045/88182/6aba0a86F8862dac1/00833203209ef461.jpg"
      },
      {
        "sku_id": "100371797016",
        "image_url": "https://img14.360buyimg.com/n1/jfs/t1/545564/17/1981/187886/6accddbdFb7d949e4/0083320320d24f2b.png"
      }
    ],
    "platform": "jd"
  },
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Поля ответа

Бизнес-данные находятся в results. В таблице перечислены поля, которые может содержать запись; значения, которые платформа не показывает, никогда не выдумываются.

ПолеЗначение
item_idЧисловой ID товара JD. Из результатов поиска его можно сразу передать при запросе сведений о товаре, отзывов или цены.
urlСсылка на запись на платформе.
titleЗаголовок. null, если на платформе нет заголовков (например, у текстовых постов).
priceЦена числом без символа валюты; см. currency.
price_displayСтрока цены точно в том виде, как она отображается на странице JD; цена может быть замаскирована в зависимости от авторизации или статуса участника.
price_maskedЗамаскировал ли JD цену на странице товара. Если true, не считайте price_display точной ценой сделки.
currencyКод валюты цены (например, CNY, USD). Если price есть, а currency равно null, не делайте предположений о валюте.
availableМожно ли было купить товар на момент получения данных (записи product_detail, product_price и shop); false, если товара не было в наличии, null, если на странице это не было указано.
unavailable_reasonПричина недоступности товара для продажи, которую показывает JD.
shop_idЧисловой ID магазина JD.
shop_nameПубличное название магазина.
shop_urlПубличная страница магазина JD.
category_idID конечной категории товара JD (product_detail).
categoryНазвание категории во внутренней классификации платформы. Категории разных платформ не унифицированы.
stockОстаток, который JD показывает публично; null означает, что на странице его нет, а не ноль.
stock_stateКод статуса наличия, который показывает JD.
colorЦвет (или отделка) этого SKU, как указано на странице JD.
sizeРазмер, объём или значение характеристики этого SKU, как указано на странице JD.
weightВес товара, как указано на странице JD (product_detail); null, если на странице его нет.
image_urlURL изображения: в search, product_detail, shop и skus это основное изображение (обложка) товара; в description_images это изображение описания из этой записи (полноразмерное изображение с HTTPS-адресом на хостинге изображений JD).
image_urlsURL изображений галереи товара (включая обложку, в порядке отображения на странице JD). Поле image_url содержит первое из них. Длинных изображений из блока описания здесь нет; получите их через description_images.
is_jd_selfПродаётся ли товар непосредственно JD (розничным подразделением JD.com).
brandБренд товара.
modelНомер модели товара.
original_priceБазовая (исходная) цена, которую показывает JD; может отличаться от акционной. null, если на странице её нет.
upcШтрихкод товара (UPC/EAN). null, если на странице его нет.
warrantyУсловия гарантии в том виде, как они указаны на странице.
product_areaМесто происхождения.
is_jd_expressДоставляется ли товар через JD Logistics.
variant_countЧисло вариантов (SKU). null, если вариантов нет или значение не предоставлено. Во всех записях skus указано одно и то же значение: если оно превышает число возвращённых записей, список был сокращён из-за значения limit либо часть SKU в этот раз получить не удалось.
variantsСписок вариантов. Каждый элемент содержит название, ID SKU, цену, остаток, статус наличия и, если доступен, URL изображения; null, если вариантов нет или данные не предоставлены.
platformИдентификатор исходной платформы. Совпадает со значением platform в запросе (например, xiaohongshu, tiktok).

FAQ

Какие форматы принимает item_id?

Числовой ID товара JD или https://item.jd.com/<number>.html без строки запроса и фрагмента. Новые непрозрачные ссылки вида /product/ не принимаются. item_id из результатов поиска JD подходит как есть.

Почему цена иногда скрыта?

JD показывает цены на страницах товаров только после входа или при выполнении условий членства. Если price_masked равно true, price_display содержит текст со страницы, а не точную цену продажи, поэтому при отслеживании цен помечайте такие записи отдельно.

Как понять, что товар недоступен?

Смотрите available, текущий статус продажи. Если товар нельзя купить, unavailable_reason содержит причину, указанную на JD. stock_state — публичный код статуса наличия JD; его стоит сохранять вместе с остальными данными, если вы отслеживаете доступность во времени.

Ошибки и оплата

401
Ключ отсутствует или недействителен.
402
Недостаточно средств на балансе. Сначала пополните баланс.
422
Недопустимое имя или значение параметра. Исправьте запрос по подсказкам в сообщении об ошибке. Без списания.
429
Достигнут лимит запросов в минуту. Подождите указанное в Retry-After время, затем повторите попытку.
503
Не удалось выполнить. Зарезервированная сумма возвращается на баланс. Если результат неизвестен, проверьте его перед повторной попыткой.
200 (пусто)
Нет данных. Без списания.

Ошибки

Официальные источники

Используются только для проверки объектов и терминов. Они не означают, что платформа разрешила или одобрила работу EveryInfra.

  • JD.com: обозначения отображаемой цены и цены покупки, зависящие от условий ↗

    JD.com отличает ценовую метку, отображаемую в реальном времени, от итоговой цены товара и специальных условий для участников программы, новых пользователей и отдельных регионов, а также персональных предложений. При этом часть сравнительной информации может поступать с задержкой или быть неполной. Возвращённую цену следует считать снимком отображаемой цены на момент запроса, а не персональной ценой сделки, суммой к оплате или гарантией абсолютной точности.

    Проверено 2026-09-11