Walmart Product & Price Scraper icon

E-commerce

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.

Free Apify credit covers a first run. No credit card to try.

What this Actor 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 <code>seller_type</code> to see which listings are Walmart-fulfilled vs third-party, at scale.
  • Stock/availability monitoring — schedule re-runs and diff <code>in_stock</code> / <code>availability_status</code> for restock alerts.
  • Catalog enrichment — resolve a list of Walmart item IDs into title, brand, rating, and image in one call.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
searchTerms array no Search queries to run on walmart.com. Each term returns up to maxResultsPerSearch products.
productUrls array no Direct Walmart product-detail-page URLs (walmart.com/ip/...).
productIds array no Walmart usItemId values — the numeric (8-11 digit) trailing segment of a /ip/{slug}/{itemId} URL.
maxResultsPerSearch integer no Cap on the number of products returned per search term.
includeOutOfStock boolean no When off, out-of-stock rows are dropped (and not billed).
{
  "searchTerms": [
    "nintendo switch"
  ],
  "productIds": [
    "487976361"
  ],
  "maxResultsPerSearch": 2,
  "includeOutOfStock": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

item_idtitlebrandurlprice_currentprice_wascurrencyin_stockavailability_statusrating_averagerating_countseller_nameseller_typeimage_urlsearch_termscraped_at

{
  "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

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Result item emitted$0.0020Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

FAQ

Does this cover Walmart Canada or Mexico?
No — <code>walmart.com</code> (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?
<code>price_current</code> is the live listed price. <code>price_was</code> is the strike-through/list price, only populated when Walmart's page actually shows one — it is never fabricated or copied from <code>price_current</code>.
How does seller_type work?
<code>walmart</code> means sold and shipped by Walmart.com; <code>marketplace</code> 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 <code>item_id</code> across all three modes so you're never charged twice for the same product.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run