# Walmart Reviews Scraper(Cheap) (`data_api/walmart-reviews-scraper-cheap`) Actor

Walmart Review Scraper that pulls product reviews from walmart.com, so brand teams and researchers can monitor customer sentiment without copying reviews by hand.

- **URL**: https://apify.com/data\_api/walmart-reviews-scraper-cheap.md
- **Developed by:** [Data API](https://apify.com/data_api) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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 Reviews Scraper

![Walmart Reviews Scraper](cover.jpg)

Walmart buries thousands of reviews behind paginated pages and a layout that fights copy-paste. Reading them by hand is a non-starter once you go past one product. Point this scraper at a Walmart product URL or item ID and it walks the review pages for you, pulling each review's text, star rating, reviewer name, verified-buyer flag, and helpful-vote count into one clean row. Scrape a single product or feed it a whole list, then export to JSON, CSV, or Excel.

### What you get

Every review becomes one tidy row with the same shape, so your columns line up whether you load the results into a spreadsheet or a database. Each row carries three groups of data:

- **The review** — `feedbackId`, `feedbackTitle`, `feedbackText`, `starRating`, `authorName`, `helpfulVotes`, `verifiedBuyer`
- **The product** — `itemId`, `itemName`, `itemUrl`, `averageRating`, `reviewsTotal`
- **Run metadata** — `collectedAt`, `errorMessage`

You control the volume with a per-product cap, filter down to a single star band, and sort by newest, most helpful, or rating.

### Quick start

1. Click **Try for free** and open the input form.
2. Paste a Walmart product link or item ID into **Single product link or item ID**, or drop a batch into **Multiple product links or item IDs**.
3. Optionally pick a **Star-rating filter**, a **Review order**, and a **Reviews per product cap**.
4. Press **Start**, then export the results as JSON, CSV, Excel, or XML once the run finishes.

![How it works](how-it-works.jpg)

### Use cases

- **Product research** — read what buyers actually say before adding an item to your catalog
- **Brand monitoring** — track the rating and complaint trends on your own listings over time
- **Competitor analysis** — pull rival products' reviews to spot recurring praise and pain points
- **Sentiment and NLP projects** — feed clean review text into your own classifier or summarizer
- **Quality control** — surface the 1- and 2-star reviews fast to flag defects and shipping issues
- **Market trends** — compare average ratings and review volume across a category

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `itemUrl` | string | One of `itemUrl` or `itemUrls` | A single Walmart product URL or numeric item ID. Example: `https://www.walmart.com/ip/.../331530972`. |
| `itemUrls` | array of strings | One of `itemUrl` or `itemUrls` | A batch of Walmart product URLs or item IDs, one per line. Can be combined with `itemUrl`. |
| `ratingFilter` | string | No | Limit to one star band or keep every rating. One of `all`, `5`, `4`, `3`, `2`, `1`. Default `all`. |
| `sortOrder` | string | No | Order reviews come back in: `relevancy`, `submission_desc`, `submission_asc`, `helpfulness`, `rating_desc`, `rating_asc`. Default `relevancy`. |
| `reviewsLimit` | integer | No | Cap on reviews gathered per product. Default `50`. |
| `timeoutSeconds` | integer | No | Seconds to wait per request before timing out. Default `45`. |

#### Example input

```json
{
    "itemUrls": [
        "https://www.walmart.com/ip/Keurig-K-Mini-Single-Serve-Coffee-Maker/331530972",
        "https://www.walmart.com/ip/onn-50-Class-4K-UHD-Roku-Smart-TV/580942227",
        "331530972"
    ],
    "ratingFilter": "all",
    "sortOrder": "relevancy",
    "reviewsLimit": 50,
    "timeoutSeconds": 45
}
````

### Output

Each review produces one row, and every field is always present — anything Walmart doesn't expose comes back as `null` so your dataset stays rectangular.

#### Example output

```json
{
    "feedbackId": "187234509",
    "feedbackTitle": "Perfect for a small kitchen",
    "feedbackText": "Brews a single cup fast and takes up almost no counter space. The water tank is a little small but that's the trade-off for the size.",
    "starRating": 5,
    "authorName": "CoffeeLover22",
    "helpfulVotes": 14,
    "verifiedBuyer": true,
    "itemId": "331530972",
    "itemName": "Keurig K-Mini Single Serve Coffee Maker",
    "itemUrl": "https://www.walmart.com/reviews/product/331530972",
    "averageRating": 4.6,
    "reviewsTotal": 2841,
    "collectedAt": "2026-06-30T12:00:00.000000+00:00",
    "errorMessage": null
}
```

#### Output fields

| Field | Type | Description |
|-------|------|-------------|
| `feedbackId` | string | Unique identifier Walmart assigns to the review |
| `feedbackTitle` | string | Short headline the shopper gave their review |
| `feedbackText` | string | Full written text of the review |
| `starRating` | number | Score the reviewer gave, 1 through 5 |
| `authorName` | string | Public nickname or display name of the reviewer |
| `helpfulVotes` | integer | How many shoppers flagged the review as useful |
| `verifiedBuyer` | boolean | True when Walmart marks the reviewer as a confirmed purchaser |
| `itemId` | string | Numeric Walmart item ID of the product |
| `itemName` | string | Title of the product under review |
| `itemUrl` | string | Link to the Walmart review page for the product |
| `averageRating` | number | Mean star score across all reviews for the product |
| `reviewsTotal` | integer | Total review count for the product |
| `collectedAt` | string | ISO 8601 timestamp of when the row was captured |
| `errorMessage` | string | Why a record failed; `null` on success |

### Tips for best results

- **Start with one product.** Run a single URL first to confirm the output fits your pipeline before queuing a long list.
- **Use the star filter to cut noise.** Set `ratingFilter` to `1` or `2` when you only want the complaints, or `5` when you only want the praise.
- **Sort to match the job.** `helpfulness` surfaces the reviews other shoppers trust; `submission_desc` keeps you on the latest feedback.
- **Keep `reviewsLimit` modest while testing.** A cap of 20–50 confirms the shape quickly, then raise it once you're happy.
- **Raise `timeoutSeconds` on slow runs.** If you see timeout errors, push it toward 60–90 seconds.
- **A blank review list usually means the product has no reviews** for that filter, not an error. Switch `ratingFilter` to `all` to confirm.

### How can I use Walmart reviews data?

**How can I use the Walmart Reviews Scraper to track my product's reputation?**
Paste your product's URL, set `sortOrder` to `submission_desc` so the newest reviews land first, and run it on a schedule. Each row gives you the star rating, review text, and verified-buyer flag, so you can watch your average rating move and catch new complaints as they show up.

**How can I collect Walmart customer reviews for sentiment analysis?**
Feed a list of product URLs into `itemUrls` and raise `reviewsLimit` to gather a deep sample. The `feedbackText` and `starRating` fields drop straight into an NLP pipeline, so you can train a classifier, summarize themes, or score sentiment without any manual copying.

**How can I compare competitor products on Walmart by their reviews?**
Add several competing item URLs to `itemUrls` in one run. Every row tags the `itemName` and `itemId`, so you can group the results by product and line up average ratings, review volume, and common gripes side by side.

**How do I export Walmart review data to CSV or Excel?**
Run the scraper, then use Apify's export options to download the dataset as CSV, Excel, JSON, or XML. Because each review is one flat row with consistent fields, it opens cleanly in any spreadsheet or BI tool for filtering and charts.

### Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

### Support

Questions, feature requests, or a field you'd like added? Reach out at <data.apify@proton.me> and we'll get back to you.

# Actor input Schema

## `itemUrl` (type: `string`):

One Walmart product page URL or its numeric item ID. Best when you only need reviews for a single product. Scraping several at once? Use the list field below instead.

## `itemUrls` (type: `array`):

A batch of Walmart product URLs or numeric item IDs, one per line. Reach for this when you want reviews from a handful of products in a single run. You can pair it with the single-product field above.

## `ratingFilter` (type: `string`):

Narrow the pull to a single star band, or leave it on every rating to grab them all. Handy when you only care about the 1-star complaints or the 5-star raves.

## `sortOrder` (type: `string`):

Choose the order Walmart serves the reviews back in.

## `reviewsLimit` (type: `integer`):

Upper bound on how many reviews to gather for each product in a run.

## `timeoutSeconds` (type: `integer`):

How long to wait on each request before giving up. Bump it up if slow connections trigger timeout errors.

## Actor input object example

```json
{
  "itemUrl": "https://www.walmart.com/ip/Keurig-K-Mini-Single-Serve-Coffee-Maker/331530972",
  "itemUrls": [
    "https://www.walmart.com/ip/Keurig-K-Mini-Single-Serve-Coffee-Maker/331530972",
    "https://www.walmart.com/ip/onn-50-Class-4K-UHD-Roku-Smart-TV/580942227",
    "331530972"
  ],
  "ratingFilter": "all",
  "sortOrder": "relevancy",
  "reviewsLimit": 50,
  "timeoutSeconds": 45
}
```

# 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 = {
    "itemUrl": "https://www.walmart.com/ip/Keurig-K-Mini-Single-Serve-Coffee-Maker/331530972"
};

// Run the Actor and wait for it to finish
const run = await client.actor("data_api/walmart-reviews-scraper-cheap").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 = { "itemUrl": "https://www.walmart.com/ip/Keurig-K-Mini-Single-Serve-Coffee-Maker/331530972" }

# Run the Actor and wait for it to finish
run = client.actor("data_api/walmart-reviews-scraper-cheap").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 '{
  "itemUrl": "https://www.walmart.com/ip/Keurig-K-Mini-Single-Serve-Coffee-Maker/331530972"
}' |
apify call data_api/walmart-reviews-scraper-cheap --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Walmart Reviews Scraper(Cheap)",
        "description": "Walmart Review Scraper that pulls product reviews from walmart.com, so brand teams and researchers can monitor customer sentiment without copying reviews by hand.",
        "version": "0.0",
        "x-build-id": "EecGa3Ww8SewEXLC7"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/data_api~walmart-reviews-scraper-cheap/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-data_api-walmart-reviews-scraper-cheap",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/data_api~walmart-reviews-scraper-cheap/runs": {
            "post": {
                "operationId": "runs-sync-data_api-walmart-reviews-scraper-cheap",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/data_api~walmart-reviews-scraper-cheap/run-sync": {
            "post": {
                "operationId": "run-sync-data_api-walmart-reviews-scraper-cheap",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "itemUrl": {
                        "title": "Single product link or item ID",
                        "type": "string",
                        "description": "One Walmart product page URL or its numeric item ID. Best when you only need reviews for a single product. Scraping several at once? Use the list field below instead."
                    },
                    "itemUrls": {
                        "title": "Multiple product links or item IDs",
                        "type": "array",
                        "description": "A batch of Walmart product URLs or numeric item IDs, one per line. Reach for this when you want reviews from a handful of products in a single run. You can pair it with the single-product field above.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ratingFilter": {
                        "title": "Star-rating filter",
                        "enum": [
                            "all",
                            "5",
                            "4",
                            "3",
                            "2",
                            "1"
                        ],
                        "type": "string",
                        "description": "Narrow the pull to a single star band, or leave it on every rating to grab them all. Handy when you only care about the 1-star complaints or the 5-star raves.",
                        "default": "all"
                    },
                    "sortOrder": {
                        "title": "Review order",
                        "enum": [
                            "relevancy",
                            "submission_desc",
                            "submission_asc",
                            "helpfulness",
                            "rating_desc",
                            "rating_asc"
                        ],
                        "type": "string",
                        "description": "Choose the order Walmart serves the reviews back in.",
                        "default": "relevancy"
                    },
                    "reviewsLimit": {
                        "title": "Reviews per product cap",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Upper bound on how many reviews to gather for each product in a run.",
                        "default": 50
                    },
                    "timeoutSeconds": {
                        "title": "Request timeout (seconds)",
                        "minimum": 5,
                        "maximum": 120,
                        "type": "integer",
                        "description": "How long to wait on each request before giving up. Bump it up if slow connections trigger timeout errors.",
                        "default": 45
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
