# Walmart Grocery Prices Scraper (`parseforge/walmart-grocery-prices-scraper`) Actor

Scrape Walmart grocery prices by department: shelf price, was price, savings and the unit price per ounce, plus rating, availability, in-store aisle and pickup or delivery windows. Filter by brand, special diet, SNAP EBT, rollback and star rating. No proxy needed.

- **URL**: https://apify.com/parseforge/walmart-grocery-prices-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (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.67 / 1,000 grocery products

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?

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

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🥑 Walmart Grocery Prices Scraper

> 🚀 **Export a whole Walmart grocery aisle in seconds.** Pick a department, get every product back as one flat row: shelf price, the struck-through was price, the savings, and the **unit price per ounce or pound** that makes different pack sizes comparable.

Walmart publishes the richest grocery price data in US retail and lets you export none of it. This Actor reads the same category data Walmart's own front end renders and returns each product as a row: current price, was price and savings, unit price split into a number and its unit, availability, rating and review count, the category breadcrumb, and, optionally, the in-store aisle, the pickup and delivery windows, the seller, and Walmart's own tile badges. No login, no API key, no cookie to paste, and **no proxy needed by default**.

Every run returns **32 fields per product**, up to **50** with all three optional column blocks on. The **22 grocery departments** cover Walmart's whole food index of **1,130,838 products**, from 871 in Fresh Produce to 207,433 in Pantry. In verification, **238 products landed in 30 seconds** over 8 category pages, direct, with no proxy.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Grocery pricing analysts | Track shelf price, rollback depth and unit price across a department, week over week. |
| CPG brands | Watch your SKUs and your competitors' on the same shelf, with the unit price that buyers actually compare. |
| Food retail researchers | Measure assortment, price ladders and promotion density across 22 departments. |
| Inflation and cost-of-living research | Build a repeatable basket with `unitPriceValue` and `unitPriceUnit` normalised per ounce or pound. |
| SNAP and food-access researchers | Pull the SNAP-EBT-eligible assortment of a department using Walmart's own benefit-program filter. |

### 📋 What the Walmart Grocery Prices Scraper does

It turns any Walmart grocery department or category URL into a clean table. Tick the departments you want, or paste category URLs copied from your browser, add the filters you need, and it returns every product with its price data, its availability data and its shelf data in a single row.

> 💡 **Why unit price matters here.** A grocery price is meaningless without the size. `unitPrice` comes straight from Walmart (`62.0 ¢/oz`) and is also split into `unitPriceValue` and `unitPriceUnit`, so you can sort, average and compare across pack sizes without parsing strings. It is present on 91% of tiles.

> 🔍 **Filters run on Walmart's side, not ours.** Every filter in the input is one of Walmart's own facets, and each was measured against the live site. Dairy & Eggs goes from **5,264** products to **204** with Organic, **732** with Gluten-Free, **2,084** with SNAP EBT, **97** with Rollback and **1,029** with a 4-5 star rating. You pay for the rows you asked for, not for a client-side filter over a full download.

### 🎬 Full Demo (🚧 Coming soon)

### 📊 Output

One row per product. The optional blocks add columns to the same row, so runs join cleanly whether or not they were enabled.

#### Base row, always returned (32 fields)

| Field | What it holds |
|---|---|
| 🖼 `imageUrl` | Main product image |
| 🏷 `name` | Product title |
| 🔗 `url` | Canonical product page URL |
| 🆔 `itemId` | Walmart item ID, the number in the product URL |
| 🧬 `productId` | Walmart's internal product ID |
| 💲 `price` | Current shelf price |
| 🏷 `wasPrice` | Struck-through price, when the item is discounted |
| 📉 `savings` | `wasPrice` minus `price` |
| 🔻 `onSale` | Whether a was price is present and higher |
| ⚖️ `unitPrice` | Walmart's own unit price string, e.g. `62.0 ¢/oz` |
| 🔢 `unitPriceValue` | The number from that string |
| 📏 `unitPriceUnit` | The unit from that string, e.g. `¢/oz`, `¢/lb` |
| 📊 `priceRange` | Low - high price when the item has several sizes |
| 🥩 `soldByWeight` | Whether Walmart prices this item by weight |
| ℹ️ `priceCondition` | Walmart's price caveat, e.g. `each (est.)` |
| 💱 `currency` | Always `USD` |
| 📦 `salesUnit` | `EACH`, `LB` and so on |
| ➕ `weightIncrement` | Increment Walmart sells the item in |
| 📍 `availability` | `In stock`, `Out of stock` |
| ✅ `inStock` | Boolean form of the above |
| ⭐ `rating` | Average customer rating |
| 💬 `reviewCount` | Number of reviews |
| 📣 `sponsored` | `Yes` on paid tiles, `No` otherwise |
| 🏬 `department` | The department or URL the row came from |
| 🧭 `categoryPath` | Full Walmart breadcrumb |
| 🆔 `categoryId` | Walmart's category path id |
| 🗂 `shelf` | Walmart's own shelf name for the item |
| 🔗 `categoryUrl` | The exact filtered listing URL the row came from |
| 🎨 `variantCount` | Number of listed size or flavour variants |
| 🎨 `variants` | Those variant names |
| 🧾 `rowType` | `product`, `category`, `priceSummary` or `error` |
| 🕒 `scrapedAt` | ISO timestamp of the row |

#### 🚚 Fulfillment & Aisle block, opt-in (10 fields)

`storeId`, `pickupAvailable`, `pickupEta`, `deliveryAvailable`, `deliveryEta`, `fulfillmentMethods`, `fulfillmentType`, `aisle`, `aisleZone`. The in-store **aisle** (`A28`) is present on 17% of tiles. It is the one field here that Walmart does not publish anywhere else.

#### 🏷 Badges & Promos block, opt-in (5 fields)

`badges` (the tile's badge text, joined), `rollback`, `clearance`, `snapEbtBadge`, `subscriptionEligible`.

#### 🏪 Seller block, opt-in (3 fields)

`seller`, `sellerId`, `offerId`.

#### 🗂 Category tree rows, opt-in

One `rowType: "category"` row per subcategory Walmart lists under each department, with `name`, `categoryId`, `parentCategoryId` and `categoryUrl`. Use it to find the exact aisle to run next.

#### 📈 Price summary rows, opt-in

One `rowType: "priceSummary"` row per category: `productsCollected`, `totalInCategory`, `minPrice`, `maxPrice`, `avgPrice`, `medianPrice`, `onSalePct`, `outOfStockPct`, `sponsoredPct`.

#### Sample row

```json
{
  "rowType": "product",
  "name": "Kerrygold Irish Grass-Fed Irish Salted Butter Sticks, 8 oz, 2 Sticks",
  "itemId": "193243827",
  "url": "https://www.walmart.com/ip/Kerrygold-Grass-Fed-Pure-Irish-Salted-Butter-Sticks-8-oz-2-Sticks/193243827",
  "price": 4.96,
  "wasPrice": "Not Disclosed",
  "savings": "Not Disclosed",
  "onSale": false,
  "unitPrice": "62.0 ¢/oz",
  "unitPriceValue": 62,
  "unitPriceUnit": "¢/oz",
  "soldByWeight": false,
  "currency": "USD",
  "salesUnit": "EACH",
  "availability": "In stock",
  "inStock": true,
  "rating": 4.8,
  "reviewCount": 11558,
  "sponsored": "No",
  "department": "Dairy & Eggs",
  "categoryPath": "Home Page/Food/Dairy & Eggs/Butter & Margarine/Butter Sticks",
  "shelf": "Butter & Margarine",
  "aisle": "A28",
  "pickupEta": "2026-09-08T21:00:00.000Z",
  "badges": "SNAP EBT eligible | Save with Walmart plus | Rollback",
  "seller": "Walmart.com",
  "scrapedAt": "2026-09-08T17:14:44.166Z"
}
```

### ✨ Why choose this Actor

- ⚖️ **Unit price, parsed.** Not just Walmart's `62.0 ¢/oz` string but the number and the unit as separate columns, so a basket of different pack sizes is comparable without post-processing. Present on 91% of tiles.
- 🥗 **Grocery filters, not generic ones.** Special diet needs, SNAP EBT eligibility, rollback and clearance, star band, Walmart versus marketplace, every one of them Walmart's own facet, every one measured against the live index before it shipped.
- 📍 **The in-store aisle.** `A28`, with its zone, on the tiles that carry it. No other Walmart Actor returns it.
- 🚚 **Pickup and delivery windows on the row.** The actual ISO timestamps Walmart quotes for the serving store, not a badge string.
- 🏬 **22 departments, one click each.** Every category id verified live, from Fresh Produce to Alcohol, plus an All Food option over the whole 1.1M-product index.
- 🪜 **A way past Walmart's 24-page wall.** Any Walmart category stops at ~1,150 products. Expand Into Subcategories walks the department's own child categories to go deeper, and it only runs when the parent actually hit the wall, so you are never charged for pages of duplicates.
- 📉 **Discount prices read correctly.** On a rollback tile Walmart drops `CURRENT_PRICE` entirely and moves the number to `DISCOUNTED_PRICE`, with the old one under `COMPARISON`. Read naively, 47 of 49 rollback rows come back with no price. This Actor reads all of them.
- 🧾 **No always-empty columns.** Nine fields that Walmart's listing tiles never populate were measured across 246 live tiles and dropped rather than shipped as permanently blank headers. Where a value can genuinely be withheld you get a labelled sentinel, never a silent `null`.
- ⚡ **Direct by default, no proxy cost.** Walmart's category pages answer direct requests from Apify, so runs go proxy-free unless you switch one on.
- 🧯 **Honest failure.** A page Walmart refuses produces an error row saying so, rather than a silently short dataset.

### 📈 How it compares to alternatives

| | This Actor | Typical Walmart actors |
|---|---|---|
| Unit price split into value and unit | ✅ Yes | ❌ Rarely, string at best |
| Grocery department picker | ✅ 22, verified | ❌ Keyword search only |
| Special diet / SNAP EBT filters | ✅ Walmart's own facets | ❌ No |
| Rollback and clearance filter | ✅ Yes | ⚠️ Sometimes |
| In-store aisle | ✅ Yes | ❌ No |
| Pickup and delivery windows | ✅ ISO timestamps | ⚠️ Badge text at best |
| Rollback prices read correctly | ✅ Yes | ⚠️ Often blank on discounted rows |
| Past the 24-page category wall | ✅ Subcategory walk | ❌ No |
| Category tree and price summary output | ✅ Opt-in | ❌ No |
| Proxy required | ✅ No by default | ⚠️ Often yes |

**What this Actor does not do, stated plainly.**

- **Keyword search and product detail pages are not available.** Walmart shields `/search` and `/ip/` behind PerimeterX and returns a challenge to every request, from residential and datacenter exits alike. Category browse is open, and that is the whole surface this Actor uses. If you need keyword search or per-product detail, that is [Walmart Scraper](https://apify.com/parseforge/walmart-scraper)'s job, not this one's.
- **One store, and you do not choose it.** Prices, aisle and pickup windows are for the store Walmart's edge assigns to the request. `?stores=`, `?storeId=`, and store cookies were all tested and all ignored. Numbers are comparable across a run and across runs, but they are not "my local store".
- **~1,150 products per category** is Walmart's ceiling, not ours. Turn on Expand Into Subcategories to go deeper.
- **Brand does not come back as a column.** Walmart's listing tiles leave it empty on 246 of 246 tiles measured, so it is not shipped. The brand *filter* works fine, because it runs on Walmart's side.
- **The per-tile SNAP flag is not trustworthy, so it is not a column.** With Walmart's own SNAP filter on, only the sponsored tiles carry `snapEligible: true`; Great Value milk comes back `false`. Use the SNAP EBT Eligible Only input, which filters server-side. The badge text is surfaced as `snapEbtBadge` in the badge block, labelled as a badge.
- **Sponsored products are kept, not removed**, and flagged with `sponsored: Yes`.

### 🚀 How to use

1. **Create a free Apify account.** [Sign up here](https://console.apify.com/sign-up?fpr=vmoqkp) and you start with $5 of free credit, no card required.
2. **Open the Actor** and go to the Input tab.
3. **Pick your departments**, or paste Walmart category URLs into Walmart Category URLs. You can do both in one run.
4. **Add filters** if you want them: diet, SNAP EBT, rollback, brand, price band, star band, seller.
5. **Set Max Items.** The budget is split evenly across the departments and URLs you selected. Start small while you check the shape of the data.
6. **Tick the optional blocks** you need, fulfillment and aisle, badges, seller, and the optional category tree and price summary rows.
7. **Click Start** and watch the log.
8. **Download the results** as CSV, Excel, JSON or XML from the Dataset tab, or pull them from the API.

A minimal input looks like this:

```json
{
  "departments": ["dairy-eggs"],
  "maxItems": 100
}
```

A weekly organic price index across three departments:

```json
{
  "departments": ["dairy-eggs", "fresh-produce", "meat-seafood"],
  "dietaryNeeds": ["Organic"],
  "sortBy": "price_low",
  "maxItems": 600,
  "includePriceSummary": true
}
```

### 💼 Business use cases

#### 🏷 Shelf price and rollback tracking

Run a department daily and keep the history. `price`, `wasPrice` and `savings` show how deep the cuts go, `onSale` and the badge block separate rollback from clearance, and `unitPrice` normalises pack sizes so a 2-for-1 does not look like a price cut.

#### ⚖️ Basket and inflation indexes

`unitPriceValue` and `unitPriceUnit` give a comparable per-ounce number across brands and sizes. Add the price summary rows and each run also writes the min, median, average and max of every category it touched.

#### 🥗 Diet and assortment research

Walmart's own dietary facets slice a department to Organic, Gluten-Free, Non-GMO, High Protein, Dairy-Free and more, server-side. Compare the size, price ladder and promotion density of the organic shelf against the whole shelf.

#### 🍽 SNAP and food-access work

The SNAP EBT Eligible Only filter returns the assortment Walmart itself marks as benefit-eligible (2,084 of 5,264 dairy items at the time of research) with prices and unit prices attached.

#### 🏪 Store-operations and planogram context

The fulfillment block adds the in-store aisle and zone, the serving store id, and the pickup and delivery windows Walmart quotes, on the same row as the price.

### 🔌 Automating Walmart Grocery Prices Scraper

Schedule a run and let the output flow where you work. Make and Zapier can move new rows into a spreadsheet, a database or a Slack channel the moment a run finishes. Airbyte can load the dataset into a warehouse for price history. A webhook can push results into GitHub or your own service, and Google Drive keeps a dated CSV of every run for auditing.

### 🌟 Beyond business use cases

- 🎓 **Research.** Study grocery price dispersion, promotion density and assortment across departments with clean, repeatable data.
- 📰 **Journalism.** Back a cost-of-living story with a per-ounce basket rebuilt on the same day every week.
- 🏠 **Personal.** Find the cheapest unit price in a category before you shop.

### 🤖 Ask an AI assistant about this scraper

Paste this README into ChatGPT, Claude or Gemini and ask it how to shape the input for your question. The field list and the filter vocabulary above are all it needs.

### ❓ Frequently Asked Questions

#### 🔑 Do I need a Walmart account or an API key?

No. Everything comes from public category pages.

#### 🔗 Which URLs can I paste?

Any Walmart grocery category URL: `https://www.walmart.com/browse/food/dairy-eggs/976759_9176907` or `https://www.walmart.com/cp/dairy-eggs/9176907`. Product (`/ip/`) and search (`/search`) URLs are rejected with a warning, Walmart shields those two paths.

#### 📦 How many products can I get from one department?

About 1,150, which is Walmart's own 24-page ceiling. Turn on Expand Into Subcategories to walk the department's child categories and go past it.

#### ⚡ How fast is it?

238 products over 8 category pages completed in 30 seconds in verification, direct, with no proxy.

#### 🏬 Why is there no brand column?

Walmart's listing tiles leave brand empty, 246 of 246 tiles measured. Shipping it would be a permanently blank header. The brand *filter* works, because Walmart applies it server-side.

#### 🍽 How does the SNAP EBT filter work?

It is Walmart's own Benefit Programs facet, applied server-side. The per-tile SNAP flag Walmart puts in the page data is unreliable: with the filter on, only the sponsored tiles carry it. Eligibility is expressed as a filter, not as a column you should trust.

#### 🏪 Which store do the prices come from?

The store Walmart's edge assigns to the request. It cannot be chosen: URL parameters and store cookies were tested and ignored. Prices are consistent within and across runs, but they are not necessarily your local store's.

#### 📉 Does it capture rollback prices?

Yes, and this is where most scrapers break. On a discounted tile Walmart removes `CURRENT_PRICE` and moves the number to `DISCOUNTED_PRICE`, with the old price under `COMPARISON`. This Actor reads all three, so `price`, `wasPrice` and `savings` are all filled on rollback rows.

#### 📍 Why is the aisle empty on some rows?

Walmart only publishes it for part of the assortment: 17% of the tiles measured. Where it is absent you get `Not Disclosed`, never a guess.

#### 🛡 Do I need a proxy?

No. Walmart's category pages answer direct requests from Apify. Switch on Apify residential proxies from the input if your runs ever start seeing the "Robot or human?" challenge.

#### 🚫 A row has an error. What happened?

A page Walmart refused, or one that came back without its data blob after three attempts. The row carries `rowType: "error"`, the URL and the reason. Error rows are never charged.

#### 💾 What export formats are available?

CSV, Excel, JSON, XML, JSONL and RSS, from the Dataset tab or the API.

### 🔌 Integrate with any app

Use the Apify API, the JavaScript and Python clients, webhooks, or the Make and Zapier integrations to pull runs into your own stack.

### 🔗 Recommended Actors

- [Walmart Scraper](https://apify.com/parseforge/walmart-scraper): the general Walmart catalogue, including product detail pages.
- [Google Shopping Prices Scraper](https://apify.com/parseforge/google-shopping-prices-scraper): the same product across many merchants.
- [Home Depot Products Scraper](https://apify.com/parseforge/home-depot-products-scraper): the same job for home improvement.

# Actor input Schema

## `departments` (type: `array`):

Walmart grocery departments to collect. Every department is paged until Max Items is reached. Leave empty and use Walmart URLs instead if you want a specific aisle.

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

Any Walmart.com grocery category URL copied from your browser, for example https://www.walmart.com/browse/food/dairy-eggs/976759\_9176907 or https://www.walmart.com/cp/dairy-eggs/9176907. Each URL is paged like a department. Product (/ip/) and search (/search) URLs are not supported: Walmart shields those two paths.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000. The budget is split evenly across the departments and URLs you selected.

## `includeSubcategories` (type: `boolean`):

Walmart caps any one category at 24 pages (about 1,150 products). Turn this on to walk the department's own subcategory list and page each aisle separately, which is the only way to get past that ceiling.

## `sortBy` (type: `string`):

Result order, exactly as Walmart's own sort menu.

## `minPrice` (type: `integer`):

Only return products priced at or above this amount.

## `maxPrice` (type: `integer`):

Only return products priced at or below this amount.

## `brands` (type: `array`):

Brand names exactly as Walmart spells them on the filter panel, for example Great Value or Kerrygold. Several brands are combined with OR.

## `dietaryNeeds` (type: `array`):

Walmart's own dietary filter. Which values a department offers varies, so a value that department does not carry returns nothing rather than everything.

## `snapEbtOnly` (type: `boolean`):

Only return products Walmart flags as payable with SNAP EBT. Applied server-side by Walmart's own Benefit Programs filter; the listing tiles themselves do not carry a trustworthy per-item SNAP flag, so this filter is the reliable way to get that set.

## `dealsOnly` (type: `string`):

Restrict to products Walmart currently marks as a Rollback or as Clearance.

## `minCustomerRating` (type: `string`):

Walmart's star-band filter.

## `retailerType` (type: `string`):

Restrict to items sold by Walmart itself, or to marketplace sellers.

## `inStockOnly` (type: `boolean`):

Hide items Walmart reports as unavailable at the serving store.

## `facet` (type: `string`):

Walmart's raw facet string, appended to whatever the boxes above produce. Same value the site puts in the URL when you tick a filter, for example food\_form:Sticks or container\_type:Bag||flavor:Original.

## `includeFulfillment` (type: `boolean`):

Adds the pickup and delivery windows, fulfillment methods, the serving store id and the in-store aisle location (for example A28).

## `includeBadges` (type: `boolean`):

Adds Walmart's tile badges as text: Rollback, Clearance, best seller, SNAP EBT eligible, Walmart+ and any promo line.

## `includeSeller` (type: `boolean`):

Adds seller name, seller id, seller type and the offer id.

## `includeCategoryTree` (type: `boolean`):

Adds one row per subcategory Walmart lists under each department, with its category id and URL. Useful to pick the exact aisle for a later run.

## `includePriceSummary` (type: `boolean`):

Adds one summary row per category with the min, max, average and median price of the products collected from it, plus the share on rollback and out of stock.

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

Walmart's category pages answer direct requests, so the proxy is off by default. Switch to Apify residential proxies if your runs start seeing the 'Robot or human?' challenge.

## Actor input object example

```json
{
  "departments": [
    "dairy-eggs"
  ],
  "startUrls": [],
  "maxItems": 10,
  "includeSubcategories": false,
  "sortBy": "best_match",
  "brands": [],
  "snapEbtOnly": false,
  "dealsOnly": "",
  "minCustomerRating": "",
  "retailerType": "",
  "inStockOnly": false,
  "includeFulfillment": false,
  "includeBadges": false,
  "includeSeller": false,
  "includeCategoryTree": false,
  "includePriceSummary": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

Key fields: image, name, brand, price, unit price, rating and availability

## `fullData` (type: `string`):

Complete dataset with every field the run collected

# 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 = {
    "departments": [
        "dairy-eggs"
    ],
    "startUrls": [],
    "maxItems": 10,
    "brands": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/walmart-grocery-prices-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 = {
    "departments": ["dairy-eggs"],
    "startUrls": [],
    "maxItems": 10,
    "brands": [],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/walmart-grocery-prices-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 '{
  "departments": [
    "dairy-eggs"
  ],
  "startUrls": [],
  "maxItems": 10,
  "brands": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call parseforge/walmart-grocery-prices-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/walmart-grocery-prices-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/HuwI6ZPshT0HrtxKA/builds/rvB1xmzvEzZskDB92/openapi.json
