Walmart Product & Price Scraper avatar

Walmart Product & Price Scraper

Pricing

Pay per event

Go to Apify Store
Walmart Product & Price Scraper

Walmart Product & Price Scraper

Scrape Walmart.com (US) product and price data by search term, product URL, or item ID — title, current price, was/strike-through price, in-stock status, rating, review count, and Walmart-vs-marketplace seller type. Export to JSON or CSV.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Categories

Share


🎯 What this scrapes

Walmart runs no public product-data API. This Actor looks up products three ways — search term, direct product URL, or Walmart item ID — and returns one clean schema across all three: current + was price, stock status, rating, and an explicit seller_type field (Walmart-fulfilled vs third-party marketplace) that most Walmart scrapers leave out. Built on curl-cffi with browser TLS impersonation.

🔥 What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python.
  • 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page, Retry-After honoured.
  • 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

💡 Use cases

  • Reseller/arbitrage margin checks — pull current price + stock across a candidate SKU list before buying to resell.
  • Retail price intelligence — track price and "was" price movement across a competitor catalog by search term or item ID.
  • Marketplace-vs-Walmart mix analysis — use seller_type to see which listings are Walmart-fulfilled vs third-party, at scale.
  • Stock/availability monitoring — schedule re-runs and diff in_stock / availability_status for restock alerts.
  • Catalog enrichment — resolve a list of Walmart item IDs into title, brand, rating, and image in one call.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
searchTermsarrayno[]Search queries to run on walmart.com. Each term returns up to maxResultsPerSearch products.
productUrlsarrayno[]Direct Walmart product-detail-page URLs (walmart.com/ip/...).
productIdsarrayno[]Walmart usItemId values — the numeric (8-11 digit) trailing segment of a /ip/{slug}/{itemId}
maxResultsPerSearchintegerno20Cap on the number of products returned per search term.
includeOutOfStockbooleannoTrueWhen off, out-of-stock rows are dropped (and not billed).
proxyConfigurationobjectno{'useApifyProxy': True, 'apifyProxyGroups': ['RESIDENTIAL'], 'apifyProxyCountry': 'US'}Apify Proxy spec. Walmart hard-blocks Apify's shared datacenter pool (block-interstitial on every request) —…

Example input

{
"searchTerms": [
"nintendo switch"
],
"productIds": [
"487976361"
],
"maxResultsPerSearch": 2,
"includeOutOfStock": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
],
"apifyProxyCountry": "US"
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
item_idstringWalmart usItemId.
titlestringProduct name.
brand['string', 'null']Brand name.
urlstringCanonical /ip/{slug}/{itemId} product URL.
price_current['number', 'null']Current listed USD price.
price_was['number', 'null']Strike-through/list price, only if present — never copied from price_current.
currencystringAlways USD.
in_stockbooleanDerived from the availability field.
availability_status['string', 'null']Raw Walmart availability status string.
rating_average['number', 'null']Average star rating.
rating_count['integer', 'null']Review count.
seller_name['string', 'null']Offer's seller display name.
seller_type['string', 'null']walmart (sold/shipped by Walmart) or marketplace (third-party seller).
image_url['string', 'null']Primary product image URL.
search_term['string', 'null']Populated only for search-mode rows.
scraped_atstringISO 8601 UTC row-creation time.

Example output

{
"item_id": "487976361",
"title": "Nintendo Switch OLED Model - White",
"brand": "Nintendo",
"url": "https://www.walmart.com/ip/Nintendo-Switch-OLED-White/487976361",
"price_current": 349.0,
"price_was": 399.99,
"currency": "USD",
"in_stock": true,
"availability_status": "IN_STOCK",
"rating_average": 4.8,
"rating_count": 3241,
"seller_name": "Walmart.com",
"seller_type": "walmart",
"image_url": "https://i5.walmartimages.com/asr/example.jpeg",
"search_term": null,
"scraped_at": "2026-08-01T17:40:00.000Z"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.02One-off warm-up charge per run
result-item$0.002Per unique dataset item

Example: 1 000 results at the rates above ≈ $2.02. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

US walmart.com storefront only — no Canada, Mexico, or the Marketplace seller console. Review text isn't included, only rating_average/rating_count. No historical price time-series — only the current-vs-was pair present at scrape time. Anonymous public pricing only, not Walmart+ member pricing. Variant/option fan-out is limited to the variant resolved on the given input.

❓ FAQ

Does this cover Walmart Canada or Mexico?

No — walmart.com (US storefront) only. See Limitations.

Does it return historical price history?

No — Walmart's page data exposes at most one current-vs-was price pair per scrape. Run this Actor on a schedule and diff the rows yourself for a time series.

What's the difference between price_current and price_was?

price_current is the live listed price. price_was is the strike-through/list price, only populated when Walmart's page actually shows one — it is never fabricated or copied from price_current.

How does seller_type work?

walmart means sold and shipped by Walmart.com; marketplace means a third-party seller fulfills the order. Useful for filtering out marketplace mark-ups.

Can I mix search terms, URLs, and item IDs in one run?

Yes — provide any combination of the three input fields. Rows are de-duplicated by item_id across all three modes so you're never charged twice for the same product.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.