Skip to content

Walmart Scraping: Get Prices, Ratings and Sellers by Keyword or URL

Type a keyword or paste a Walmart URL into a ready-made Actor and get one row per product with price, was-price, rating, seller and stock. This guide covers the no-code steps, the API, a real run and its exact cost.

Published
Reading time
8 min read
Pixel-art robot with an orange >_ on its terminal head pulls a blue product box off a store shelf topped with the yellow Walmart spark logo and loads it into a crate
In this article
  1. What data you can get from Walmart
  2. How to scrape Walmart without code
  3. How to scrape Walmart with the API
  4. With an AI agent (MCP)
  5. A real run: Laptops $300 to $1,000
  6. What it costs
  7. Limits and common problems
  8. Is it legal to scrape Walmart?
  9. Alternatives
  10. FAQ
  11. Can you scrape Walmart prices by ZIP code?
  12. How many products can you scrape from one Walmart search?
  13. Can you scrape Walmart reviews?
  14. Do you need a proxy to scrape Walmart?
  15. How do you track Walmart prices over time?

Walmart scraping is easiest with a ready-made Actor: type a keyword or paste a Walmart search, category or product URL, and export one row per product with price, was-price, rating, review count, seller and stock status. On Scrape.ly you can do it in the browser or with one API call.

This guide shows which fields you get, the no-code steps, and the same job in curl, Python, JavaScript and through an AI agent. Then it walks through a real run from 22 October 2026: ten laptops between $300 and $1,000, cheapest first, with the log and the exact cost.

What data you can get from Walmart

The Actor returns one row per product. With Open every product page on (the default) a row holds Walmart's full product record. With it off you get the lighter fields from the search results, which is what our run used.

Field What it holds
name Product title
usItemId Walmart's item number
url Product page URL
price, wasPrice, currency Current price, the earlier price when there is a discount, and the currency
rating, reviewCount Average rating and number of reviews
brand Brand name (filled from product pages)
seller, sellerId Who sells the item: Walmart or a marketplace seller
availability, fulfillmentType Stock status (In stock) and fulfillment type (MARKETPLACE)
categoryPath Category path, for example Electronics / Computers, Laptops and Tablets / Laptops
mainImage, images Image URLs
isSponsored, position Whether the result is an ad, and its position in the results
specifications, description, variantOptions Product pages only: specs, long description, and every variant with its price and stock
upc, model, manufacturerProductId Product pages only: identifiers for catalog matching
reviews.customerReviews Customer reviews, when you turn on includeReviews

What you won't get: prices for a ZIP code or store you choose (rows reflect Walmart's default location for the request), Walmart Canada or Mexico, or seller storefront and brand pages.

How to scrape Walmart without code

  1. Open the Walmart Scraper in the Scrape.ly Store.
  2. Pick the Laptops $300 to $1,000, 10 results preset. It fills in this input:
json
{
  "search": "laptop",
  "minPrice": 300,
  "maxPrice": 1000,
  "sort": "price_low",
  "scrapeProductDetails": false,
  "maxItems": 10
}
  1. Click Start. Our run finished in about 7 seconds.
  2. Open the dataset and export it as JSON, CSV or Excel.

The input fields that matter most:

  • search or startUrls: keywords as you'd type them into Walmart's search box (each one is searched separately), or Walmart search, category (/browse/, /cp/), shop or product (/ip/) URLs. Filters you set on walmart.com stay in the URL and are kept.
  • maxItems: total results across all keywords and URLs. Default 20; 0 means no limit.
  • sort, minPrice, maxPrice: the order and price range for search and category results. The preset sorts by price_low.
  • scrapeProductDetails: on by default. Turn it off, as the preset does, when the search-result fields are enough.
  • includeReviews, onlyReviews, maxReviews: add reviews to each product, or save one row per review instead.
  • endPage: the last results page per search or category, at 40 products per page.

How to scrape Walmart with the API

Create a token under Settings → API & Integrations in the dashboard and store it as SCRAPELY_TOKEN. This preset runs in a few seconds, so the synchronous endpoint can start it and return the items in one call:

shell
curl -X POST "https://api.scrape.ly/v2/actors/shelfbright~walmart-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $SCRAPELY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"search": "laptop", "minPrice": 300, "maxPrice": 1000, "sort": "price_low", "scrapeProductDetails": false, "maxItems": 10}'

The call waits up to 45 seconds and returns a JSON array. Add ?format=csv for CSV. A large job with product pages on can run longer. Then the call answers 408 while the run keeps going, and calling again would start a second run. For those, start the run with POST /v2/actors/shelfbright~walmart-scraper/runs, poll /v2/actor-runs/RUN_ID?waitForFinish=60 until the status is SUCCEEDED, and read /v2/actor-runs/RUN_ID/dataset/items. The API docs show the full flow.

In Python, install the client with pip install scrapely-client-python. call() waits for the run however long it takes:

python
import os
from scrapely_client import ScrapelyClient

client = ScrapelyClient(os.environ["SCRAPELY_TOKEN"], api_url="https://api.scrape.ly")

run = client.actor("shelfbright/walmart-scraper").call(
    run_input={
        "search": "laptop",
        "minPrice": 300,
        "maxPrice": 1000,
        "sort": "price_low",
        "scrapeProductDetails": False,
        "maxItems": 10,
    }
)
print(run.status)  # SUCCEEDED, FAILED, ABORTED or TIMED-OUT
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item["price"], item.get("seller"), item["name"])

In JavaScript or Node.js, install it with npm install scrapely-client:

javascript
import { ScrapelyClient } from 'scrapely-client';

const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN, baseUrl: 'https://api.scrape.ly' });

const run = await client.actor('shelfbright/walmart-scraper').call({
  search: 'laptop',
  minPrice: 300,
  maxPrice: 1000,
  sort: 'price_low',
  scrapeProductDetails: false,
  maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, items[0]);

The Python client, JavaScript client and dataset API docs cover paging through large datasets.

With an AI agent (MCP)

Scrape.ly runs a hosted MCP server at https://api.scrape.ly/mcp. In Cursor, add it to ~/.cursor/mcp.json:

json
{
  "mcpServers": {
    "scrapely": {
      "url": "https://api.scrape.ly/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

In Claude Code, run claude mcp add --transport http scrapely https://api.scrape.ly/mcp, then /mcp to sign in with OAuth. The agent uses search-actors, fetch-actor-details, call-actor and get-actor-output. Try a prompt like: "Use scrapely to run shelfbright/walmart-scraper for laptops between $300 and $1,000, cheapest first, 10 results without product pages, and give me a CSV of name, price, rating and seller." The MCP docs list the other clients.

A real run: Laptops $300 to $1,000

We ran the preset on 22 October 2026. It saved 10 results, the run took 7.1 seconds, and it was charged $0.0204 in total. Here are the first five rows:

name price rating reviewCount seller availability
HP Laptop 15-dy1032ms - Intel Core i3 - 1005G1 / up to 3.4 GHz - Win … 305.97 0 1 RAYDES In stock
HP 15.6 inch HD Windows 11 Laptop Intel Processor N200 4GB RAM 128GB … 305.99 4.1 1,176 milky tech In stock
Restored 14" Dell Latitude 5000 Business Laptop Computer, Intel Core … 306.24 0 0 Blair Technology Group In stock
Restored Dell Inspirion 5520 Laptop PC \ 15.6" Laptop \ Intel Core … 308 0 0 Discount Computer Depot In stock
ACEMAGIC Laptop 15.6 FHD 16GB 512GB Intel Quad-Core 12th Alder Lake N… 308.79 4.5 1,900 Kamrui Official Store In stock
Text
2026-10-22T15:23:12.639Z [scrapely.actor] INFO  [Scrapely] Initializing API storage for run 7a6c1e758245425fb
2026-10-22T15:23:12.785Z [scrapely.proxy_configuration] INFO  Platform proxy access check succeeded.
2026-10-22T15:23:12.785Z [scrapely.actor] INFO  Scraping 1 input(s), up to 10 results, search results only, network: datacenter.
2026-10-22T15:23:16.945Z [scrapely.actor] INFO  Done. Saved 10 results. Requests: 1, bot checks: 0, browser pages: 0, proxy: datacenter.
2026-10-22T15:23:17.154Z [scrapely.actor] INFO  [Status message]: Saved 10 results.
2026-10-22T15:23:17.669Z [Scrapely] Container state: status=exited exitCode=0 oomKilled=false

The price filter and sort worked as set: the five cheapest laptops sat between $305.97 and $308.79, just above the $300 floor. Two are "Restored" listings. Three had a rating of 0 with at most one review, so filter on reviewCount before you compare ratings. All five come from marketplace sellers, not Walmart itself. brand and wasPrice were empty on all five: brand is filled from product pages, which this preset skips, and wasPrice stays empty when there is no discount. The log shows the whole job took one request with no bot checks.

What it costs

The Actor has one charge event: result-item, at $0.002 for each product saved (or each review, in reviews-only mode). Products that fail to load or no longer exist aren't charged.

This run: 10 results × $0.002 = $0.02 in event fees. The run was charged $0.0204 in total, because platform usage added $0.000238 of compute, $0.000098 of datacenter proxy traffic and $0.0001 of storage writes.

At 1,000 results: 1,000 × $0.002 = $2.00 in event fees, plus platform usage. Usage grows with what you ask for: search-only runs like ours are faster and use less traffic than runs that open every product page. If you want a hard cap, set a maximum charge on the run; the Actor stops cleanly when it's reached.

Limits and common problems

  • 25 pages per search. Walmart shows at most 25 result pages (about 1,000 products) per search or category. Split big jobs into narrower keywords, categories or price ranges; duplicates across them are removed.
  • No ZIP code or store. Walmart prices and stock can depend on the store and ZIP code. This Actor can't choose one, so prices reflect Walmart's default location for the request. It covers walmart.com (United States) only.
  • Storefront and brand pages. These aren't supported. Use a search URL with the brand or seller filter instead.
  • Bot checks. Walmart's bot check is strict. The run uses US datacenter addresses and switches to residential ones by itself if the check keeps appearing. If every address is blocked, the run stops with a clear message and keeps what it saved.
  • Reviews on product rows. Reviews attached to a product row stop at 2,000 per product. Use onlyReviews for more; review rows have no cap.
  • Sync timeouts. This run took 7.1 seconds, but the synchronous endpoint stops waiting at 45 seconds. Use the asynchronous flow for large jobs.

The Actor reads public product pages that anyone can open without an account, and it doesn't log in. Walmart's Terms of Use (last updated September 21, 2026) are explicit, though. They say you may not use "any robot, spider, site search/retrieval application or other manual or automatic device to retrieve, index, 'scrape,' 'data mine' or otherwise gather any Materials" without Walmart's express prior written consent. The same clause bars using that material to train AI or machine learning models. Product data rarely includes personal data, but reviews and reviewer names can. Then privacy laws such as the GDPR and the CCPA apply. This is not legal advice. Before you use Walmart data commercially, get advice from a lawyer for your case.

Alternatives

  • Walmart's own APIs. The Walmart developer portal offers Marketplace APIs for sellers to manage their items, prices and orders, plus Supplier and advertising APIs. If you sell on Walmart and need your own listing data, use these. Affiliates should also look at Walmart I/O, Walmart's developer portal for building apps with Walmart APIs.
  • Your own Python scraper. Scrapfly's guide reads the JSON Walmart embeds in each page (__NEXT_DATA__) with httpx and parsel. Oxylabs' guide uses requests and BeautifulSoup and shows the CAPTCHA page you'll meet first. Both then recommend their paid services for handling blocks.
  • A headless browser. Playwright or Selenium gives you full control over the page. It's the better choice when you need interactions a ready-made tool doesn't cover, at the cost of running browsers and proxies yourself.

FAQ

Can you scrape Walmart prices by ZIP code?

Not with this Actor. Walmart can price by store and ZIP code, but the Actor sees the default online location Walmart picks for each request. If you need store-level prices, this Actor isn't the right tool for that part of the job.

Walmart shows up to 25 pages of 40 products, so about 1,000 per search or category. To go beyond that, run several narrower searches in one input, for example by price range. The Actor removes duplicates across them.

Can you scrape Walmart reviews?

Yes. Turn on includeReviews to add up to maxReviews reviews to each product row, or onlyReviews to save one row per review. The Reviews for one product preset shows the second mode. Each review row costs $0.002, and review text can contain personal data, so mind privacy law.

Do you need a proxy to scrape Walmart?

Not your own. US datacenter addresses are included, and the run moves to residential addresses by itself if Walmart's bot check keeps appearing. You don't need a Walmart account either.

How do you track Walmart prices over time?

Save the input as a task and run it on a schedule. Compare price and wasPrice per usItemId between runs, and read the results from the dataset API or send them to a webhook.

  • walmart
  • ecommerce
  • price monitoring
  • python
  • api

About the author

Actor publisher on the Scrape.ly Store

Prices, stock and seller data from shops and marketplaces, from Amazon and AliExpress to Vinted and Leboncoin. For price trackers, catalogue teams and resellers. A Scrapely studio.

//Keep reading\\

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.