API JD.com Dettagli del prodotto

POST

Stato di salute dell'API

Operatività nelle ultime 24 ore
100%
Tempo medio nelle ultime 24 ore
34.10 s
  • Buono / normale
  • Disponibile
  • Limitato
  • Quasi del tutto inattivo
Buono

Ultime 24 ore

Ultimi 30 giorni

Ottieni il record completo di un prodotto JD.com per un item_id. Include marca, modello, prezzo e prezzo originale, disponibilità, varianti, codice a barre, garanzia e stato JD Logistics. Quando price_masked è true, il prezzo mostrato non è esatto. Un valore null per lo stock significa che il dato non è mostrato, non che sia pari a zero.

Invia POST https://api.everyinfra.com/api/v1/social con platform impostato su jd e action impostato su product_detail. Prezzo $1.39 per 1.000 richieste ($0.001389 per chiamata). Le chiamate non riuscite e i risultati vuoti non vengono addebitati. Sincrona. Per i job più lenti, aggiungi "mode": "async" al corpo della richiesta, recupera il job_id ed esegui il polling.

JD.com Product details legge un prodotto JD tramite item_id: titolo, marca e modello, prezzo e prezzo originale, disponibilità, stato delle scorte, tutte le immagini del prodotto, varianti, codice a barre, testi su origine e garanzia, oltre al negozio, se è venduto direttamente da JD e se la consegna è gestita da JD Logistics. Usala per vedere quanto costa un prodotto in questo momento, se si può acquistare e chi lo spedisce, per il monitoraggio dei prezzi, le schede tecniche dei concorrenti e l'arricchimento del catalogo.

Passa un ID numerico del prodotto o un semplice link a una pagina prodotto item.jd.com senza query né frammento; i link opachi più recenti non sono accettati. Prima di leggere il prezzo, controlla price_masked: JD nasconde i prezzi dietro il login o requisiti di membership, e quando è true price_display non è un prezzo di vendita preciso. available e unavailable_reason indicano se il prodotto è acquistabile ora.

Prompt per l'AI

#
Aiutami a scrivere uno script di raccolta dei dati con l'endpoint JD.com Dettagli del prodotto di EveryInfra (jd/product_detail).

Come funziona l'endpoint:
- Richiesta: POST https://api.everyinfra.com/api/v1/social con l'header Authorization: Bearer <chiave API>. Leggi la chiave dalla variabile d'ambiente EVERYINFRA_API_KEY e non scriverla mai direttamente nel codice.
- Nel corpo della richiesta imposta platform su jd e action su product_detail, e inserisci i parametri in params.
- Parametri obbligatori:
  - item_id: Identifica un prodotto JD.com per product_detail, reviews o product_price. Passa la stringa di cifre restituita da search o l'URL canonico legacy https://item.jd.com/<digits>.html senza query né frammento.
- Restituisce un oggetto. Campi principali: item_id (ID numerico del prodotto su JD), url, title, price, price_display (Stringa del prezzo esattamente come app…), price_masked (Indica se JD ha oscurato il prezzo nell…), currency, available (Indica se l'articolo era acquistabile a…), unavailable_reason (Motivo mostrato pubblicamente da JD qua…), shop_id (ID numerico del negozio su JD), shop_name (Nome pubblico del negozio), shop_url (Pagina pubblica del negozio su JD); 31 campi in totale, elenco completo su https://api.everyinfra.com/api/v1/social/catalog?platform=jd.
- Esempio di corpo della richiesta:
{
  "platform": "jd",
  "action": "product_detail",
  "params": {
    "item_id": "https://item.jd.com/100012043978.html"
  }
}
- Prezzo: $1.39 per 1.000 richieste; le richieste non riuscite e i risultati vuoti non vengono addebitati.
- Per decine o centinaia di target, aggiungi "mode": "async" al corpo: ricevi subito un job_id ed esegui il polling su GET https://api.everyinfra.com/api/v1/jobs/{job_id} per ottenere il risultato.
- In caso di 422, correggi la richiesta usando i nomi dei parametri e i valori consentiti suggeriti nell'errore; in caso di 429 o 503, attendi il tempo indicato da Retry-After e riprova.

Prima di scrivere il codice, chiedimi quali target mi servono, quanti, quali campi e quale formato di output voglio; poi conferma con me il piano e il costo indicativo.

Parametri della richiesta

#
NomePosizioneTipoObbligatorioPredefinitoDescrizione
AuthorizationheaderstringSì-Bearer seguito dalla tua chiave API. Creala nella console; non inserirla mai in un URL o in un repository di codice.
platformbodystringSìjdIdentificativo della piattaforma, valore fisso.
actionbodystringSìproduct_detailIdentificativo della funzionalità, valore fisso.
item_idbody.paramsstringSì-Identifica un prodotto JD.com per product_detail, reviews o product_price. Passa la stringa di cifre restituita da search o l'URL canonico legacy https://item.jd.com/<digits>.html senza query né frammento; URL arbitrari, opachi o di altri host non sono accettati come identificatori equivalenti.

Esempi di codice

#
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"
  }
}'

Definizione OpenAPI (JSON)Gli esempi leggono la chiave dalla variabile d'ambiente EVERYINFRA_API_KEY; il codice copiato non contiene mai la tua chiave.

Esempio di risposta

#
Acquisita il October 24, 2026 at 18:28 (UTC) chiamando questa API con i parametri dell'esempio di codice qui sopra. results e count sono la risposta reale di quella chiamata, da cui sono state rimosse le informazioni personali (nomi, handle, avatar, link ai profili, recapiti). id, billing e quota cambiano a ogni chiamata, quindi ne viene mostrata solo la struttura.
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": { … }}

Campi della risposta

#

I dati di business si trovano in results. La tabella elenca i campi che un record può contenere; i valori che la piattaforma non mostra non vengono mai inventati.

CampoSignificato
item_idID numerico del prodotto su JD. Dai risultati di ricerca puoi passarlo direttamente alle chiamate per i dettagli, le recensioni o il prezzo.
urlLink al record sulla piattaforma.
titleTitolo. null quando la piattaforma non prevede titoli (ad esempio post di solo testo).
pricePrezzo come numero senza simbolo di valuta; vedi currency.
price_displayStringa del prezzo esattamente come appare sulla pagina di JD; può essere oscurata in base a condizioni legate all'accesso o all'iscrizione.
price_maskedIndica se JD ha oscurato il prezzo nella pagina di dettaglio. Se è true, non considerare price_display come il prezzo esatto della transazione.
currencyCodice valuta del prezzo (ad esempio CNY, USD). Se price è presente ma currency è null, non dare per scontata una valuta.
availableIndica se l'articolo era acquistabile al momento della lettura (righe product_detail, product_price e shop); false se esaurito, null se la pagina non lo indicava.
unavailable_reasonMotivo mostrato pubblicamente da JD quando un articolo non è in vendita.
shop_idID numerico del negozio su JD.
shop_nameNome pubblico del negozio.
shop_urlPagina pubblica del negozio su JD.
category_idID della categoria di ultimo livello JD del prodotto (product_detail).
categoryNome della categoria secondo la tassonomia della piattaforma, non normalizzato tra piattaforme.
stockQuantità in magazzino mostrata pubblicamente da JD; null significa che la pagina non la indicava, non zero.
stock_stateCodice pubblico dello stato delle scorte di JD.
colorColore (o finitura) di questo SKU come mostrato sulla pagina di JD.
sizeTaglia, capacità o specifica di questo SKU come mostrata sulla pagina di JD.
weightPeso del prodotto come riportato sulla pagina di JD (product_detail); null se la pagina non lo indica.
image_urlURL dell'immagine: in search, product_detail, shop e skus è l'immagine principale (copertina) del prodotto; in description_images è l'immagine descrittiva di quella riga (l'immagine HTTPS a dimensione piena sul server di hosting delle immagini di JD).
image_urlsURL delle immagini della galleria del prodotto (copertina inclusa, nell'ordine mostrato sulla pagina di JD). Il singolo image_url è il primo di questi. Le immagini lunghe della sezione descrittiva del prodotto non sono incluse; ottienile con description_images.
is_jd_selfIndica se si tratta di un prodotto a gestione diretta di JD (retail di JD.com).
brandMarca del prodotto.
modelNumero di modello del prodotto.
original_pricePrezzo di listino (originale) mostrato da JD; può differire dal prezzo promozionale. null se la pagina non lo indica.
upcCodice a barre del prodotto (UPC/EAN). null se la pagina non lo indica.
warrantyCondizioni di garanzia, come riportate nella pagina.
product_areaLuogo di origine.
is_jd_expressIndica se l'articolo viene spedito tramite JD Logistics.
variant_countNumero di varianti (SKU). null se non ce ne sono o se non viene indicato. Ogni riga skus riporta lo stesso valore: se è superiore al numero di righe restituite, limit ha troncato l'elenco oppure alcuni SKU non sono stati recuperati questa volta.
variantsElenco delle varianti. Ogni voce riporta nome, ID SKU, prezzo, scorte, stato delle scorte e URL dell'immagine, se disponibili; null se non ce ne sono o se non viene indicato.
platformIdentificativo della piattaforma di origine, uguale a platform nella richiesta (ad esempio xiaohongshu, tiktok).

FAQ

#

Quali formati accetta item_id?

#

Un ID numerico del prodotto JD, oppure https://item.jd.com/<number>.html senza query string né frammento. I link opachi più recenti sotto /product/ non sono accettati. L'item_id dei risultati di ricerca di JD funziona così com'è.

Perché a volte il prezzo è nascosto?

#

JD nasconde i prezzi delle pagine prodotto dietro il login o requisiti di membership. Quando price_masked è true, price_display è il testo mostrato dalla pagina e non un prezzo di vendita preciso, quindi segnala separatamente quelle righe quando monitori i prezzi.

Come capisco se un prodotto non è disponibile?

#

Leggi available, lo stato di vendita attuale; quando il prodotto non è acquistabile, unavailable_reason riporta il motivo mostrato su JD. stock_state è il codice pubblico di JD per lo stato delle scorte, utile da salvare insieme se monitori la disponibilità nel tempo.

Errori e addebiti

#
401
Chiave mancante o non valida.
402
Saldo insufficiente. Effettua prima una ricarica.
422
Nome o valore del parametro non valido. Correggilo seguendo i suggerimenti dell'errore. Nessun addebito.
429
Raggiunto il limite di richieste al minuto. Attendi il tempo indicato da Retry-After, poi riprova.
503
Impossibile completare. L'importo trattenuto torna sul tuo saldo. Se l'esito è incerto, verificalo prima di riprovare.
Risposta 200 vuota
Nessun dato. Nessun addebito.

Errori

Riferimenti ufficiali

#

Usati solo per verificare oggetti e terminologia. Non implicano alcuna autorizzazione o approvazione di EveryInfra da parte della piattaforma.

  • JD.com: etichette di prezzo visualizzate e prezzi d'acquisto condizionati ↗

    JD.com distingue un'etichetta visualizzata in tempo reale dai prezzi finali degli articoli e dalle agevolazioni per membri, nuovi utenti, regioni o destinatari specifici, e avverte che alcune informazioni di confronto possono essere in ritardo o incomplete. Considera il prezzo restituito come l'istantanea visibile al momento della richiesta, non come un prezzo di transazione personale, un importo di regolamento o una garanzia di precisione assoluta.

    Verificato il 2026-09-11

Le nostre statistiche di visita interne sono sempre attive. Google Analytics viene caricato solo se scegli «Consenti analisi». Informativa sulla privacy