Walmart Product Scraper - Price Tracker & Stock Checker by ZIP
Pricing
from $0.45 / 1,000 validated product Γ zip checks
Walmart Product Scraper - Price Tracker & Stock Checker by ZIP
Walmart product scraper, price tracker and stock checker for exact items across US ZIP codes: store-verified local prices, digital stock, sellers and fulfillment. Detects price drops, restocks and seller changes across scheduled runs. Bulk multi-ZIP Walmart price comparison, no account or API key.
Pricing
from $0.45 / 1,000 validated product Γ zip checks
Rating
0.0
(0)
Developer
Kamer Ozkan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
Walmart product scraper, price tracker, and stock checker by ZIP code: enter exact Walmart.com item IDs or product URLs, add up to five US ZIP codes, and get the verified selected store, local price, digital availability, seller, and fulfillment for every product x ZIP pair - plus what changed since your previous check.
Built for retail arbitrage teams, resellers, pricing analysts, brand teams, and operators monitoring known products. No Walmart account, cookies, or API key required; platform and proxy usage are included in the price.
This Actor monitors known products. It does not perform keyword search, category crawling, review collection, or full catalog discovery; for those jobs use a general Walmart scraper (see "Choosing this Actor" below).
What you can build with it
πΊοΈ 1. A regional price matrix for arbitrage and buying decisions
Run the same products across up to five ZIP codes and read the local price per verified store. In a 100-check cloud run on July 22, 2026, one gallon of Great Value milk showed a $1.79 gap between markets (67.8% above the lowest verified local price); the full table is in "Real regional price proof" below.
{"products": [{ "itemId": "10450114", "reference": "milk-gallon" },{ "itemId": "10534289", "reference": "hash-browns" }],"zipCodes": ["10001", "90210", "60601", "33101", "75201"],"monitorName": "regional-survey","includeUnchanged": true}
π 2. Price-drop and restock alerts that only fire on change
Keep a stable monitorName, schedule the run daily, set includeUnchanged: false, and connect a webhook. Unchanged rows are hidden; only baselines, changes, and failures reach the dataset. This is a real change row from the daily production monitor on 2026-09-01 (half-gallon milk, requested ZIP 10001, verified store 3520):
{"itemId": "10450118","zipCodeRequested": "10001","zipCodeResolved": "07094","storeId": "3520","status": "success","title": "Great Value Milk Whole Vitamin D, Half Gallon, , 64 fl oz","price": 2.45,"availability": "IN_STOCK","sellerName": "Walmart.com","sellerType": "WALMART","fulfillment": { "shipping": "UNAVAILABLE", "pickup": "AVAILABLE", "delivery": "AVAILABLE" },"previous": { "price": 2.54, "availability": "IN_STOCK", "fetchedAt": "2026-08-31T16:05:41.646Z" },"changes": [ { "field": "price", "from": 2.54, "to": 2.45, "type": "PRICE_DROP" } ],"fetchedAt": "2026-09-01T16:05:36.288Z"}
Change types cover price drops and increases, restocks and stock-outs, seller changes, and fulfillment changes; every change carries the previous observation as evidence.
π¬ 3. Local availability checks for exact products
Before sending a customer, a driver, or a buyer to a store, check the digital pickup, delivery, and shipping state of the exact item for that ZIP. Both the requested ZIP and the ZIP Walmart actually resolved to stay visible, with the store ID and distance, so a "wrong store" result can never hide.
π·οΈ 4. Price and seller intelligence for your own SKUs
Brands and marketplace sellers watch their own items across markets: is the offer fulfilled by Walmart or a marketplace seller (sellerType), did the price move below MAP in one region, did the item go out of stock in a key market? One row per product x ZIP, exportable to JSON, CSV, or Excel.
Pricing and cost examples
You pay per successfully delivered validated check (one product in one ZIP, verified store applied). Failed and partial checks are free.
| Event | Price | Notes |
|---|---|---|
| β Validated check | $0.003 ($3 per 1,000) | Effective 16 September 2026; until 15 September 2026 the live price is $0.0006 |
| βΆοΈ Actor start | $0.005 per GB | Once per run; the default 2 GB run is $0.01 |
Worked examples at the 16 September prices:
- One-off regional survey, full 100-check matrix (20 products x 5 ZIPs): β $0.31
- Daily watchlist, 2 products x 3 ZIPs with change-only output: β $0.03 per run β β $0.85 per month
- Daily full matrix, 100 checks every day: β $0.31 per run β β $9.30 per month
Plan discounts of up to 30% apply on paid Apify plans. Apify shows the exact estimated and final run price in Console before every run; the Actor's pricing tab always has the current values.
Related Actors
- Home Depot Scraper - Bulk Stock, Price & Product Lookup by ZIP - the same store-verified, multi-ZIP approach for Home Depot
- Google Ads Transparency Center Scraper & Ad Change Monitor - competitor ad changes for the brands you price-track
- Lieferando Menu Scraper - Restaurant Menus, Prices & Delivery - menu and delivery price intelligence for the German market
Real regional price proof
This is real output from a 100-check cloud run completed on July 22, 2026. The run delivered 100 validated results with zero final failures. The same gallon of milk showed a $1.79 price gap, a 67.8% difference from the lowest verified local price.
| Requested ZIP | Resolved store ZIP | Store ID | Local price | Digital availability |
|---|---|---|---|---|
| 10001 | 07094 | 3520 | $4.43 | IN_STOCK |
| 90210 | 91502 | 5686 | $3.93 | IN_STOCK |
| 60601 | 60639 | 5402 | $2.72 | IN_STOCK |
| 33101 | 33147 | 4303 | $3.12 | IN_STOCK |
| 75201 | 75204 | 3341 | $2.64 | IN_STOCK |
Product: 10450114, Great Value Whole Vitamin D Milk, Gallon. Prices and availability are point-in-time Walmart.com signals. The selected store was verified for every accepted result.
The same run also found a local availability difference for product 10534289, Great Value Seasoned Potato Hash Brown Patties. It was digitally in stock in four requested markets and out of stock for requested ZIP 60601, resolved to store 5402.
Quick start
Enter Walmart item IDs or product URLs, then add up to five ZIP codes:
{"products": [{ "itemId": "10450118", "reference": "milk-half-gallon" },{ "itemId": "10315355", "reference": "bread-regional-watch" }],"zipCodes": ["10001", "60601", "90210"],"monitorName": "daily-us-watchlist","includeUnchanged": true}
Two products across three ZIP codes create six validated checks. The current production limit is 100 product Γ ZIP combinations per run.
Real output example
Each dataset item represents one product Γ ZIP result. This baseline row comes from the same 100-check cloud run:
{"inputRef": "diverse-002","itemId": "10315355","zipCodeRequested": "60601","zipCodeResolved": "60639","locationApplied": true,"storeId": "5402","storeDistanceMiles": 6.61,"status": "success","reasonCode": null,"title": "Great Value White Round Top Bread Loaf, 20 oz","price": 1.78,"currency": "USD","availability": "IN_STOCK","sellerName": "Walmart.com","sellerType": "WALMART","offerScope": "LOCAL_FULFILLMENT","fulfillment": {"shipping": "AVAILABLE","pickup": "AVAILABLE","delivery": "AVAILABLE"},"previous": null,"changes": [],"isFirstObservation": true,"fetchedAt": "2026-07-22T11:17:29.318Z","schemaVersion": "1.1.0"}
Export the default dataset as JSON, CSV, Excel, XML, or JSONL. The Actor also writes an OUTPUT summary with matrix accounting, reason counts, health status, circuit-breaker state, billing evidence, time to first row, and runtime statistics.
Automatic price and stock change detection
Set a stable monitorName to compare each successful observation with the prior successful observation for the same product and ZIP.
With includeUnchanged: true, the Actor returns every validated row and attaches previous plus changes when history exists.
With includeUnchanged: false, it returns only:
- The first baseline for each product Γ ZIP.
- Rows with a real price, availability, seller, store, offer-scope, or fulfillment change.
- Explicit failure rows.
Successfully checked but unchanged rows are hidden from the dataset. The validated check is still charged because Walmart was queried and the store context was verified.
This full row was produced by the production history engine replaying the run's real
New York result (the $4.43 milk row above) with a later observation, because no tracked
price had yet moved naturally between the documented runs. Every field is real engine
output: the price dropped and shipping opened up, and each change carries its from,
to, and classified type:
Use Apify schedules to run checks automatically. Connect the dataset or run events to your own webhook, Discord workflow, Make, Zapier, or another destination when you want notifications. The Actor detects and structures changes; it does not send alerts until you connect an integration.
How location validation works
A Walmart product can show different prices, availability, sellers, and fulfillment options by location. A generic product row can quietly show the wrong market, especially when a ZIP parameter is accepted but never verified.
For every product Γ ZIP combination, the Actor:
- Resolves the requested ZIP to Walmart's selectable store context.
- Pins the product request to that store.
- Verifies the returned store ID before accepting the row.
- Keeps
zipCodeRequestedseparate from the selected store's physicalzipCodeResolved. - Compares history by
monitorName + itemId + ZIP, so one market never contaminates another. - Emits typed changes such as
PRICE_DROP,PRICE_RISE,RESTOCKED,OUT_OF_STOCK, and fulfillment changes. - Charges only successful validated checks.
Input reference
| Field | Required | Description |
|---|---|---|
products | Yes | 1-100 objects containing a Walmart itemId or Walmart product url; optional reference is returned as inputRef. |
zipCodes | Yes | 1-5 valid five-digit US ZIP codes. |
monitorName | No | Stable 3-64 character name for product-and-ZIP-specific history. Required when includeUnchanged is false. |
includeUnchanged | No | Defaults to true. Set false for baseline/change/failure-only output. |
The complete matrix must not exceed 100 checks. For example, 20 products Γ 5 ZIP codes is valid; 5 products Γ 50 ZIP codes is not. Split larger watchlists into sequential Actor tasks with different monitor names.
Production request concurrency, US residential routing, retry bounds, and systemic-failure behavior use the validated release profile rather than unsafe user-controlled tuning knobs.
Status and failure accounting
Only rows that pass store-context and critical-field validation become success.
Other outcomes remain visible and structured:
partial: data was present but did not meet the paid-result contract.not_found: the product repeatedly resolved as unavailable or removed on a fresh session.no_store: Walmart returned no selectable store for the ZIP.blocked: human verification, transport defense, or the ZIP circuit breaker stopped the request.timeoutorinvalid: explicit request or input failure.
A real failure row from a live run on 2026-07-28, requested against a product ID that does not exist. The row names the stage and reason instead of disappearing, and rows like this are not billed:
{"combinationId": "82c3364403bf37294218f95f","inputRef": "unknown-item-demo","itemId": "999999999041","zipCodeRequested": "72712","zipCodeResolved": null,"locationApplied": false,"storeId": null,"storeDistanceMiles": null,"status": "blocked","reasonCode": "HTTP_ERROR","reasonCodes": ["HTTP_ERROR"],"failureStage": "PRODUCT_FETCH","message": "Walmart product 999999999041 returned HTTP 590","title": null,"price": null,"currency": null,"availability": "UNKNOWN","sellerName": null,"sellerType": null,"offerScope": null,"fulfillment": {"shipping": "UNKNOWN","pickup": "UNKNOWN","delivery": "UNKNOWN"},"isFirstObservation": false,"fetchedAt": "2026-07-28T20:22:20.544Z","schemaVersion": "1.1.0"}
Malformed input never gets that far: a ZIP like 00000 is rejected by input validation
before any check runs or bills, and the run fails with the exact field named.
Failed and partial rows are free. If every check fails for a systemic reason and no validated row exists, the Actor writes diagnostic OUTPUT data and fails the run instead of presenting a false green success.
Pricing
The price is $0.003 per successfully delivered validated check, or $3 per 1,000, effective 16 September 2026 (until 15 September 2026 the live price is $0.0006 per check). One validated check is one product in one ZIP. Each run also bills an Actor start of $0.005 per GB of memory (default 2 GB = $0.01).
| Successful checks | Price |
|---|---|
| 25 | $0.15 |
| 100 | $0.60 |
| 1,000 | $6.00 |
- Platform and proxy usage are included.
- Failed and partial checks are free.
- A successful unchanged check hidden by
includeUnchanged: falseis charged once. - A row rejected by the customer's maximum run charge is not delivered and is not charged as a validated check.
Apify shows the exact estimated and final run price in Console. Start with a small test before scheduling a full 100-check matrix.
API example
Run the Walmart price monitor from Node.js:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('kamerozkan/walmart-multi-zip-monitor').call({products: [{ itemId: '10450118', reference: 'milk-half-gallon' },{ itemId: '10315355', reference: 'bread-regional-watch' },],zipCodes: ['10001', '60601', '90210'],monitorName: 'daily-us-watchlist',includeUnchanged: false,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
You can also call the Actor through HTTP, Python, CLI, webhooks, schedules, Make, Zapier, or Apify's MCP integrations. See the Apify API documentation and dataset documentation.
Choosing this Actor vs. a general Walmart scraper
Choose this Actor when your question is:
What is the validated local price, digital availability, seller, and fulfillment state of these exact products across these exact ZIP codes? What changed since my last run?
Choose a general-purpose Walmart scraper in Apify Store when you primarily need keyword discovery, category crawling, reviews, every marketplace offer, rich catalog content, or thousands of products in one run. Those are useful but different jobs. This Actor deliberately optimizes for a bounded, auditable multi-location monitoring matrix.
Limits and data meaning
- Walmart.com US only.
- Maximum 100 product Γ ZIP checks and five ZIP codes per run.
- Known item IDs or product URLs only; no keyword or category discovery.
availability, pickup, delivery, and shipping are Walmart.com's digital signals for the verified selected-store context. They are not a guarantee that a unit is physically on the shelf when a person arrives.- A requested ZIP may legitimately resolve to a store whose physical ZIP differs. Both values and the Walmart-reported distance remain visible.
- Website responses and anti-automation defenses can change. Bounded retries, fresh sessions, validation, explicit failures, circuit breakers, and critical health reporting reduce silent bad data; they cannot promise uninterrupted access.
FAQ
Does this scrape every Walmart seller offer?
No. It returns the selected offer and tells you whether that offer is locally fulfillable or shipping-only. Use a seller-offer scraper if you need every marketplace offer.
Can it guarantee shelf inventory?
No online scraper can observe the physical shelf directly. This Actor verifies that Walmart's response belongs to the intended selected store; it does not convert a website signal into a shelf guarantee.
Can I monitor more than 100 checks?
Yes. Split the workload into sequential tasks of at most 100 combinations. Keep each task's monitor name stable and unique.
Why did my first change-only run return rows?
The first successful observation is the baseline. Later unchanged observations are suppressed; later real changes are emitted.
Are failures billed?
No. Failed and partial checks are free. A successful validated check is billed even when an unchanged row is hidden by change-only output.
Support
Open an issue from the Actor page if a result looks wrong or a run fails. Include the Apify run ID, requested ZIP codes, Walmart item IDs, and the expected versus actual behavior. Do not post API tokens, login details, customer information, or other personal data.
Release notes
Current release
- Verified selected-store context for every accepted result.
- Product-and-ZIP-specific history and typed change detection.
- Explicit full-matrix status accounting.
- Pay-per-result billing for successful validated checks only.
- Dataset and
OUTPUTschemas for API and AI-agent discovery.
Responsible use
This independent Actor is not affiliated with, endorsed by, or sponsored by Walmart. It processes publicly accessible product data without customer login, checkout, user-supplied cookies, or personal data. Users are responsible for complying with applicable laws and website terms in their jurisdiction.