Walmart Product Scraper — Prices, Ratings & Availability avatar

Walmart Product Scraper — Prices, Ratings & Availability

Pricing

Pay per usage

Go to Apify Store
Walmart Product Scraper — Prices, Ratings & Availability

Walmart Product Scraper — Prices, Ratings & Availability

Extract Walmart product listings from search results. Scrape product titles, current and original prices, ratings, review counts, seller names, availability, brand, category, images, and direct product URLs. Supports keyword search, category filtering, and multiple sort options including price, rati

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Ricardo Akiyoshi

Ricardo Akiyoshi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Categories

Share

Walmart Product Scraper

Scrape Walmart product listings from search results. Extract product titles, current and original prices, star ratings, review counts, seller names, availability status, brand, category, images, and direct product URLs.

Features

  • Structured data extraction -- parses Walmart's embedded JSON (__NEXT_DATA__, __PRELOADED_STATE__) for reliable results, with HTML fallback
  • Full product details -- title, price, original price, savings, rating, reviews, seller, availability, brand, category, image URL, product URL
  • Search and filter -- keyword search, optional category/department filtering, five sort options
  • Smart pagination -- automatically follows Walmart search pages (up to 25 pages, ~1,000 products)
  • Anti-bot handling -- rotates 10 realistic User-Agent strings with full browser headers (sec-ch-ua, sec-fetch-*, etc.)
  • Deduplication -- skips duplicate products across pages using product ID tracking
  • CAPTCHA detection -- detects blocks and stops gracefully, preserving all data collected so far
  • Proxy support -- optional Apify proxy configuration (residential proxies strongly recommended)
  • Pay-per-event -- charged per product scraped

Use Cases

Price Monitoring

Track product prices over time to detect sales, price drops, and seasonal trends. Build automated alerts for price changes on specific products.

Competitor Analysis

Compare pricing and availability across sellers on Walmart. Monitor how competitor products are positioned, rated, and priced relative to your own.

Product Research

Evaluate market demand for product categories by analyzing review counts, ratings, and seller competition. Identify gaps and opportunities.

E-commerce Intelligence

Gather product catalog data for market analysis, inventory planning, and assortment optimization. Compare Walmart pricing with other retailers.

Deal Hunting / Arbitrage

Find products with large discounts (savings percentage) or underpriced items for resale arbitrage opportunities.

Brand Monitoring

Track how your brand's products appear in Walmart search results -- pricing, availability, seller distribution, and customer ratings.

Input

FieldTypeDefaultDescription
searchTermStringlaptopProduct search keyword or phrase
categoryString(empty)Optional Walmart department/category to narrow results
maxResultsInteger25Maximum products to scrape (0 = unlimited, up to ~1,000)
sortByEnumbest_matchSort order: best_match, price_low, price_high, best_seller, rating_high
maxConcurrencyInteger2Parallel requests (lower = safer)
proxyConfigurationObject(none)Apify proxy settings (residential recommended)

Input Examples

Laptops sorted by price (low to high)

{
"searchTerm": "laptop",
"maxResults": 50,
"sortBy": "price_low"
}

Best-selling headphones

{
"searchTerm": "wireless headphones",
"maxResults": 100,
"sortBy": "best_seller"
}

Highest-rated running shoes

{
"searchTerm": "running shoes",
"maxResults": 40,
"sortBy": "rating_high"
}
{
"searchTerm": "organic coffee",
"maxResults": 200,
"sortBy": "best_match",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Nintendo Switch accessories (category-filtered)

{
"searchTerm": "nintendo switch accessories",
"category": "Electronics",
"maxResults": 75,
"sortBy": "rating_high"
}

Output

Each product is saved to the default dataset with the following fields:

{
"title": "HP 15.6\" Laptop, Intel Core i5, 8GB RAM, 256GB SSD, Silver",
"price": 449.00,
"originalPrice": 549.00,
"savings": 100.00,
"savingsPercent": "18%",
"rating": 4.3,
"reviewCount": 1247,
"seller": "Walmart",
"productId": "123456789",
"productUrl": "https://www.walmart.com/ip/123456789",
"imageUrl": "https://i5.walmartimages.com/seo/HP-15-Laptop..._abc123.jpeg",
"availability": "In Stock",
"brand": "HP",
"category": "Electronics/Computers/Laptops",
"searchTerm": "laptop",
"scrapedAt": "2026-03-01T12:00:00.000Z"
}

Output Fields

FieldTypeDescription
titleStringFull product title
priceNumberCurrent selling price in USD
originalPriceNumber/nullOriginal or "was" price (if discounted)
savingsNumber/nullDollar amount saved
savingsPercentString/nullPercentage discount (e.g., "18%")
ratingNumber/nullAverage star rating (1.0 - 5.0)
reviewCountNumberNumber of customer reviews
sellerStringSeller name ("Walmart" or third-party)
productIdStringWalmart product/item ID
productUrlStringDirect link to product page
imageUrlStringProduct thumbnail image URL
availabilityStringStock status: In Stock, Out of Stock, Limited Stock, Pre-order
brandString/nullProduct brand name
categoryString/nullProduct category path
searchTermStringThe search term used
scrapedAtStringISO 8601 timestamp of when the product was scraped

Dataset Views

The actor provides two pre-configured dataset views:

  1. Products -- full product table with title, price, rating, reviews, seller, availability, and brand
  2. Price Comparison -- focused view showing title, current price, original price, savings amount, and savings percentage

Performance Tips

  1. Use residential proxies -- Walmart is aggressive with anti-bot detection. Residential proxies are strongly recommended for reliable results. Set proxyConfiguration: { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }.
  2. Start small -- test with maxResults: 10 first to verify the scraper works for your search term.
  3. Keep concurrency low -- maxConcurrency: 2 is the safest default. Only increase if using proxies.
  4. Be specific with search terms -- more specific searches return more relevant results and require fewer pages.
  5. Use sort options -- sorting by price_low or rating_high puts the most useful data on earlier pages, reducing the number of pages needed.

Rate Limiting and Blocks

Walmart has strong anti-bot protections. This actor handles them by:

  • Rotating 10 realistic browser User-Agent strings per request
  • Sending full browser headers (sec-ch-ua, sec-fetch-*, accept-language, etc.)
  • Limiting to 15 requests/minute by default
  • Detecting CAPTCHA and block pages, stopping gracefully
  • Supporting proxy rotation via Apify's residential proxy infrastructure
  • Retrying failed requests up to 3 times

If you see "Anti-bot page detected" in the logs, the scraper saves all data collected so far and exits cleanly. Switch to residential proxies to avoid this.

Pricing (Pay Per Event)

This actor uses Apify's pay-per-event model. You are charged for each product successfully scraped and saved to the dataset.

This actor is provided as a technical tool for data collection. Users are responsible for ensuring their use complies with Walmart's Terms of Use and all applicable laws. The actor is designed for personal research, price monitoring, and business analysis purposes. Please review Walmart's robots.txt and Terms of Service before use.

Integration — Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("sovereigntaylor/walmart-scraper").call(run_input={
"searchTerm": "wireless headphones",
"maxResults": 100,
"sortBy": "best_seller",
"proxyConfiguration": {
"useApifyProxy": True,
"apifyProxyGroups": ["RESIDENTIAL"]
}
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
savings = f" (save {item['savingsPercent']})" if item.get('savingsPercent') else ""
print(f"{item['title']}: ${item['price']}{savings}{item['rating']} stars")

Integration — JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('sovereigntaylor/walmart-scraper').call({
searchTerm: 'wireless headphones',
maxResults: 100,
sortBy: 'best_seller',
proxyConfiguration: {
useApifyProxy: true,
apifyProxyGroups: ['RESIDENTIAL']
}
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
console.log(`${item.title}: $${item.price}${item.rating} stars (${item.reviewCount} reviews)`);
});