Walmart Product Data Scraper API
Our Walmart product data scraper takes any item URL or us_item_id and returns clean JSON: title, brand, current price, rating and review count, the full image set, seller, breadcrumbs, and the specifications table in a single request.
Why Walmart Product data is locked behind a block
Walmart renders the item page client-side and blocks datacenter IPs, so a plain fetch returns a challenge screen instead of product data. The full item, price, and specs sit inside a __NEXT_DATA__ JSON blob that shifts shape often, so hand-written selectors break within weeks.
Fire off the Walmart Product Data Scraper API
curl "https://api.walmartscraperapi.com/api/v1/walmart/product?url=https://www.walmart.com/ip/808715278&api_key=$API_KEY" import requests
BASE = "https://api.walmartscraperapi.com"
API_KEY = "YOUR_API_KEY"
# Pass a full Walmart /ip/ URL, or use the id alias for a us_item_id.
data = requests.get(
f"{BASE}/api/v1/walmart/product",
params={
"url": "https://www.walmart.com/ip/808715278",
"api_key": API_KEY,
},
timeout=30,
).json()
g = data["general"]
print(g["title"], "|", g["brand"])
print(data["price"]["currency"], data["price"]["price"])
print(data["rating"]["rating"], "from", data["rating"]["count"], "reviews")
for spec in data["specifications"]:
print(spec["key"], "=", spec["value"]) Parameters
| Parameter | Required | Default | Notes |
|---|---|---|---|
url | required | - | The Walmart product page URL, e.g. https://www.walmart.com/ip/808715278. This is the primary input. Required unless you pass id. |
id | optional | - | Alias for the numeric Walmart us_item_id, e.g. 808715278. We build the canonical /ip/{id} URL from it. One of url or id is required. |
country | optional | - | Optional two-letter country code to fetch the item as seen from that region. |
api_key | required | - | Your API key, passed as a query parameter. Get one free at signup. |
The JSON the Walmart Product Data Scraper API hands back
{
"general": {
"title": "Cuisinart Stainless Steel 12-Cup Coffee Maker, Black",
"brand": "Cuisinart",
"url": "https://www.walmart.com/ip/Cuisinart-12-Cup-Coffeemaker-Stainless-Steel-Black/808715278",
"description": "Enjoy bold flavor and modern design with the Cuisinart Stainless Steel 12-Cup Coffee Machine in black...",
"main_image": "https://i5.walmartimages.com/seo/Cuisinart-12-Cup-Coffeemaker-Stainless-Steel-Black_b8985ea2-62a7-4c87-9867-e2c538980d2e.c6fa724a88d12d44d3cbc2aeda10962f.jpeg",
"images": [
"https://i5.walmartimages.com/seo/Cuisinart-12-Cup-Coffeemaker-Stainless-Steel-Black_b8985ea2-62a7-4c87-9867-e2c538980d2e.c6fa724a88d12d44d3cbc2aeda10962f.jpeg",
"https://i5.walmartimages.com/asr/558e12c4-b298-48bf-a58d-11f630ae987d.1c07f3428f277daed63ab54902480b58.jpeg"
],
"meta": { "gtin": "086279180261", "sku": "808715278" }
},
"price": { "currency": "USD", "price": 69.95 },
"rating": { "rating": 4.5, "count": 4720 },
"seller": { "id": "F55CDC31AB754BB68FE0B39041159D63", "name": "Walmart.com", "official_name": "Walmart.com" },
"fulfillment": { "out_of_stock": false, "free_shipping": false },
"breadcrumbs": [
{ "category_name": "Home", "url": "/cp/home/4044" },
{ "category_name": "Kitchen Appliances", "url": "/cp/kitchen-appliances/90546" }
],
"specifications": [
{ "key": "Number of cups", "value": "12" },
{ "key": "Finish", "value": "Stainless Steel" },
{ "key": "Model", "value": "DCC-1220BKSWM" }
],
"us_item_id": "808715278",
"product_id": "4NN9ZW0AZYDK",
"model": "DCC-1220BKSWM"
} | Field | Type | Description |
|---|---|---|
general.title | string | The product title as shown on the item page. |
general.brand | string | The manufacturer or brand name. |
general.url | string | The canonical Walmart product URL. |
general.description | string | The item description, flattened from Walmart's HTML bullets to plain text. |
general.main_image | string | URL of the primary product image. |
general.images | array | All product image URLs from the gallery. |
general.meta | object | Identifiers for the item: gtin (UPC when present) and sku (the us_item_id). |
price | object | Current price with currency and numeric price parsed from the live page. |
rating | object | Average rating and total review count, present when the item has reviews. |
seller | object | Seller id, name, and official_name, so you can tell first-party Walmart.com from a marketplace seller. |
fulfillment | object | Availability signals: out_of_stock and free_shipping. |
breadcrumbs | array | Category path, each entry with category_name and url. |
specifications | array | Spec table entries, each a key and value pair from Walmart's detail data. |
us_item_id | string | The stable Walmart listing id for this item. |
product_id | string | Walmart's opaque internal product id. |
model | string | Manufacturer model number when Walmart publishes one. |
Ways teams put Walmart data to work
Catalog enrichment
Competitive pricing
Content and specs sync
Marketplace seller checks
Stock and availability
Review-signal capture
What powers our Walmart Product Data Scraper API
Pass a product URL or a us_item_id and we return the parsed item, no headless browser, proxy pool, or __NEXT_DATA__ parser to maintain on your side. Every request runs through residential proxies with anti-bot handling and retries, returning validated JSON in a stable shape in about 2.6 seconds.
URL or id input
Residential egress built in
Anti-bot and auto-retry
Parsed from __NEXT_DATA__
Specs and images included
Validated JSON schema
The Walmart Product Data Scraper API against every other route
| Our API | DIY (requests / headless) | Walmart.io affiliate API | |
|---|---|---|---|
| Input by URL or id | Yes, url or us_item_id | Manual fetch and JSON parse | Item lookup by id, approval required |
| Reaches the page | Residential egress built in | Datacenter IPs get blocked | Not applicable, affiliate feed |
| Price and specs | Parsed from the live page | Possible but parser breaks often | Depends on feed coverage |
| Setup | API key only | Proxies, headless browser, parsers | Impact Radius approval and keys |
| Full image gallery | Yes, in one call | Extra parsing of the media blob | Feed dependent |
| Access | Open signup, free tier | You build and maintain it | Affiliate program gated |
Pay for the requests that land
| Plan | Price | Best for |
|---|---|---|
| Free | 1,000 requests | Testing and small jobs |
| Pro | $0.60 / 1k | Production workloads |
| Pay-as-you-go | $0.90 / 1k | Spiky or one-off volume |
Median response 2.6s. You only pay for successful requests.
FAQ
A Walmart product data scraper is a tool that reads a Walmart item's public detail page and returns it in a structured format. Our Walmart product data scraper API takes a product URL or us_item_id and returns the title, brand, price, rating, review count, images, seller, breadcrumbs, specifications, and identifiers as JSON from a single request.
Send one GET request to our walmart/product endpoint with the item url (or the id alias) and your API key. We route through residential proxies, handle anti-bot checks, retry on failure, and parse the page's __NEXT_DATA__ blob, so you get clean JSON back without maintaining selectors against Walmart's changing markup.
Yes. Pass the numeric us_item_id as the id parameter and we build the canonical https://www.walmart.com/ip/{id} URL for you. Either url or id is required, so you can work from whichever identifier your data already has. The id also comes back on every response as us_item_id.
Walmart blocks datacenter IP ranges and renders much of the page client-side, so a direct fetch from a cloud server tends to return a challenge or robot screen rather than the item. Our API routes through residential IPs, handles the anti-bot layer, and reads the product data from the embedded __NEXT_DATA__ JSON, which is why it returns structured fields where a plain request does not.
Yes. The specifications array carries each spec as a key and value pair drawn from Walmart's detail data, and general.images returns the full gallery of image URLs with general.main_image as the primary. Both come back in the same call as the price, rating, seller, and breadcrumbs, so you assemble the whole product view from one request.
Median end-to-end response is about 2.6 seconds, which includes residential proxy routing, anti-bot handling, retries, and parsing. One call returns the full item, so you do not chain extra requests to assemble price, specs, and images.