Walmart Scraper — Products, Prices & Reviews avatar

Walmart Scraper — Products, Prices & Reviews

Pricing

from $2.00 / 1,000 products

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

Walmart Scraper — Products, Prices & Reviews

Walmart.com products from any search, category or product URL: price, was-price, savings, rating, review count, seller, stock, shipping and pickup, badges and search rank. Add specifications, variants, UPC and images, or customer reviews with text and stars. No login.

Pricing

from $2.00 / 1,000 products

Rating

0.0

(0)

Developer

Trevor Ortega

Trevor Ortega

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Security

Limited permissions

Share

Walmart Scraper: Products, Prices & Reviews

Get Walmart.com products for any search term, category or product URL: one row per product with price, was-price and savings, rating, review count, seller, stock, shipping, pickup and delivery options, badges (Best seller, Rollback, Clearance) and its rank on the page, sponsored or organic. Turn on Include product details for the description, specifications, every image, every variant with its own price and stock, UPC, seller profile and return policy, and Include reviews for review text and ratings.

The Actor reads the product data Walmart embeds in its own pages, so one request returns 40+ products; no browser, no login. $2 per 1,000 products, plus Apify proxy usage (one Unblocker request, about $0.0015 on the free plan, per page of 40+ products).

What you get

  • Product: name, URL, Walmart item ID, main image, brand (always filled with details on)
  • Price: current price, was-price, savings, unit price, price as displayed
  • Demand signals: rating, review count, Best seller / Rollback / Clearance badges, position and page in the results
  • Seller and stock: seller name, availability, shipping, pickup and delivery options with arrival text
  • Details (optional): description, specifications, all images, variants with price and stock, UPC, return policy
  • Reviews (optional): stars, title, text, date, helpful votes, verified purchase, seller response

Try it: the input is prefilled with the search headphones. Click Start and 100 products arrive in well under a minute, for about $0.20.

Sample output (one product, trimmed; the full field list and example follow below):

{
"name": "Bluetooth Headphones Over Ear, 65Hrs Playtime Wireless Headphones, ...",
"usItemId": "17705823295",
"price": 20.99,
"wasPrice": 169.98,
"savingsAmount": 148.99,
"rating": 4.2,
"reviewCount": 4762,
"sellerName": "VEATOOL",
"availability": "IN_STOCK",
"fulfillment": { "shipping": true, "pickup": false, "shippingText": "Shipping, arrives tomorrow" },
"badges": ["Best seller"],
"isSponsored": true,
"position": 1
}

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}
storeId, storeName, zipCodeOnly when you set ZIP code or Store ID: the store and ZIP you chose (location then shows the same store, as Walmart reports it)
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, and a ZIP code or Store ID for one store's prices and stock.
  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.

With a ZIP code or Store ID, the run adds one store lookup request and about 15 KB of Apify residential traffic to select the store (about $0.002 per run in total), and loads product pages through Apify residential instead of the Unblocker (about $0.001 each). SUMMARY.notes.location reports the store used and these requests.

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.

How to get Walmart prices and stock for a specific store or ZIP code

Walmart prices, stock and pickup / delivery options are per store. Grocery prices differ most: on 2026-11-07 the same gallon of Great Value whole milk was $4.98 in Anchorage, AK, $4.40 at the Secaucus, NJ store, $2.65 at a Bentonville, AR store and $3.82 at Walmart's default store, and 10 of 27 milk products in one search had different prices in NJ and AR. Pickup times ("today" or "tomorrow"), delivery and shipping dates change with the store too.

Set ZIP code (for example 10001) and the Actor selects the nearest Walmart store with pickup, or add Store ID (the number in the store's page URL, e.g. walmart.com/store/4376) for a specific store. Every page of the run is then priced and stocked for that store, and each product carries storeId, storeName and zipCode next to its price, plus location, the store Walmart itself reports for the page. The stores near your ZIP, with their ids, addresses and distances, are saved in the run's key-value store as NEARBY_STORES, so you can pick a Store ID for the next run. Without these inputs Walmart uses its default store (Sacramento, CA 95829, store 3081) and location shows it. To compare stores, run the same input once per ZIP code.

Selecting the store costs about 3 small requests per run (one store finder request through your proxy and two tiny requests through Apify's residential proxy). With product details or product URLs, product pages of a store run are loaded through Apify's residential proxy (about 130 KB each, roughly $0.001 at $8 per GB) because the Unblocker ignores the store on product pages; about 1 in 4 such pages comes back for another store and is fetched once more.

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 login, no headless browser (a store run only keeps Walmart's anonymous guest id, as any visitor's browser does), 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.

Found it useful?

A ★ review on this Actor's Apify Store page helps other users find it and tells us what to improve. Issues and feature requests are welcome in the Actor's Issues tab.