# Walmart Product & Price Scraper: Categories, UPC, Sellers (`themineworks/walmart-product-price-scraper`) Actor

Scrape Walmart.com products from category, shop, brand and product links: price, was price, stock, rating, reviews, seller (Walmart or marketplace), category path and images, plus brand, UPC, specifications and variants from product pages. No login, no browser. Pay per product.

- **URL**: https://apify.com/themineworks/walmart-product-price-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** E-commerce, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.20 / 1,000 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?

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 Product & Price Scraper: Categories, UPC, Sellers

[![100 Walmart products in 23 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/walmart-product-price-scraper-hero-fix0930.png)](https://console.apify.com/actors/eW2FoCtQi4z3aYbZe/input)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder), with over 140,000 runs across 170+ public actors. This actor ranks #2 for "walmart upc" in Apify Store search.

### Why choose this actor?

- **A whole Walmart category in seconds.** Paste a category link and get one row per product: price, was price, unit price, stock status, rating, review count, seller, category path, badges and variants. Our proof run read **100 coffee makers in 23 seconds** from three category pages. No Walmart account, no API key, no cookies.
- **Walmart or a marketplace seller, on every row.** `seller_type` says `walmart` or `marketplace` and `seller_name` names the store; in the proof run 40 of the 100 products were sold by Walmart and 60 by marketplace sellers. Product pages add the seller's registered business name and rating.
- **UPC, brand and specifications when you need them, at no extra price.** Turn on product pages and each row also carries brand, UPC, model, part number, the specification table, the count of 1 to 5 star ratings and every variant with its own price and stock. The price per product is the same either way, and refused pages, removed products and duplicates are never charged.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/eW2FoCtQi4z3aYbZe/input)

**Part of The Mine Works E-commerce and marketplaces family:** [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search), [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews), [Amazon Product Scraper](https://apify.com/themineworks/amazon-products), [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper), [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper), [AliExpress Scraper](https://apify.com/themineworks/aliexpress-products).

### Try it in one minute

Paste this input and press Start. It returns 10 best selling coffee makers:

```json
{
  "categoryUrls": ["https://www.walmart.com/browse/home/coffee-shop/4044_90548_90546_1115306"],
  "maxProductsPerCategory": 10,
  "sort": "best_seller"
}
```

You can give Walmart products in these ways, and mix them in one run:

- **Category links** (`categoryUrls`): `https://www.walmart.com/browse/...` lists, shop and deals pages (`/shop/...`), department pages (`/cp/...`) and brand pages (`/brand/...`). Filters and a sort order in a link are passed to Walmart unchanged.
- **Product links** (`productUrls`): `https://www.walmart.com/ip/Mae-Ploy-Sweet-Chili-Sauce-12-Oz/11045990`, or the short form `https://www.walmart.com/ip/11045990`.
- **Item ids** (`productUrls`): just the number at the end of a product link, such as `11045990`.

A product link pasted among the category links, or a category link among the products, is moved to the right list. Search links (`/search?q=...`) are skipped with a warning, because Walmart's robots.txt closes them to crawlers; see the FAQ for how to cover a search term. Only walmart.com (United States) is supported.

Apify's free plan includes $5 of credit every month, which covers about 1,200 products at this actor's Free plan price.

#### Copy to your AI assistant

```text
themineworks/walmart-product-price-scraper on Apify. Returns Walmart.com products from category links or product links: price, was price, unit price, stock, rating, reviews, seller (Walmart or marketplace), category path, badges and variants, and with product pages brand, UPC, model, specifications and star counts. Call ApifyClient("TOKEN").actor("themineworks/walmart-product-price-scraper").call(run_input={"categoryUrls": ["https://www.walmart.com/browse/home/coffee-shop/4044_90548_90546_1115306"], "maxProductsPerCategory": 100, "sort": "best_seller"}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: categoryUrls (Walmart /browse/, /shop/, /cp/ or /brand/ links) or productUrls (product links or item ids). Optional: maxProductsPerCategory (default 100, 1 to 500, Walmart shows about 400 per list), fetchDetails (default false, opens each product page for brand, UPC and specifications), sort (best_match, best_seller, price_low, price_high, rating_high, new; default best_match), skipSponsored (default false). Include at least one category link when you send product links. Skip rows that have "_type": "info". Full spec: GET https://api.apify.com/v2/acts/themineworks~walmart-product-price-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations
```

### Key features

- **Up to 45 fields per product**, grouped as price (price, was price, unit price, price range, sale flag), stock, ratings, seller, category, product page details (brand, UPC, model, part number, description, specifications, star counts), images, variants, badges and list position.
- **About 40 products a category page, up to 10 pages per link.** Walmart shows a visitor who is not signed in about 400 products per list; the actor reads them page after page up to your `maxProductsPerCategory`.
- **Up to 100 category links and 5,000 product links per run.** The same category given twice is read once, and a product found through two links is delivered and charged once.
- **6 sort orders** (`best_match`, `best_seller`, `price_low`, `price_high`, `rating_high`, `new`), plus every filter Walmart puts in a link.
- **Sponsored products flagged**: `is_sponsored` on each category row, or `skipSponsored` to leave them out.
- **Plain HTTP, no browser**, 512 MB of memory. A run summary (status per category and product link, pages read, attempts, robots.txt state, charges) is saved as the `OUTPUT` record.

### How to use it

#### Basic: one category

```json
{
  "categoryUrls": ["https://www.walmart.com/browse/home/coffee-shop/4044_90548_90546_1115306"],
  "maxProductsPerCategory": 100,
  "sort": "best_seller"
}
```

This is the input of our proof run: 100 products from 3 category pages in 23 seconds.

#### Several categories and products at once

```json
{
  "categoryUrls": [
    "https://www.walmart.com/browse/electronics/tvs/3944_1060825_447913",
    "https://www.walmart.com/cp/portable-grills/5936113"
  ],
  "productUrls": [
    "https://www.walmart.com/ip/Mae-Ploy-Sweet-Chili-Sauce-12-Oz/11045990",
    "19143911917"
  ],
  "maxProductsPerCategory": 200
}
```

Category links are read first, then the product links. `maxProductsPerCategory` counts per link.

#### Daily price and stock monitoring

Brands and sellers track their own and their competitors' prices. Put the products in `productUrls` and schedule the run daily (Apify Console, Schedules, Add schedule):

```json
{
  "productUrls": ["12516374178", "16903456907", "5091952167"]
}
```

Compare `price`, `was_price` and `availability` per `us_item_id` across days to see sales and stock outs. Product links work on their own; no category link is needed.

#### UPC and catalog matching

Catalog and data teams turn Walmart item ids into UPCs, brands, models and specifications, to match against their own catalog or another retailer's. Turn on product pages for a category:

```json
{
  "categoryUrls": ["https://www.walmart.com/cp/portable-grills/5936113"],
  "maxProductsPerCategory": 50,
  "fetchDetails": true
}
```

Join on `upc`. In our proof run with product pages, 6 of 8 products had a UPC (the two without were marketplace listings) and all 8 had brand, model and specifications.

#### Marketplace seller research

Find which products in a category Walmart sells itself and which third party sellers carry. Read a category sorted by best sellers and group by `seller_type` and `seller_name`:

```json
{
  "categoryUrls": ["https://www.walmart.com/browse/electronics/tvs/3944_1060825_447913"],
  "maxProductsPerCategory": 400,
  "sort": "best_seller",
  "skipSponsored": true
}
```

Add `"fetchDetails": true` for each marketplace seller's registered business name, rating and rating count.

#### A whole category, past 400 products

Walmart shows about 400 products per list. Add the same category with two sort orders, or its subcategories; a product found twice is delivered once:

```json
{
  "categoryUrls": [
    "https://www.walmart.com/browse/electronics/tvs/3944_1060825_447913?sort=price_low",
    "https://www.walmart.com/browse/electronics/tvs/3944_1060825_447913?sort=price_high"
  ],
  "maxProductsPerCategory": 500
}
```

### Input parameters

| Parameter | Type | Default | What it does |
|---|---|---|---|
| `categoryUrls` | array of strings | none (Console prefill: the TVs category) | Category (`/browse/`), shop (`/shop/`), department (`/cp/`) and brand (`/brand/`) links, one per line. Filters and a sort in a link are kept. Up to 100 per run. `startUrls` is accepted too. |
| `productUrls` | array of strings | none | Product links or bare item ids, one per line. Each is read from its product page. Up to 5,000 per run; the same product given twice is read once. |
| `maxProductsPerCategory` | integer | `100` (Console prefill `40`) | Most products from each category link, 1 to 500, in Walmart's order. Walmart shows about 400 per list. |
| `fetchDetails` | boolean | `false` | Also open each category product's own page for brand, UPC, model, specifications, star counts, every image and every variant with its price. Slower: one more page per product. |
| `sort` | string | `best_match` | `best_match`, `best_seller`, `price_low`, `price_high`, `rating_high` or `new`. A sort already in a link wins. |
| `skipSponsored` | boolean | `false` | Leave out the sponsored products Walmart places among a category's products. When kept, they carry `is_sponsored: true`. |

Give at least one category link or product link; a run with neither stops at once with a note and charges nothing for products.

### What data do you get?

One row per product. Fields with no value are left out of the row instead of being sent as null.

**Product**

- `us_item_id` (the number in the link), `product_id` (Walmart's catalog id), `title`, `brand`, `product_type`, `url`

**Price and stock**

- `price`, `was_price` (the strike through price, when Walmart shows one), `on_sale`, `unit_price` (for example `29.8 ¢/fl oz`), `price_min` and `price_max` (the range across options), `currency` (USD)
- `availability`: `IN_STOCK`, `OUT_OF_STOCK` and Walmart's other stock statuses

**Ratings**

- `rating`, `review_count`, and on product pages `rating_breakdown` (count of 1 to 5 star ratings)

**Seller**

- `seller_type` (`walmart` or `marketplace`), `seller_name`, `seller_id`, `offer_count` (other offers for the product)
- Product pages, marketplace sellers: `seller_business_name` (the registered business name), `seller_rating`, `seller_review_count`

**Category**

- `category_path` (for example `Home > Appliances > Kitchen Appliances > Coffee Shop > Keurig Coffee Makers`), `listing_name`

**Product page details** (with `fetchDetails`, or for product links)

- `upc`, `model`, `manufacturer_part_number`, `short_description` (plain text), `specifications` (a list of `name` and `value`)

**Images, variants and badges**

- `image`, `images` (every image on product pages)
- `variant_count`, `variant_dimensions`, `variants` (on category pages each variant's item id, name and link; on product pages also its `options`, `price` and `availability`)
- `badges` (for example Best seller, Rollback, Overall pick)

**List position and run context**

- `is_sponsored`, `position`, `page` (category rows)
- `details_fetched`, `details_error` (whether the product page is in the row, and why not when it could not be opened)
- `source_type` (`category` or `product_url`), `input`, `scraped_at`

Each run also ends with one row that has `"_type": "info"` and a short message. It is never billed; filter it out by `_type`.

#### Stable fields for automations

These fields were present in every one of the 110 product rows of our proof runs on 1 Oct 2026 (100 category rows, 5 with product pages, 5 from a mixed run), and their names will not change:

| Field | What it holds |
|---|---|
| `us_item_id` | Walmart item id, the number at the end of the product link |
| `product_id` | Walmart's catalog product id |
| `title` | Product name |
| `availability` | Stock status, for example `IN_STOCK` |
| `rating` | Average star rating |
| `review_count` | Number of ratings |
| `seller_type` | `walmart` or `marketplace` |
| `seller_name` | Walmart.com or the marketplace store's name |
| `seller_id` | Walmart's seller id |
| `category_path` | Walmart's category path |
| `product_type` | Walmart's product type, for example `Drip Coffee Makers` |
| `image` | Main product image |
| `url` | Link to the product on walmart.com |
| `details_fetched` | Whether the product page was read for this row |
| `scraped_at` | When the row was read (ISO 8601) |

`price` was in 107 of the 110 rows: three coffee makers had no price on the category page, and the field is left out rather than guessed. Category pages in our runs showed no `brand`; product pages showed it every time. `was_price` appears only when Walmart shows a strike through price (40 of the 100 category rows).

#### Output examples

Real rows from our proof runs on 1 Oct 2026, trimmed: long descriptions, specification lists, image lists and variant lists are cut.

A category row sold by Walmart, on Rollback (coffee makers, sorted by best sellers):

```json
{
  "us_item_id": "12516374178",
  "product_id": "2ZRAMD27J84J",
  "title": "Keurig K-Express Essentials Black Single-Serve K-Cup Pod Coffee Maker",
  "price": 49.47,
  "was_price": 54.97,
  "currency": "USD",
  "on_sale": true,
  "availability": "IN_STOCK",
  "rating": 4.4,
  "review_count": 12732,
  "seller_name": "Walmart.com",
  "seller_id": "F55CDC31AB754BB68FE0B39041159D63",
  "seller_type": "walmart",
  "category_path": "Home > Appliances > Kitchen Appliances > Coffee Shop > Keurig Coffee Makers",
  "product_type": "Single-Serve Brewers",
  "image": "https://i5.walmartimages.com/seo/KEE-BLACK-GEN-2_70d03917-65f9-480f-8391-aade09ee61ca.c44d2b2f723cb1529a4c181faed76958.jpeg",
  "variant_count": 4,
  "variants": [
    { "us_item_id": "12516374178", "name": "Black", "url": "https://www.walmart.com/ip/KEUR-BRWR-K-EXPE-GEN2-BLACK/12516374178" },
    { "us_item_id": "17400009688", "name": "Red", "url": "https://www.walmart.com/ip/K-EXPRESS-RED-GEN2/17400009688" }
  ],
  "badges": ["Rollback"],
  "is_sponsored": false,
  "url": "https://www.walmart.com/ip/KEE-BLACK-GEN-2/12516374178",
  "details_fetched": false,
  "position": 1,
  "page": 1,
  "listing_name": "Coffee & Espresso Makers",
  "source_type": "category",
  "input": "https://www.walmart.com/browse/home/coffee-shop/4044_90548_90546_1115306",
  "scraped_at": "2026-10-01T13:36:55.435Z"
}
```

A category row from a marketplace seller, with a price range across colors (same run):

```json
{
  "us_item_id": "16903456907",
  "title": "AIRMSEN 12-Cup Drip Coffee Maker with K Cup Combo, Programmable Coffee Machine with 1-4 Cup Setting, Single Serve or Coffee Pot, Auto Shut-off, Spill-Free Spout",
  "price": 89.89,
  "was_price": 178.99,
  "price_min": 89.89,
  "price_max": 99.89,
  "on_sale": true,
  "availability": "IN_STOCK",
  "rating": 4.1,
  "review_count": 1407,
  "seller_name": "Airmsen Appliances",
  "seller_type": "marketplace",
  "category_path": "Home > Appliances > Kitchen Appliances > Coffee Shop > Coffee Makers",
  "product_type": "Drip Coffee Makers",
  "variant_count": 3,
  "badges": ["Best seller"],
  "position": 3,
  "page": 1,
  "source_type": "category"
}
```

A category row with its product page read (`fetchDetails` on, a department link that Walmart sent to its category list). The marketplace seller's registered business name and rating come from the product page:

```json
{
  "us_item_id": "846132139",
  "product_id": "3RI8PBRX2AFP",
  "title": "KingChii 456 sq. in Wood Pellet Smoker & Grill BBQ with Auto Temperature Control, Folding Legs for Outdoor Patio RV, Bronze",
  "brand": "KingChii",
  "price": 229.99,
  "was_price": 495.99,
  "on_sale": true,
  "availability": "IN_STOCK",
  "rating": 4,
  "review_count": 2101,
  "rating_breakdown": { "1": 323, "2": 100, "3": 137, "4": 230, "5": 1311 },
  "seller_name": "KingChii",
  "seller_business_name": "Guangzhou Kongshan Five Seasons Trading Co., Ltd.",
  "seller_type": "marketplace",
  "seller_rating": 4.13,
  "seller_review_count": 1607,
  "category_path": "Patio & Garden > Outdoor Cooking > Grills > Portable Grills > Tailgating Grills",
  "product_type": "Pellet Grills",
  "model": "HWPG 456B-WR",
  "manufacturer_part_number": "HWPG 456B-WR",
  "short_description": "A wood pellet grill can fit in most gardens, patios, balconies, and decks with ease. ...",
  "specifications": [
    { "name": "Total cooking area", "value": "456 sq in" },
    { "name": "Weight", "value": "69.45 lb" },
    { "name": "Dimensions", "value": "37.00 x 35.00 x 18.00 in" }
  ],
  "badges": ["In 50+ people's carts", "Deal", "Overall pick"],
  "details_fetched": true,
  "position": 3,
  "listing_name": "Portable Grills for Outdoor Cooking",
  "source_type": "category",
  "input": "https://www.walmart.com/cp/portable-grills/5936113"
}
```

A product link, with UPC and each variant's own price:

```json
{
  "us_item_id": "11045990",
  "product_id": "7EH3Y1QKVUYB",
  "title": "Mae Ploy Sweet Chili Sauce, 12 Oz",
  "brand": "Mae Ploy",
  "price": 3.58,
  "unit_price": "29.8 ¢/fl oz",
  "currency": "USD",
  "availability": "IN_STOCK",
  "rating": 4.7,
  "review_count": 1939,
  "rating_breakdown": { "1": 72, "2": 29, "3": 60, "4": 145, "5": 1633 },
  "seller_name": "Walmart.com",
  "seller_type": "walmart",
  "offer_count": 5,
  "category_path": "Food > Seasonal Grocery > Lunar New Year Foods",
  "product_type": "Hot Sauces",
  "upc": "044738072311",
  "model": "15242",
  "specifications": [
    { "name": "Flavor", "value": "Sweet chilli" },
    { "name": "Size", "value": "12 fl oz" }
  ],
  "variant_count": 2,
  "variant_dimensions": [{ "name": "Pack Size", "values": ["Single", "2 Pack"] }],
  "variants": [
    { "us_item_id": "11045990", "options": { "Pack Size": "Single" }, "price": 3.58, "availability": "IN_STOCK" },
    { "us_item_id": "5674252882", "options": { "Pack Size": "2 Pack" }, "price": 7.16, "availability": "IN_STOCK" }
  ],
  "url": "https://www.walmart.com/ip/Mae-Ploy-Sweet-Chili-Sauce-12-Oz/11045990",
  "details_fetched": true,
  "source_type": "product_url",
  "input": "https://www.walmart.com/ip/Mae-Ploy-Sweet-Chili-Sauce-12-Oz/11045990"
}
```

The info row that ends every run (never billed):

```json
{
  "_type": "info",
  "delivered": 5,
  "message": "5 products delivered. This row is informational: it is never billed.",
  "scraped_at": "2026-10-01T13:39:34.768Z"
}
```

The run summary in the `OUTPUT` record lists a status for every category link (`ok`, `no_products`, `not_found`, `robots_disallowed`, `blocked`, `duplicate`, `skipped` or `error`) with its name, product count and pages read, and for every product link that failed, the reason.

### Pricing

You pay per product delivered to your dataset, plus a flat $0.005 per run whatever memory you choose. Product pages cost nothing extra, and proxies are included.

| Event | Free plan | Starter (Bronze) | Scale (Silver) | Business (Gold) and above |
|---|---|---|---|---|
| Product (`product-scraped`), per product | $0.004 | $0.0034 | $0.0028 | $0.0022 |
| Same, per 1,000 products | $4.00 | $3.40 | $2.80 | $2.20 |
| Run start (`run-start`), once per run | $0.005 | $0.005 | $0.005 | $0.005 |

The run start is our own flat event, charged once when the run starts. It is not Apify's per GB start fee, so it stays $0.005 at any memory size. No other pricing change is scheduled.

Never charged:

- products whose page Walmart refused on every attempt;
- removed products (Walmart answers 404 or shows no product);
- links Walmart's robots.txt asks crawlers not to open, including search links;
- the same product found twice in one run;
- the info row at the end of the dataset, and the `OUTPUT` run summary.

If product pages are on and one cannot be opened, the product is still delivered and charged with what its category page shows, and `details_error` says why. To cap what a run can cost, set a maximum total charge in the run options; the actor stops before a product the budget cannot pay for. The Pricing tab always shows the rate for your own plan; if this table and the Pricing tab ever disagree, the Pricing tab is right.

### FAQ

#### What does this actor read on Walmart?

Public Walmart.com pages, as a visitor who is not signed in sees them. Walmart builds each page from a block of JSON it embeds in the page, and the actor reads that JSON: the product grid and page count on category pages, the carousels on department and brand pages, and the full product record, specifications and rating counts on product pages. No HTML is scraped, so small layout changes do not break it.

#### How much does it cost to scrape 1,000 Walmart products?

1,000 times your plan's price per product, plus $0.005 for the run: $4.00 on the Free plan, $3.40 on Starter, $2.80 on Scale and $2.20 on Business and above. Product pages cost nothing extra.

#### How many products can I get from one category link?

About 400. Walmart's page count says up to 25 pages, but a visitor who is not signed in gets products on the first 10 pages only (about 40 each); pages 11 to 25 come back empty, so the actor stops at page 10. For a bigger category, add its subcategories, or the same link again with another sort order. A department or brand page that is not a category list (for example `/cp/home/4044`) gives the products in its carousels, usually 20 to 80.

#### Why is there no keyword search?

Walmart's robots.txt asks crawlers not to open its search pages (`Disallow: /search`; we checked again on 1 Oct 2026), and this actor follows robots.txt. A search link is skipped with a warning and costs nothing. To cover a search term, open the matching category on walmart.com (the department menu, or the category links on any product page) and paste its `/browse/` link, with the sort and filters you want. Every address, and every address Walmart redirects to, is checked against robots.txt, read fresh at the start of each run.

#### Why were my product links refused?

Walmart's bot protection refuses some requests. It refuses a product page that is the first thing a visitor asks for, so before its first product page each proxy session opens Walmart's home page once, as a shopper would. Sessions that get through are kept and reused, and every page gets several attempts (4 for a category page, 8 for a product page, the home page visit counting as one). In our tests on 1 Oct 2026, two runs with product links only read 6 of 6 products; the build before this change read 2 of 12 products in four such runs. A product still refused on every attempt is listed with its reason in the `OUTPUT` run summary and is not charged.

#### How fast is it?

Category pages are fast: 100 products from 3 pages took 23 seconds in our proof run, and on 29 Sep 2026 two categories read to the end (761 products, 22 pages) plus 5 product links took 111 seconds. Product pages add about 2 seconds a product: 5 category products with their product pages took 19 seconds, and runs of 3 product links on their own took 20 and 28 seconds. A run stops cleanly before its timeout (one hour by default) and keeps everything delivered so far; near the timeout, category rows are delivered without their product pages and `details_error` says so.

#### Do I need a Walmart account, an API key, cookies or a proxy?

No. The actor reads public pages without signing in, through Apify's datacenter proxies, which are included in the price.

#### Does it tell me whether Walmart or a third party sells the product?

Yes. `seller_type` is `walmart` or `marketplace`, and `seller_name` is Walmart.com or the seller's store name. With product pages you also get a marketplace seller's registered business name, rating and number of ratings.

#### Which store's prices do I get?

What a visitor without a saved location sees. In our testing Walmart used its store in Sacramento, California as the default. Grocery and in-store items can differ from store to store.

#### Why does a row have no price?

A few products show no price on the category page (3 of 100 in our proof run), and some department page carousels show none; the actor leaves the field out rather than guess. Product pages usually have it, and when the product page shows no price the category page's price is kept. Price fields always come from one page together, never a was price from one page and a price from another.

#### Why did a category link return no products?

Walmart answers an unknown category id with an empty list, which the run summary reports as `no_products` and which costs nothing. Copy the link again from walmart.com; category links end in numbers joined by underscores, for example `3944_1060825_447913`.

#### Which formats can I export, and can I schedule it?

JSON, CSV, Excel, XML, HTML table and RSS from the dataset page in Apify Console, or through the Apify API. To schedule, save your input as a task, then add a schedule in Apify Console under Schedules. Each scheduled run is billed like a manual one; the schedule itself costs nothing.

#### Can I use it from Claude, ChatGPT or another AI agent?

- Connector URL: `https://mcp.apify.com/?tools=themineworks/walmart-product-price-scraper`.
- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http walmart-product-price-scraper "https://mcp.apify.com/?tools=themineworks/walmart-product-price-scraper"`.

#### Is it legal to scrape Walmart?

The actor collects only publicly visible product and seller information, never signs in, and follows Walmart's robots.txt. You are responsible for how you use the data, including Walmart's terms and data protection laws such as GDPR and CCPA. This actor is an independent tool and is not affiliated with Walmart Inc.; Walmart is a trademark of its owner.

### Integrations

- **Google Sheets**: send each run's products to a sheet with Apify's Google Sheets integration.
- **Make, Zapier and n8n**: start runs and receive the rows in your workflows.
- **Webhooks**: get a call when a run finishes, for example to post price drops to Slack.
- **API**: start runs and read datasets from any language with the Apify API or the Python and JavaScript clients.
- **MCP clients**: Claude, ChatGPT and other agents through Apify's MCP server.

### More from The Mine Works

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products)
- [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper)
- [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper)
- [AliExpress Scraper](https://apify.com/themineworks/aliexpress-products)
- [Kleinanzeigen.de Scraper](https://apify.com/themineworks/kleinanzeigen-scraper)
- [eBay Product Listings Scraper](https://apify.com/themineworks/ebay-search-scraper)
- [Shopify Store Scraper](https://apify.com/themineworks/shopify-store-scraper)
- [🛒 TikTok Shop Scraper](https://apify.com/themineworks/tiktok-shop-products)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads)
- [JustDial Scraper](https://apify.com/themineworks/justdial-business)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency)
- [Google News Scraper](https://apify.com/themineworks/google-news)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp)

**Science, health and government data**

- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records)
- [data.gov.in Scraper](https://apify.com/themineworks/india-data-gov-scraper)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data)
- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup)
- [World Bank Trade Scraper](https://apify.com/themineworks/global-trade-data)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper)

**More tools**

- [Tennis Match & Player Data Scraper](https://apify.com/themineworks/tennis-match-data)
- [Google Hotels Prices Scraper](https://apify.com/themineworks/google-hotels-prices-scraper)

### Support

Found a problem or need a field? Open an issue on the actor's Issues tab and we will answer there. For a new source or a custom build, email dmineworks@gmail.com.

*Walmart Product & Price Scraper turns Walmart category and product links into rows of price, stock, seller, ratings and, when you want them, UPC and specifications, charged only for products delivered.*

# Actor input Schema

## `categoryUrls` (type: `array`):

Walmart.com category links, one per line: a category (https://www.walmart.com/browse/...), a shop or deals page (/shop/...), a department page (/cp/...) or a brand page (/brand/...). Filters and a sort order in the link are passed to Walmart unchanged. Search links (/search?q=...) are not accepted because Walmart's robots.txt disallows them; open the category on walmart.com and paste its link instead. Up to 100 per run.

## `productUrls` (type: `array`):

Walmart.com product links (https://www.walmart.com/ip/<name>/<id>) or bare item ids (the number at the end of the link), one per line. Each is read from its product page, with brand, UPC, specifications and variants. Up to 5,000 per run; the same product given twice is read once.

## `maxProductsPerCategory` (type: `integer`):

Most products to return from each category link, in the order Walmart lists them. Walmart shows about 40 products a page and 10 pages to a visitor who is not logged in, so one link gives about 400 at most. For more, add the same category with another sort order (for example ?sort=price\_high) or its subcategories; a product found twice in one run is delivered once. A department or brand page (/cp/, /brand/) that is not a category list gives the products in its carousels, usually 20 to 80.

## `fetchDetails` (type: `boolean`):

Also open the product page of every product found on a category page, for brand, UPC, model, specifications, 1 to 5 star counts, every image and every variant with its price. Slower, since each product is one more page. Product links are always read from their product page.

## `sort` (type: `string`):

Order of the category list. A sort already in a link is kept.

## `skipSponsored` (type: `boolean`):

Leave out the sponsored (advertised) products Walmart places among a category's products. When kept, they carry is\_sponsored: true.

## Actor input object example

```json
{
  "categoryUrls": [
    "https://www.walmart.com/browse/electronics/tvs/3944_1060825_447913"
  ],
  "maxProductsPerCategory": 40,
  "fetchDetails": false,
  "sort": "best_match",
  "skipSponsored": false
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "categoryUrls": [
        "https://www.walmart.com/browse/electronics/tvs/3944_1060825_447913"
    ],
    "maxProductsPerCategory": 40
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/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 = {
    "categoryUrls": ["https://www.walmart.com/browse/electronics/tvs/3944_1060825_447913"],
    "maxProductsPerCategory": 40,
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/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 '{
  "categoryUrls": [
    "https://www.walmart.com/browse/electronics/tvs/3944_1060825_447913"
  ],
  "maxProductsPerCategory": 40
}' |
apify call themineworks/walmart-product-price-scraper --silent --output-dataset

```

## MCP server setup

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