Walmart Reviews Scraper With Seller & Variant Details avatar

Walmart Reviews Scraper With Seller & Variant Details

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Walmart Reviews Scraper With Seller & Variant Details

Walmart Reviews Scraper With Seller & Variant Details

Walmart Reviews Scraper extracts product reviews with seller and variant details, including ratings, review text, dates, verified purchase status, seller information, product variants, and product data. Ideal for review analysis, competitor research, and e-commerce insights.

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

SimpleAPI

SimpleAPI

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

3 days ago

Last modified

Share

Walmart Reviews Scraper — Ratings, Seller & Variant Details

Walmart Reviews Scraper With Seller & Variant Details pulls customer reviews from Walmart.com — rating, title, text, submittedAt, isVerifiedPurchase, helpfulVotes, reviewPhotos and reviewAspects — and attaches two things a plain review scraper doesn't: the literal reviewed SKU (reviewedItemId, variantMismatch) and who sold and fulfilled that exact item (soldBy, fulfilledBy, isThirdPartySeller). Brand teams, marketplace agencies and researchers use it to tell which reviews actually belong to the product they're checking. Reviews stream to the dataset as each one is found.


🧭 What is Walmart Reviews Scraper With Seller & Variant Details?

It is a Walmart.com review extractor that reads the same public review page a shopper's browser loads — no Walmart account, login, or seller credentials required. Point it at a product URL, a search URL, or a plain keyword, and it returns one structured JSON row per review, pushed to the dataset the moment it's collected.

  • Discovery by product URL, search URL, or keyword — mix all three in one run via walmartProducts; keywords and search URLs are expanded into product pages, direct /ip/ URLs are scraped as-is
  • Core review fields — rating, title, text, submission date, verified-purchase flag, helpful/unhelpful vote counts, customer photo URLs, and named review aspects (e.g. "Fit: positive")
  • Reviewed-SKU identity — the literal item id, name and image the review was actually written about, compared against the product id you requested, with a variantMismatch flag when they differ
  • Seller & fulfillment per reviewsoldBy, fulfilledBy, and an isThirdPartySeller flag for the specific item each review is about
  • Five sort orders — relevancy, newest, most helpful, highest rating, lowest rating
  • Run-scoped de-duplication — the same review, re-served under a sibling variant page, is only pushed once per run
  • Streaming output — export as JSON, CSV, Excel, or XML from the Apify Console, or pull results via the API/SDK

📦 What data can I extract with Walmart Reviews Scraper With Seller & Variant Details?

Every review row carries three groups of data: the review itself, the reviewed-SKU identity, and the seller/fulfillment details for that item. Every key below is copied from the row the Actor actually pushes (src/main.py, extract_reviews_from_html()) — it matches the dataset's default view exactly, field for field.

FieldExample valueUse case
id"420870405"Review's own id as a string — used internally to de-duplicate
reviewId420870405Same review id, raw value as returned by Walmart's page data
itemType"Review"Constant row-type marker
rating51–5 star customer rating
title"Solid shirt"Review headline (many reviews carry none — null)
text"Good shirt, ideal for running errands. Neckline is good."Full review body
submittedAt"2026-03-14"ISO date the review was submitted, converted from Walmart's M/D/YYYY format
isVerifiedPurchasetruetrue only when Walmart's own VerifiedPurchaser badge is present
helpfulVotes12"Helpful" vote count
unhelpfulVotes1"Unhelpful" vote count
reviewPhotos[{"normalUrl": "...", "thumbnailUrl": "...", "mediaType": "IMAGE"}]Customer photo/video-thumbnail URLs and metadata — null if none. URLs only, never downloaded
reviewAspects[{"name": "Fit", "polarity": "positive"}]Named aspects Walmart tags on the review, resolved from the same page's own lookup table — null if none
reviewedItemId"2696776506"The literal SKU/variant id the review was actually written about
reviewedItemName"Free Assembly Men's Everyday Cotton Tee, Actual Color: Deep Black"Name of that SKU/variant
reviewedItemImageUrl"https://i5.walmartimages.com/asr/example.jpeg"Image URL of that SKU/variant
requestedProductId"888475689"Product id parsed from the URL/keyword-derived page you requested
variantMismatchtruetrue when reviewedItemId differs from requestedProductId; null when either id is unavailable
soldBy"Walmart.com"Seller of the reviewed item
fulfilledBy"Walmart"Who fulfilled the reviewed item
isThirdPartySellerfalsetrue when soldBy/fulfilledBy is not Walmart itself; null when neither field is present on the page
productUrl"https://www.walmart.com/ip/Free-Assembly-Men-s-Everyday-Cotton-Tee/888475689"The product page URL this review was fetched from (ad-tracking redirects already resolved to the real /ip/… path)
scrapedAt"2026-08-15T10:22:41Z"UTC timestamp of extraction

🔎 Variant identity and mismatch data

Walmart pools reviews across a product's whole variant family — every color and size of the same item can share one review pool. reviewedItemId/reviewedItemName/reviewedItemImageUrl come straight from the review's own record, not from the page you requested, so you can see exactly which physical SKU a given review describes. variantMismatch compares that id against requestedProductId and is true whenever they diverge — the signal to use when deciding whether a 5-star or 1-star review actually applies to the listing you're evaluating. Both reviewedItemId extraction and variantMismatch computation run independently: variantMismatch still populates even when includeReviewedItemDetails is off, and turning flagVariantMismatch off only blanks the flag itself, not the underlying id fields.

🏪 Seller and fulfillment data

soldBy and fulfilledBy name the merchant that sold and fulfilled the specific item each review is about — not the product's overall listing, since a listing's buy box can rotate sellers over time. isThirdPartySeller is computed from those two fields (true when either is present and isn't "Walmart.com"/"Walmart") and is driven only by flagThirdPartySellers, independently of whether includeSellerInfo is hiding soldBy/fulfilledBy on the row. Real seller diversity is more likely to show up across a run spanning several different products or categories than within one product's own review set, where a single seller usually dominates.


🤔 Why not build this yourself?

Walmart does not publish a general reviews or product-data API. As of 2026-08-15, developer.walmart.com lists four API programs — Marketplace Partners, 1P Suppliers, Transportation Carriers, and Advertising Partners — all gated behind an approved seller, supplier, carrier, or ad-partner relationship with Walmart; none is a general-purpose reviews endpoint open to independent developers.

Building this yourself means: paginating Walmart's review widget page by page until it stops returning new reviews; parsing the __NEXT_DATA__ JSON payload embedded in the HTML rather than a documented API response; detecting and escalating past interstitial/CAPTCHA pages (this Actor treats a short, data-less response in a specific size band as a block, not empty content, and retries through a no-proxy → alternate-route → residential-proxy fallback ladder); resolving the ad-tracking redirect wrapper Walmart puts on sponsored search results back to the real /ip/… product path; and reconciling reviews Walmart pools across a product's own color/size variant family back to the exact SKU each one was written about. None of that is exposed by any Walmart API — it has to be derived from the same page data a browser renders.

Use Walmart's own partner APIs if you are an approved Marketplace seller or supplier managing your own listings and orders. Use this Actor if you need review, variant-identity, and seller/fulfillment data for products you don't have partner access to.


How to use data extracted from Walmart

🛡️ Brand and marketplace QA teams

Feed your own product URLs into walmartProducts, leave flagVariantMismatch and includeReviewedItemDetails on, and check every row where variantMismatch is true. Those reviews were written about a different color/size SKU than the listing you're auditing — useful for catching a listing whose visible star rating is skewed by reviews that don't belong to it.

📊 Marketplace-monitoring agencies

Run a batch of client or competitor product URLs with includeSellerInfo and flagThirdPartySellers on, and filter rows where isThirdPartySeller is true. soldBy/fulfilledBy name the actual merchant behind each reviewed item — useful for a recurring audit of which listings have drifted from first-party Walmart inventory to third-party resale.

🔬 Market research and review-content analysis

Point walmartProducts at a search URL or keyword (e.g. "running shoes") with maxProductsPerStartUrl set to cover a category, then aggregate rating, reviewAspects, and isVerifiedPurchase across the returned rows to map sentiment and named-aspect distribution (fit, comfort, durability, etc.) across a category.

🤖 AI agents and automated pipelines

Because output is typed JSON pushed row by row as the run executes, an agent can poll the dataset for variantMismatch or isThirdPartySeller and trigger a downstream action (flag for review, alert a seller-ops channel) without polling a UI. The Actor is callable as a standard Apify Actor run from any HTTP client or the apify-client SDK.


⬇️ Input sample

None of the 12 parameters below are required — an input with only walmartProducts (or its legacy alias startUrls) filled in is enough to run.

ParameterRequiredTypeDescriptionExample value
walmartProductsNoarray (stringList)Product URLs, search URLs, or keywords, one per line. Bulk input supported.["https://www.walmart.com/ip/product-name/123456"]
startUrlsNoarray (stringList, nullable)Legacy alias of walmartProducts, kept for backward compatibility. Leave empty and use walmartProducts for new runs.[]
maxReviewsPerItemNointeger (min 0, max 1000)Max reviews to extract per product. 0 = unlimited, bounded only by the real pagination ceiling. No schema default; prefill 20; the Actor falls back to 20 if omitted.20
maxCommentsNointeger (min 0, max 1000, nullable)Legacy alias of maxReviewsPerItem.20
sortOrderNostring enum: relevancy, submission-desc, helpful, rating-desc, rating-ascReview ordering. Default relevancy."submission-desc"
maxProductsPerStartUrlNointeger (min 0, max 1000)For search URLs or keywords only, limits how many discovered products are processed per entry. Has no effect on a direct product URL. Default 10.10
skipProductsWithoutReviewsNobooleanControls how zero-review products are logged (skipped vs. shown with 0 reviews) — does not change which products are fetched. Default true.true
flagVariantMismatchNobooleanCompares each review's reviewed SKU against the requested product id and sets variantMismatch. Default true.true
includeReviewedItemDetailsNobooleanIncludes reviewedItemId/reviewedItemName/reviewedItemImageUrl/requestedProductId on each row. Default true.true
includeSellerInfoNobooleanIncludes soldBy/fulfilledBy on each row. Default true.true
flagThirdPartySellersNobooleanSets isThirdPartySeller on each row. Computed independently of includeSellerInfo. Default true.true
proxyConfigurationNoobject (proxy editor)Controls how requests reach Walmart. Console prefill suggests Apify Proxy (RESIDENTIAL, US); if the key is omitted entirely (e.g. a bare API call), the Actor starts with no proxy and only escalates to Apify Proxy after a real block.{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US"}
{
"walmartProducts": [
"https://www.walmart.com/ip/Free-Assembly-Men-s-Everyday-Cotton-Tee/888475689",
"https://walmart.com/search?q=running+shoes"
],
"maxReviewsPerItem": 50,
"sortOrder": "submission-desc",
"maxProductsPerStartUrl": 15,
"skipProductsWithoutReviews": true,
"flagVariantMismatch": true,
"includeReviewedItemDetails": true,
"includeSellerInfo": true,
"flagThirdPartySellers": true,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }
}

Common pitfall: skipProductsWithoutReviews only changes how a zero-review product is logged during the run — it does not skip fetching that product. If you expect it to reduce run time on a batch with many out-of-stock or unreviewed products, it won't; every discovered product URL is still fetched regardless of this setting.


⬆️ Output sample

One row per review, pushed to the dataset the moment it's extracted — no batching, no waiting for the run to end. Every key below comes from the row-building code (extract_reviews_from_html()), and matches the dataset's default view exactly — there are no hidden fields beyond what's shown here.

{
"id": "420870405",
"reviewId": 420870405,
"itemType": "Review",
"rating": 5,
"title": "Solid shirt",
"text": "Good shirt, I bought it to run to the store or around town. Neckline is good.",
"submittedAt": "2026-03-14",
"isVerifiedPurchase": true,
"helpfulVotes": 12,
"unhelpfulVotes": 1,
"reviewPhotos": null,
"reviewAspects": [{ "name": "Fit", "polarity": "positive" }],
"reviewedItemId": "2696776506",
"reviewedItemName": "Free Assembly Men's Everyday Cotton Tee, Actual Color: Deep Black",
"reviewedItemImageUrl": "https://i5.walmartimages.com/asr/example.jpeg",
"requestedProductId": "888475689",
"variantMismatch": true,
"soldBy": "Walmart.com",
"fulfilledBy": "Walmart",
"isThirdPartySeller": false,
"productUrl": "https://www.walmart.com/ip/Free-Assembly-Men-s-Everyday-Cotton-Tee/888475689",
"scrapedAt": "2026-08-15T10:22:41Z"
}

Export as JSON, CSV, Excel, or XML from the Apify Console's Output tab, or pull rows with the API/SDK.


How do you filter and target specific reviews?

This Actor's precision controls are discovery method, per-entry volume, ordering, and per-product volume — there is no rating/date/keyword filter on the reviews themselves, so target with these four instead:

Direct URL vs. search/keyword discovery. A direct product URL (/ip/…) is scraped as-is and ignores maxProductsPerStartUrl entirely. A search URL or a bare keyword is expanded into a list of product pages first, and maxProductsPerStartUrl caps how many of those are actually processed — use a direct URL when you know exactly which listing you want, and a keyword/search URL when you want category-wide coverage.

Ordering as a quality proxy. There's no minimum-rating input, so sortOrder is how you reach the extremes within your cap: rating-desc and rating-asc front-load the highest- or lowest-rated reviews first, helpful front-loads the most social-proof-heavy ones, and submission-desc front-loads the newest.

Volume controls. maxReviewsPerItem caps reviews per product (0 = unlimited, bounded by however many pages Walmart actually serves); maxProductsPerStartUrl caps products per search/keyword entry.

{ "walmartProducts": ["https://www.walmart.com/ip/Free-Assembly-Men-s-Everyday-Cotton-Tee/888475689"], "maxReviewsPerItem": 0, "sortOrder": "rating-asc" }
{ "walmartProducts": ["https://walmart.com/search?q=running+shoes"], "maxProductsPerStartUrl": 25, "maxReviewsPerItem": 30, "sortOrder": "helpful" }
{ "walmartProducts": ["running shoes"], "maxProductsPerStartUrl": 5, "maxReviewsPerItem": 100, "sortOrder": "submission-desc", "flagThirdPartySellers": true }

▶️ Want to try other scrapers?

ScraperWhat it extracts
Amazon Product Details Scraper (Bestsellers & New Releases)Full product-detail records for ranked Amazon Best Sellers, New Releases, or Most Wished For lists
Amazon Price Tracker — Title, Image & Product UpdatesAmazon price, stock, rating, and cross-run listing-integrity drift tracking
eBay Product Listing Scraper With Sold Price DataeBay listings plus sold/completed-listing price analytics
Facebook Reviews Scraper — Headlines, Tags & Reviewer DetailFacebook Page reviews with headlines, tags, and reviewer detail
Udemy Course Reviews Scraper: Instructor Course CatalogUdemy course reviews tied to instructor and course catalog data
Goodreads Book Scraper: Review Sentiment AnalysisGoodreads book reviews with sentiment analysis

How to extract Walmart data programmatically

This Actor runs as a standard Apify Actor — start it from the Apify Console, on a schedule, via webhook, or by calling the Apify API/apify-client SDK with your Apify API token.

Python example

from apify_client import ApifyClient
client = ApifyClient("<APIFY_API_TOKEN>")
run = client.actor("<store-id>/walmart-reviews-scraper-with-seller-and-variant-details").call(
run_input={
"walmartProducts": ["https://www.walmart.com/ip/Free-Assembly-Men-s-Everyday-Cotton-Tee/888475689"],
"maxReviewsPerItem": 50,
"sortOrder": "submission-desc",
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["rating"], item["variantMismatch"], item["soldBy"])

Export to spreadsheets or CRM

From the Apify Console's Output tab, export the dataset as CSV or Excel directly — map rating/title/text to a review-content sheet, variantMismatch/reviewedItemId to a QA/listing-audit column, and soldBy/fulfilledBy/isThirdPartySeller to a seller-monitoring sheet or CRM import.


Scraping publicly available Walmart product review pages — the same pages any shopper's browser loads without logging in — is generally lawful. This Actor's output does not include reviewer names or other individual-identifying fields; it returns review content (rating, title, text, dates, vote counts) plus merchant/business names (soldBy, fulfilledBy), so GDPR/CCPA personal-data obligations do not attach to the core output. What applies instead is Walmart's own Terms of Service, which govern automated access to the site, and any database or intellectual-property rights Walmart holds in its review and listing content. Consult legal counsel for commercial applications involving bulk storage or resale of this data.


❓ Frequently asked questions

What happens if a product has no reviews yet?

By default (skipProductsWithoutReviews: true) it's logged as skipped in the run log; setting it to false logs it as processed with 0 reviews instead. Either way, the product URL is always fetched — this setting only changes the log message, not which products are scraped.

Can I get seller and variant data along with the reviews?

Yes, both are on by default. includeReviewedItemDetails adds reviewedItemId/reviewedItemName/reviewedItemImageUrl/requestedProductId; includeSellerInfo adds soldBy/fulfilledBy. variantMismatch and isThirdPartySeller are controlled by their own separate flags (flagVariantMismatch, flagThirdPartySellers) and can still populate even if the detail fields above are turned off.

How accurate is the review and seller data?

The Actor returns data exactly as it appears on Walmart's public review page at request time. Accuracy depends on how current Walmart's own page is — for review-volume or seller-mix decisions, re-run on a schedule rather than relying on a single snapshot, and treat scrapedAt as the data's true age.

How many reviews can I get per run?

Up to maxReviewsPerItem per product (default 20 if omitted, maximum 1000), or unlimited with 0 — in which case extraction continues, page by page, until Walmart stops returning new reviews for that product or a block occurs. There is no fixed platform-wide review cap documented in the schema.

How do I detect a review written about a different variant than the one I requested?

Check variantMismatch on each row — it's true when the review's own reviewedItemId differs from the requestedProductId you queried, which happens because Walmart pools reviews across a product's color/size variant family. It's null, not false, when either id couldn't be determined, so treat null as "unknown," not "no mismatch."

What happens if Walmart blocks or rate-limits a request?

The Actor detects a block (an HTTP 403/444, or a short, data-less response Walmart serves as an interstitial) and escalates the connection through a fallback ladder: no proxy → an alternate Apify Proxy route → residential Apify Proxy, retrying up to 3 times at the residential stage before giving up on that page. A product that still fails after retries is skipped rather than returned with blank fields.

Does Walmart Reviews Scraper With Seller & Variant Details work with Claude, ChatGPT, and AI agent frameworks?

It is not MCP-reachable. It is callable as a standard Apify Actor run by any HTTP client or agent framework that can call the Apify API — pass input JSON, poll or wait for the run, then read the dataset.

Can I use this Actor without a Walmart API key or developer account?

Yes. It requires no Walmart account, seller/supplier credentials, or API key — only an Apify account to start the run. proxyConfiguration is optional; the Actor manages its own connection and escalates automatically on a real block.

Can I still use my old startUrls/maxComments input?

Yes. Both are accepted as legacy aliases of walmartProducts/maxReviewsPerItem, so existing input JSON keeps working unchanged.


💬 Conclusion

Walmart Reviews Scraper With Seller & Variant Details turns a list of Walmart product URLs, search URLs, or keywords into structured, real-time review data — with the reviewed SKU's own identity and its seller/fulfillment details attached to every row, and no Walmart account or API access required. The differentiator is variantMismatch and isThirdPartySeller: signals that tell you whether a review actually belongs to the listing you're evaluating, not just what star rating it left. Start a run from the Apify Console or the API with your product list and let reviews stream into the dataset as they're found.