API JD.com Dettagli del prodotto
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
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
#| Nome | Posizione | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|---|
Authorization | header | string | Sì | - | Bearer seguito dalla tua chiave API. Creala nella console; non inserirla mai in un URL o in un repository di codice. |
platform | body | string | Sì | jd | Identificativo della piattaforma, valore fisso. |
action | body | string | Sì | product_detail | Identificativo della funzionalità, valore fisso. |
item_id | body.params | string | Sì | - | 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
#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
#{ "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.
| Campo | Significato |
|---|---|
item_id | ID numerico del prodotto su JD. Dai risultati di ricerca puoi passarlo direttamente alle chiamate per i dettagli, le recensioni o il prezzo. |
url | Link al record sulla piattaforma. |
title | Titolo. null quando la piattaforma non prevede titoli (ad esempio post di solo testo). |
price | Prezzo come numero senza simbolo di valuta; vedi currency. |
price_display | Stringa del prezzo esattamente come appare sulla pagina di JD; può essere oscurata in base a condizioni legate all'accesso o all'iscrizione. |
price_masked | Indica se JD ha oscurato il prezzo nella pagina di dettaglio. Se è true, non considerare price_display come il prezzo esatto della transazione. |
currency | Codice valuta del prezzo (ad esempio CNY, USD). Se price è presente ma currency è null, non dare per scontata una valuta. |
available | Indica 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_reason | Motivo mostrato pubblicamente da JD quando un articolo non è in vendita. |
shop_id | ID numerico del negozio su JD. |
shop_name | Nome pubblico del negozio. |
shop_url | Pagina pubblica del negozio su JD. |
category_id | ID della categoria di ultimo livello JD del prodotto (product_detail). |
category | Nome della categoria secondo la tassonomia della piattaforma, non normalizzato tra piattaforme. |
stock | Quantità in magazzino mostrata pubblicamente da JD; null significa che la pagina non la indicava, non zero. |
stock_state | Codice pubblico dello stato delle scorte di JD. |
color | Colore (o finitura) di questo SKU come mostrato sulla pagina di JD. |
size | Taglia, capacità o specifica di questo SKU come mostrata sulla pagina di JD. |
weight | Peso del prodotto come riportato sulla pagina di JD (product_detail); null se la pagina non lo indica. |
image_url | URL 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_urls | URL 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_self | Indica se si tratta di un prodotto a gestione diretta di JD (retail di JD.com). |
brand | Marca del prodotto. |
model | Numero di modello del prodotto. |
original_price | Prezzo di listino (originale) mostrato da JD; può differire dal prezzo promozionale. null se la pagina non lo indica. |
upc | Codice a barre del prodotto (UPC/EAN). null se la pagina non lo indica. |
warranty | Condizioni di garanzia, come riportate nella pagina. |
product_area | Luogo di origine. |
is_jd_express | Indica se l'articolo viene spedito tramite JD Logistics. |
variant_count | Numero 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. |
variants | Elenco 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. |
platform | Identificativo 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.
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