Walmart Product Scraper & Price Monitor (stock, seller, store)
Pricing
from $2.40 / 1,000 result items
Walmart Product Scraper & Price Monitor (stock, seller, store)
Walmart product scraper and price monitor: data by item id, URL or keyword — price, was-price, seller and seller type (Walmart vs marketplace), stock, rating, reviews, brand, variants. Optional store number for store-level price and stock, monitor mode for change alerts. No login.
Pricing
from $2.40 / 1,000 result items
Rating
0.0
(0)
Developer
Viktor Dubnytskiy
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
A Walmart product scraper that takes item ids, product URLs or search keywords and returns one flat row per product: price, was-price, seller and seller type, stock, rating and variants. Run it once for a snapshot, or as a saved Task in monitor mode to get only the products whose price, seller or availability changed since the previous run.
What you get (example output)
Real rows from the example dataset (walmart.com, item id + keyword usb c cable):
| Field | Example value | What it is |
|---|---|---|
id | 5159953210 | Walmart item id (usItemId) |
title | Liquipel Powertek Type-C Fast Charger Cable, 6ft USB-C ... | Product title as shown on the page |
price | 8.79 | Current price, number |
listPrice | 17.99 | "Was" price (null when Walmart shows none) |
buyBoxSeller | Walmart.com | Seller that currently owns the offer |
sellerType | EXTERNAL | INTERNAL = sold by Walmart, EXTERNAL = marketplace seller |
availability | IN_STOCK | Stock state as Walmart reports it |
rating / reviewCount | 4.4 / 4432 | Star rating and number of reviews |
sponsored | true | Search-result rows only: paid placement flag |
Every row also carries url, brand, currency, fulfilledBy, variantIds, additionalOfferCount, image, storeId / storePrice / storeStock (when a store number is given) and scrapedAt.
Use cases
- Price and stock tracking — watch a list of item ids and get alerted when the price moves or an item goes out of stock.
- Marketplace seller research — see which offers are sold by Walmart itself and which come from third-party sellers, with the was-price and offer count.
- Cross-retailer comparison — the row schema matches the Amazon Product Monitor of the same publisher, so an Amazon-vs-Walmart price table needs no field remapping.
Related actors
- Amazon Price Tracker: Product Scraper by ASIN, Buy Box, Stock — the same monitor pattern for Amazon listings.
- Amazon Best Sellers Scraper (rank, price, rating, monitor) — discover trending products on Amazon before tracking them.
- Flipkart Product Scraper & Price Monitor (search, specs, stock) — same pattern for the Indian market.
- Etsy Listings Scraper (search, shops, listing details, prices) — for handmade and vintage goods instead of mainstream retail.
How it works
Walmart is behind PerimeterX, so pages are fetched through the Apify Web Unblocker tier and the embedded product JSON is parsed directly — no browser. Keyword mode reads 40 products from a single search request, which is the cheapest way to collect many rows; item ids and URLs open the full product page instead. In monitor mode the run compares price, seller, availability and store price against the previous run of the same Task and pushes only what changed, with changedFields and previous attached.
Input
| Field | Meaning | Default |
|---|---|---|
itemIds | Walmart item ids, e.g. 5159953210 (the number at the end of a /ip/ URL) | ["5159953210"] |
urls | Full product URLs, e.g. https://www.walmart.com/ip/.../5159953210; the item id is extracted | empty |
keywords | Search queries, e.g. usb c cable; returns search-result rows | ["usb c cable"] |
storeId | Walmart store number for store-level price and stock, e.g. 3520 | empty |
zipCode | Delivery zip for location-dependent pricing, e.g. 10001 | empty |
searchPages | Search pages per keyword, 40 results each | 1 |
fetchDetailsForSearch | Open each search hit's product page for seller type, variants and offer count | false |
maxItems | Stop after this many pushed rows | 20 |
mode | scrape = every product; monitor = only products changed since the previous run of this Task | scrape |
monitorStateId | State key for monitor mode when not running as a saved Task | empty |
webhookUrl | URL that receives a POST with the change summary in monitor mode | empty |
telegramBotToken / telegramChatId | Optional Telegram destination for monitor-mode summaries | empty |
Pricing
| Event | Price |
|---|---|
| result | $0.003 per product ($3 per 1,000) |
| monitor-check | $0.009 per monitor run |
| change | $0.003 per changed product |
Charged only for products actually pushed. Bot-check pages are not charged; three in a row end the run with reason blocked.
Found it useful? A short review on the Store page helps other people find this actor and tells us what to improve. If something looks wrong with a price or stock read, open an issue on the actor page — issues are answered within a day.
Why this actor
- No charge for empty runs — result events are billed per pushed row, so a run that returns nothing costs nothing in results.
- Seller type, not just seller name —
sellerTypeseparates Walmart's own offers from marketplace sellers, which is the field most price-tracking setups need. - Store-level context —
storeIdandzipCodecost nothing extra and addstorePrice/storeStockwhen Walmart honours them. - Monitor mode built in — price, seller and stock changes with webhook or Telegram alerts, no second actor needed.
- No login, no cookies — nothing to configure beyond the input.
- Every run leaves a
RUN_SUMMARYrecord in the key-value store with the reason for an empty result, so a zero-row run is diagnosable.
Limits
- Walmart uses PerimeterX; the actor runs through the Apify Web Unblocker, which Apify bills per request on top of the result price. Keyword mode (40 products per request) is much cheaper per row than opening product pages.
- Store-level price and stock follow the store number only when Walmart honours it; otherwise the national price is returned and
storeIdis echoed back unchanged. isPrimeandboughtPastMonthexist in the shared schema but are Amazon-only and staynullhere.- Review texts are not returned, only the rating and the review count.
FAQ
How do I scrape Walmart prices in bulk? Put the item ids into itemIds (or /ip/ URLs into urls) and raise maxItems. For a whole category, use keywords with searchPages — each page returns 40 products in one request.
Can I get the price at a specific Walmart store? Set storeId to the store number (and optionally zipCode). When Walmart honours the store context, storePrice and storeStock are filled in alongside the national price.
How do I get an alert when a Walmart price changes? Save the actor as a Task, set mode to monitor, fill in webhookUrl or the Telegram fields and schedule the Task. Each run returns only the products whose price, seller or stock changed, with the previous values attached.
Changelog
- 0.1: initial release — product and search pages, store context, monitor mode.
If this actor is useful, a review on its Apify Store page genuinely helps other buyers find it. Found a bug or need a field that is missing? Open a ticket on the Issues tab of the actor and it will be looked at.