# Walmart Scraper: Products, Prices & Price Tracker (`best_apis/walmart-product-price-scraper`) Actor

Fast Walmart scraper: search results with rank, product details, prices, was prices, stock, ratings, seller, UPC and specs. Keyword, product and category URLs, plus a Walmart price tracker mode.

- **URL**: https://apify.com/best_apis/walmart-product-price-scraper.md
- **Developed by:** [A Q](https://apify.com/best_apis) (community)
- **Categories:** E-commerce, Marketing, Automation
- **Stats:** 2 total users, 1 monthly users, 75.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.50 / 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.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Walmart Scraper: Products, Prices & Price Tracker API

**Walmart Scraper** extracts **Walmart product data and prices** at scale: search results, product details, current price, was price, stock status, star rating, review count, seller, UPC, model, category, images and specifications. Search by keyword or paste product (`/ip/...`), search or category URLs. Built-in **Walmart price tracker** mode flags price drops and stock changes between runs.

### What can this Walmart scraper do?

- 🔎 **Search results with rank**: `position` and `sponsored` for every keyword, for share-of-shelf and Walmart SEO.
- 📦 **Product details**: price, was price, stock, rating, reviews, seller, UPC (`gtin`), model, specs and images.
- 📉 **Walmart price tracker**: schedule it and get `previousPrice`, `priceChange`, `stockChanged` and `isNew`. Optionally output only changed products.
- 🔁 **Reliable**: automatic retries with fresh sessions and IPs, block detection and fallbacks, so runs don't silently return nothing.
- 💵 **Pay per product**, nothing for failed requests. Public data only, no login.

### Why scrape Walmart?

- **Competitor price monitoring** and repricing
- **Retail arbitrage and Amazon FBA sourcing** with UPCs for matching
- **MAP compliance** for brands selling on Walmart.com
- **Walmart Marketplace research**: sellers, ratings and categories

### How to scrape Walmart product data

1. Add **Search keywords** and/or **Walmart URLs**.
2. Set **Max products per keyword / URL**.
3. Optional: enable **Price monitoring mode** and add a daily schedule.
4. Click **Start** and export to JSON, CSV or Excel, or use the API.

### Input

| Field | What it does |
|---|---|
| `searchQueries` | Keywords to search on Walmart.com |
| `startUrls` | Walmart product, search or category URLs |
| `maxResultsPerQuery` | Products per keyword or URL |
| `monitorMode`, `onlyChanged`, `stateKey` | Price tracking options |
| `proxyConfiguration` | Default Apify Proxy, or RESIDENTIAL US for large runs |

```json
{ "searchQueries": ["air fryer"], "startUrls": [{ "url": "https://www.walmart.com/ip/18007301269" }], "maxResultsPerQuery": 100, "monitorMode": true }
```

### Output example

Real results from an "air fryer" search:

```json
[
  {
    "retailer": "walmart",
    "productId": "18007301269",
    "url": "https://www.walmart.com/ip/Ninja-Foodi-Air-Fry-Flip-Oven-SP140/18007301269",
    "title": "Ninja Flip Toaster Oven & Air Fryer, 8-in-1, Flip Up & Away for Storage, Roast, Toast, Bake & More, SP140",
    "brand": null,
    "price": 139,
    "currency": "USD",
    "wasPrice": 169,
    "inStock": true,
    "availability": "IN_STOCK",
    "rating": 4.5,
    "reviewsCount": 338,
    "image": "https://i5.walmartimages.com/seo/Ninja-Foodi-Air-Fry-Flip-Oven-SP140_571c4f3d-38bc-48e3-96a1-3361655f0e2a.787624497f25cb9566ef634e0aa6701f.jpeg",
    "seller": "Walmart.com",
    "category": "Home Page/Home/Appliances/Kitchen Appliances/Toasters & Ovens/Toaster Ovens/Ninja Toaster Ovens",
    "sponsored": true,
    "searchKeyword": "air fryer",
    "position": 1,
    "scrapedAt": "2026-10-09T22:29:33.903Z"
  },
  {
    "retailer": "walmart",
    "productId": "17990309659",
    "url": "https://www.walmart.com/ip/Ninja-Foodi-Air-Fry-Flip-Oven-Silver-SP050/17990309659",
    "title": "Ninja Flip Toaster Oven & Air Fryer, 6-in-1, Flip Up & Away for Storage, Roast, Toast, Bake & More, SP050 Silver",
    "brand": null,
    "price": 119,
    "currency": "USD",
    "wasPrice": 139,
    "inStock": true,
    "availability": "IN_STOCK",
    "rating": 4.3,
    "reviewsCount": 88,
    "image": "https://i5.walmartimages.com/seo/Ninja-Foodi-Air-Fry-Flip-Oven-Silver-SP050_04c84e4c-f55d-4b1d-8bd5-31eb797360b9.1a62fca96cbabe21754ad663ff142c2a.jpeg",
    "seller": "Walmart.com",
    "category": "Home Page/Home/Appliances/Kitchen Appliances/Toasters & Ovens/Toaster Ovens/Ninja Toaster Ovens",
    "sponsored": true,
    "searchKeyword": "air fryer",
    "position": 2,
    "scrapedAt": "2026-10-09T22:29:33.982Z"
  }
]
```

Other fields when available: `gtin` (UPC), `model`, `images`, `description`, `specifications`, and in monitoring mode `previousPrice`, `priceChange`, `stockChanged`, `isNew`.

### How much does it cost to scrape Walmart?

**$2.50 per 1,000 products**, nothing for failed requests. Each run also has a $0.005 start fee (from October 25, 2026).

| Job | Approximate cost |
|---|---|
| 100 products for one keyword | about $0.25 |
| Daily price tracker for 1,000 products, only changes output (≈10%/day) | about $7.50 per month |
| 10,000 products one-off | about $25 |

Walmart uses bot protection. The default Apify Proxy works for most runs, and for large, frequent runs choose **RESIDENTIAL proxy, country US** (billed by Apify per your plan).

### How to use the API (Python, JavaScript, cURL)

Every run is available through the [Apify API](https://docs.apify.com/api/v2). Get your API token in **Apify Console → Settings → API & Integrations**.

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("best_apis/walmart-product-price-scraper").call(run_input={"searchQueries": ["air fryer"], "maxResultsPerQuery": 20})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### JavaScript / Node.js

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('best_apis/walmart-product-price-scraper').call({"searchQueries": ["air fryer"], "maxResultsPerQuery": 20});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### cURL (run and get products in one request)

```bash
curl -X POST "https://api.apify.com/v2/acts/best_apis~walmart-product-price-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"searchQueries": ["air fryer"], "maxResultsPerQuery": 20}'
```

#### Integrations

Connect results to **Google Sheets, Slack, email, Zapier, Make, n8n, Airbyte, webhooks** or AI agents through the **Apify MCP server**. Use **Schedules** in Apify Console to run it hourly, daily or weekly. Export any dataset as **JSON, CSV, Excel, XML or HTML**.

### FAQ

**Is there a Walmart product API?** Walmart's official APIs are for its sellers and affiliates. This Actor works as a Walmart product and price API for anyone: call it over HTTP and get JSON back.

**Can I track Walmart price drops?** Yes. Enable **Price monitoring mode**, schedule it daily, and filter on `priceChange`.

**Can I get UPCs?** Yes, from product pages (`gtin`) when Walmart shows them.

**Does it scrape Walmart reviews?** Ratings and review counts are included. Review text is on the roadmap.

**Need Target or Best Buy too?** Use our [US Retail Price Scraper](https://apify.com/best_apis/us-retail-price-scraper).

**Is it legal to scrape Walmart?** This Actor only collects publicly available data, does not log in and does not bypass paywalls. Scraping public data is generally legal, but personal data is protected by laws such as GDPR and CCPA, and you are responsible for how you use the results. If unsure, ask a lawyer. Read more in Apify's [guide to the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Related Actors

- [App Store & Google Play Reviews Scraper](https://apify.com/best_apis/app-store-play-reviews): reviews, ratings and app details from both app stores
- [US Retail Price Scraper](https://apify.com/best_apis/us-retail-price-scraper): prices and stock from Walmart, Target, Best Buy, Home Depot and Lowe's
- [Government Tenders Scraper](https://apify.com/best_apis/government-tenders-scraper): UK, EU TED and SAM.gov tenders with daily alerts
- [YouTube Transcript Scraper](https://apify.com/best_apis/youtube-transcript-scraper): bulk YouTube transcripts, subtitles and captions
- [Google Trends API](https://apify.com/best_apis/google-trends-api): interest over time, regions, related queries and Trending Now

Questions, bugs or feature requests? Open an issue on the **Issues** tab. We usually reply within 24 hours.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on Walmart.com (e.g. "air fryer", "65 inch TV").

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

Walmart product (/ip/...), search (/search?q=...) or category (/browse/..., /cp/...) URLs.

## `maxResultsPerQuery` (type: `integer`):

Upper limit of products for each keyword on each retailer (and for each search URL).

## `monitorMode` (type: `boolean`):

Remember prices between runs and add previousPrice, priceChange, stockChanged and isNew to each item. Schedule the Actor to track prices daily.

## `onlyChanged` (type: `boolean`):

With monitoring mode, output (and charge for) only products whose price or stock changed since the last run, plus products not seen before.

## `stateKey` (type: `string`):

Use a different name for each independent watch list.

## `proxyConfiguration` (type: `object`):

Default Apify Proxy works in most runs; switch to RESIDENTIAL (US) if you see many blocks.

## `maxRetries` (type: `integer`):

Retries with a fresh IP/session when a request is blocked or fails.

## Actor input object example

```json
{
  "searchQueries": [
    "air fryer"
  ],
  "maxResultsPerQuery": 50,
  "monitorMode": false,
  "onlyChanged": false,
  "stateKey": "default",
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxRetries": 5
}
```

# Actor output Schema

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

Scraped records 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 = {
    "searchQueries": [
        "air fryer"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("best_apis/walmart-product-price-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 = {
    "searchQueries": ["air fryer"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("best_apis/walmart-product-price-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 '{
  "searchQueries": [
    "air fryer"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call best_apis/walmart-product-price-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,best_apis/walmart-product-price-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/Czq7cfeqBkIgIDNJs/builds/iWyH38ZeGvajS26PA/openapi.json
