Walmart Reviews Scraper
Pricing
$14.99/month + usage
Walmart Reviews Scraper
Scrapes product reviews from Walmart listings, capturing reviewer names, ratings, comments, timestamps, helpful votes, and review URLs. Ideal for sentiment analysis, product research, competitor insights, and large-scale collection of Walmart customer feedback.
Pricing
$14.99/month + usage
Rating
0.0
(0)
Developer
Scraper Engine
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
8 days ago
Last modified
Categories
Share
Walmart Reviews Scraper — Ratings, Review Text and Verified Purchases
Walmart Reviews Scraper extracts customer reviews from any Walmart.com product page — rating, review title and text, verified-purchase status, helpful-vote counts, and reviewer-submitted photos — as structured JSON. Feed it a product URL, a search URL, or a plain keyword and it returns every review as a typed dataset row, no HTML parsing required. Start a run from the Apify Console or the API and download results in JSON or CSV.
What is Walmart Reviews Scraper?
Walmart Reviews Scraper is an Apify Actor that pulls customer reviews for one or many Walmart products in a single run. It accepts product URLs, search URLs, or keywords, resolves each to its underlying product pages, and reads the review data Walmart embeds in the page itself rather than scraping visible HTML text. No Walmart account, login, or API key is required — the Actor only issues anonymous HTTP requests, the same requests a browser makes when you open a product page. It's built for e-commerce analysts, brand and marketplace teams, and developers or AI engineers who need Walmart review data as clean JSON instead of building and maintaining their own scraper.
What Walmart review data is publicly available to scrape?
Walmart publishes product reviews on every product page without requiring a login — ratings, review text, verified-purchase badges, and vote counts are all visible to any visitor.
| Data Category | Publicly Available | Requires Account/Login |
|---|---|---|
| Rating and review title/text | ✅ | — |
| Verified-purchase badge | ✅ | — |
| Helpful / unhelpful vote counts | ✅ | — |
| Reviewer-submitted photos and videos | ✅ | — |
| Review aspect tags (e.g. "battery life", "fit") | ✅ | — |
| Product SKU ID/name, seller and fulfillment info | ✅ | — |
| Reviewer's real name, profile, or order history | ❌ Not shown on the page at all | — |
| Submitting a new review or voting "helpful" | ❌ | ✅ Walmart account required |
Walmart Reviews Scraper only returns publicly visible data — what any visitor sees. Nothing behind a login wall.
What data can I extract with Walmart Reviews Scraper?
Every review is returned as one dataset row combining the review's own content with identifying details about the product it belongs to.
| Field Name | Description |
|---|---|
itemType | Constant value "Review", identifying the row type |
reviewId | Walmart's unique ID for the review |
productUrl | The product URL the review was scraped from |
title | Review headline, HTML-entity and URL-decoded |
text | Full review body text, HTML-entity and URL-decoded |
submittedAt | Review submission date, converted to ISO format (YYYY-MM-DD) |
reviewedItemId | Walmart item ID of the specific SKU/variant the review was left on |
reviewedItemName | Product name of the specific SKU/variant the review was left on |
soldBy | Name of the seller for the reviewed item |
fulfilledBy | Fulfillment method/party for the reviewed item |
Rating, votes and flags
| Field Name | Description |
|---|---|
rating | Star rating (1–5) the reviewer gave |
isVerifiedPurchase | true if Walmart tagged the review as a verified purchase |
helpfulVotes | Count of "helpful" votes on the review |
unhelpfulVotes | Count of "not helpful" votes on the review |
Media, aspects and metadata
| Field Name | Description |
|---|---|
reviewPhotos | Array of {normalUrl, thumbnailUrl, mediaType} for any customer photos/videos attached to the review, or null if none. URLs and metadata only — no files are downloaded |
reviewAspects | Array of {name, polarity} — sentiment aspects Walmart tags on the review (e.g. "quality: positive"), resolved from numeric IDs to human-readable names, or null if none |
scrapedAt | ISO 8601 UTC timestamp of when the Actor scraped the review |
🤖 Add-on: Need additional Walmart data?
Pair this with Amazon Product Details Scraper or Shopify Products Scraper to compare a Walmart listing's reviews against the same product on other marketplaces, or with eBay Product Listing Scraper for cross-platform price and listing checks.
How does Walmart Reviews Scraper differ from the official Walmart API?
Walmart no longer offers a general-access API for review data. Walmart's legacy Open API platform at developer.walmartlabs.com, which previously hosted a Reviews endpoint, is in closed beta and not accepting new registrations (confirmed 2026-08-15); Walmart's current developer portals (developer.walmart.com, walmart.io) are built around the Marketplace Seller API and the Affiliate Marketing API, neither of which exposes customer review content to general developers. That leaves web scraping as the practical way to get review data outside of a seller or affiliate relationship.
Why not build this yourself?
Scraping Walmart reviews yourself means maintaining a parser against Walmart's Next.js page structure, handling pagination across sort orders, and reacting every time Walmart tweaks its anti-bot checks. Walmart returns HTTP 444/403 responses and short "interstitial" block pages (with markers like "access denied", "captcha", or "cloudflare" in the body) when it suspects automation, which means you also need proxy rotation logic — escalating from a direct connection to a datacenter proxy to a residential proxy — and retry/backoff tuned to avoid tripping those checks further. Running that infrastructure yourself means paying for proxy bandwidth and engineering time to keep the parser in sync with Walmart's page structure. Walmart Reviews Scraper already implements this retry-and-escalation logic and reads Walmart's embedded page data directly, so a layout redesign is less likely to break field extraction than a CSS-selector-based scraper.
How to use Walmart Reviews Scraper
Walmart Reviews Scraper runs on the Apify platform — no separate signup or API key beyond an Apify account is needed.
- Open Walmart Reviews Scraper on the Apify Store and click Try for free (or Run, if you already have it).
- Provide
startUrls— the required input. Add one or more Walmart product URLs, search URLs, or plain keywords, one per line. - Optionally set
sortOrder,maxComments,maxProductsPerStartUrl,skipProductsWithoutReviews, andproxyConfigurationto tune what gets collected. - Click Start to launch the run.
- Download results from the Dataset tab in JSON, CSV, Excel, or XML once the run finishes — or stream them via the API while the run is still going.
How to scale to bulk review extraction
startUrls is an array — add as many product URLs, search URLs, or keywords as you need in a single run, one item per line. There is no separate "bulk mode": a run with one URL and a run with a thousand URLs use the same input field. Reviews are deduplicated by reviewId across the entire run, not per product, because Walmart pools the same review set across a product's color/size variant family — so scraping several variants of one item in one run will not produce duplicate review rows.
What can you do with Walmart review data?
- 📊 Brand managers monitoring sentiment use
ratingandreviewAspectsto spot which product attributes (fit, battery life, durability) are driving complaints across a SKU family. - 🛒 Marketplace sellers auditing third-party listings use
soldByandfulfilledByto check whether reviews on their product page are tied to their own fulfillment or a different seller reselling the same listing. - 🔍 Market researchers tracking review velocity use
submittedAtandisVerifiedPurchaseto measure how review volume and purchase-verification rates shift after a price change or promotion. - 🤖 AI engineers building product-research agents feed
titleandtextinto a RAG pipeline or LLM summarizer to generate per-product sentiment digests without writing a Walmart parser. - 🧾 Procurement and QA teams use
helpfulVotesandunhelpfulVotesto surface the reviews the Walmart community itself rated as most trustworthy before escalating a defect report.
How does Walmart Reviews Scraper handle rate limits and blocking?
Every request goes through Apify Proxy by default, seeded with residential IPs in the US (configurable via proxyConfiguration). When Walmart responds with HTTP 444 or 403, or returns a short interstitial page containing block indicators ("access denied", "captcha", "rate limit", "cloudflare"), the Actor escalates the connection — from no proxy, to a datacenter proxy, to a residential proxy — and retries, up to 3 attempts per request with increasing backoff between tries. Once on a residential proxy, it will rotate to a fresh residential IP and retry up to 3 more times before giving up on that specific page. If proxyConfiguration.useApifyProxy is explicitly set to false, this escalation is skipped entirely and the run stays on a direct connection, respecting that choice rather than silently switching to a paid proxy tier. If a page still can't be read after retries, the Actor logs it and moves on to the next product or search page rather than failing the whole run.
⬇️ Input
| Parameter | Required | Type | Description | Example Value |
|---|---|---|---|---|
startUrls | Yes | array | Add one item per line. Supported inputs: a product URL (e.g. https://www.walmart.com/ip/product-name/123456), a search URL (e.g. https://walmart.com/search?q=tshirt), or a keyword (e.g. tshirt). Bulk input is supported. | ["https://walmart.com/search?q=tshirt"] |
sortOrder | No | string | Review ordering. Enum: relevancy (Relevancy, default), submission-desc (Newest first), helpful (Most helpful), rating-desc (Highest rating first), rating-asc (Lowest rating first). | "relevancy" |
maxComments | No | integer | Max reviews to extract per product. Minimum 1, maximum 1000, default 5. | 25 |
maxProductsPerStartUrl | No | integer | For search URLs, limit how many products are processed from each input URL. Minimum 0, maximum 1000, default 10. 0 removes the cap and collects every product the search returns. | 10 |
skipProductsWithoutReviews | No | boolean | When enabled, a product that turns out to have zero reviews is logged as skipped rather than as "0 reviews". This only changes the run log wording — it does not change which requests are made, how many rows are pushed, or how fast the run completes. Default true. | true |
proxyConfiguration | No | object | Controls how requests reach Walmart. Enabled by default (useApifyProxy: true, RESIDENTIAL group, US country) for reliable results across regions; disable to use a direct connection instead, or supply your own configuration. | {"useApifyProxy": true} |
Example input
{"startUrls": ["https://www.walmart.com/ip/instant-pot-duo-7-in-1-electric-pressure-cooker/123456789","https://walmart.com/search?q=air+fryer"],"sortOrder": "helpful","maxComments": 25,"maxProductsPerStartUrl": 10,"skipProductsWithoutReviews": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
⬆️ Output
Every review is pushed to the dataset as a typed, normalized JSON row the moment it's scraped — field names and types stay consistent across runs. Download results in JSON, CSV, Excel, or XML from the Dataset tab, or pull them via the API. Each pushed row is billed under the row_result pay-per-event charge; a product with zero reviews contributes no rows and is not charged.
Example output
{"itemType": "Review","reviewId": "998877665544","productUrl": "https://www.walmart.com/ip/instant-pot-duo-7-in-1-electric-pressure-cooker/123456789","rating": 5,"title": "Works exactly as expected","text": "Bought this to replace my old cooker and it's been great for weekly meal prep. The sealing ring held up fine after a month of near-daily use.","submittedAt": "2026-06-14","isVerifiedPurchase": true,"helpfulVotes": 12,"unhelpfulVotes": 1,"reviewPhotos": [{"normalUrl": "https://i5.walmartimages.com/reviews/example-photo-full.jpeg","thumbnailUrl": "https://i5.walmartimages.com/reviews/example-photo-thumb.jpeg","mediaType": "image"}],"reviewAspects": [{ "name": "ease of use", "polarity": "positive" },{ "name": "value for money", "polarity": "positive" }],"reviewedItemId": "123456789","reviewedItemName": "Instant Pot Duo 7-in-1 Electric Pressure Cooker, 6 Qt","soldBy": "Walmart.com","fulfilledBy": "Walmart","scrapedAt": "2026-08-15T09:12:47.512340+00:00"}
How does it work?
Walmart Reviews Scraper sends plain HTTP requests through Apify Proxy with realistic browser headers — the same kind of request a Chrome browser makes when loading a page. Rather than parsing visible HTML with CSS selectors, it reads the __NEXT_DATA__ JSON blob Walmart embeds directly in the page, which is the same data Walmart's own React front end renders from. That makes field extraction less brittle against cosmetic layout or styling changes, though a change to Walmart's underlying data structure would still require an update. When a request is blocked or rate-limited, the Actor escalates through proxy tiers and retries rather than failing immediately. Only data visible on the public page is returned — no login, session, or account is used at any point, and the output field names stay the same regardless of how Walmart's page design changes.
Integrations
Walmart Reviews Scraper runs on the Apify platform, so it works with anything that can call the Apify API or the Apify SDKs.
Calling Walmart Reviews Scraper programmatically
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_API_TOKEN>")run_input = {"startUrls": ["https://walmart.com/search?q=air+fryer"],"maxComments": 25,"maxProductsPerStartUrl": 10,}run = client.actor("<YOUR_USERNAME>/walmart-reviews-scraper").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Works in Go, Ruby, Node.js, cURL — any language that can make an HTTP request.
No-code tools (n8n, Make, LangChain)
In n8n, use the Apify node (or an HTTP Request node pointed at the run-sync/dataset endpoints) to trigger a run and pull results into your workflow. In Make, the Apify app module can start a run and pass its dataset items into any downstream scenario. In LangChain or similar agent frameworks, call the Actor through apify-client and load the resulting dataset with a document loader to index review text for retrieval.
Is it legal to scrape Walmart reviews?
Scraping publicly available web data, such as reviews visible on a public Walmart product page without logging in, is generally legal. Walmart Reviews Scraper returns only data any visitor can already see — it does not access any login-gated page, and its output contains no reviewer name, username, or profile identifier, only the review content and metrics tied to a product SKU. Because the returned data describes products and their reviews rather than identifiable individuals, this falls under terms-of-service and database-rights considerations rather than personal-data regimes like GDPR or CCPA. Review text is user-submitted content and may occasionally include personal information a reviewer chose to disclose voluntarily; apply your own data-minimization practices if you store or republish review text. Consult legal counsel if your use case involves bulk storage of personal data.
Frequently asked questions
What Walmart review fields does Walmart Reviews Scraper return?
rating, title, text, isVerifiedPurchase, and submittedAt are the core review fields, alongside product-linking fields like reviewedItemId and soldBy. See What data can I extract above for the full field list.
Does Walmart Reviews Scraper require a Walmart account or login?
No. The Actor only sends anonymous HTTP requests with browser-like headers — it never authenticates as a Walmart user and does not need any Walmart credentials.
How many reviews can I extract in one run?
That depends on your input: maxComments caps reviews per product (1–1000, default 5), and maxProductsPerStartUrl caps products per search URL (0–1000, where 0 means no cap). A run with several startUrls entries multiplies across all of them.
What happens if a product has no reviews or a review page can't be read?
The Actor pushes nothing for that product — zero reviews means zero dataset rows and no row_result charge for it. With skipProductsWithoutReviews enabled (the default), the run log records it as "skipped" instead of "0 reviews"; either way, the output is identical.
Can I scrape multiple Walmart products or searches at once?
Yes. startUrls accepts an array — mix product URLs, search URLs, and keywords, one per line, in a single run.
Does Walmart Reviews Scraper work with Claude, ChatGPT, and other AI agent tools?
It's callable as a standard Apify Actor via apify-client or a plain HTTP request, so any agent framework that can make an HTTP call can trigger a run and read the resulting dataset.
How does Walmart Reviews Scraper compare to other Walmart review scrapers?
It reads review data from Walmart's own embedded page JSON rather than CSS-selector scraping, resolves numeric review-aspect IDs to human-readable names, and deduplicates reviews across a product's variant family within a single run rather than per product.
Does Walmart Reviews Scraper return data in a format LLMs can use directly?
Yes. Output is typed, normalized JSON with consistent field names across runs — no HTML to parse and no selectors to write. Pass it directly to an LLM, index it in a vector store, or feed it to an agent tool.
What happens when Walmart changes its layout or anti-bot system?
The output schema is designed to stay stable regardless of Walmart's page design, since fields are read from Walmart's own embedded data rather than visible HTML. No specific update turnaround is promised.
Can I use Walmart Reviews Scraper without managing proxies or browser infrastructure?
Yes. The Actor makes plain HTTP requests — it doesn't run a headless browser at all — and Apify Proxy with automatic tier escalation (direct → datacenter → residential) is handled for you by default.
Which Walmart review fields work best for AI training data and RAG indexing?
For RAG, index title and text — the highest-information free-text fields. For structured training features, rating, isVerifiedPurchase, helpfulVotes, and reviewAspects return as consistent typed primitives across every row.
Related scrapers
| Scraper Name | What it extracts |
|---|---|
| Amazon Product Details Scraper | Product details, pricing, and specs from Amazon listings |
| Amazon Price Tracker | Price history and changes for Amazon products |
| eBay Product Listing Scraper | Listing details and prices from eBay |
| Facebook Reviews Scraper | Customer reviews from Facebook Pages |
| Airbnb Review Scraper | Guest reviews from Airbnb listings |
| Udemy Course Reviews Scraper | Student reviews and ratings from Udemy courses |
Your feedback
Found a bug or missing a field? Let us know through the Actor's Issues tab on Apify, or via the Apify Console's built-in support chat — reports like these keep this scraper accurate as Walmart's site evolves.