# Walmart Scraper (`anyxsolutions/walmart-scraper`) Actor

Scrapes products from Walmart.com search results and product pages: name, brand, price, rating, review count, seller, availability, images, and the full product record, plus customer reviews and rating breakdowns from product pages.

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

## Pricing

from $4.99 / 1,000 results

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/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

![banner](generated)

## Walmart Scraper

**Products from Walmart.com — search results and product pages, with prices, ratings, and reviews, as clean JSON.**

Scrapes products from Walmart.com. Point it at any Walmart search — a keyword, a sort order, with
whatever filters you set on the site — and get every product back with its name, brand, price,
rating, review count, seller, availability, and images. Add product URLs to pull the product
record together with its customer reviews and rating breakdown. Built for price monitoring,
assortment and competitor analysis, review mining, and market research.

### ⚡ Quick start

```json
{
  "startUrls": [
    {
      "url": "https://www.walmart.com/search?q=laptop&sort=best_seller"
    }
  ],
  "maxItems": 5
}
```

### 🧩 Input

| Field                | Type    | Required | Default                                                                                     | Description                                                                                                      |
| -------------------- | ------- | -------- | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `startUrls`          | array   | yes      | —                                                                                           | Walmart URLs to scrape. Search pages (`/search?q=...`, with any filters applied) and product pages (`/ip/<id>`). |
| `maxItems`           | integer | no       | `5`                                                                                         | Maximum number of products to return per start URL.                                                              |
| `proxyConfiguration` | object  | no       | `{ "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "US" }` | Proxy settings. Walmart is protected by PerimeterX, so US residential proxies are used by default.               |

### 📤 Output

Every product is one dataset row. The `itemType` field tells the two shapes apart: `search` for a
product card from a results page and `product` for a product page. A search item is Walmart's own
product record for the card: the fields below plus every other attribute of the card (badges,
fulfillment, variants, sponsorship, ...). A product item carries the product record and its
reviews.

#### Fields

| Field                  | Type   | Description                                                                                                                                                                          |
| ---------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `itemType`             | string | `search` or `product`.                                                                                                                                                               |
| `url`                  | string | Public product URL.                                                                                                                                                                  |
| `usItemId`             | string | Search only. Walmart item ID, the number in the product URL.                                                                                                                         |
| `name`                 | string | Search only. Product name.                                                                                                                                                           |
| `brand`                | string | Search only. Brand, when Walmart lists one on the card.                                                                                                                              |
| `price`                | number | Search only. Current price.                                                                                                                                                          |
| `priceInfo`            | object | Search only. Price display details: was-price, unit price, savings.                                                                                                                  |
| `averageRating`        | number | Search only. Average star rating.                                                                                                                                                    |
| `numberOfReviews`      | number | Search only. Review count.                                                                                                                                                           |
| `sellerName`           | string | Search only. Seller, e.g. `Walmart.com` or a marketplace seller.                                                                                                                     |
| `availabilityStatusV2` | object | Search only. Stock status, e.g. `In stock`.                                                                                                                                          |
| `imageInfo`            | object | Search only. Product images.                                                                                                                                                         |
| `category`             | object | Search only. Category path.                                                                                                                                                          |
| `product`              | object | Product only. `name`, `brand`, `manufacturerName`, `type`, `shortDescription`, `priceInfo`, `averageRating`, `availabilityStatus`, `imageInfo`, `orderLimit`, `orderMinLimit`, `id`. |
| `reviews`              | object | Product only. Rating breakdown (count per star), recommended percentage, top positive and negative reviews, and the first page of customer reviews.                                  |

<details><summary>Example output</summary>

```json
{
  "itemType": "search",
  "url": "https://www.walmart.com/ip/HP-14-N150-4-128-Pink/18611919209?classType=VARIANT&athbdg=L1300",
  "usItemId": "18611919209",
  "name": "HP 14 inch HD Windows Laptop Intel Processor N150 4GB 128GB UFS Tranquil Pink",
  "price": 199,
  "averageRating": 4.1,
  "numberOfReviews": 1332,
  "sellerName": "Walmart.com",
  "availabilityStatusV2": { "display": "In stock", "value": "IN_STOCK" }
}
```

</details>

### 💡 Use cases

- **Price monitoring** — track prices, rollbacks, and stock status for products or whole searches.
- **Competitor analysis** — see which brands and sellers rank for a keyword and at what price.
- **Review mining** — collect ratings, rating breakdowns, and customer reviews for products you care about.
- **Market research** — size a category by product count, price range, and review volume.

### ❓ FAQ

- **Do I need a proxy?** Yes. Walmart is protected by PerimeterX, so the Actor runs a real browser on Apify US residential proxies by default; other settings are likely to be blocked.
- **Can I use my own search filters?** Yes — set them on walmart.com and paste the resulting URL as a start URL.
- **How many results can I get?** `maxItems` caps results per start URL, and the Actor pages through the search automatically. Add more start URLs to widen coverage.
- **Why are some fields empty?** Some card fields depend on the shopper's store and session, such as aisle location and delivery badges, and are empty for an anonymous visitor.
- **Why did a run return fewer items than expected?** The site may have changed its layout or tightened its protection, or a product may be unavailable. Open an issue and we will update the Actor.

### 🔗 More scrapers by Anyx

- [Target Scraper](https://apify.com/anyxsolutions/target-scraper)
- [Fashionphile Scraper](https://apify.com/anyxsolutions/fashionphile-scraper)
- [Google Search Scraper](https://apify.com/anyxsolutions/google-search-scraper)
- [Domain Scraper](https://apify.com/anyxsolutions/domaincom-scraper)

### 🤝 Anyx Solutions

We build custom scrapers and data-extraction pipelines.

- Email: tantosthor@gmail.com

### 🖼 Image credit

Image credit: [walmart.com](https://www.walmart.com/)

# Actor input Schema

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

Walmart URLs to scrape. Search pages (for example https://www.walmart.com/search?q=laptop\&sort=best_seller, with any filters applied) and product pages (https://www.walmart.com/ip/1736740710) are both supported.

## `maxItems` (type: `integer`):

Maximum number of products to return per start URL. A search page carries about 40 products, so the default finishes in a single request.

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

Apify proxy settings. Walmart is protected by PerimeterX, so US residential proxies are used by default.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.walmart.com/search?q=laptop&sort=best_seller"
    }
  ],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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://www.walmart.com/search?q=laptop&sort=best_seller"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("anyxsolutions/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 = { "startUrls": [{ "url": "https://www.walmart.com/search?q=laptop&sort=best_seller" }] }

# Run the Actor and wait for it to finish
run = client.actor("anyxsolutions/walmart-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://www.walmart.com/search?q=laptop&sort=best_seller"
    }
  ]
}' |
apify call anyxsolutions/walmart-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,anyxsolutions/walmart-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/NCIQGfudtfJ6YxGMi/builds/6kSXLDrAazicRvuyJ/openapi.json
