Get Product Detail
curl --request GET \
--url https://scrapebadger.com/v1/walmart/products/{item_id} \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/walmart/products/{item_id}"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/walmart/products/{item_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/walmart/products/{item_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/walmart/products/{item_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/walmart/products/{item_id}")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/walmart/products/{item_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"product": {
"us_item_id": "<string>",
"item_id": "<string>",
"product_id": "<string>",
"offer_id": "<string>",
"upc": "<string>",
"gtin": "<string>",
"model": "<string>",
"manufacturer_product_id": "<string>",
"sku": "<string>",
"name": "<string>",
"brand": "<string>",
"brand_url": "<string>",
"short_description": "<string>",
"long_description": "<string>",
"ai_description_html": "<string>",
"ai_highlights": [
{}
],
"url": "<string>",
"canonical_url": "<string>",
"category_path": "<string>",
"category_path_id": "<string>",
"breadcrumbs": [
{}
],
"department_name": "<string>",
"item_type": "<string>",
"sales_unit": "<string>",
"image_url": "<string>",
"images": [
{}
],
"videos": [
{}
],
"price": 123,
"currency": "<string>",
"price_info": {},
"promotions": [
{}
],
"promo_text": "<string>",
"availability_status": "<string>",
"in_stock": true,
"fulfillment_type": "<string>",
"fulfillment_options": [
{}
],
"fulfillment_summary": [
{}
],
"aisle": "<string>",
"location": {},
"order_limit": 123,
"is_preorder": true,
"seller": {},
"additional_offer_count": 123,
"transactable_offer_count": 123,
"condition_offers": [
{}
],
"condition": "<string>",
"is_preowned": true,
"variants": [
{}
],
"variant_criteria": [
{}
],
"specifications": [
{}
],
"specification_groups": [
{}
],
"highlights": [
{}
],
"warnings": [
{}
],
"warranty": {},
"nutrition_facts": {},
"ingredients": "<string>",
"badges": [
{}
],
"return_policy": {},
"snap_eligible": true,
"fsa_eligible": true,
"subscription_eligible": true,
"free_shipping": true,
"rating": 123,
"review_count": 123,
"rating_distribution": {},
"top_reviews": [
{}
],
"review_aspects": [
{}
],
"review_summary": "<string>"
}
}Products
Get Product Detail
Full Walmart product detail — UPC/GTIN, structured specifications, variants, condition offers, per-fulfilment delivery dates, seller and a reviews sample.
GET
/
v1
/
walmart
/
products
/
{item_id}
Get Product Detail
curl --request GET \
--url https://scrapebadger.com/v1/walmart/products/{item_id} \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/walmart/products/{item_id}"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/walmart/products/{item_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/walmart/products/{item_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/walmart/products/{item_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/walmart/products/{item_id}")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/walmart/products/{item_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"product": {
"us_item_id": "<string>",
"item_id": "<string>",
"product_id": "<string>",
"offer_id": "<string>",
"upc": "<string>",
"gtin": "<string>",
"model": "<string>",
"manufacturer_product_id": "<string>",
"sku": "<string>",
"name": "<string>",
"brand": "<string>",
"brand_url": "<string>",
"short_description": "<string>",
"long_description": "<string>",
"ai_description_html": "<string>",
"ai_highlights": [
{}
],
"url": "<string>",
"canonical_url": "<string>",
"category_path": "<string>",
"category_path_id": "<string>",
"breadcrumbs": [
{}
],
"department_name": "<string>",
"item_type": "<string>",
"sales_unit": "<string>",
"image_url": "<string>",
"images": [
{}
],
"videos": [
{}
],
"price": 123,
"currency": "<string>",
"price_info": {},
"promotions": [
{}
],
"promo_text": "<string>",
"availability_status": "<string>",
"in_stock": true,
"fulfillment_type": "<string>",
"fulfillment_options": [
{}
],
"fulfillment_summary": [
{}
],
"aisle": "<string>",
"location": {},
"order_limit": 123,
"is_preorder": true,
"seller": {},
"additional_offer_count": 123,
"transactable_offer_count": 123,
"condition_offers": [
{}
],
"condition": "<string>",
"is_preowned": true,
"variants": [
{}
],
"variant_criteria": [
{}
],
"specifications": [
{}
],
"specification_groups": [
{}
],
"highlights": [
{}
],
"warnings": [
{}
],
"warranty": {},
"nutrition_facts": {},
"ingredients": "<string>",
"badges": [
{}
],
"return_policy": {},
"snap_eligible": true,
"fsa_eligible": true,
"subscription_eligible": true,
"free_shipping": true,
"rating": 123,
"review_count": 123,
"rating_distribution": {},
"top_reviews": [
{}
],
"review_aspects": [
{}
],
"review_summary": "<string>"
}
}Fetch a single Walmart product by its
usItemId. Returns everything Walmart’s
page carries: identifiers (upc, gtin, model), the full price block,
per-fulfilment promised delivery dates, grouped specifications, variants,
alternative condition offers, the marketplace seller, return policy, and a
reviews sample with the complete star histogram.
Credits: 10
Authorization
string
required
Your ScrapeBadger API key.
Path Parameters
string
required
Walmart
usItemId, e.g. 5689919121. Take it from us_item_id on a search
result, or from a walmart.com/ip/.../{item_id} URL — the SEO slug is
decorative and only the numeric id is needed.Response
object
The full
Product. Key fields:Show Identity
Show Identity
Show Descriptive & taxonomy
Show Descriptive & taxonomy
Show Pricing
Show Pricing
Show Availability & fulfilment
Show Availability & fulfilment
string
e.g.
IN_STOCK.boolean
string
e.g.
FC, MARKETPLACE.FulfillmentOption[]
Live availability per method —
type, availability_status, available_quantity, is_low_in_stock, location_text, max_order_quantity.FulfillmentSummary[]
Per-method SLA and promised delivery dates —
fulfillment, fulfillment_price, delivery_date, max_delivery_date, store_delivery_date, store_id, store_timezone, sla, calculated_sla_days, is_express, is_free_for_wplus. sla is a structured object (unitOfMeasure, minimumValue, maximumValue, rank), not a string.string
object
Which store Walmart resolved this response against —
postal_code, city, state, store_id, intent.integer
boolean
Show Seller, condition & variants
Show Seller, condition & variants
object
seller_id (32-char hex), catalog_seller_id (the numeric id the seller endpoints take), seller_name, seller_display_name, seller_type, seller_storefront_url, seller_average_rating, seller_review_count, is_pro_seller, wfs_enabled.integer
integer
ConditionOffer[]
New / refurbished / pre-owned offers on the same product —
offer_id, condition, is_condition_new, availability_status, price, price_string.string
boolean
Variant[]
us_item_id, name, variant_type, value, url, price, in_stock, selected, image_url, swatch_image_url.object[]
Show Rich content
Show Rich content
NameValue[]
Flat spec rows —
name, value.SpecificationGroup[]
group_name, specifications[].NameValue[]
NameValue[]
object
information, length, url.object
Grocery only —
calorie_info, key_nutrients, vitamin_minerals, serving_info.string
Badge[]
id, text, type, key.object
returnable, returnable_to_store, free_returns, return_window, return_policy_type, return_policy_text, return_location.boolean
boolean
boolean
boolean
Example
curl "https://scrapebadger.com/v1/walmart/products/5689919121" \
-H "X-API-Key: YOUR_API_KEY"
const res = await fetch(
"https://scrapebadger.com/v1/walmart/products/5689919121",
{ headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
);
const product = await res.json();
import requests
res = requests.get(
"https://scrapebadger.com/v1/walmart/products/5689919121",
headers={"X-API-Key": "YOUR_API_KEY"},
)
product = res.json()
Response
{
"us_item_id": "5689919121",
"item_id": "5689919121",
"product_id": "3RZ5BTN0KR6U",
"offer_id": "452655F40DF73F6BA4D060C9B1C4C70A",
"upc": "195949704529",
"gtin": "195949704529",
"model": "MTJV3AM/A",
"name": "Apple AirPods Pro, Wireless Earbuds with MagSafe Case (USB-C), (2nd Generation), White",
"brand": "Apple",
"url": "https://www.walmart.com/ip/AirPods-Pro-2nd-generation-with-MagSafe-Case-USB-C/5689919121",
"category_path": "0:6163033:2795380:4874644",
"breadcrumbs": [
{ "name": "Electronics", "url": "https://www.walmart.com/cp/3944" },
{ "name": "Headphones", "url": "https://www.walmart.com/browse/3944/1095199" }
],
"image_url": "https://i5.walmartimages.com/asr/f90de61f-f25c-4f57-89ef-3fd9ce4c9ed5.jpeg",
"price": 82.8,
"currency": "USD",
"price_info": {
"current_price": {
"price": 82.8,
"currency": "USD",
"price_string": "$82.80",
"price_display": "Now $82.80"
},
"was_price": { "price": 184.79, "currency": "USD", "price_string": "$184.79" },
"savings_amount": 101.99,
"is_price_reduced": true
},
"availability_status": "IN_STOCK",
"in_stock": true,
"fulfillment_type": "MARKETPLACE",
"fulfillment_summary": [
{
"fulfillment": "DELIVERY",
"fulfillment_price": 0.0,
"fulfillment_methods": ["UNSCHEDULED"],
"delivery_date": "2026-08-13T21:59:00.000Z",
"max_delivery_date": "2026-08-13T21:59:00.000Z",
"store_delivery_date": "2026-08-13T14:59:00.000-07:00",
"store_timezone": "America/Los_Angeles",
"sla": { "unitOfMeasure": "DAYS", "minimumValue": 3, "maximumValue": 5, "rank": 2 },
"calculated_sla_days": 5,
"is_express": false
}
],
"location": {
"postal_code": "95519",
"city": "Mckinleyville",
"state": "CA",
"store_id": "5629",
"intent": "SHIPPING"
},
"rating": 4.4,
"review_count": 44427,
"seller": {
"seller_id": "66656029CC6541CBADDFA17547A98DE0",
"catalog_seller_id": "152",
"seller_name": "VIPOUTLET",
"seller_type": "EXTERNAL",
"seller_storefront_url": "https://www.walmart.com/global/seller/152",
"seller_average_rating": 3.97,
"seller_review_count": 12043,
"is_pro_seller": true
},
"condition": "Pre-Owned: Fair",
"condition_offers": [
{
"offer_id": "9DF22736171B3DCD8FAC29C7E1D80EDA",
"condition": "New",
"is_condition_new": true,
"availability_status": "OUT_OF_STOCK",
"price": 199.0,
"price_string": "$199.00"
},
{
"offer_id": "452655F40DF73F6BA4D060C9B1C4C70A",
"condition": "Pre-Owned: Fair",
"is_condition_new": false,
"availability_status": "IN_STOCK",
"price": 82.8,
"price_string": "$82.80"
}
],
"specifications": [
{ "name": "Noise control technology", "value": "Active Noise Cancellation" },
{ "name": "Battery life", "value": "6 h" },
{ "name": "Works with", "value": "iPhone, iPad, Mac" },
{ "name": "Ip code", "value": "IPX4" }
],
"ai_description_html": "<ul><li><strong>Product Identity</strong>: White Apple AirPods Pro (2nd Generation) in-ear wireless earbuds…</li></ul>",
"ai_highlights": [
{
"name": "Adaptive Noise Control",
"value": "Adaptive Audio that tailors noise control.",
"icon_url": "https://i5.walmartimages.com/dfw/84bce68-1bf3/adaptive.png"
}
],
"badges": [
{ "id": "L1095", "text": "Pre-Owned: Fair", "type": "product_condition", "key": "PREOWNED" },
{ "id": "L1071", "text": null, "type": "urgency", "key": "LOW_INVENTORY" }
],
"return_policy": {
"returnable": true,
"returnable_to_store": true,
"free_returns": true,
"return_policy_type": "seamless",
"return_policy_text": "Free 30-day returns",
"return_location": "store"
},
"rating_distribution": {
"average_rating": 4.4,
"total_review_count": 44427,
"five_star": 34522,
"five_star_percent": 78,
"one_star": 4312,
"one_star_percent": 10
}
}
Prices and availability are store-specific. Walmart resolves the
assortment store from the request IP and overwrites any store id you try to
set, so it cannot be pinned by a parameter. The
location block names the
store that actually answered — always read it before comparing prices across
calls.To reach the seller endpoints, use
seller.catalog_seller_id (numeric,
152 above) — not seller.seller_id, which is a 32-char hex value and 404s
as a storefront URL.Errors
| Status | Meaning |
|---|---|
404 | Item does not exist or has been removed. |
422 | Anti-bot challenge — not billed. Retry; it succeeds. |
⌘I

