Walmart Scraper - Products, Prices, Sellers & Reviews avatar

Walmart Scraper - Products, Prices, Sellers & Reviews

Pricing

from $0.90 / 1,000 product records

Go to Apify Store
Walmart Scraper - Products, Prices, Sellers & Reviews

Walmart Scraper - Products, Prices, Sellers & Reviews

Scrape Walmart.com by keyword, URL, or item ID. Extract prices, was-prices, sellers, marketplace offers, stock, ratings, specs, images, and reviews. Track NEW, UPDATED, REAPPEARED, and EXPIRED items with resume and MCP export.

Pricing

from $0.90 / 1,000 product records

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Scrape walmart.com, the largest US retailer and the #5 marketplace worldwide: search or browse the catalog, or look up individual products, and get prices, was-prices, every seller offer, stock, ratings, specifications, images and the customer reviews the product page publishes.

Why This Scraper?

  • Reviews and offers are free. Every walmart.com product page ships its reviews and its seller offers in the same document as the product itself, so this actor returns them in the same request. Other Walmart scrapers on the Store bill a separate per-review event and a separate per-offer event; here they are part of the one detail record.
  • One request, ~45 complete rows. A search page carries its whole result grid as structured data, so a listing-level pull returns full product records (price, was-price, rating, review count, seller, stock, badges, category) with no per-product request at all.
  • Filters that are actually true. The storefront's own sort and filter parameters are sent with the request, so filtering narrows results before they count against your item cap. Walmart injects sponsored tiles into the grid regardless of the active filters, so excludeSponsored re-checks every row and drops the ads.
  • Monitoring built in. Label every record NEW / UPDATED / REAPPEARED / EXPIRED across runs, resume an interrupted crawl, and export through MCP connectors.
  • Structured failures. A run the storefront refuses fails loudly with a clear message instead of returning an empty dataset that looks like a search with no matches.

Data You Get

Search mode walks each keyword and each pasted listing link page by page and returns one record per product: item id, title, brand, URL, image, price, was-price, price range, currency, rating, review count, seller name / id / type, availability, fulfillment text, badges, sponsored flag, variant count, category path, and which page and slot the product was found in.

Detail enrichment (fetchDetails) adds, from the product's own page: model, UPC, manufacturer part number, full description, specifications, product highlights, every image, all seller offers with condition and fulfillment, return policy, warranty, rating histogram, recommended percentage, review aspects, and the price scope (the store and ZIP the prices were quoted for).

Reviews (includeReviews) add the reviews the product page itself publishes: rating, title, text, date, the reviewer's public display name, verified-purchase marker, helpful votes and photo count. These come from the same page as the detail data, so they cost no extra request and no extra charge. The product page publishes up to 10 reviews, which is this actor's ceiling; the full review count and star breakdown are returned regardless.

Product mode reads product links or bare item ids and returns one fully enriched record per product.

Incremental runs add changeType, changedFields, firstSeenAt and lastSeenAt to every record.

How to Use

  1. Keep the default Search keywords or pasted listing links mode, type one or more keywords, and run.
  2. Want a whole department? Paste browse or category links, for example https://www.walmart.com/browse/electronics/3944, into Storefront links. Filters you already selected in a link you copied are kept and this run's own filters are added on top.
  3. Narrow with the storefront's own filters: sort, brands, sold-by, condition, deals, minimum rating, availability and price bounds. Turn on Hide sponsored results for a clean assortment view.
  4. Need full detail? Turn on Fetch product details. Need reviews too? Turn on Include customer reviews; it uses the same page, so it adds no extra charge.
  5. Need individual products? Switch to Look up specific products and list product links or item ids.
  6. Monitoring over time? Turn on Incremental runs and reuse the same input; the actor tracks what changed between runs.
  7. Optional: connect an MCP connector to push records into Notion or another destination after each run.

Input Parameters

ParameterTypeDefaultDescription
modeselectsearchSearch keywords / pasted links, or look up specific products
queriesarraylaptopSearch mode: keywords, each walked separately
searchUrlsarrayemptySearch mode: walmart.com search, browse, shop or category links
productInputsarrayemptyProduct mode: product links or bare item ids
sortByselectbest_matchStorefront sort: best match, price low/high, best seller, highly rated, new
brandsarrayemptyKeep only these brands, spelled as the storefront spells them
retailerTypeselectanyWalmart, Pro Sellers, or marketplace sellers fulfilled by Walmart
conditionselectanyNew, restored or pre-owned
specialOfferselectanyReduced price, clearance or rollback
minRatingselectany4 stars and up, or 3 stars and up
inStockOnlybooleanfalseHide items the storefront cannot sell right now
excludeSponsoredbooleanfalseDrop advertising tiles from the results
minPriceintegeremptyOnly keep products at or above this price
maxPriceintegeremptyOnly keep products at or below this price
fetchDetailsbooleanfalseRead each product's own page (per-record surcharge)
includeReviewsbooleanfalseAdd the reviews the product page publishes (no extra charge)
maxReviewsinteger10Reviews kept per product, up to the 10 the page publishes
maxItemsinteger20Stop after this many records (0 = unlimited)
maxPagesinteger0Max result pages per keyword or link (0 = every page offered)
incrementalModebooleanfalseTrack NEW / UPDATED / REAPPEARED / EXPIRED between runs
emitUnchangedbooleanfalseAlso return (and bill) unchanged records
emitExpiredbooleanfalseAlso return (and bill) records gone from a complete scan
stateKeystringemptyName a monitoring campaign explicitly
resumeFromRunIdstringemptySkip records already collected by a run or dataset
mcpConnectorsarrayemptyMCP connector export
notionParentPageUrlstringemptyNotion parent page for the Notion connector
maxNotifyListingsinteger50Cap per connector per run
proxyobjectproxy onApify Proxy; a US residential exit is required

Output Example

{
"kind": "product",
"itemId": "000000000000",
"url": "https://www.walmart.com/ip/Sample-Product-Name/000000000000",
"title": "Sample Product Name 15 Laptop",
"brand": "Sample Brand",
"model": "SAMPLE-MODEL-01",
"upc": "0000000000000",
"price": 199.0,
"wasPrice": 249.0,
"currency": "USD",
"rating": 4.5,
"reviewCount": 123,
"ratingHistogram": {"5": 80, "4": 25, "3": 10, "2": 5, "1": 3},
"recommendedPercentage": 90,
"sellerName": "Sample Seller",
"sellerType": "INTERNAL",
"offerCount": 2,
"offers": [
{"sellerName": "Sample Seller", "price": 199.0, "condition": "New",
"fulfilledByWalmart": false, "isBuyBoxWinner": true},
{"sellerName": "Sample Reseller", "price": 209.5, "condition": "New",
"fulfilledByWalmart": true, "isBuyBoxWinner": false}
],
"availabilityStatus": "IN_STOCK",
"inStock": true,
"condition": "New",
"categoryPath": "Electronics / Sample Category / Sample Subcategory",
"badges": ["Sample badge"],
"sponsored": false,
"fulfillmentOptions": ["DELIVERY", "PICKUP", "SHIPPING"],
"returnPolicy": {"returnable": true, "freeReturns": true, "windowDays": 90,
"text": "Free 90-day returns"},
"specifications": [{"name": "Sample specification", "value": "Sample value"}],
"reviews": [
{"reviewId": "000000000", "rating": 5, "title": "Sample review title",
"text": "Sample review text written for this example.",
"submittedAt": "1/1/2026", "authorNickname": "SampleShopper",
"verifiedPurchase": true, "helpfulVotes": 3}
],
"priceScope": {"postalCode": "00000", "city": "Sample City", "state": "ST",
"storeId": "00000"},
"searchQuery": "sample keyword",
"resultPage": 1,
"resultPosition": 4,
"changeType": "NEW",
"firstSeenAt": "2026-09-04T02:00:00+00:00",
"lastSeenAt": "2026-09-04T02:00:00+00:00"
}

Every value above is illustrative and fictional, invented for this example, not a real walmart.com product, price, seller or customer. Records returned by a real run carry what walmart.com prints publicly beside each product; they never carry an email address, a phone number or a profile link, because the product page does not publish those.

Send results into your apps (MCP connectors)

Optionally pipe results into Notion, Linear, Airtable or Apify via MCP connectors, in the Integrations section of the input. Each connector receives a condensed summary per product; the complete record always stays in the dataset, so nothing is lost if you leave this off.

  • mcpConnectors - the MCP connectors to export this run's products into (Notion, Linear, Airtable, Apify). Leave it empty and nothing is exported.
  • notionParentPageUrl - Notion connector only: the page under which one child page per product is created. Required when mcpConnectors includes Notion, ignored otherwise.
  • maxNotifyListings - how many products are exported to each connector in one run, default 50. This caps the export only; it never changes what the dataset returns.

Export runs after the dataset is complete and is best-effort: if a connector is unreachable the run still succeeds with a warning, and your products are still in the dataset.

Monitoring the same search over time

Turn on incrementalMode and schedule the actor. The first run returns everything as changeType: NEW; later runs return only what is new, changed or back in stock, each with changedFields, firstSeenAt and lastSeenAt. Set emitUnchanged or emitExpired if you also want those rows (both bill extra rows). A product's position in the result grid is deliberately excluded from change detection, because Walmart re-ranks its grid on every request. Review text IS part of change detection, so leave includeReviews off when you only want to track prices and stock.

resumeFromRunId is a different feature: it continues one specific interrupted crawl by skipping records that run already collected.

Plan Requirement & Notes

  • Pay per event: one unit per returned record, plus an Actor Start event, plus a detail-enrichment unit for each record actually enriched from its product page. A record whose product page could not be read still ships, uncharged. In incremental mode a suppressed unchanged record is neither returned nor charged.
  • A US residential Apify Proxy exit is required. walmart.com serves its home page to any connection but refuses search and product pages on datacenter exits. No browser runs and no challenge solver is used: the actor keeps one warm session over one sticky exit for the whole run, which is what the storefront accepts.
  • The actor reads walmart.com, the US storefront, and prices are quoted for the store the session resolves to. Every record carries that store and ZIP in priceScope so a price is never ambiguous.
  • Reviews are limited to the 10 the product page publishes. The complete review count, the star histogram and the recommended percentage are always returned.