How to Scrape Walmart Product Data: Prices, Stock, and Reviews

A practical guide to pulling structured product data from Walmart.com using the NanoScrape Walmart Product Scraper on Apify. Provide product URLs or bare item IDs and get back price, list price, unit price, stock status, star ratings, seller type (1P vs 3P), shipping, pickup availability, high-resolution images, feature highlights, specifications, variants, and top reviews. The actor runs in Go, uses no browser, and costs about $1.30 per 1,000 products.

Table view of Walmart scraper dataset output showing product title, price, stars, reviewsCount, inStock, sellerType, and brand fields for multiple products
Sample output: one JSON object per product, 32 to 40 fields, ready to load into a spreadsheet, database, or downstream pipeline.
Difficulty: Beginner
Time: 5 minutes
Cost: ~$1.30 per 1,000 products (free $5 credit covers ~3,700)
Login required: No
Open the Walmart Scraper on Apify Jump to pricing ↓

In this tutorial

  1. What you get
  2. Prerequisites
  3. Step 1: Open the actor and sign up
  4. Step 2: Add product URLs or item IDs
  5. Step 3: Configure optional settings
  6. Step 4: Run and download results
  7. Automate with the API
  8. Common use cases
  9. What it costs
  10. FAQ

What you get

Each run returns one JSON object per Walmart product. The object includes 32 to 40 fields pulled directly from Walmart's internal __NEXT_DATA__ JSON block, so values come out clean with no fragile CSS selectors and no stray currency symbols.

{
  "itemId": "5689919121",
  "url": "https://www.walmart.com/ip/Apple-AirPods-Pro-Wireless-Earbuds-MagSafe-Case-USB-C/5689919121",
  "title": "Apple, AirPods Pro, Wireless Earbuds with MagSafe Case (USB-C)",
  "brand": "Apple",
  "modelNumber": "MTJV3AM/A",
  "price": { "value": 199, "currency": "USD", "raw": "$199.00" },
  "listPrice": { "value": 249, "currency": "USD", "raw": "$249.00" },
  "stars": 4.4,
  "reviewsCount": 44416,
  "starsBreakdown": { "5star": 0.777, "4star": 0.073, "3star": 0.031, "2star": 0.021, "1star": 0.097 },
  "inStock": true,
  "availabilityStatus": "IN_STOCK",
  "seller": { "name": "Walmart.com", "type": "1P" },
  "sellerType": "1P",
  "categoryPath": "Electronics / Wireless / Headphones",
  "scrapedAt": "2026-07-30T09:12:44Z"
}
Fields marked situational in the actor docs only populate when Walmart surfaces them on that product page. For example, listPrice appears only when the product is on sale and unitPrice appears only on consumables and bulk goods. Missing fields are expected behavior, not extraction errors.

Prerequisites

STEP 1

Open the actor and sign up

  1. Open the NanoScrape Walmart Product Scraper on Apify.
  2. Click Try for free. Sign up with Google or email. The free tier includes $5 of monthly credit with no payment method required to get started.
  3. Once signed in, click Try for free again on the actor page. The Apify Console opens with the input form pre-loaded and ready to fill in.
Apify actor page for the NanoScrape Walmart Product Scraper showing the actor description, pricing, and the Try for free button
Click Try for free on the actor page to open the Console input form.
Tip: the free $5 monthly credit covers roughly 3,700 Walmart products at $0.0013 per result. You only pay if you go over.
STEP 2

Add product URLs or item IDs

The actor accepts two types of input. Use startUrls for product page links, or itemIds for bare numeric item IDs. Both inputs can be combined in the same run and duplicates are removed automatically.

Using product URLs

Paste one or more Walmart product page links into the Start URLs field. Any URL format works: /ip/12345678, /ip/product-slug/12345678, or the full share URL copied from a browser.

{
  "startUrls": [
    { "url": "https://www.walmart.com/ip/Great-Value-Whole-Vitamin-D-Milk-1-Gallon-128-fl-oz/10450114" },
    { "url": "https://www.walmart.com/ip/Apple-AirPods-Pro-Wireless-Earbuds-MagSafe-Case-USB-C/5689919121" }
  ]
}

Using bare item IDs

If you have a list of item IDs (the 5 to 12 digit number at the end of any Walmart URL), paste them into the Item IDs field, one per line. This is the faster input method when you already have a SKU catalog.

{
  "itemIds": ["10450114", "5689919121", "14566603957", "2513765448"]
}
Apify Console input form for the Walmart Product Scraper showing the Start URLs field pre-filled with two product links and Item IDs field with numeric IDs
Add product URLs, bare item IDs, or a mix of both. Duplicates across the two fields are removed automatically.
STEP 3

Configure optional settings

All settings below are optional. The defaults work well for most use cases.

Regional pricing tip: set zipCode to the ZIP code of your target market to see the price and delivery estimate a local shopper would see. Prices vary for some regional promotions.
STEP 4

Run and download results

Click Save and Run at the bottom of the form. A progress log appears on the right side of the Console. Most runs finish in under 30 seconds for a handful of products.

Apify Console run log tab for a Walmart scraper run showing per-product fetch status messages and the overall run duration
The run log shows real-time progress as the actor fetches each product.

Open the Dataset tab to see results in a table. Click Export at the top right to download:

Apify Console Dataset tab showing Walmart scraper results in a table with columns for itemId, title, price, stars, reviewsCount, inStock, and sellerType
Results appear in the Dataset tab as soon as the run completes. Use the Export button to download JSON or CSV.
Invalid item IDs: Walmart product pages for delisted or invalid item IDs contain a null product node in the internal data block. The actor detects this and skips the item without charging you for it.

Automate with the API

Call the actor from your own code or data pipeline using the Apify REST API. Replace YOUR_TOKEN with the Personal API token found in Apify Console, under Settings, then Integrations.

curl -sS -X POST \
  'https://api.apify.com/v2/acts/santamaria-automations~walmart-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "itemIds": ["10450114", "5689919121"],
    "scrapeReviewSample": true,
    "scrapeVariants": false
  }'

The run-sync-get-dataset-items endpoint starts the actor, waits for it to finish, and returns the full dataset in one HTTP response. For larger batches use the async run endpoint and poll the run status until it reaches SUCCEEDED.

Use with AI agents via MCP

Connect the actor to any MCP-compatible AI client such as Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, or LlamaIndex using the Apify MCP server URL:

https://mcp.apify.com?tools=santamaria-automations/walmart-scraper

Example prompt once connected: "Use walmart-scraper to fetch the current price, rating, stock status, and seller type for Walmart item IDs 10450114, 5689919121, and 14566603957. Return a markdown table with columns: itemId, title, price, stars, reviewsCount, sellerType, stockText." Clients that support dynamic tool discovery such as Claude.ai and Cursor receive the full input schema automatically.

Common use cases

What it costs

Start small: set maxItems to 5 on your first run to verify your input is correct before scaling up. Five products costs less than one cent.

FAQ

Do I need a paid Apify plan?

No. Every Apify account gets $5 of free usage credit each month. At $0.0013 per product, the free tier covers roughly 3,700 Walmart products per month before you need to add a payment method.

Can I use bare item IDs instead of full URLs?

Yes. Pass numeric item IDs (5 to 12 digits) in the itemIds field. You can find the item ID in any Walmart product URL as the number at the end of the path. You can also mix startUrls and itemIds in the same run; duplicates across the two fields are removed automatically.

What does the sellerType field tell me?

sellerType is 1P when Walmart itself sells and ships the product, and 3P when a marketplace seller fulfills it. Third-party listings often have different prices, return policies, and reliability than first-party Walmart listings. Monitoring sellerType lets you detect when Walmart hands a listing to a marketplace seller, which frequently precedes a price increase.

Does the actor return customer reviews?

Yes, when scrapeReviewSample is true (the default). The topReviews field returns up to 8 top reviews per product, each with star rating, title, author name, date, and body text. This field is situational: it is null on products with no reviews.

Can I set a ZIP code to see local prices and availability?

Yes. Set the zipCode field to a 5-digit US ZIP code. This sets the delivery region shown on the product page, which affects the displayed price for regional promotions, the pickup store, and the delivery availability fields. It does not affect the base price for most products.

Is scraping Walmart legal?

Scraping publicly available data is generally permitted in most jurisdictions. The hiQ Labs v. LinkedIn ruling in the US established that scraping public data does not violate the Computer Fraud and Abuse Act. Walmart's Terms of Service restrict automated access, so use the data for research, price monitoring, and analytics rather than republishing Walmart content in bulk. Consult a lawyer for specific compliance questions.

Related resources

Open the Walmart Scraper on Apify See pricing above ↑