Walmart Scraper - Products, Prices, Sellers & Reviews
Pricing
from $0.90 / 1,000 product records
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
Maintained by CommunityActor 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
excludeSponsoredre-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
- Keep the default Search keywords or pasted listing links mode, type one or more keywords, and run.
- 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. - 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.
- 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.
- Need individual products? Switch to Look up specific products and list product links or item ids.
- Monitoring over time? Turn on Incremental runs and reuse the same input; the actor tracks what changed between runs.
- Optional: connect an MCP connector to push records into Notion or another destination after each run.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| mode | select | search | Search keywords / pasted links, or look up specific products |
| queries | array | laptop | Search mode: keywords, each walked separately |
| searchUrls | array | empty | Search mode: walmart.com search, browse, shop or category links |
| productInputs | array | empty | Product mode: product links or bare item ids |
| sortBy | select | best_match | Storefront sort: best match, price low/high, best seller, highly rated, new |
| brands | array | empty | Keep only these brands, spelled as the storefront spells them |
| retailerType | select | any | Walmart, Pro Sellers, or marketplace sellers fulfilled by Walmart |
| condition | select | any | New, restored or pre-owned |
| specialOffer | select | any | Reduced price, clearance or rollback |
| minRating | select | any | 4 stars and up, or 3 stars and up |
| inStockOnly | boolean | false | Hide items the storefront cannot sell right now |
| excludeSponsored | boolean | false | Drop advertising tiles from the results |
| minPrice | integer | empty | Only keep products at or above this price |
| maxPrice | integer | empty | Only keep products at or below this price |
| fetchDetails | boolean | false | Read each product's own page (per-record surcharge) |
| includeReviews | boolean | false | Add the reviews the product page publishes (no extra charge) |
| maxReviews | integer | 10 | Reviews kept per product, up to the 10 the page publishes |
| maxItems | integer | 20 | Stop after this many records (0 = unlimited) |
| maxPages | integer | 0 | Max result pages per keyword or link (0 = every page offered) |
| incrementalMode | boolean | false | Track NEW / UPDATED / REAPPEARED / EXPIRED between runs |
| emitUnchanged | boolean | false | Also return (and bill) unchanged records |
| emitExpired | boolean | false | Also return (and bill) records gone from a complete scan |
| stateKey | string | empty | Name a monitoring campaign explicitly |
| resumeFromRunId | string | empty | Skip records already collected by a run or dataset |
| mcpConnectors | array | empty | MCP connector export |
| notionParentPageUrl | string | empty | Notion parent page for the Notion connector |
| maxNotifyListings | integer | 50 | Cap per connector per run |
| proxy | object | proxy on | Apify 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 whenmcpConnectorsincludes 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
priceScopeso 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.