Walmart Reviews Scraper: Rating Insights & Review Trends avatar

Walmart Reviews Scraper: Rating Insights & Review Trends

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Walmart Reviews Scraper: Rating Insights & Review Trends

Walmart Reviews Scraper: Rating Insights & Review Trends

The Walmart Reviews Scraper collects product reviews with ratings, titles, text, dates, user details, and helpfulness data. Export clean JSON or CSV for sentiment analysis, product research, competitor tracking, and ecommerce insights at scale.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

API Empire

API Empire

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

4 days ago

Last modified

Share

Extract Walmart product reviews as structured JSON, plus two things a plain review scraper doesn't compute: a per-product rating-distribution and recommendation benchmark, and review recency/velocity analytics — days since submission, a reviews-per-month breakdown, and a recent-reviews-only filter. Every row is typed, normalized JSON — no HTML, no selectors, no parsing. Give it a product URL, a search URL, or a bare keyword, and start comparing products by rating trend and review velocity in the same run.

It's an Apify Actor that scrapes Walmart product review pages and, from the same page fetch, builds two additional analytics rows per product: a rating-distribution/recommendation benchmark and a recency/velocity summary. No Walmart account or login is required — it reads publicly served review pages. It runs headless on Apify's infrastructure, so there's no browser or proxy pool to manage.

  • Scrape individual reviews (rating, text, verified-purchase flag, helpful votes, photos, resolved review aspects)
  • Get a per-product rating-distribution benchmark (1–5 star breakdown, average rating, recommended %) from the platform's full review corpus
  • Get review recency/velocity analytics (days since submission, reviews-per-month, most-recent/oldest dates in the sample)
  • Benchmark 2+ products side by side in one run
  • Export as JSON, CSV, or Excel from the Apify dataset — no proxy management, no parsing

Three kinds of data come out of every run: individual review rows, a per-product rating benchmark row, and recency/velocity analytics computed on top of the sampled reviews.

Data TypeKey FieldsJSON Field Names
Reviewsrating, title, text, verified purchase, helpful votes, photos, resolved aspectsrating, title, text, isVerifiedPurchase, helpfulVotes, unhelpfulVotes, reviewPhotos, reviewAspects
Rating-distribution benchmarkaverage rating, recommended %, 1–5 star breakdown, total review countaverageRating, recommendedPercentage, ratingBreakdown, totalReviewCount
Recency & velocity analyticsdays since submission, most/oldest review dates, reviews-per-monthdaysSinceSubmission, mostRecentReviewDate, oldestReviewDateInSample, reviewsPerMonth, sampledReviewCount

Need more Walmart data?

If you also need the product listings themselves — pricing, stock, seller info, images — pair this Actor with a Walmart product/search scraper from API-Empire. This Actor is review-and-analytics-focused: give it product URLs from a listing scrape, or let it resolve a search URL or keyword to products on its own.

How does Walmart Reviews Scraper differ from the official Walmart API?

Walmart does publish a Reviews API, but it isn't a general-purpose review-reading endpoint. As documented on developer.walmart.com (checked 2026-08-15), the Reviews API exists to manage Walmart's Review Accelerator Program (RAP) — a seller enrolls their own listings to solicit reviews, and access is scoped to enrolled sellers' own products, requiring an account-manager invitation and formal enrollment through Seller Center. It does not let you pull rating breakdowns, review text, or recommendation percentages for arbitrary products, including competitors' listings.

FeatureWalmart Reviews API (RAP)Walmart Reviews Scraper
Who can use itSellers enrolled in RAPAnyone with an Apify account
Scope of accessible dataSeller's own enrolled listings onlyAny public Walmart product page
Approval processInvitation + formal enrollmentNone — start a run
Returns review text/ratings for readNo — it manages review generation, not retrievalYes — full review rows
Rating-distribution / recommendation benchmarkNot providedComputed per product per run
Competitor product benchmarkingNot possible (own listings only)Supported — benchmark multiple products in one run

If you're a Walmart Marketplace seller enrolled in RAP and want to grow reviews on your own catalog, the official Reviews API is the right tool. If you need to read, compare, or benchmark reviews and ratings for any product — your own or a competitor's — this Actor is built for that.

Why do developers and teams scrape Walmart reviews?

For AI engineers and agent builders

Review text, verified-purchase flags, and resolved review aspects are ready to index into a vector store or feed straight into an LLM context window without an HTML-parsing step. A product-research agent can pull rating, text, and reviewAspects for a set of products, ground its recommendations in real customer language, and cite averageRating and recommendedPercentage from the benchmark row instead of guessing at sentiment from a sample.

For pricing and category analysts

Because includeRatingBreakdown pulls the platform's full review corpus for a product — not just the sampled rows — analysts get an accurate ratingBreakdown and recommendedPercentage for benchmarking multiple SKUs in one run. Feed benchmarkTargets with a category search URL, cap products with maxProductsPerStartUrl, and get a comparable rating snapshot across an entire shelf without opening each listing by hand.

reviewsPerMonth and daysSinceSubmission turn a static review dump into a time series: has review volume for a product accelerated or gone quiet, and how old is the sample being analyzed. recentReviewsOnly narrows the review rows to a recent window while the benchmark row still reports on the full sample, so a researcher can study recent sentiment against the all-time baseline in the same dataset.

For developers building monitoring products

Because the benchmark and recency fields are computed from the same page fetch as the reviews themselves — no extra requests — a scheduled Apify run can track averageRating and reviewsPerMonth drift over time for a watchlist of products, feeding a monitoring dashboard or alerting pipeline without a second scraping pass.

How to scrape Walmart reviews (step by step)

  1. Open Walmart Reviews Scraper: Rating Insights & Review Trends on the Apify Store and click Try for free (or Run, if already added to your account).
  2. Provide at least one target in benchmarkTargets — a Walmart product URL, a Walmart search URL, or a bare keyword. None of the input fields are strictly required by the schema, but the run fails without a usable target here (or in the legacy startUrls field).
  3. Set sampleSize for how many reviews to sample per product, sortOrder for how they're sampled, and toggle includeRatingBreakdown / includeRecencyAnalytics / recentReviewsOnly for which analytics you want computed.
  4. Click Start and watch the run log for per-target and per-product progress.
  5. Download results as JSON, CSV, Excel, or another supported format from the Apify dataset, or pull them via the Apify API / apify-client.

What to do when Walmart changes its structure

The scraper is maintained, and the output schema is kept stable, so field names and types don't change on your end even when Walmart's page markup does. No specific turnaround time is promised for fixes.

⬇️ Input

All fields are optional per the input schema, but a run needs at least one usable target in benchmarkTargets or startUrls.

ParameterRequiredTypeConstraintsDescription
benchmarkTargetsNoarrayitems: string; editor: stringListProduct URL, search URL, or keyword. Same meaning as startUrls below — both are read, so an existing base-shaped input JSON keeps working.
startUrlsNoarrayitems: string; editor: stringListSame meaning as benchmarkTargets, merged with it. Kept for compatibility with base-actor input JSON. Used only when benchmarkTargets is absent.
sampleSizeNointegermin: 1; max: 1000; default (prefill): 20How many reviews to sample per product, used for both the review rows and the recency/velocity analytics. The rating-distribution benchmark itself reflects the platform's full corpus, not just this sample.
maxCommentsNointegermin: 1; max: 1000Same meaning as sampleSize. Kept for compatibility. Used only when sampleSize is absent.
sortOrderNostringenum: relevancy, submission-desc, helpful, rating-desc, rating-asc; default: relevancyOrder reviews are sampled in. Affects which reviews the review rows show, not the benchmark totals.
maxProductsPerStartUrlNointegermin: 0; max: 1000; default: 10For a search URL or keyword target, how many of its products to benchmark. 0 = no cap. Ignored for a target that is already a direct product URL.
skipProductsWithoutReviewsNobooleandefault: trueOnly changes how a product with zero reviews is labelled in the run log (skipped vs 0 reviews) — every product's review data is still checked either way.
includeRatingBreakdownNobooleandefault: trueWhen on, each product gets one benchmark row with its 1–5 star rating breakdown, average rating, and recommended percentage, reflecting the platform's full review corpus for that product. When off, those fields are null on the benchmark row.
includeRecencyAnalyticsNobooleandefault: trueWhen on, every review row gets daysSinceSubmission and each product's benchmark row gets most-recent/oldest dates and a reviews-per-month breakdown, derived from the reviews actually sampled. When off, those fields are null.
recentReviewsOnlyNointegermin: 0; max: 3650; default: 0Drop review rows older than this many days since submission. The benchmark row's recency stats still reflect the full sample regardless of this filter. 0 = no filtering.
proxyConfigurationNoobjecteditor: proxyConnection setup used for every request. Starts with a working default (Apify Proxy, RESIDENTIAL group, US); your own selection — including turning it off — is honoured exactly as given, never silently overridden.

Example input:

{
"benchmarkTargets": [
"https://www.walmart.com/ip/product-name/123456789",
"https://walmart.com/search?q=air+fryer"
],
"sampleSize": 50,
"sortOrder": "submission-desc",
"maxProductsPerStartUrl": 5,
"skipProductsWithoutReviews": true,
"includeRatingBreakdown": true,
"includeRecencyAnalytics": true,
"recentReviewsOnly": 90,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Common pitfall: recentReviewsOnly filters the individual review rows, not the benchmark row — the rating breakdown and recommended percentage on the benchmark row always reflect the product's full review corpus, so don't expect them to shift when you narrow the recency window.

⬆️ Output

Every row pushed to the dataset shares one column set, distinguished by type / itemType (review / Review or productBenchmark / ProductBenchmark). Export as JSON, CSV, Excel, or another Apify-supported format.

Scraped review row

{
"itemType": "Review",
"reviewId": "abc123XYZ",
"productUrl": "https://www.walmart.com/ip/product-name/123456789",
"rating": 5,
"title": "Exactly what I needed",
"text": "Works great, fast shipping, would buy again.",
"submittedAt": "2026-06-02",
"isVerifiedPurchase": true,
"helpfulVotes": 12,
"unhelpfulVotes": 1,
"reviewPhotos": [
{ "normalUrl": "https://i5.walmartimages.com/...jpg", "thumbnailUrl": "https://i5.walmartimages.com/...thumb.jpg", "mediaType": "image" }
],
"reviewAspects": [
{ "name": "Ease of use", "polarity": "positive" }
],
"reviewedItemId": "123456789",
"reviewedItemName": "Example Product Name",
"soldBy": "Walmart.com",
"fulfilledBy": "Walmart",
"scrapedAt": "2026-08-15T10:20:00.000000+00:00",
"id": "abc123XYZ",
"type": "review",
"productId": "123456789",
"reviewSubmittedAt": "2026-06-02",
"daysSinceSubmission": 74,
"totalReviewCount": null,
"averageRating": null,
"recommendedPercentage": null,
"ratingBreakdown": null,
"mostRecentReviewDate": null,
"oldestReviewDateInSample": null,
"reviewsPerMonth": null,
"sampledReviewCount": null
}

Scraped rating-distribution & recency benchmark row

One of these is pushed per product, in addition to its review rows.

{
"itemType": "ProductBenchmark",
"reviewId": null,
"productUrl": "https://www.walmart.com/ip/product-name/123456789",
"rating": null,
"title": null,
"text": null,
"submittedAt": null,
"isVerifiedPurchase": null,
"helpfulVotes": null,
"unhelpfulVotes": null,
"reviewPhotos": null,
"reviewAspects": null,
"reviewedItemId": null,
"reviewedItemName": null,
"soldBy": null,
"fulfilledBy": null,
"scrapedAt": "2026-08-15T10:20:05.000000+00:00",
"id": "benchmark-123456789",
"type": "productBenchmark",
"productId": "123456789",
"reviewSubmittedAt": null,
"daysSinceSubmission": null,
"totalReviewCount": 4213,
"averageRating": 4.6,
"recommendedPercentage": 92,
"ratingBreakdown": {
"1": { "count": 84, "pct": 2 },
"2": { "count": 63, "pct": 1.5 },
"3": { "count": 168, "pct": 4 },
"4": { "count": 632, "pct": 15 },
"5": { "count": 3266, "pct": 77.5 }
},
"mostRecentReviewDate": "2026-08-10",
"oldestReviewDateInSample": "2025-11-03",
"reviewsPerMonth": {
"2025-11": 3,
"2025-12": 5,
"2026-01": 6,
"2026-08": 4
},
"sampledReviewCount": 50
}

Every dataset row carries the same 27 columns regardless of row type: id, type, itemType, productUrl, productId, rating, title, text, reviewSubmittedAt, daysSinceSubmission, isVerifiedPurchase, helpfulVotes, unhelpfulVotes, reviewPhotos, reviewAspects, reviewedItemName, soldBy, fulfilledBy, totalReviewCount, averageRating, recommendedPercentage, ratingBreakdown, mostRecentReviewDate, oldestReviewDateInSample, reviewsPerMonth, sampledReviewCount, scrapedAt, plus the base-actor-compatible fields also present on the row: reviewId, submittedAt, reviewedItemId. Fields that don't apply to a given row's type are left null rather than omitted, so every row has the full column set.

How does Walmart Reviews Scraper compare to other Walmart scrapers?

FeatureWalmart Reviews ScraperGeneric alternative
Output formatTyped, normalized JSONOften raw HTML or inconsistent JSON
Rating-distribution benchmark computed per product✅ Same run, no extra requests❌ Usually requires a separate scrape/tool
Review recency & velocity analyticsdaysSinceSubmission, reviewsPerMonth built in❌ Not typically included
Multiple targets (URL, search URL, or keyword) in one inputVaries
Proxy configuration honoured exactly as set✅ No silent overrideVaries

If you're building an AI agent or RAG pipeline, the output format row is the decision-maker — parsing HTML inside an agent loop is a reliability failure mode, not a feature.

How many reviews can you scrape with Walmart Reviews Scraper?

sampleSize (and its compatibility alias maxComments) caps reviews sampled per product at 1–1000, with a default of 20. There is no separate hard cap on the number of products: benchmarkTargets accepts multiple targets, and for a search or keyword target, maxProductsPerStartUrl controls how many of its products get benchmarked (0–1000, default 10, 0 = no cap). Pagination through Walmart's review pages continues automatically until the sample size is reached or the platform stops returning reviews. No measured run-time benchmark is published here — actual throughput depends on how many products and how large a sample you request.

Integrate Walmart Reviews Scraper and automate your workflow

Walmart Reviews Scraper works with any language or tool that can send an HTTP request.

REST API integration

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run_input = {
"benchmarkTargets": ["https://www.walmart.com/ip/product-name/123456789"],
"sampleSize": 50,
"includeRatingBreakdown": True,
"includeRecencyAnalytics": True,
}
run = client.actor("API-Empire/walmart-reviews-scraper-rating-insights-and-review-trends").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["itemType"], item.get("rating"), item.get("averageRating"))

Works in Python, Node.js, Go, Ruby, cURL — any client that can call the Apify API.

Automation platforms (n8n, Make, LangChain)

In n8n, use the Apify node (or an HTTP Request node against the Apify API) to trigger a run and read back the dataset items into your workflow. In Make, the Apify app's "Run an Actor" module starts the scraper and its "Get Dataset Items" module retrieves the review and benchmark rows for downstream modules. In LangChain, wrap the Apify run + dataset fetch as a custom tool so an agent can pull review text and rating benchmarks for a product mid-conversation.

Yes — Walmart Reviews Scraper only collects reviews and product data that are already publicly visible on Walmart's product pages, without logging in or bypassing any access control. Because review text is attributed to a reviewer's public display name rather than private account data, and the benchmark rows are aggregate product statistics, this sits closer to public product/catalogue data than to personal-data scraping — Walmart's Terms of Service, not GDPR, is the framework that actually governs reuse of this data. Consult legal counsel for commercial use cases involving bulk data collection, and review Walmart's Terms of Service before large-scale or commercial use.

Frequently asked questions

Does Walmart Reviews Scraper work without a Walmart account?

Yes. It reads publicly served Walmart review pages and requires no Walmart login or account — just a Walmart product URL, search URL, or keyword as input.

How often is the scraped data updated?

Every run fetches Walmart's review pages live at run time — there's no cache. The rating benchmark and recency analytics are computed fresh from that same fetch, not stored from a previous run.

What happens if a product has no reviews or the page can't be reached?

If a product has zero reviews, no review rows or non-null benchmark fields are produced for it; skipProductsWithoutReviews only controls whether the run log calls it "skipped" or "0 reviews" — the underlying data outcome is the same either way. If a page can't be fetched after retries (blocked, timed out, or an interstitial page), that product is skipped and logged as unable to be processed; the run continues with the remaining targets rather than failing outright.

Can I scrape private or restricted Walmart reviews?

No. Only reviews and product data visible on Walmart's public product pages are returned — there is no login flow, and no gated or account-restricted content is accessed.

Is there a free trial?

Check the Actor's pricing tab on the Apify Store for current trial and pricing terms — this README does not restate pricing that can change independently of the code.

Does Walmart Reviews Scraper work for AI agent workflows and LLM pipelines?

Yes. It's callable as an HTTP endpoint (via the Apify API or apify-client) by any agent framework. Every row is typed JSON with stable field names — reviews, rating breakdowns, and recency stats can be passed straight into an LLM context window or agent tool without an HTML-parsing step.

How does Walmart Reviews Scraper handle Walmart's anti-bot system?

It retries failed requests with backoff (up to 4 attempts), detects Walmart's soft verification/interstitial page by its response signature and retries rather than treating it as valid data, and routes requests through a configurable proxy — defaulting to Apify's residential proxy group, but honouring whatever proxy configuration you set, including turning it off.

How does Walmart Reviews Scraper compare to other Walmart review scrapers?

It adds a per-product rating-distribution/recommendation benchmark and review recency/velocity analytics (days since submission, reviews-per-month) computed from the same page fetch as the reviews — capabilities not universal among Walmart review scrapers. No specific competing Actor's feature set is asserted here; check each listing's own documentation for what it covers.

Does Walmart Reviews Scraper return data in a format LLMs can use directly?

Yes. Typed, normalized JSON with stable field names — no HTML, no selectors, no parsing. Pass it directly into an LLM context window, index it into a vector store, or route it through an agent tool.

Can I use Walmart Reviews Scraper without managing proxies?

Yes. It ships with a working default proxy configuration (Apify Proxy, residential group, US) so a run works out of the box; you can also supply your own proxy configuration or disable it entirely, and that choice is honoured exactly as given.

What happens when Walmart changes its structure or blocks the scraper?

The scraper is maintained, and the output schema stays stable — field names and types don't change on your end even after a Walmart markup change. No numeric turnaround time is promised for fixes.

💬 Your feedback

Found a bug or missing a field? We want to know. Reach out through the Actor's page on the Apify Store (Issues tab) or API-Empire's support contact listed there, so it can be checked against the source and fixed.