Walmart Scraper — Products, Prices & Reviews avatar

Walmart Scraper — Products, Prices & Reviews

Pricing

from $2.00 / 1,000 product scrapeds

Go to Apify Store
Walmart Scraper — Products, Prices & Reviews

Walmart Scraper — Products, Prices & Reviews

Scrape Walmart.com search results, category pages, product pages and reviews: price, was-price, rating, seller, availability, fulfillment, images and specifications. Any keyword or URL.

Pricing

from $2.00 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Trevor Ortega

Trevor Ortega

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

10 days ago

Last modified

Categories

Share

Walmart Scraper

Scrape Walmart.com search results, browse and category pages, product pages and customer reviews into a clean dataset: price, was-price, savings, unit price, rating, review count, seller, availability, shipping / pickup / delivery, badges (Best seller, Rollback, Clearance, Overall pick), rank on the page and sponsored flag. Turn on details for the description, specifications, every image, every variant with its own price and stock, UPC, seller profile and return policy, and turn on reviews for the review texts.

No headless browser and no login: the Actor reads the JSON Walmart embeds in its own pages, so one request returns 40+ products. Download the results as JSON, CSV or Excel, or pull them through the API into your own app, Google Sheets or an LLM pipeline. You pay per item you get.

What data does Walmart Scraper extract?

Every product from a search, browse or category page (the result event):

FieldDescription
type"product"
usItemId, productIdWalmart item id (the number in /ip/.../18901811909) and internal product id
name, url, imageUrlProduct title, canonical product URL, full-size main image
brandBrand, when the result tile carries it (always filled with details on)
price, wasPrice, savingsAmount, currencyCurrent price, strike-through price, the difference, USD
priceTextPrice as displayed ($99.00, or See price in cart; the number is still in price)
unitPriceUnit price text, e.g. $84.97/count, 2.9 ¢/fl oz
variantPriceMin, variantPriceMax"Options from $x" / "$x - $y" across variants and conditions
shippingPrice, subscriptionPriceShipping fee shown on the tile; subscribe-and-save price
rating, reviewCountAverage rating (0-5) and number of ratings
sellerName, sellerIdSeller (Walmart.com or the marketplace seller)
isSponsoredtrue for sponsored tiles (ads). A product shown as an ad and as an organic result is saved once, as organic
availability, inStockIN_STOCK / OUT_OF_STOCK / UNKNOWN and a boolean (null when Walmart shows no offer)
fulfillment{type, shipping, pickup, delivery, freeShipping, shippingText, pickupText, deliveryText}, e.g. "Free shipping, arrives today"
badgesBest seller, Rollback, Clearance, Reduced price, Overall pick, Deal, Low stock, Only 4 left, 100+ bought since yesterday, ...
category, categoryPath, productTypeWalmart's primary shelf for the product (leaf and full path) and its product type. For some items the primary shelf is a merchandising shelf such as "View in 3D"; productType (Headphones, Air Fryers) is the stable classification
variantCount, additionalOfferCountVariants shown on the tile; other offers for the same product
shortDescriptionShort description when the tile has one
position, pageRank among the product tiles of the page (ads included, in display order) and page number
locationStore context Walmart priced the page for: {zipCode, city, state, storeId}
searchTerm, sourceUrl, scrapedAtProvenance
changeType, previousValuesOnly with Only new or changed items on: new or changed, and for changed products the old values of the fields that changed (review items get changeType: "new")

With Include product details on, or for product URLs (the extra detail event), each product also gets:

FieldDescription
description, shortDescriptionFull description and summary as plain text
specificationsSpecification table as a dict ({"Battery life": "50 h", ...})
imagesAll product images, full size
variantOptions, variantsOption dimensions ([{name: "Color", values: [...]}]) and every variant: {usItemId, productId, options: {Color: "Black", "Clothing Size": "M"}, price, wasPrice, availability, inStock, url}
upc, gtin, model, manufacturer, manufacturerPartNumberIdentifiers (each null when Walmart does not publish it)
seller{id, catalogSellerId, name, legalName, type, rating, reviewCount, url, logoUrl, isProSeller, fulfilledByWalmart}
returnPolicy{returnable, freeReturns, windowDays, text}
warranty, warrantyUrlWarranty text and link when present
ratingCounts, reviewsWithText, recommendedPercentage1-5 star breakdown, number of written reviews, "would recommend" share
reviewAspectsWhat reviewers talk about: [{name: "Sound Quality", mentions: 125}, ...]
condition, conditionOffersNew / Open Box / ... and the price of each condition on offer
offerType, secondaryOfferPriceONLINE_AND_STORE / ONLINE_ONLY / STORE_ONLY; price of the next seller's offer when there is one
ingredients, directions, warningsGrocery, health and safety texts when present
fulfillmentAdds shippingPrice, deliveryPrice, arrivesBy, shippingRestricted and full sentences such as "Free pickup, today at Sacramento Supercenter"
primaryUsItemId, orderLimitParent item of the variant group; maximum order quantity

With Include reviews on, or for review-page URLs (the review event), one item per review:

FieldDescription
type"review"
usItemId, productName, productUrlProduct the review belongs to
reviewId, rating, title, text, submittedAtReview id, stars (1-5), title, text, ISO date
positiveFeedback, negativeFeedbackHelpful / not helpful votes
verifiedPurchase, recommended, badgesVerified purchase flag, "would recommend", badge texts
photosCount, photosCustomer photos
sellerResponse, sellerResponseDateSeller reply when present
soldBy, fulfilledBy, variant, reviewedItemIdWhich seller and variant the reviewer bought
language, syndicatedFrom, scrapedAtReview language, original source for syndicated reviews
reviewerNameReviewer's nickname as Walmart shows it ("Richard"; reviewers who chose to stay anonymous show as "anonymous"); null when the review has no nickname (Walmart then prints "Walmart customer")
reviewerIdAlways null: Walmart shows no reviewer id or public profile on review cards (kept for the same shape as the other review Actors)
reviewerLocationReviewer location when Walmart publishes one; null otherwise (rare: none was set in our samples)

Walmart shows no reviewer photos or avatars, so there is no image field for reviewers.

How to use Walmart Scraper

  1. Type one or more Search terms (one per line) and/or paste Start URLs: search pages, /browse/ pages, /cp/ category pages, product pages (/ip/...) or review pages (/reviews/product/...). Filters you applied on walmart.com stay in the URL and are respected.
  2. Pick Sort by and, if you want, a Min / Max price.
  3. Set Max items to cap the run (and the cost). Products and reviews both count.
  4. Turn on Include product details and/or Include reviews only if you need them: each costs extra requests and events (see below).
  5. Click Start. Results appear in the Dataset tab; export from there or use the API.

Input example

{
"searchTerms": ["headphones"],
"startUrls": [
{ "url": "https://www.walmart.com/browse/electronics/over-ear-on-ear-headphones/3944_133251_1095191_1230614_1230477" },
{ "url": "https://www.walmart.com/ip/18901811909" }
],
"maxItems": 200,
"maxPagesPerSearch": 5,
"sortBy": "best_seller",
"minPrice": 20,
"maxPrice": 150,
"includeSponsored": true,
"includeDetails": false,
"includeReviews": false,
"maxReviewsPerProduct": 20,
"reviewSort": "newest",
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["UNBLOCKER"] }
}

Output example

A product from a search page:

{
"type": "product",
"usItemId": "17705823295",
"productId": "2X5KX5MXYEUT",
"name": "Bluetooth Headphones Over Ear, 65Hrs Playtime Wireless Headphones,Bass Boosted by 90%,Lightweight Headset with Deep Bass, Clear Call with 4 Noise Cancelling Mics,Low Latency for Travel Work Cellphone",
"url": "https://www.walmart.com/ip/Bluetooth-Headphones-4-Mic-Noise-Cancelling-Calls-Wireless-Earbuds-2200mAh-Charging-Case-Support-Wireless-Charging-Compatible-iPhone-13-Pro-Max-XS-XR/17705823295",
"brand": null,
"price": 19.89,
"wasPrice": 169.97,
"priceText": "$19.89",
"currency": "USD",
"unitPrice": null,
"savingsAmount": 150.08,
"shippingPrice": null,
"variantPriceMin": 19.59,
"variantPriceMax": null,
"subscriptionPrice": null,
"rating": 4.2,
"reviewCount": 3922,
"sellerName": "VEATOOL",
"sellerId": "4FBDDE46B58946639B681AE74E2E7F72",
"isSponsored": true,
"availability": "IN_STOCK",
"inStock": true,
"fulfillment": {
"type": "FC",
"shipping": true,
"pickup": false,
"delivery": false,
"freeShipping": false,
"shippingText": "Shipping, arrives Sun, Oct 4",
"pickupText": null,
"deliveryText": null
},
"badges": ["Best seller"],
"imageUrl": "https://i5.walmartimages.com/seo/Bluetooth-Headphones-4-Mic-Noise-Cancelling-Calls-Wireless-Earbuds-2200mAh-Charging-Case-Support-Wireless-Charging-Compatible-iPhone-13-Pro-Max-XS-XR_51533b6e-c49e-4459-9787-3c45d26de3ec.6ad6cf413848b8ff85c27d97aca66841.jpeg",
"category": "Over-Ear and On-Ear Headphones",
"categoryPath": ["Electronics", "Audio", "Headphones", "Shop Headphones by Type", "Over-Ear and On-Ear Headphones"],
"productType": "Headphones",
"variantCount": 0,
"additionalOfferCount": null,
"shortDescription": null,
"position": 2,
"page": 1,
"location": { "zipCode": "95829", "city": null, "state": "CA", "storeId": "3081" },
"searchTerm": "headphones",
"sourceUrl": null,
"scrapedAt": "2026-10-02T20:23:58+00:00"
}

With includeDetails: true the same item additionally carries, for example:

{
"brand": "VEAT00L",
"model": "BT1632",
"upc": null,
"description": "【Bluetooth 5.4&Dual-Connections】Equipped with the latest Bluetooth 5.4 tech, ...",
"specifications": { "Headphone style": "Over-Ear", "Battery life": "65 h", "Wireless": "Y" },
"images": ["https://i5.walmartimages.com/seo/...6ad6cf413848b8ff85c27d97aca66841.jpeg", "..."],
"variantOptions": [{ "name": "Actual Color", "values": ["Blue", "Gold", "Orange", "Pink", "Purple", "Silver", "black gray"] }],
"variants": [
{ "usItemId": "2312754100", "productId": "6MLYJ0VM9OEE", "options": { "Actual Color": "Blue" }, "price": 21.59, "wasPrice": 179.97, "availability": "IN_STOCK", "inStock": true, "url": "https://www.walmart.com/ip/.../2312754100" }
],
"seller": {
"id": "4FBDDE46B58946639B681AE74E2E7F72",
"catalogSellerId": "101133098",
"name": "VEATOOL",
"legalName": "Shenzhen Dexinyue Trading Co., Ltd.",
"type": "Marketplace seller",
"rating": 4.35,
"reviewCount": 11092,
"url": "https://www.walmart.com/global/seller/101133098",
"isProSeller": true,
"fulfilledByWalmart": true
},
"returnPolicy": { "returnable": true, "freeReturns": true, "windowDays": 30, "text": "Free Holiday returns until Jan 31" },
"ratingCounts": { "1": 464, "2": 168, "3": 230, "4": 383, "5": 2677 },
"reviewsWithText": 700
}

A review:

{
"type": "review",
"usItemId": "18901811909",
"reviewId": "437018039",
"rating": 5,
"title": "very happy with the headphones",
"text": "These headphones are fantastic! The sound is just as good as headphones that cost twice as much. Definitely worth it!",
"submittedAt": "2026-08-15",
"positiveFeedback": 0,
"negativeFeedback": 0,
"verifiedPurchase": true,
"recommended": null,
"badges": ["Verified Purchase"],
"photosCount": 1,
"photos": ["https://i5.walmartimages.com/dfw/6e29e393-c66d/k2-_d5dbf8a8-fa57-4e29-aecc-a04e496c7aad.v1.jpg"],
"sellerResponse": null,
"sellerResponseDate": null,
"soldBy": "COZZY SHOPPING INC",
"fulfilledBy": "Seller",
"variant": { "Color": "Black" },
"reviewedItemId": "5530776824",
"language": "English",
"syndicatedFrom": null,
"reviewerName": "anonymous",
"reviewerId": null,
"reviewerLocation": null,
"productName": "Skullcandy Crusher XT Wireless Foldable Over-Ear Headphones, Krazy Pink",
"productUrl": "https://www.walmart.com/ip/Skullcandy-Crusher-XT-Wireless-Over-Ear-Krazy-Pink/18901811909",
"scrapedAt": "2026-10-02T20:24:59+00:00"
}

Proxy note

Walmart answers datacenter and most residential proxy traffic with a "Robot or human?" challenge, so this Actor uses Apify's Unblocker proxy (group UNBLOCKER) by default. Unblocker is billed to your Apify account per answered request: 10 Unblocker units, about $0.0015 on the free plan and less on paid plans. Requests the proxy cannot complete are free; a page that no longer exists (HTTP 404) still counts. One request returns either a search / browse page (40 products plus sponsored tiles), one product page, or 10 reviews.

The Actor is built around that price: it requests a further result page only when Max items still needs it, opens product and review pages only when you ask for them, and reuses the 10 reviews a product page already contains instead of fetching them again. The SUMMARY record in the run's key-value store reports successfulRequests, so you can check the proxy cost of every run. You can switch to another proxy group in the input; the Actor then retries challenge pages on fresh IPs and reports them as blockedPages.

How much does it cost?

Pay per event, no subscription: $0.002 per product, + $0.003 per product page opened (details), $0.0008 per review, plus the proxy requests above and a few cents of platform usage per thousand items. Worked example for 100 products from one search, on the free plan:

RunRequests (proxy cost)EventsTotal
100 products, search data only2 search pages ($0.003)100 x $0.002 = $0.20about $0.20
+ product details+ 100 product pages ($0.15)+ 100 x $0.003 = $0.30about $0.65
+ 20 reviews per product, most relevant first (set Max items to 2,100)+ 100 review pages ($0.15; 200 pages for other sort orders)+ 2,000 x $0.0008 = $1.60about $2.40

Search data alone is by far the cheapest per product: one $0.0015 request brings 40-60 products. Turn details and reviews on only for the products you need them for, for example by running a second pass on product URLs you selected from the first dataset.

How to scrape Walmart search results by keyword

Put the keywords into Search terms. Each term is searched on Walmart.com and paginated automatically, 40 organic products per page plus the sponsored tiles Walmart mixes in (isSponsored; turn Include sponsored products off for organic results only). Walmart serves 11 to 25 pages per query, so one term yields roughly 500 to 1,200 products; use several terms, category (/browse/) URLs or price ranges to go deeper. position and page give the rank of every product, which makes the output usable for share-of-search and rank tracking. All six sort orders of the site are supported. One quirk of the site: "Price: low to high" together with a minimum price returns an empty list on Walmart itself, so that combination is collected in best-match order within the price range.

How to track Walmart prices and stock

Schedule the Actor (daily for fast-moving items) with the same search terms, browse URLs or product URLs and compare price, wasPrice, availability and badges (Rollback, Clearance, Reduced price) between runs, joining on usItemId, or let the Actor do the comparison with Only new or changed items (see "Monitor changes on a schedule" below). Product URLs can be passed in bulk in Start URLs; each returns one fully detailed item including every variant's own price and stock.

How to scrape Walmart product reviews

Either turn on Include reviews (reviews for every product found), or paste review-page URLs such as https://www.walmart.com/reviews/product/18901811909 to get reviews only. Max reviews per product caps each product; Sort reviews picks most relevant, newest, most helpful, highest or lowest rating. Walmart lists only reviews that have text, 10 per request; star-only ratings are included in reviewCount and ratingCounts but have nothing to scrape. To collect only fresh reviews, set Only reviews newer than (7 days, 24 hours or a date such as 2026-10-01): reviews are then read newest first and the Actor stops at the first review page that is entirely older, or turn on Only new or changed items to get only reviews that earlier runs have not returned.

Monitor changes on a schedule

Turn on Only new or changed items and the Actor remembers what earlier runs of the same input returned: each run outputs only products that are new in the results or whose price, was price, stock status, star rating or seller changed. Unchanged products are dropped before anything is saved and before any product or review page is requested, so they cost neither events nor Unblocker requests (a monitored search costs one proxy request per 40 products checked). Max items becomes the watched window: the first products of the listing are checked every run (for example 40 = one search page); turn Include sponsored products off so rotating ads do not show up as new products. Save the input as a task and add a Schedule to it in Apify Console (Schedules → Create new, daily). Every output item carries changeType (new or changed), and changed products carry previousValues, e.g. {"price": 24.99, "availability": "IN_STOCK"} for a product that dropped to $19.99 and sold out. With reviews on, only reviews not returned before are output (newest first); to watch the reviews of a product without paying for the product item, monitor its reviews URL (/reviews/product/<id>) or set Only reviews newer than to 1 day. Monitoring key keeps several schedules on the same search separate.

Which store and ZIP code do the prices come from?

Walmart prices and availability can differ by store. The Actor does not select a store: Walmart assigns one to each request, and through the Unblocker proxy that has consistently been its default store (Sacramento, CA, store 3081). Every item carries the store context it was priced for in location, so you can verify it. Choosing a ZIP code is not supported yet.

Does it work without login or a browser?

Yes. Everything comes from public pages as an anonymous visitor sees them, read with plain HTTP requests and Chrome TLS fingerprinting. No account, no cookies, no headless browser, which keeps runs fast (a page typically takes 1-5 seconds through the proxy) and cheap. Member-only prices (Walmart+) and "sign in to see price" offers are not available.

Integrations and API

Use the run in Zapier, Make, n8n, Google Sheets, or call it from Python/Node with the Apify client. See the API tab for ready-made snippets.

This Actor collects only data that Walmart shows publicly to logged-out visitors: product listings, prices, seller business profiles, and customer reviews with their text, rating and the reviewer's nickname as shown (plus the reviewer location when Walmart publishes one). It does not log in and collects no photos, avatars, contact details or hidden reviewer ids; reviewers shown as "anonymous" get no location. Reviewer nicknames and locations, and review texts, can be personal data under GDPR and similar laws: make sure you have a lawful basis for processing them, and do not use them to contact or profile individuals. You are responsible for how you use the data and for complying with Walmart's terms and applicable law.

Support

Found a bug or need a field added? Open an issue in the Issues tab; it is usually answered within a day.