Walmart Price & Stock Monitor — Products, Sellers, Buy Box
Pricing
from $3.00 / 1,000 results
Walmart Price & Stock Monitor — Products, Sellers, Buy Box
Track Walmart product prices, rollbacks, stock status and marketplace-seller competition. Give it your own item IDs or URLs and re-run on a schedule to watch prices move — or discover products from Walmart's own sitemaps. Unit prices, discounts, buy-box offer counts. Company-level data only.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
mochi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Walmart Price & Stock Monitor — Products, Sellers & Buy Box
Track Walmart.com prices, rollbacks, stock status and marketplace-seller competition — on your own watch-list of products, on a schedule.
Give the actor a list of Walmart product URLs or item IDs, run it daily or weekly, and you get one clean row per product every time: current price, was-price, discount, unit price, in-stock status, who is selling it, and how many other sellers are competing for the same listing. Diff two runs and you have a price-and-availability history.
No API key. No login. No browser automation — the actor reads the structured product data Walmart already embeds in each page, so runs are fast and cheap.
What it is for
| You want to… | How this actor does it |
|---|---|
| Watch competitor prices | Feed your competitors' item IDs, schedule a daily run, diff currentPrice between runs |
| Catch rollbacks and clearance | priceFlags / isRollback mark promotional pricing the moment it appears |
| Monitor MAP compliance | sellerName + sellerType + additionalOfferCount show who else is listing your product and whether a marketplace seller undercut you |
| Track stock-outs | availabilityStatus / inStock on every run |
| Compare across pack sizes | unitPrice + unitPriceMeasure normalise to $/oz, $/ct, etc. |
| Build a product dataset | Discover products from Walmart's own sitemaps when you don't have a list yet |
The data changes constantly, which is the point — this is a monitoring tool, not a one-off catalogue dump.
Input
Everything is optional. Running with empty input discovers 20 popular products from Walmart's sitemap so you can see the output shape immediately.
| Field | Type | Default | What it does |
|---|---|---|---|
productUrls | array | [] | Walmart product-page URLs, e.g. https://www.walmart.com/ip/Redken-Extreme-Length-Shampoo-10-1-oz/620196775 |
itemIds | array | [] | Bare item IDs, e.g. 620196775 — the number at the end of a product URL |
discoverFromSitemap | boolean | true | When no URLs/IDs are given, discover products from Walmart's published sitemaps |
sitemapType | select | high-interest | high-interest (popular items) or long-tail (broad catalogue) — see the note below, they behave very differently |
maxResults | integer | 20 | Max product pages per run |
onlyInStock | boolean | false | Skip unavailable products |
minDiscountPercent | integer | 0 | Only return products at least this % below their was-price |
proxyConfiguration | object | Apify Proxy on | Recommended — see Reliability below |
Example — monitor a watch-list
{"itemIds": ["620196775", "39263624", "125113428"],"onlyInStock": false}
Example — find discounted popular products
{"discoverFromSitemap": true,"sitemapType": "high-interest","maxResults": 200,"minDiscountPercent": 20}
Output
One row per product:
{"itemId": "125113428","name": "Intex 10722 Hose Conversion Adapters Kit - 2 Pack","brand": "Intex","productType": "Outdoor Spa Accessories","upc": "018100963675","modelNumber": "10722","productUrl": "https://www.walmart.com/ip/Intex-10722-Hose-Conversion-Adapters-Kit-2-Pack/125113428","currentPrice": 8.99,"currency": "USD","wasPrice": 10.99,"discountAmount": 2,"discountPercent": 18.2,"unitPrice": null,"unitPriceMeasure": null,"priceFlags": [],"isRollback": false,"availabilityStatus": "IN_STOCK","inStock": true,"fulfillmentType": "MARKETPLACE","sellerName": "MyQuickBuy","sellerType": "EXTERNAL","isMarketplaceSeller": true,"catalogSellerId": 364,"additionalOfferCount": 0,"hasCompetingOffers": false,"averageRating": 4.6,"reviewCount": 13,"categoryPath": ["Patio & Garden", "Hot Tubs", "Hot Tub Accessories", "Hot Tub Parts"],"category": "Hot Tub Parts","imageUrl": "https://i5.walmartimages.com/seo/...jpeg","imageCount": 2,"source": "walmart.com","discoveredVia": "sitemap:high-interest","scrapedAt": "2026-08-02T02:20:11.821Z"}
sellerType is INTERNAL when Walmart itself sells the item and EXTERNAL when a marketplace seller does. additionalOfferCount is how many other sellers offer the same listing — the buy-box competition signal.
Three dataset views are provided: Products (everything), Price watch (price fields only) and Seller & buy box.
Honest notes on coverage
These are measured numbers from real runs, not estimates. They matter because they tell you what to expect.
Field fill depends heavily on how popular the product is. Two samples of 40 products each:
| High-interest sitemap | Long-tail sitemap | |
|---|---|---|
| Sold by a marketplace (3P) seller | 43% | ~0% |
| Carries a rating | 95% | 9% |
| Has competing offers from other sellers | 24% | 3% |
| Carries a was-price at that moment | 19% | 12% |
So: wasPrice, discountPercent, averageRating and additionalOfferCount are frequently null on obscure products, and usually present on popular ones. A null was-price means the item simply isn't on promotion right now — it is not a scrape failure. additionalOfferCount normalises to 0 (not null) when there is no competing offer.
Sitemap entries go stale. Roughly 8–10% of URLs in Walmart's own sitemaps return HTTP 404 (delisted products). These are reported in the run log as delisted, not written as empty rows. If you supply your own item IDs this does not affect you.
Out-of-stock items may have no price. That is Walmart's behaviour, and the row is still written — availabilityStatus: "OUT_OF_STOCK" with currentPrice: null is meaningful data for a stock monitor.
Reliability
Walmart intermittently serves a page shell without the embedded product data. Measured across 80 pages, about 20% of requests hit this on the first attempt and succeeded on a retry, so the actor retries each page up to 3 times with backoff and rotates its proxy IP between attempts.
Every run ends with an explicit tally:
Done. 17 product(s) written · 3 delisted (404) · 0 unparseable after 3 attempts · 0 fetch errors · 0 filtered out.
If a page never yields data, you are told — the actor does not silently return short results.
Use Apify Proxy (the default). Without it, expect a higher miss rate.
How it finds products, and what it will not do
Walmart's robots.txt disallows /search and /api/ for all crawlers. This actor honours that — it never touches Walmart's search or internal APIs.
Instead it uses the 34 sitemaps that Walmart publishes in its own robots.txt, which is the sanctioned way to enumerate products. Product pages (/ip/...) carry no crawl restriction.
Consequence to be aware of: there is no keyword search. You cannot ask this actor for "wireless earbuds under $50". You give it products (by URL or ID), or you let it sample Walmart's sitemaps. For the monitoring use case this is rarely a limitation, because you already know which products you care about.
Data protection
Product- and company-level data only. sellerName is the business entity listed on the marketplace.
Review text and reviewer identities are never fetched or emitted — only the aggregate averageRating and reviewCount. There is no personal data in the output.
Scheduling
Use Apify Schedules to run daily or weekly, then compare datasets between runs to build price and availability history. Pair with the Price watch dataset view for a compact diff.
