Walmart Scraper avatar

Walmart Scraper

Pricing

Pay per event

Go to Apify Store
Walmart Scraper

Walmart Scraper

Scrape Walmart products by keyword or URL. Get prices, deal badges, seller info, variants, ratings, and descriptions.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

8 hours ago

Last modified

Categories

Share

Banner

Extract product data from Walmart.com, Walmart.ca, and Walmart.com.mx — with price change tracking, MAP violation detection, bulk item ID mode, and customer reviews. Supports keyword search, direct URLs, ZIP-code geo pricing, and scheduled monitoring. No API key required.


Why this scraper?

🔍 Three discovery modes

Search — keyword-based product discovery across all three Walmart markets. Bulk — supply a list of item IDs directly for the fastest possible fetches, no search overhead. Monitor — track a fixed set of products and get only the items that changed since last run.

📉 Price change tracking

Every run compares current price and availability against last-known values. Each item gets a changeStatus field: NEW, PRICE_DROP, PRICE_RISE, RESTOCKED, OUT_OF_STOCK, or UNCHANGED. Enable outputOnlyChanges to emit only changed items — perfect for daily monitoring schedules.

⚠️ MAP violation detection

Supply a mapPrices object ({ "itemId": 49.99 }) and every product below its Minimum Advertised Price is flagged with mapViolation: true, mapPrice, and belowMapBy — ready to feed into MAP enforcement workflows.

📍 ZIP code geo-targeted pricing

Walmart prices and availability vary by location. Enter any US ZIP code to scrape exactly what a buyer in that area sees.

🎨 Variant pricing

Sizes, colours, and configurations — each variant's price, availability, and stock status extracted separately.

⭐ Customer reviews (add-on)

Enable includeReviews for per-product reviews: rating, text, verified-purchase flag, helpful votes. Billed at $0.50/1,000 reviews.

🌎 Three Walmart markets

walmart.com (USD), walmart.ca (CAD), walmart.com.mx (MXN) from one actor.


Input parameters

FieldTypeDefaultDescription
modestring"search"search (keyword), bulk (item ID list), or monitor (change tracking)
keywordsarray[]Search terms. Each runs independently.
startUrlsarray[]Specific Walmart product or search page URLs.
itemIdsarray[]Walmart numeric item IDs for bulk/monitor mode. Fastest input method.
domainstring"walmart.com"walmart.com, walmart.ca, or walmart.com.mx
maxResultsinteger100Maximum products to return.
fetchDetailsbooleantrueFetch detail page for variants, UPC, description, full images.
zipCodestring""US ZIP for geo-targeted pricing (e.g. "10001", "90210").
outputOnlyChangesbooleanfalseEmit only changed items. Requires history from previous runs.
mapPricesobject{}MAP per item ID: { "1004249195": 49.99 }. Items below trigger mapViolation: true.
includeReviewsbooleanfalseFetch customer reviews (billed at $0.50/1,000).
maxReviewsinteger20Max reviews per product when includeReviews is true.
skipRepostsbooleanfalseSkip products seen in previous runs (new-product feed dedup).

Output schema

Product items (always present)

FieldTypeDescription
itemIdstringWalmart numeric item ID
titlestringFull product title
urlstringCanonical product URL
pricenumber|nullCurrent price (null if out-of-stock or restricted)
listPricenumber|nullOriginal "was" price before discount
currencystring"USD", "CAD", or "MXN"
domainstringWalmart domain scraped
zipCodestring|nullZIP used for geo pricing
availabilitystring|null"IN_STOCK", "OUT_OF_STOCK", etc.
inStockbooleanTrue if IN_STOCK
brandstring|nullProduct brand
ratingnumber|nullAverage customer rating (0–5)
reviewCountinteger|nullTotal review count
imagestring|nullPrimary thumbnail URL
sellerNamestring|nullSeller display name
sellerIdstring|nullWalmart seller ID
isFirstPartybooleanTrue when sold directly by Walmart
fulfillmentstring|nullFulfillment type
dealBadgestring|nullBadge text (Rollback, Clearance, Special Buy)
isRollbackbooleanRollback badge present
isClearancebooleanClearance badge present
isSpecialBuybooleanSpecial Buy badge present
changeStatusstringNEW | PRICE_DROP | PRICE_RISE | RESTOCKED | OUT_OF_STOCK | UNCHANGED
prevPricenumber|nullPrice from previous run (null on first run)
prevAvailabilitystring|nullAvailability from previous run
priceChangenumber|nullAbsolute price change vs previous run (negative = drop)
priceChangePctnumber|nullPercentage price change vs previous run
mapViolationbooleanTrue when price is below the supplied MAP
mapPricenumber|nullThe MAP price you supplied for this item
belowMapBynumber|nullHow far below MAP the current price is
sourcestringWalmart domain
scrapedAtstringISO 8601 timestamp
contentHashstring16-char MD5 for change detection

With fetchDetails: true (default)

FieldTypeDescription
modelstring|nullModel number
upcstring|nullUPC barcode
pricePerUnitstring|nullUnit price label (e.g. "$0.14 /oz")
categoriesarrayFull breadcrumb path
descriptionHtmlstring|nullRaw HTML description
descriptionTextstring|nullPlain text description
variantsarray|nullEach variant: type, name, itemId, price, listPrice, availability, inStock, image, currency
imagesarrayAll product image URLs

Review items (includeReviews: true)

Saved as separate items with "_type": "review".

FieldTypeDescription
_typestringAlways "review"
reviewIdstring|nullPlatform review ID
itemIdstringParent product item ID
ratingnumber|nullStar rating (1–5)
titlestring|nullReview headline
textstring|nullReview body
authorNamestring|nullReviewer name
isVerifiedPurchasebooleanVerified Purchaser badge
helpfulVotesintegerHelpful vote count
submissionDatestring|nullSubmission timestamp

Example product (monitor mode, second run)

{
"itemId": "1004249195",
"title": "Keurig K-Mini Single Serve Coffee Maker, Black",
"price": 49.00,
"listPrice": 59.99,
"currency": "USD",
"domain": "walmart.com",
"zipCode": "10001",
"changeStatus": "PRICE_DROP",
"prevPrice": 59.99,
"prevAvailability": "IN_STOCK",
"priceChange": -10.99,
"priceChangePct": -18.32,
"mapViolation": false,
"mapPrice": null,
"belowMapBy": null,
"isRollback": true,
"dealBadge": "Rollback",
"inStock": true,
"rating": 4.6,
"reviewCount": 18432,
"isFirstParty": true,
"variants": [
{ "type": "Color", "name": "Black", "itemId": "1004249195", "price": 49.00, "inStock": true },
{ "type": "Color", "name": "Dusty Rose", "itemId": "3698274018", "price": 54.00, "inStock": true }
],
"scrapedAt": "2026-06-03T18:00:00.000Z",
"contentHash": "a3f8b21c9d4e7f01"
}

Examples

Keyword search with geo pricing:

{ "keywords": ["coffee maker"], "maxResults": 50, "fetchDetails": true, "zipCode": "10001" }

Bulk mode — fastest way to check known products:

{ "itemIds": ["1004249195", "846561863", "5095233663"], "fetchDetails": true, "domain": "walmart.com" }

Daily price-drop monitor (scheduled run):

{
"keywords": ["keurig", "nespresso"],
"mode": "monitor",
"outputOnlyChanges": true,
"maxResults": 500,
"fetchDetails": true,
"zipCode": "90210"
}

MAP enforcement monitoring:

{
"itemIds": ["1004249195", "846561863"],
"fetchDetails": true,
"mapPrices": { "1004249195": 49.99, "846561863": 29.99 }
}

💰 Pricing

$3.00 per 1,000 products — you only pay for successfully scraped items.

Reviews add-on: $0.50 per 1,000 reviews when includeReviews is enabled.

ResultsProduct costReviews (20 each)
100~$0.30+~$1.00
1,000~$3.00+~$10.00
10,000~$30.00+~$100.00

Flat-rate Walmart data services charge $49–$199/month. This scraper charges only for what you retrieve.


Performance

RunTime
50 products, bulk mode~2–4 min
50 products, search + fetchDetails~4–6 min
200 products, search + fetchDetails~15–20 min
1,000 products, monitor + outputOnlyChanges~20–40 min

Known limitations

  • outputOnlyChanges outputs zero items on the first run (all items are NEW, which counts as changed). Useful from the second run onwards.
  • Price history is stored in the default KV store per run — it is shared within the same scheduled task but not across separate actor runs without a scheduler.
  • ZIP targeting is US-only; .ca runs ignore zipCode.
  • walmart.com.mx is accepted as input but currently returns limited data — the .mx site serves a different page structure that the scraper does not yet fully support. Use walmart.com or walmart.ca for reliable results. .mx support is planned for a future release.
  • Review text is extracted from the product detail page — requires fetchDetails: true when using includeReviews.

Technical details

  • Sources: walmart.com, walmart.ca, walmart.com.mx
  • Memory: 512 MB
  • Price history store: KeyValueStore walmart-price-history (up to 200K items tracked)
  • Dedup store: KeyValueStore walmart-scraper-dedup (50K item rolling cap)
  • Retry: Exponential backoff, 3 attempts per request

Additional services

Need a custom actor, additional filters, scheduled runs, or integration support?.nl](mailto:info@unfencedgroup.nl) — we build on request.



Need a custom scraper?

Unfenced Group builds Apify actors for any website — for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

Get in touch: www.unfencedgroup.nl