Walmart Reviews Scraper With Verified & Rating Filters
Pricing
from $5.99 / 1,000 results
Walmart Reviews Scraper With Verified & Rating Filters
Walmart Reviews Scraper extracts product reviews with verified purchase status, star ratings, review titles, text, dates, reviewer details, and product information. Ideal for sentiment analysis, product research, competitor monitoring, customer feedback, and e-commerce insights.
Pricing
from $5.99 / 1,000 results
Rating
0.0
(0)
Developer
Scrapier
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
Walmart Reviews Scraper โ Verified, Rating & Helpful-Vote Filters
Extract Walmart.com customer reviews from a product page, a search URL, or a plain keyword, and get back only the reviews that match your trust bar โ verified purchases, a minimum helpful-vote count, specific star ratings, or recommended/not-recommended status. Every response is structured JSON, ready to load into a spreadsheet, a database, or pass straight to an LLM as context.
Each row carries the review's real identity and helpfulness fields โ reviewId, reviewerNickname, submittedAt, helpfulVotes, unhelpfulVotes, isVerifiedPurchase โ plus the reviewed product's own id, name, seller and fulfilment fields, so you never have to join review data back to product data by hand.
๐ What is the Walmart Reviews Scraper With Verified & Rating Filters?
It fetches Walmart's own review pages for one or more products, then applies your filters โ verified-purchase status, a minimum helpful-vote threshold, a set of star ratings, and recommendation status โ before anything is written to the dataset. Filtering happens after each review is fetched, since Walmart's review page itself accepts a sort order but no server-side filter for these fields. No Walmart account or login is required โ the Actor reads the same public review pages any visitor sees.
- โญ Filters by star rating (1โ5, multi-select) via
ratingFilter - โ
Filters by Walmart's own Verified Purchaser badge via
verifiedPurchaseOnly - ๐ Filters by a minimum helpful-vote count via
minHelpfulVotes - ๐๐ Filters by recommendation status (recommended / not recommended / both) via
recommendationFilter - ๐ Controls review order via
sortOrder(relevancy, newest, most helpful, rating ascending/descending) - ๐๏ธ Accepts a product URL, a Walmart search URL, or a plain keyword in the same input list, with a per-source product cap via
maxProductsPerStartUrl
๐ฆ What data can you get with the Walmart Reviews Scraper?
The Actor returns one result type โ a review row โ but every row folds in both the review's own content and the context of the product it belongs to, so no second lookup is needed.
| Result type | Extracted fields | Primary use case |
|---|---|---|
| Review | id, reviewId, itemType, rating, recommended, title, text, submittedAt, scrapedAt | Sentiment analysis, complaint/praise mining, review-volume tracking |
| Trust & identity | isVerifiedPurchase, helpfulVotes, unhelpfulVotes, reviewerNickname, reviewPhotos, reviewAspects | Filtering for credible feedback, aspect-level sentiment, media-backed reviews |
| Reviewed product context | productUrl, reviewedItemId, reviewedItemName, soldBy, fulfilledBy | Attributing reviews to a specific listing, seller and fulfilment channel without a second request |
โญ Combined trust, rating & recommendation filtering
Verified-purchase status, helpful-vote count, star rating, and recommendation status all apply together on every review, in a single run โ set any combination and only matching rows reach the dataset. Because filtering runs after the review is fetched (Walmart's page has no server-side filter for these), reviewLimit reviews are always pulled per product first, then the filters narrow that set down. Each review also carries reviewAspects โ Walmart's own aspect tags (e.g. fit, comfort) resolved from an id to a human name and paired with a polarity โ and reviewPhotos, the URLs and media type of any customer-uploaded photos or video thumbnails on the review (metadata only; no file is downloaded).
{"isVerifiedPurchase": true,"helpfulVotes": 12,"unhelpfulVotes": 1,"recommended": true,"reviewAspects": [{ "name": "Fit", "polarity": "positive" }],"reviewPhotos": [{ "normalUrl": "https://i5.walmartimages.com/.../photo1.jpeg", "thumbnailUrl": "https://i5.walmartimages.com/.../thumb1.jpeg", "mediaType": "image" }]}
๐ช Seller & fulfilment context
Every review row also carries soldBy and fulfilledBy โ the marketplace seller and the fulfilment channel Walmart recorded for the reviewed item โ plus reviewedItemId and reviewedItemName. This lets you compare review quality across third-party sellers of the same product line without a separate product-page scrape.
๐ง Why not build this yourself?
Walmart does not publish a general-purpose product or review API for third-party use โ walmart.io's own APIs are partner and marketplace-seller integrations (order management, seller catalog feeds), not a public endpoint for pulling reviews of an arbitrary product (checked 2026-08-15). Building this in-house means reverse-engineering Walmart's review page payload, handling its __NEXT_DATA__ JSON structure, detecting and retrying past interstitial block pages, and rotating connections when a request comes back 403/444 โ all of which this Actor already implements. It also means writing and maintaining the verified/rating/helpful-vote/recommendation filtering logic yourself, and re-deriving the reviewer and product-context fields from the same raw payload.
๐งญ How to scrape Walmart reviews with this Actor
- Open the Actor on its Apify Store listing and click Try for free (or Run, if you've already added it).
- Enter one or more entries in
productListโ a product URL, a search URL, or a keyword. - Set the real query controls that apply:
sortOrder,maxProductsPerStartUrlfor search/keyword sources, and any of the trust/rating/recommendation filters. - Start the run from the Apify Console, the
apify_clientSDK, or the Apify API. - Download results as JSON, CSV, Excel, or any other format the Apify dataset export supports, or stream them via the API.
{"productList": ["https://www.walmart.com/ip/Free-Assembly-Men-s-Everyday-Cotton-Tee/888475689"],"reviewLimit": 50,"verifiedPurchaseOnly": true,"ratingFilter": ["4", "5"]}
Scraping reviews for multiple products in one job
productList (or its legacy alias startUrls) is a line-separated list โ mix product URLs, search URLs, and keywords freely in the same run. Each search or keyword entry is expanded into up to maxProductsPerStartUrl products (unlimited if set to 0), and every resulting product is processed in turn within the same run, with a shared cross-run duplicate filter on reviewId so a review already seen under one color/size variant isn't pushed twice from another variant of the same product.
โฌ๏ธ Input
All parameters are optional at the schema level, but the Actor fails the run if productList and its legacy alias startUrls are both empty โ at least one product URL, search URL, or keyword is required in practice.
| Parameter | Required | Type | Constraints | Description |
|---|---|---|---|---|
productList | No | array (stringList) | โ | Product URL, search URL, or keyword, one per line. Alias of the legacy startUrls below โ use either one. |
reviewLimit | No | integer | min 1, max 1000, prefill 20 | Max reviews fetched per product before any filter is applied. Alias of the legacy maxComments below. |
sortOrder | No | string (enum) | relevancy, submission-desc, helpful, rating-desc, rating-asc; default relevancy | Review ordering returned by Walmart's own review page. |
maxProductsPerStartUrl | No | integer | min 0, max 1000, default 10 | For search/keyword sources, how many products to process per input line. 0 = no cap. |
skipProductsWithoutReviews | No | boolean | default true | Labels a zero-review product "skipped" in the run log instead of "0 reviews". Every product is still checked either way โ this changes only the log wording, not which products are processed. |
verifiedPurchaseOnly | No | boolean | default false | Keep only reviews carrying Walmart's Verified Purchaser badge. |
minHelpfulVotes | No | integer | min 0, default 0 | Drop reviews whose helpfulVotes is below this number. 0 = no threshold. |
ratingFilter | No | array (multi-select) | items enum "1"โ"5"; default [] | Keep only reviews matching one of the selected star ratings. Empty = all ratings. |
recommendationFilter | No | string (enum) | both, recommended_only, not_recommended_only; default both | Isolate recommended or not-recommended reviews. Reviews with no recorded recommendation are excluded whenever a specific side is chosen. |
startUrls | No | array (stringList) | nullable | Legacy alias of productList, kept for input compatibility with the original Walmart Reviews Scraper. |
maxComments | No | integer | min 1, max 1000, nullable | Legacy alias of reviewLimit, kept for input compatibility. |
proxyConfiguration | No | object (proxy editor) | prefill: useApifyProxy: true, apifyProxyGroups: ["RESIDENTIAL"], apifyProxyCountry: "US" | Controls how requests reach Walmart. If the field is omitted entirely from an API call (rather than left at its Console prefill), the Actor makes direct, unproxied requests. |
Example input
{"productList": ["https://walmart.com/search?q=tshirt"],"reviewLimit": 20,"sortOrder": "relevancy","maxProductsPerStartUrl": 10,"verifiedPurchaseOnly": true,"minHelpfulVotes": 5,"ratingFilter": ["4", "5"],"recommendationFilter": "both","proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }}
Common pitfall: skipProductsWithoutReviews does not skip any product from being checked โ every product in productList is always fetched. It only changes whether the run log prints "skipped" or "0 reviews" for that product. Do not rely on it to reduce run time or request count.
โฌ๏ธ Output
Results are written to the Actor's default dataset as one row per review, in the order reviews are fetched. Export as JSON, CSV, Excel, XML, RSS, or HTML directly from the dataset, or read them via the Apify API / apify_client. The schema is consistent across runs โ every field below is present on every row (as null when Walmart doesn't provide a value for that review).
| Field | Description |
|---|---|
id | Unique row id โ the Actor run id joined with the review's own reviewId (or a positional index if Walmart returned no id). |
reviewId | Walmart's own review id โ used for cross-variant deduplication within the run. |
itemType | Always "Review". |
productUrl | Clean canonical Walmart product URL the review belongs to (ad-tracking redirect links from sponsored search results are resolved to the real product path). |
rating | 1โ5 star rating. |
recommended | true/false if the reviewer recorded a recommendation, null if Walmart never recorded one. |
isVerifiedPurchase | true if the review carries Walmart's Verified Purchaser badge. |
helpfulVotes | Number of "helpful" votes the review received, or null if not reported. |
unhelpfulVotes | Number of "not helpful" votes the review received, or null if not reported. |
reviewerNickname | Reviewer's display nickname as Walmart returns it, or null if not set. |
submittedAt | ISO 8601 review submission date (date only, no time-of-day โ Walmart's own page doesn't report one). null if the date couldn't be parsed. |
title | Review title, or null on rating-only reviews with no written title. |
text | Review body text, or null on rating-only reviews with no written text. |
reviewPhotos | Array of { normalUrl, thumbnailUrl, mediaType } for any customer photos/video thumbnails on the review โ URLs and metadata only, no files downloaded. null if the review has none. |
reviewAspects | Array of { name, polarity } โ Walmart's own aspect tags for the review, resolved from the page's own id-to-name lookup. null if the review has none. |
reviewedItemId | Numeric Walmart item id of the reviewed product. |
reviewedItemName | Name of the reviewed product as recorded on the review. |
soldBy | Marketplace seller name Walmart recorded for the reviewed item, or null. |
fulfilledBy | Fulfilment channel Walmart recorded for the reviewed item, or null. |
scrapedAt | ISO 8601 timestamp of when the row was collected. |
Every pushed row is billed as one row_result event โ the Actor only calls push_data for reviews that already passed your filters, so there are no unfiltered or accounting rows in the dataset to exclude.
Scraped results
[{"id": "run_abc123-420870405","reviewId": "420870405","itemType": "Review","productUrl": "https://www.walmart.com/ip/Free-Assembly-Men-s-Everyday-Cotton-Tee/888475689","rating": 5,"recommended": true,"isVerifiedPurchase": true,"helpfulVotes": 12,"unhelpfulVotes": 1,"reviewerNickname": "Jordan","submittedAt": "2025-09-27T00:00:00.000Z","title": "Solid shirt","text": "Good shirt, I bought it to run to the store or around town. Neckline is good.","reviewPhotos": null,"reviewAspects": [{ "name": "Fit", "polarity": "positive" }],"reviewedItemId": "888475689","reviewedItemName": "Free Assembly Men's Everyday Cotton Tee","soldBy": "Walmart.com","fulfilledBy": "Walmart","scrapedAt": "2026-08-15T09:12:03.114Z"},{"id": "run_abc123-420855012","reviewId": "420855012","itemType": "Review","productUrl": "https://www.walmart.com/ip/Free-Assembly-Men-s-Everyday-Cotton-Tee/888475689","rating": 4,"recommended": true,"isVerifiedPurchase": true,"helpfulVotes": 6,"unhelpfulVotes": 0,"reviewerNickname": null,"submittedAt": "2025-09-18T00:00:00.000Z","title": null,"text": null,"reviewPhotos": [{ "normalUrl": "https://i5.walmartimages.com/asr/aaaa.jpeg", "thumbnailUrl": "https://i5.walmartimages.com/asr/aaaa_thumb.jpeg", "mediaType": "image" }],"reviewAspects": null,"reviewedItemId": "888475689","reviewedItemName": "Free Assembly Men's Everyday Cotton Tee","soldBy": "Walmart.com","fulfilledBy": "Walmart","scrapedAt": "2026-08-15T09:12:04.881Z"},{"id": "run_abc123-420801777","reviewId": "420801777","itemType": "Review","productUrl": "https://www.walmart.com/ip/Free-Assembly-Men-s-Everyday-Cotton-Tee/888475689","rating": 5,"recommended": null,"isVerifiedPurchase": false,"helpfulVotes": 0,"unhelpfulVotes": 0,"reviewerNickname": "TShirtFan22","submittedAt": "2025-08-30T00:00:00.000Z","title": "Great value","text": "Fits true to size and holds up after washing.","reviewPhotos": null,"reviewAspects": null,"reviewedItemId": "888475689","reviewedItemName": "Free Assembly Men's Everyday Cotton Tee","soldBy": "Walmart.com","fulfilledBy": "Walmart","scrapedAt": "2026-08-15T09:12:06.442Z"}]
๐ How can I use the data extracted with this Actor?
- ๐ข Brand & seller teams: filter to
isVerifiedPurchase: trueand aratingFilterof 1โ2 stars to triage credible complaints first, instead of reading every review by hand. - ๐ค AI engineers and LLM developers: pass filtered
textandreviewAspectsstraight into a summarization or sentiment-classification prompt โ the review is already narrowed to the segment you asked for, so the model isn't wasting context on noise. - ๐ Market researchers: compare
ratingdistribution andrecommendedshare across competing products sold by differentsoldBysellers of the same item type. - ๐ฌ QA / product teams: track
helpfulVoteson 1-star reviews over time to see which complaints the community itself is validating as real.
๐ How do you monitor Walmart review trends over time?
Scheduled, repeated runs of this Actor turn a single review pull into a trend line. Each run captures the reviews visible at that moment, tagged with scrapedAt; running the same productList on a recurring schedule and diffing consecutive datasets on reviewId surfaces exactly what's new since the last run โ new reviews, and shifts in the rating, recommended, and helpfulVotes counts on reviews you've already seen. A typical workflow: schedule a run across your tracked product URLs โ keep the last run's dataset โ compare new reviewId values and changed helpfulVotes/rating on repeated ones โ alert when the share of verifiedPurchaseOnly-eligible negative reviews (1โ2 stars) rises. Set this up with an Apify schedule on the Actor, and deliver each run's dataset to your own system via a webhook or the API โ the Actor itself has no built-in alerting, so the comparison and threshold logic live on your side.
๐ Integrate this Actor and automate your workflow
This Actor works with any language or tool that can send an HTTP request โ it runs on the Apify platform behind the standard Apify API and apify_client SDKs.
REST API with Python
from apify_client import ApifyClientclient = ApifyClient("<APIFY_API_TOKEN>")run = client.actor("<store-actor-id>").call(run_input={"productList": ["https://www.walmart.com/ip/Free-Assembly-Men-s-Everyday-Cotton-Tee/888475689"],"reviewLimit": 50,"verifiedPurchaseOnly": True,"ratingFilter": ["1", "2"],})for review in client.dataset(run["defaultDatasetId"]).iterate_items():print(review["rating"], review["helpfulVotes"], review["text"])
Scheduled monitoring and delivery
Attach an Apify schedule to run this Actor on a recurring cadence against the same productList, and configure a webhook on the run to push each finished dataset to your own endpoint automatically. There is no separate polling API beyond the standard Apify dataset/run endpoints.
โ๏ธ Is it legal to scrape Walmart reviews?
Yes โ scraping publicly accessible web pages is generally legal, and this Actor returns only what any visitor to Walmart's product and review pages can already see. Review text and star ratings are user-generated content Walmart displays publicly; reviewerNickname is a self-chosen display handle, not a real name, and this Actor extracts no reviewer contact information such as email addresses or phone numbers. Because a reviewer nickname can still be considered personal data under some regimes, treat exported data with GDPR/CCPA-appropriate handling if your use case involves EU or California residents โ minimize what you store, and honor deletion or access requests tied to a nickname if one is identifiable. Scraping for one-off research carries a different risk profile than bulk collection for AI training or resale. Consult your legal team for commercial use cases involving bulk data storage.
โ Frequently asked questions
Does this scraper only return verified-purchase reviews?
No โ by default it returns every review it fetches. Set verifiedPurchaseOnly: true to keep only reviews carrying Walmart's Verified Purchaser badge.
Can I combine the star-rating filter with the recommendation filter?
Yes โ verifiedPurchaseOnly, minHelpfulVotes, ratingFilter, and recommendationFilter all apply together on every fetched review.
Why is title or text sometimes null?
Some Walmart reviews are rating-only โ a star rating with no written review. The row is still emitted with its real rating and identity fields; the missing text is left null, never fabricated.
Does this Actor extract review photos and aspect tags?
Yes โ reviewPhotos carries the URL and media type of any customer-uploaded photo or video thumbnail on the review (metadata only, no file download), and reviewAspects carries Walmart's own resolved aspect names with a polarity. Both are null when the review has none.
How many reviews does this Actor return per product?
Up to reviewLimit (1โ1000, default 20) reviews are fetched per product before filters are applied; the filters can only reduce that count further, never raise it. There is no separate platform-imposed cap enforced by this Actor beyond that input.
How does this Actor handle Walmart's anti-bot measures?
It retries a request up to 3 times on a 403/444 response or a detected interstitial block page (a short response missing Walmart's own __NEXT_DATA__ block and containing a phrase like "blocked", "captcha", or "cloudflare"), rotating to a fresh Apify Proxy connection between attempts when proxy is enabled. If a product's reviews still can't be reached after retries, that product is skipped and the run continues with the rest of the list rather than failing outright.
How do I use this Actor to monitor review sentiment over time?
Run it on a recurring Apify schedule against the same product list, keep each run's dataset, and diff on reviewId to find new reviews plus changes in rating, recommended, and helpfulVotes on reviews already seen โ see "How do you monitor Walmart review trends over time?" above.
Does this Actor work with Claude, ChatGPT, and AI agent frameworks?
It's callable as a standard HTTP endpoint through the Apify API by any agent framework that can make a request โ an agent can trigger a run, poll for completion, and read the resulting dataset as grounded context before generating an answer.
Can I use this Actor without managing proxies or Walmart credentials?
Yes โ no Walmart account or login is required, and Apify Proxy (residential, US, by default) is built in via proxyConfiguration. You only need an Apify account and API token to run it; disable the proxy field if you'd rather connect directly.
Will my existing Walmart Reviews Scraper input JSON still work?
Yes โ startUrls, maxComments, sortOrder, maxProductsPerStartUrl, skipProductsWithoutReviews, and proxyConfiguration are all still accepted as declared fields, so an input JSON built for the original Walmart Reviews Scraper runs unchanged on this Actor.
๐ฌ Your feedback
Found a bug, or a field that no longer matches what Walmart's review page returns? Open an issue on this Actor's Issues tab in Apify Console, or reach out through Scrapier's Store listing โ reports like these keep the field list accurate as Walmart changes its page.