# Walmart Product Detail Scraper (`scrapers-hub/walmart-product-detail-scraper`) Actor

Walmart Product Detail Scraper extracts product pages from start URLs with optional variant enqueueing and per-URL product caps. 🛒 For price monitoring, catalogue building, assortment tracking and retail competitor research.

- **URL**: https://apify.com/scrapers-hub/walmart-product-detail-scraper.md
- **Developed by:** [Scrapers Hub](https://apify.com/scrapers-hub) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### 🛒 Walmart Product Scraper – Scrape Walmart Prices, Ratings, Sellers & Variants

The **Walmart Product Scraper** extracts complete Walmart product data from any Walmart.com search page, category page, or product URL — including price, stock availability, ratings, review counts, seller details, images, UPC, and product variants. If you need to **scrape Walmart product data** for price monitoring, competitor analysis, or catalog research without touching the official Walmart API, this Walmart scraper returns clean, structured JSON in seconds. 🚀

No API key, no login, no cookies. Residential proxy rotation is handled automatically inside the Actor, so you get reliable Walmart data extraction at scale without configuring a single proxy.

***

### 📊 What Data Can You Extract with This Walmart Scraper?

This Walmart data scraper returns **50 fields per product**, grouped into six practical categories:

| Data Category | Fields You Get |
|---|---|
| 🏷️ **Product Identity** | `productId`, `usItemId`, `name`, `brand`, `type`, `model`, `upc`, `manufacturerProductId` |
| 💲 **Walmart Pricing Data** | `priceInfo`, `secondaryOfferPrice`, `additionalOfferCount`, `transactableOfferCount`, `offerType` |
| ⭐ **Ratings & Reviews** | `averageRating`, `numberOfReviews`, `ratingCounts`, `suppressReviews` |
| 🏪 **Walmart Seller Data** | `sellerId`, `sellerName`, `sellerAverageRating`, `sellerReviewCount`, `fulfillmentType` |
| 🖼️ **Images & Media** | `thumbnailUrl`, `allImages`, `brandUrl` |
| 📦 **Availability & Logistics** | `availability`, `returnPolicy`, `shippingRestriction`, `orderLimit`, `orderMinLimit`, `buyNowEligible` |

Every field comes from Walmart's public product pages — nothing is inferred, estimated, or filled in with placeholder values.

***

### 🌟 Key Features of the Walmart Product Scraper

| Feature | Description |
|---|---|
| 🔗 **Search, Category & Product URLs** | Feed Walmart search pages, category listings, or direct `/ip/` product URLs — all three work. |
| 💲 **Complete Walmart Pricing Data** | Current price, secondary offer price, offer counts, and buy-box suppression flags for accurate price tracking. |
| ⭐ **Ratings & Review Counts** | Average rating and review volume so you can benchmark product reputation at a glance. |
| 🏪 **Walmart Marketplace Seller Data** | Seller ID, name, rating, review count, and fulfillment type for marketplace research. |
| 🎨 **Product Variant Scraping** | Optionally enqueue every colour, size, and pack variant to build a complete Walmart catalog. |
| 🖼️ **Full Image Galleries** | Thumbnail plus the complete image URL list for every Walmart item. |
| 🔐 **Built-in Residential Proxies** | Proxies rotate automatically with fresh TLS sessions — no setup, no blocks, no CAPTCHA handling on your side. |
| 🔁 **Automatic Retry Logic** | Four retry attempts per product, each with a new proxy session, keeps long runs stable. |
| 📤 **Export Anywhere** | JSON, CSV, Excel, XML, or straight through the Apify API. |

***

### 🚀 Why Choose This Walmart Scraper?

**No Walmart API key needed.** Walmart's official Developer API requires partner approval and restricts what you can query. This Walmart scraper reads the same public pages a shopper sees, so you can start extracting product data immediately.

**Anti-bot handling is built in.** Walmart uses IP rate limiting, browser fingerprinting, and CAPTCHA challenges to block scrapers. This Actor routes every request through rotating residential proxies with per-attempt session rotation, which is what keeps Walmart product scraping reliable over long runs.

**Structured output, not raw HTML.** You get typed, documented JSON fields ready for a database or spreadsheet — no parsing, no cleanup, no brittle CSS selectors to maintain.

**Cost control built in.** `maxProductsPerStartUrl` caps exactly how many products each run touches, so you never get a surprise bill from an unexpectedly deep category page.

***

### 📥 Input

```json
{
  "startUrls": [
    { "url": "https://www.walmart.com/search?q=mens+t+shirt" }
  ],
  "maxProductsPerStartUrl": 10,
  "enqueueProductVariants": false
}
```

#### 🔧 Walmart Scraper Input Fields

| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| `startUrls` | `array` | ✅ Yes | – | Walmart search, category, or product URLs to scrape. |
| `maxProductsPerStartUrl` | `integer` | ❌ No | `10` | How many products to extract per start URL. |
| `enqueueProductVariants` | `boolean` | ❌ No | `false` | Also scrape every product variant (colour, size, pack count). |

#### 💡 Input Examples

**Scrape a Walmart search query:**

```json
{ "startUrls": [{ "url": "https://www.walmart.com/search?q=bluetooth+headphones" }],
  "maxProductsPerStartUrl": 50 }
```

**Scrape a Walmart category page:**

```json
{ "startUrls": [{ "url": "https://www.walmart.com/browse/electronics/3944" }],
  "maxProductsPerStartUrl": 100 }
```

**Scrape specific Walmart products with all variants:**

```json
{ "startUrls": [{ "url": "https://www.walmart.com/ip/2456111081" }],
  "enqueueProductVariants": true }
```

***

### 📤 Output

Each dataset item is one Walmart product. Real sample from an actual run:

```json
{
  "itemType": "DetailProduct",
  "type": "T-Shirts",
  "productId": "5MJHRZ2FR8Q1",
  "usItemId": "2456111081",
  "name": "Men's Short Sleeve Crew Neck Cotton Blend Classic Tee (S-3XL) 6 Pack",
  "url": "https://www.walmart.com/ip/Men-s-Short-Sleeve-Crew-Neck-Cotton-Blend-Classic-Tee-S-3XL-6-Pack/2456111081",
  "brand": "Galaxy by Harvic",
  "averageRating": 4.2,
  "numberOfReviews": 456,
  "sellerName": "Harvic International LTD",
  "thumbnailUrl": "https://i5.walmartimages.com/seo/...jpeg"
}
```

#### 🧾 Walmart Product Output Fields

| Field | Description |
|---|---|
| `productId` / `usItemId` | Walmart's internal product ID and public item ID. |
| `name` / `brand` / `type` | Product title, brand name, and Walmart category type. |
| `url` / `brandUrl` | Direct product URL and brand storefront URL. |
| `priceInfo` / `secondaryOfferPrice` | Current pricing object and competing offer price. |
| `availability` / `fulfillmentType` | Stock status and how the item ships. |
| `averageRating` / `numberOfReviews` | Star rating and total review count. |
| `sellerName` / `sellerId` / `sellerAverageRating` | Marketplace seller identity and reputation. |
| `thumbnailUrl` / `allImages` | Main image plus the full gallery. |
| `upc` / `model` / `manufacturerProductId` | Product identifiers for catalog matching. |
| `variantList` | All available product variants. |
| `returnPolicy` / `shippingRestriction` | Fulfillment and returns metadata. |
| `description` / `shortDescription` | Full and condensed product copy. |
| `isSponsored` / `badge` | Ad placement flag and Walmart badge text. |

*Plus 37 more fields including `offerId`, `hasCarePlans`, `subscriptionEligible`, `giftingEligibility`, `legalRestriction`, `personalizable`, `ironbankCategory`, and `gender`.*

***

### 💻 How to Use the Walmart Product Scraper (Step by Step)

#### Step 1: Collect Your Walmart URLs

Open Walmart.com and search for your target product, browse to a category, or open a specific item. Copy the URL from your browser. All three URL shapes are valid inputs:

- Search: `walmart.com/search?q=your+keyword`
- Category: `walmart.com/browse/...`
- Product: `walmart.com/ip/...`

#### Step 2: Set Your Product Limit

`maxProductsPerStartUrl` controls how many products the scraper pulls from each URL. Start with `10` for a test run, then scale up once you've confirmed the output shape matches what you need.

#### Step 3: Decide on Product Variants

Leave `enqueueProductVariants` off for a fast overview of parent listings. Turn it on when you need SKU-level detail — every colour, size, and pack count as its own dataset row. Expect run time to grow roughly in proportion to the number of variants.

#### Step 4: Run the Walmart Scraper

Click **Start**. The Actor fetches each page through a rotating residential proxy, parses the embedded product JSON, and pushes structured results to your dataset as it goes — so partial results are available even if you stop the run early.

#### Step 5: Export Your Walmart Product Data

Open the **Storage** tab and export as JSON, CSV, Excel, or XML. Or skip the UI entirely and pull results through the Apify API (see below).

#### Step 6: Schedule It for Ongoing Price Monitoring

Use Apify **Schedules** to re-run the Walmart scraper hourly, daily, or weekly. Combine it with webhooks to push fresh pricing into your own system automatically.

***

### 🔌 API Access & Integrations

Run the Walmart scraper programmatically and get results without ever opening the console.

**Start a run and wait for the dataset:**

```bash
curl -X POST "https://api.apify.com/v2/acts/scrapers-hub~walmart-product-detail-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls":[{"url":"https://www.walmart.com/search?q=laptop"}],"maxProductsPerStartUrl":25}'
```

**Python:**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("scrapers-hub/walmart-product-detail-scraper").call(run_input={
    "startUrls": [{"url": "https://www.walmart.com/search?q=laptop"}],
    "maxProductsPerStartUrl": 25,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["name"], item["priceInfo"])
```

The Actor also connects to **Zapier, Make, Google Sheets, Google Drive, Slack, Airbyte, and webhooks** through the standard Apify integrations, so Walmart product data can land directly in your existing stack.

***

### 💡 Best Use Cases for Walmart Product Data

#### 📊 Walmart Price Monitoring & Repricing

Track competitor prices on Walmart daily and feed them into a repricing engine. `priceInfo` plus `secondaryOfferPrice` and `additionalOfferCount` tell you not just the price, but how contested the buy box is — the signal that actually determines whether a price cut wins you the sale.

#### 🥊 Competitor & Brand Analysis

Scrape an entire Walmart category to map which brands dominate, what price bands they occupy, and how their ratings compare. `isSponsored` reveals which competitors are paying for placement versus ranking organically.

#### 🏷️ Retail Arbitrage & Product Sourcing

Filter for products with high `averageRating`, high `numberOfReviews`, and a low price relative to category median. `upc` and `model` let you match Walmart listings against Amazon, eBay, or your supplier catalog to spot margin opportunities.

#### 📚 Product Catalog Enrichment

Fill gaps in your PIM or ERP. Pull `upc`, `manufacturerProductId`, `model`, `description`, and `allImages` to complete records that arrived from suppliers with missing attributes.

#### 📈 Market & Assortment Research

Measure category depth, brand share, average price, and review velocity across Walmart.com. Because `position` context comes from the search URL you supply, you can compare assortment across regions and search terms.

#### 🏪 Marketplace Seller Intelligence

Identify which third-party sellers are winning on Walmart Marketplace. `sellerName`, `sellerAverageRating`, `sellerReviewCount`, and `fulfillmentType` together profile a seller's scale and service quality.

#### 🤖 AI Training & Dataset Building

Clean, typed Walmart product data with descriptions and images is well suited to product-matching models, price-prediction training sets, and retrieval pipelines for shopping assistants.

***

### ⚙️ Tips for Better Walmart Scraping Results

- **Start small.** Run 10 products first and inspect the output before scaling to thousands.
- **Split large jobs.** Several start URLs with moderate limits run more reliably than one URL with a huge limit.
- **Use search URLs with filters.** Walmart's own facets (price range, brand, rating) narrow results before scraping, cutting cost and noise.
- **Skip variants unless you need them.** Variant enqueuing multiplies run time; turn it on only for SKU-level work.
- **Schedule off-peak.** Overnight runs tend to hit less aggressive rate limiting.
- **Watch `availability`.** Out-of-stock items still return full data — filter on this field if you only want purchasable products.

***

### 🛠️ Troubleshooting

**The run returns fewer products than my limit.**
Walmart search pages hold a finite number of results. If your query is narrow, the scraper returns everything available and stops. Broaden the search term or add more start URLs.

**Some fields are `null`.**
Not every Walmart listing exposes every attribute. Grocery items rarely have `model`; first-party Walmart items have no marketplace `sellerId`. This reflects the source page, not a scraping failure.

**My run is slow.**
Enabling `enqueueProductVariants` and setting high product limits both increase run time substantially. Reduce one or both, or split the work across scheduled runs.

**I need a field that isn't listed.**
Open an issue — if Walmart exposes it publicly, it can usually be added.

***

### ❓ Frequently Asked Questions About Walmart Scraping

**How do I scrape Walmart product data?**
Paste a Walmart search, category, or product URL into `startUrls` and run the Actor. It returns structured JSON with price, ratings, seller, images, and identifiers — no coding required.

**Do I need a Walmart API key to use this Walmart scraper?**
No. This scraper works only on publicly visible pages and needs no API key, account, or login credentials.

**Will Walmart block my scraper?**
The Actor routes every request through rotating residential proxies with fresh TLS sessions per attempt, and retries up to four times per product. That's what keeps Walmart data extraction stable at scale.

**Can I scrape Walmart search results, not just single products?**
Yes. Search pages, category pages, and direct product URLs are all supported inputs.

**How many Walmart products can I scrape in one run?**
There's no hard cap. `maxProductsPerStartUrl` multiplied by your number of start URLs sets the ceiling. For very large jobs, split across several scheduled runs.

**Can I scrape Walmart product reviews?**
This Actor returns review *counts* and average ratings, not individual review text. Full review extraction is a separate use case — get in touch if you need it.

**Does it get Walmart marketplace sellers?**
Yes. `sellerId`, `sellerName`, `sellerAverageRating`, and `sellerReviewCount` are returned for third-party marketplace listings.

**Can I scrape Walmart product variants?**
Yes. Set `enqueueProductVariants` to `true` and every colour, size, and pack option is scraped as its own record.

**What export formats are supported?**
JSON, CSV, Excel, XML, plus direct API access and integrations with Google Sheets, Zapier, Make, and Slack.

**How do I track Walmart prices over time?**
Set up an Apify Schedule to re-run the scraper on a fixed interval, then append each run's dataset to your own storage. Comparing `priceInfo` across runs gives you a price history.

**Does it work for Walmart Canada or Mexico?**
The scraper is built and tested against Walmart.com (US). Other Walmart domains use different page structures and are not currently supported.

**Can I get the UPC or GTIN for matching against other retailers?**
Yes — `upc`, `model`, and `manufacturerProductId` are all included, which is exactly what you need for cross-retailer product matching.

**Is scraping Walmart legal?**
The scraper collects only publicly accessible information — the same data any visitor sees. You remain responsible for how you use it. See the disclaimer below.

**How much does it cost to run?**
Cost scales with how many products you scrape. Use `maxProductsPerStartUrl` to cap each run precisely.

***

### 🆘 Support & Feedback

💬 Found a bug, or need an extra field in the Walmart product output? Open a ticket in the **Issues** tab of this Actor — that's the fastest route to a fix.

📩 Need a custom Walmart data pipeline, a different Walmart domain, or enterprise-scale volume? Email **<scraperhubapi@gmail.com>**.

⭐ If this Walmart scraper saves you time, please leave a review — it genuinely helps other people find it.

***

### ⚖️ Disclaimer

This Walmart product scraper collects data solely from **publicly accessible pages** on Walmart.com. No information is taken from private accounts, seller dashboards, or content behind a login. Users are fully responsible for complying with all applicable laws — including copyright, privacy, and data protection regulations — and with Walmart's terms of service. Please respect platform rate limits when scraping Walmart product data.

For data removal requests, contact **<scraperhubapi@gmail.com>**. Use this Walmart scraper responsibly, ethically, and only for legitimate research or business purposes.

# Actor input Schema

## `startUrls` (type: `array`):

Walmart search or category page URLs to scrape (e.g. https://walmart.com/search?q=tshirt).

## `maxProductsPerStartUrl` (type: `integer`):

Maximum number of products to collect from each start URL (across all result pages). 0 = no limit.

## `enqueueProductVariants` (type: `boolean`):

When enabled, every variant listed under a product (different size/color/pack) is also fetched as its own product page and returned as a separate item.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://walmart.com/search?q=tshirt"
    }
  ],
  "maxProductsPerStartUrl": 10,
  "enqueueProductVariants": false
}
```

# Actor output Schema

## `results` (type: `string`):

Records scraped by Walmart Product Detail Scraper, stored in the run's default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://walmart.com/search?q=tshirt"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers-hub/walmart-product-detail-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://walmart.com/search?q=tshirt" }] }

# Run the Actor and wait for it to finish
run = client.actor("scrapers-hub/walmart-product-detail-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://walmart.com/search?q=tshirt"
    }
  ]
}' |
apify call scrapers-hub/walmart-product-detail-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapers-hub/walmart-product-detail-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/50qeLXj7gUhptbqoj/builds/BCPAYzFSIzB6a73k9/openapi.json
