# Walmart Scraper 🛒 (products & prices, no key) (`tagadanar/walmart-scraper`) Actor

Scrape Walmart.com search results by keyword or URL: product name, price, was-price and rollback savings, rating, review count, seller, availability and image as structured JSON. No browser, no API key, no subscription: one flat price per product with platform usage included.

- **URL**: https://apify.com/tagadanar/walmart-scraper.md
- **Developed by:** [Tagada Data](https://apify.com/tagadanar) (community)
- **Categories:** E-commerce, Automation, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.45 / 1,000 product scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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 Scraper: Products, Prices and Ratings as JSON

Turn any Walmart.com search into a clean product feed. Give it a keyword or a Walmart search URL and it returns every product it finds with the fields you actually use: name, brand, price, was-price and savings, star rating, review count, seller, availability and image, all as structured JSON.

It reads Walmart's own page data (the `__NEXT_DATA__` island the site ships on every search page), so you get the same numbers the site shows, without driving a browser and without parsing hashed grid classes that change every week. Walmart is a US storefront behind a bot wall, so the actor runs through Apify Residential pinned to the US, and that proxy cost is included in the per-product price.

### What you get per product

| Field | Description |
| --- | --- |
| `name`, `brand` | Product title and brand |
| `price`, `currency` | Current price and currency |
| `wasPrice`, `savings` | Strike-through price and savings when on rollback |
| `unitPrice`, `priceRange` | Unit price and price range when shown |
| `averageRating`, `numberOfReviews` | Star rating and number of reviews |
| `sellerName`, `sellerId` | Seller (Walmart.com or a marketplace seller) |
| `availability`, `inStock` | Stock status text and boolean |
| `isSponsored` | True for promoted / ad results |
| `image` | Main product image URL |
| `productType`, `department` | Walmart product type and department |
| `variantCount` | Number of variants (sizes, colors) on the tile |
| `usItemId`, `url` | Walmart item ID and product link |
| `searchTerm`, `sourceUrl`, `scrapedAt` | The search that found it and the run timestamp |

### Who uses it

- **Price monitoring and repricing** across Walmart for your own or competitors' SKUs.
- **Marketplace sellers** tracking buy-box price, rating and stock on their listings.
- **Brands and analysts** measuring shelf presence, rollbacks and review counts by category.
- **Data pipelines** that need Walmart catalog data as clean JSON, no API key.

### Input examples

One keyword:

```json
{
  "search": ["cordless drill"],
  "maxResults": 200
}
```

Several keywords in one run (each is scraped independently):

```json
{
  "search": ["air fryer", "robot vacuum", "espresso machine"],
  "maxResults": 2000
}
```

Paste a filtered Walmart URL (its filters and sort are kept):

```json
{
  "search": ["https://www.walmart.com/search?q=laptop&facet=brand%3AHP&sort=price_low"]
}
```

### How it works

Each keyword becomes a Walmart search, and the actor walks the result pages, deduping by Walmart item ID so a product listed on several pages is one row. It stops a search when a page returns nothing new, when Walmart reports no more pages, or when your `maxResults` is reached. Ad and takeover placeholder tiles are dropped, so every row is a real product.

### Pricing

You pay per product returned. Platform usage, including the US residential proxy, is included in the price, so there is no subscription and no usage line on your bill.

| Event | Price |
| --- | --- |
| Product scraped | $3.50 per 1,000 |
| Actor start | $0.001 per run |

The tiny start fee covers runs that return nothing; on any normal run it is noise next to the per-product price.

### FAQ

**Do I need a proxy or an API key?** No key and no proxy setup. Walmart applies a bot wall, so the actor uses Apify Residential pinned to the US internally, and that cost is already in the per-product price.

**How many products per keyword?** Walmart shows about 40 per page and pages deep for common queries. Set `maxResults` to how many you want in total across all searches.

**Can I paste a category or filtered URL?** Yes. Put the full Walmart URL in `search` and it is fetched as-is, so any filters, facets and sort in that URL are respected.

**Do I get marketplace (third-party) sellers too?** Yes. The `sellerName` field is `Walmart.com` for first-party items and the marketplace seller's name for third-party items.

**Why is a product missing a price or rating?** Walmart leaves those blank on some tiles (variants priced by option, brand-new listings with no reviews). The field comes back `null` rather than guessed.

***

### Something missing?

If you need an extra field, product-page detail, or another marketplace, open an issue on this Actor and describe it. I read every request and small additions usually ship within days. More e-commerce Actors are on [my profile](https://apify.com/tagadanar).

*Walmart scraper, Walmart product data, Walmart price tracker, Walmart price monitoring, scrape Walmart prices, Walmart API alternative, Walmart search scraper, e-commerce price monitoring, repricing data, product catalog scraper.*

# Actor input Schema

## `search` (type: `array`):

What to scrape. One keyword per entry (e.g. <code>cordless drill</code>, <code>air fryer</code>), or paste a full Walmart search URL to keep its filters and sort. Each entry is scraped independently.

## `maxResults` (type: `integer`):

Total products to return across all searches. Walmart lists about 40 products per page and pages deep for common queries.

## Actor input object example

```json
{
  "search": [
    "cordless drill"
  ],
  "maxResults": 40
}
```

# Actor output Schema

## `products` (type: `string`):

One item per product in the 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 = {
    "search": [
        "cordless drill"
    ],
    "maxResults": 40
};

// Run the Actor and wait for it to finish
const run = await client.actor("tagadanar/walmart-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 = {
    "search": ["cordless drill"],
    "maxResults": 40,
}

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

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

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

```

## CLI example

```bash
echo '{
  "search": [
    "cordless drill"
  ],
  "maxResults": 40
}' |
apify call tagadanar/walmart-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=tagadanar/walmart-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/mvOsTHUaFxgCWxiSF/builds/9ErtJmSr2yv6Claje/openapi.json
