Home / Tools / Walmart Scraper

E-commerce & reviews

Walmart Scraper

Scrape Walmart.com products by keyword, category URL, product URL or item ID: price, was-price, unit price, stock, pickup/delivery, seller (Walmart vs marketplace), UPC/GTIN, variants, specs, images, ratings and optional reviews. Fast HTTP, no browser, auto-retries blocked requests.

Run it on Apify API & MCP

Sample output

ProductBrandPriceRatingReviews
Folgers Classic Roast Ground Coff…Folgers12.964.7078,867
Dios Mio Coffee By Sofia Vergara,…Dios Mio9.864.50840
Bulletproof Original Medium Roast…Bulletproof17.994.703,875

Real rows from the prefilled example run (Oct 19, 2026), 5 of 57+ fields shown. Export as JSON, CSV, Excel or HTML, or read them through the API.

Full JSON of one real output row (5 rows in the example dataset)
{
  "type": "product",
  "itemId": "578550306",
  "productId": "492U4U1TMHC0",
  "primaryItemId": "971362035",
  "title": "Folgers Classic Roast Ground Coffee, Medium Roast, 25.9 oz Canister",
  "brand": "Folgers",
  "url": "https://www.walmart.com/ip/Folgers-Classic-Roast-Ground-Coffee-Medium-Roast-25-9-oz-Canister/578550306",
  "price": 12.96,
  "wasPrice": 14.96,
  "listPrice": 14.96,
  "unitPrice": 0.5,
  "unitPriceString": "50.0 ¢/oz",
  "unitOfMeasure": "OZ",
  "currency": "USD",
  "savingsAmount": 2,
  "priceRangeMin": null,
  "priceRangeMax": null,
  "isRollback": true,
  "isClearance": false,
  "rating": 4.7,
  "reviewCount": 78867,
  "sellerId": "F55CDC31AB754BB68FE0B39041159D63",
  "sellerName": "Walmart.com",
  "sellerType": "WALMART",
  "sellerRating": null,
  "sellerReviewCount": null,
  "fulfilledByWalmart": true,
  "offerType": "ONLINE_AND_STORE",
  "offerCount": 10,
  "availability": "IN_STOCK",
  "inStock": true,
  "shipping": {
    "available": true,
    "availability": "IN_STOCK",
    "date": "2026-10-19T21:59:00.000Z",
    "label": "Today",
    "price": null,
    "free": false,
    "location": "Harrisville, 84404",
    "aisle": null,
    "lowStock": false,
    "maxOrderQuantity": 12
  },
  "pickup": {
    "available": true,
    "availability": "IN_STOCK",
    "date": "2026-10-19T09:00:00.000-06:00",
    "label": "Today",
    "price": null,
    "free": false,
    "location": "Harrisville Supercenter",
    "aisle": "A16",
    "lowStock": false,
    "maxOrderQuantity": 12
  },
  "delivery": {
    "available": false,
    "availability": "NOT_AVAILABLE",
    "date": null,
    "label": null,
    "price": null,
    "free": null,
    "location": "Harrisville, 84404",
    "aisle": null,
    "lowStock": null,
    "maxOrderQuantity": null
  },
  "orderLimit": 12,
  "location": {
    "postalCode": "84404",
    "city": "Harrisville",
    "state": "UT",
    "storeId": "2921"
  },
  "image": "https://i5.walmartimages.com/seo/Folgers-Classic-Roast-Ground-Coffee-Medium-Roast-25-9-oz-Canister_96f5cb79-fc87-469f-b219-e555936a67d3.ee860d1c7c655ceb9e5bcf5d579dbda5.jpeg",
  "images": [
    "https://i5.walmartimages.com/seo/Folgers-Classic-Roast-Ground-Coffee-Medium-Roast-25-9-oz-Canister_96f5cb79-fc87-469f-b219-e555936a67d3.ee860d1c7c655ceb9e5bcf5d579dbda5.jpeg",
    "https://i5.walmartimages.com/asr/75cc5866-fcf9-43f0-bbe9-bc891df91fdf.568985f2f9e37d207e75a130cc53e926.jpeg",
    "https://i5.walmartimages.com/asr/c82d4a06-49e8-411d-81ba-6bdd5599ea67.2b00bc46ec182b4c79fb8fab93542f9f.jpeg",
    "... 4 more"
  ],
  "categories": [
    "Food",
    "Coffee",
    "Folgers Coffee",
    "... 1 more"
  ],
  "categoryUrl": "https://www.walmart.com/cp/all-folgers-coffee/8271556"
}

Output fields

From the Actor's dataset schema. Every row has the same flat shape, so it drops straight into a spreadsheet, a database or an agent's context.

FieldTypeDescription
typestringRow type: product, review or error (errors are free)
itemIdstringWalmart item ID (usItemId)
productIdstringWalmart catalog product ID
titlestringProduct title
brandstringBrand
urlstringProduct URL
pricenumberCurrent price
wasPricenumberPrevious price (strike-through)
listPricenumberList price
unitPricenumberPrice per unit
unitPriceStringstringUnit price as shown, e.g. 50.0 ¢/oz
unitOfMeasurestringUnit of measure
currencystringCurrency
savingsAmountnumberSavings vs was-price
ratingnumberAverage rating 1-5
reviewCountintegerNumber of ratings/reviews
sellerIdstringSeller ID
sellerNamestringSeller name
sellerTypestringWALMART (1P) or MARKETPLACE (3P)
fulfilledByWalmartbooleanSold or fulfilled by Walmart (WFS)
offerCountintegerNumber of offers for the item
availabilitystringIN_STOCK, OUT_OF_STOCK, ...
inStockbooleanIn stock
shippingobjectShipping option: available, date, price, label

Pricing

Pay per result, billed by Apify. No subscription and no minimum. Discount tiers apply automatically on paid Apify plans.

EventFree planBronzeSilverGold
Product with full details main
Charged once per product scraped with full product-page details.
$0.0035$0.003$0.0027$0.0024
Listing-only product
Charged once per product returned from search/category listing only (details off or product page unavailable).
$0.0012$0.001$0.0009$0.0008
Review
Charged once per customer review saved.
$0.0004$0.0003$0.0003$0.0003
Actor start
Charged once when the Actor run starts.
$0.002$0.002$0.002$0.002

Examples on the Free plan: 100 product with full detailss = $0.35, 1,000 product with full detailss = $3.50, 10,000 product with full detailss = $35. Apify's Free plan includes $5 of monthly usage credit. Prices read from the Apify API at build time (2026-10-19).

Example input

This is the prefilled input on the Store page. Keep it and click Start to see real data in seconds.

{
  "searchKeywords": [
    "coffee"
  ],
  "startUrls": [
    {
      "url": "https://www.walmart.com/browse/food/coffee/976759_1086446"
    }
  ],
  "productIds": [
    "578550306"
  ],
  "maxItems": 5,
  "maxItemsPerQuery": 40,
  "includeDetails": true,
  "sort": "best_match",
  "includeReviews": false,
  "maxReviewsPerProduct": 20,
  "reviewsSort": "relevancy",
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "residentialFallback": true,
  "maxConcurrency": 10,
  "maxRetries": 8
}

Use it from code, no-code or an AI agent

cURL (one request, returns rows)
curl -X POST \
  "https://api.apify.com/v2/acts/wrenfield-data~walmart-product-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchKeywords": ["coffee"], "startUrls": [{"url": "https://www.walmart.com/browse/food/coffee/976759_1086446"}], "productIds": ["578550306"], "maxItems": 5, "maxItemsPerQuery": 40, "includeDetails": true, "sort": "best_match", "includeReviews": false, "maxReviewsPerProduct": 20, "reviewsSort": "relevancy", "proxyConfiguration": {"useApifyProxy": true}, "residentialFallback": true, "maxConcurrency": 10, "maxRetries": 8}'
Python
# pip install apify-client
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("wrenfield-data/walmart-product-scraper").call(
    run_input={
    "searchKeywords": [
        "coffee"
    ],
    "startUrls": [
        {
            "url": "https://www.walmart.com/browse/food/coffee/976759_1086446"
        }
    ],
    "productIds": [
        "578550306"
    ],
    "maxItems": 5,
    "maxItemsPerQuery": 40,
    "includeDetails": True,
    "sort": "best_match",
    "includeReviews": False,
    "maxReviewsPerProduct": 20,
    "reviewsSort": "relevancy",
    "proxyConfiguration": {
        "useApifyProxy": True
    },
    "residentialFallback": True,
    "maxConcurrency": 10,
    "maxRetries": 8
},
    max_total_charge_usd=1.00,  # hard cap for this run
)
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row)
JavaScript / Node
// npm i apify-client
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('wrenfield-data/walmart-product-scraper').call({
  "searchKeywords": [
    "coffee"
  ],
  "startUrls": [
    {
      "url": "https://www.walmart.com/browse/food/coffee/976759_1086446"
    }
  ],
  "productIds": [
    "578550306"
  ],
  "maxItems": 5,
  "maxItemsPerQuery": 40,
  "includeDetails": true,
  "sort": "best_match",
  "includeReviews": false,
  "maxReviewsPerProduct": 20,
  "reviewsSort": "relevancy",
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "residentialFallback": true,
  "maxConcurrency": 10,
  "maxRetries": 8
}, { maxTotalChargeUsd: 1 });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
MCP (Claude, Cursor, VS Code, any MCP client)
{
  "mcpServers": {
    "wrenfield-walmart-product-scraper": {
      "url": "https://mcp.apify.com?tools=wrenfield-data/walmart-product-scraper"
    }
  }
}

Remote MCP server hosted by Apify. Sign in with OAuth on first use, or send Authorization: Bearer <APIFY_TOKEN>. The tool appears as wrenfield-data--walmart-product-scraper. More client setups on the MCP page.

n8n, Make, Zapier

Use the official Apify node or app, pick Run Actor, enter wrenfield-data/walmart-product-scraper and paste the input JSON above. Then read the run's dataset items. Ready-made n8n workflows are on the n8n templates page.

FAQ

How much does Walmart Scraper cost?

$0.0035 per product with full details on the Apify Free plan ($3.50 per 1,000), billed per result by Apify with no subscription. Plus $0.0012 per listing-only product. Plus $0.0004 per review. Plus $0.002 per actor start. Higher Apify plans get the discounted tiers shown in the pricing table. You can cap any run with a maximum cost.

Is there an official Walmart API?

Walmart offers APIs for its own sellers and affiliate partners, but not a public product data API for everyone. This Actor gives you the data shoppers see on walmart.com as structured JSON or CSV. You can use it through the Apify API, schedules, webhooks and integrations.

Why does my Walmart scraper get "Robot or human?" or blocked pages?

Walmart blocks plain HTTP clients by their TLS fingerprint, IP reputation and request patterns. This Actor uses browser-grade fingerprints, rotates sessions and IPs, and automatically retries blocked requests on residential IPs. Blocked pages are retried and never returned as data.

How much does it cost to scrape 1,000 Walmart products?

You pay the product-result event price per detailed product (see the Pricing tab). Proxy and compute costs are included. Listing-only mode is cheaper. Use it when you only need the price, rating and stock shown in the search results.

Can I monitor Walmart prices daily?

Yes. Save your item IDs or search URLs as a task, schedule it daily, and compare price, wasPrice, inStock and sellerName between runs. Add a ZIP code to track local prices.

Can I get marketplace (third-party) seller info?

Yes. sellerName, sellerId and sellerType show the seller that holds the Buy Box, and offerCount shows how many other offers exist.

How do I find a Walmart item ID?

It is the number at the end of a product URL. For example, https://www.walmart.com/ip/.../578550306 has the item ID 578550306. You can paste the full URL or just the ID.

Related tools

Compare and plan

Try Walmart Scraper now

Open it on Apify, keep the prefilled example and click Start. The Apify Free plan includes $5 of monthly credit, no card needed.

Open on Apify