Walmart Reviews API Scraper avatar

Walmart Reviews API Scraper

Pricing

from $2.50 / 1,000 reviews

Go to Apify Store
Walmart Reviews API Scraper

Walmart Reviews API Scraper

Scrape Walmart customer reviews: rating, title, text, date, verified-purchase and syndication flags, helpful votes and photos, with the product's full rating-by-star breakdown on every row. Filter by star, by verified purchase, and by date. Priced per review; no reviews means no charge.

Pricing

from $2.50 / 1,000 reviews

Rating

0.0

(0)

Developer

Shakamize

Shakamize

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

Turns a Walmart product into structured customer reviews: rating, title, text, date, verified-purchase and syndication flags, helpful and unhelpful votes, the photos and video reviewers attached, and the seller each review was left against.

Every row also carries the product's full rating-by-star breakdown - how many ratings sit at one star, two, three, four and five - alongside the two review counts Walmart publishes and the seller, category and image of the product itself.

Priced per review, at $0.003. A product with no reviews is never charged, and neither is an item id Walmart does not have.

Use it to monitor customer complaints on your own listing or a competitor's, measure sentiment and its movement over time, track a product's star distribution, or pull verified-purchase reviews for product research. For Walmart prices, stock or catalogue data this is not the right tool: it returns per-review records plus the product's own rating summary, not product listings.

The two review counts, and why they differ

This is the first thing to understand about Walmart review data, and the thing most likely to look like a scraper losing your results.

Walmart publishes two different counts and they are not close:

ProductRatingsReviews with text
Great Value Whole Vitamin D Milk373,96326,104
Grazeful Dairy A2/A2 Milk91

The larger number counts every star rating. The smaller one counts the ratings that carry written text - and only those are ever listed on the reviews page. A product with 9 ratings can list a single review, and that is Walmart's behaviour rather than a fault.

Both numbers are on every row, as totalReviewCount and reviewsWithTextCount, so the gap is visible before it becomes a surprise.

Ratings by star, on every row

starsBreakdown gives the histogram over every rating the product holds, not over the reviews on the page:

{ "oneStar": 20893, "twoStars": 5847, "threeStars": 10933, "fourStars": 29141, "fiveStars": 307149 }

A missing count stays null rather than becoming 0. Zero is a real answer here - a product genuinely can have no one-star ratings - so reading an absence as zero would report a fact Walmart never stated.

Star filtering that does not read the whole product first

Walmart's own reviews page offers no star filter over plain HTTP: the stars on the page are a client-side call, so a scraper asking for one-star reviews normally has to page through everything and throw most of it away. On a product with 26,104 listed reviews that is 2,610 requests to find a few hundred rows.

Walmart does sort by rating server side. So when you filter by star and leave the sort on Automatic, the run orders by rating in the direction of your band - ascending for 1 and 2 stars, descending for 4 and 5 - and stops the moment the stream leaves it.

Measured live: twenty one-star reviews out of 26,104 came back in two requests - the two pages the twenty rows themselves need, and nothing more.

The stop is only claimed on the two rating sorts. On any other ordering a matching review can still appear on a later page, so the run pages normally rather than truncating your answer and calling it a filter.

Verified purchases, filtered by Walmart rather than after the fact

Verified purchases only puts vp=true on the request, which is Walmart's own filter. Measured on the milk product: the listed count fell from 26,100 to 24,363 and the returned reviews changed, so the pages fetched contain nothing else and no request is spent on rows that would be thrown away.

Every other filter runs over what came back, and says so.

Syndicated reviews are told apart

Walmart carries some reviews in from a brand's own site rather than collecting them itself. isSyndicated and syndicationSource record this on every row, and Exclude syndicated reviews drops them.

Walmart writes bazaarvoice as the external source on its own reviews - it is the platform it collects them with, not a brand it took them from. Reading that as syndication would mark almost every review on the site as syndicated and make the flag useless, so it is not.

How to sort Walmart reviews by newest, oldest or most helpful

Six orderings, all Walmart's own and applied server side:

OptionWhat Walmart does
Most relevantWalmart's own ranking
Newest firstmost recent submission
Oldest firstearliest submission
Most helpfulmost upvoted
Highest rated firstfive stars down
Lowest rated firstone star up

Each returns a genuinely different set, verified live on 2026-08-30 - the oldest sort reached 2010 on a product whose relevance page starts in 2026.

Dates, and the filter over them

reviewSubmissionTime is US M/D/YYYY. It is parsed month-first into an ISO date, with the original kept in dateText. A date that cannot be read reports date: null and keeps its text rather than guessing - reading 3/4/2026 day-first would silently move it to April and quietly break every date filter.

Only reviews since takes an absolute date (2026-01-15) or a relative one (30 days, 6 months, 1 year). A review Walmart published no readable date for is dropped rather than kept. With Newest first the run also stops paging once it is past the cutoff.

What an unknown value does

Every filter drops a review whose value it cannot check, rather than keeping it. A review with no rating is not a match for a star filter; a review with no date is not inside a cutoff. An unknown value is not evidence that a review qualifies, and treating it as one is how a run returns three-star reviews to someone who asked for one-star ones.

Errors are specific

What happenederrorCharged
Walmart has no product with that idproduct_not_foundno
The product has no reviews with textno_reviews_foundno
The page could not be readrequest_failedno
Walmart served a bot checkblockedno

A wrong item id is never reported as "no reviews": that would tell you your id is valid and unloved when it is simply wrong. Every product you ask for leaves a row of some kind, so a product that produced nothing is never silent.

An entry that is not a Walmart product URL or item id stops the run and names itself, rather than being skipped. A run that quietly reads four of the five products you gave it and reports success is the complaint this field already carries.

Reviewer names are personal data

reviewer - nickname, author id and reviewer badges - is null unless Include reviewer profile is on. It is personal data, protected by GDPR in the EU and by comparable rules elsewhere. Enable it only if you have a legitimate basis for collecting it.

Walmart reviews scraper pricing, pay per review

$0.003 per review. Nothing else is charged.

  • A product with no reviews is not charged for.
  • An item id Walmart does not have is not charged for.
  • A page that could not be read is not charged for.
  • Reviews already stored are kept and charged when a later page fails; the run says how many came back.

Walmart lists ten reviews per request, so a review costs a tenth of a request. Measured on the platform over 300 reviews: $0.0000928 a request, so the price clears its cost by three orders of magnitude and even the worst case - a product whose single written review takes a whole request - is comfortable.

Input reference for every Walmart reviews setting

FieldWhat it does
productUrlsProduct URLs, reviews URLs, or bare item ids. Required.
maxReviewsPerProductCap per product. Empty means everything Walmart lists.
maxReviewsCap across the whole run.
sortAutomatic, or one of Walmart's six orderings.
filterByRatingsKeep only these stars. Automatic sorting makes this cheap.
verifiedPurchaseOnlyWalmart's own filter, applied to the request.
excludeSyndicatedDrop reviews carried in from a brand site.
reviewsCutoffDateAbsolute or relative. Undated reviews are dropped.
withMediaOnlyKeep only reviews with a photo or video.
includeAspectSentimentWalmart's per-aspect mention counts. On by default.
includeReviewerProfilePersonal data. Off by default.
proxyConfigurationDefaults to Apify's unblocking service, which is what reaches Walmart.

Walmart review data you get back, as JSON, CSV or Excel

One record per review. Every one carries its product, so the dataset is usable without a join.

{
"reviewId": "404696209",
"itemId": "10450114",
"productUrl": "https://www.walmart.com/ip/Great-Value-Whole-Vitamin-D-Milk-Gallon/10450114",
"productName": "Great Value Whole Vitamin D Milk, Gallon",
"sellerName": "Walmart.com",
"categoryPath": ["Food", "Dairy & Eggs", "Milk"],
"averageRating": 4.6,
"totalReviewCount": 373963,
"reviewsWithTextCount": 26104,
"starsBreakdown": {
"oneStar": 20893,
"twoStars": 5847,
"threeStars": 10933,
"fourStars": 29141,
"fiveStars": 307149
},
"rating": 5,
"title": "It's a good value and has true \"SELL BY\" dates.",
"text": "Walmart's own brand, Great Value, is true to its name in the dairy aisle...",
"date": "2025-11-14",
"dateText": "11/14/2025",
"isVerifiedPurchase": true,
"isSyndicated": false,
"helpfulVotes": 7,
"unhelpfulVotes": 0,
"recommended": true,
"fulfilledBy": "Walmart",
"media": null,
"reviewer": null,
"sort": "relevancy",
"page": 1,
"position": 2,
"scrapedAt": "2026-08-30T09:15:00.000Z"
}

How it is tested

Fixtures prove the page they came from and nothing else, so the gate before publishing is a live sweep across unrelated departments - grocery, electronics, furniture, pet, toys and apparel - asserting invariants rather than values:

  • the star breakdown sums to the product's own rating count, on every review
  • no review is dated in the future or before Walmart had reviews
  • no reviewId appears twice and no position is reused
  • every review belongs to the product whose page it came from
  • coverage per field is above its own floor, not one floor for all of them
  • a verified-only run returns nothing unverified
  • a one-star filter returns only one-star reviews, in four requests rather than thousands
  • a product with no reviews stores nothing and charges nothing

FAQ

How do I get only verified purchases?

Set verifiedPurchaseOnly: true. The filter is applied by Walmart itself rather than after the fact, so you are not charged for reviews that get fetched and discarded. A run on 2026-09-01 returned 60 of 60 verified on each of two products, with dropped 0 that did not match the filters.

How do I get only recent reviews, newest first?

Set "sort": "recent" and reviewsCutoffDate, which takes an absolute date (2026-01-15) or a relative one (30 days, 6 months, 1 year).

Prefer the cutoff over guessing a count. On a high-velocity product the 200 most recent reviews spanned five days, so "the last 200" and "the last month" are very different requests.

What is a syndicated review, and can I exclude it?

A syndicated review was written on a manufacturer's or another retailer's site and republished on Walmart. It is a real opinion, but it is not evidence about Walmart fulfilment. isSyndicated and syndicationSource are on every row, and excludeSyndicated: true drops them.

Measure your own category before assuming it matters: on a Walmart-brand grocery item, an unfiltered control run was 192 of 200 verified and 0 syndicated.

Why do I get fewer reviews than the review count on the listing?

Those are two different populations. totalReviewCount counts star ratings; reviewsWithTextCount counts reviews with words in them, and only the second is scrapeable. On one product measured those were 44,981 and 5,406; on another, 373,927 and roughly 25,000.

Budget from reviewsWithTextCount.

Am I charged if the product does not exist?

No. The run says so and stores nothing:

WARN 10309061: Walmart has no product with item id 10309061. Nothing was charged.

A review removed by a filter before it is stored is not charged either.

Can I pass item IDs instead of URLs?

Yes. productUrls takes full URLs and bare item IDs interchangeably, which matters when the product list came out of a spreadsheet rather than a browser.

Telemetry

The Actor reports run health to its maintainer: error codes, the build number, and per-field counts. On a failure it also sends a capped sample of the failed requests, including the Walmart URL you asked for. It carries no personal data, but it is your input, and this section says so rather than leave you to find out. Your proxy configuration and the scraped reviews are never sent.