# Walmart Canada Scraper — Products, Prices & Clearance (`automatic/walmart-ca-clearance`) Actor

Search Walmart.ca by keyword or category link, collect individual product details, or collect online clearance offers. Export CAD prices, sellers, availability, images and reviews for comparison and monitoring.

- **URL**: https://apify.com/automatic/walmart-ca-clearance.md
- **Developed by:** [Philip Kirkbride](https://apify.com/automatic) (community)
- **Categories:** E-commerce
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 66.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 product or offers

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

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

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

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

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

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

# README

## Walmart Canada Scraper — Products, Prices & Clearance

Collect Walmart.ca products by keyword, category link or product link, or discover offers on the online clearance page. Compare CAD prices, sellers, ratings and availability, then export the results to a spreadsheet or dashboard.

Use search and listing links for product discovery. Choose individual product pages for fuller descriptions, specifications, images, variants and up to 10 available reviews. Walmart and marketplace offers are included.

### Quick start

Search Walmart Canada by keyword:

```json
{
  "searchQueries": ["air fryer"],
  "maxItems": 40
}
```

To search several terms and collect more pages:

```json
{
  "searchQueries": ["coffee maker", "electric kettle"],
  "maxItems": 120,
  "maxPages": 2
}
```

Collect full details for specific products using their links or item IDs:

```json
{
  "productUrls": [
    "https://www.walmart.ca/en/ip/VibrantLife-Stuffed-Rolls-with-Chicken-Rawhide-and-Sweet-Potato-Chews-for-Dogs/6000200160503",
    "6000204333925"
  ]
}
```

Paste a Walmart.ca search, category or clearance link into `searchUrls` to keep its filters and sorting. You can combine listing links, search words and product links in the same run. For example:

```json
{
  "searchQueries": ["air fryer"],
  "searchUrls": [
    "https://www.walmart.ca/en/shop/clearance/6000204800999"
  ],
  "maxItems": 80,
  "maxPages": 2
}
```

For clearance offers alone, use empty input:

```json
{}
```

Empty input collects up to 40 offers from one clearance page. Providing any nonempty selection replaces that automatic clearance selection; include the clearance link explicitly when you want it alongside other searches.

### Inputs

| Input | Default | What it controls |
| --- | --- | --- |
| `searchQueries` | Empty | Search words, such as `air fryer` or `coffee maker`. |
| `searchUrls` | Empty | Walmart.ca search results, category listings or the clearance page. The link's filters and sorting are kept. |
| `productUrls` | Empty | Walmart.ca product links or item IDs. Each selected product returns full product-page details when available. |
| `maxItems` | `40` | Maximum distinct product/seller offers across the entire run, from **1 to 200**. |
| `maxPages` | `1` | Maximum pages for **each** search or listing, from **1 to 5**. Individual product links each select one product page. |

Use up to **10 different selections combined** across the three selection fields. Specific product links run first, followed by keyword searches and listing links. Repeated offers within the run are returned once; different sellers can have separate offers for the same product.

The number of returned offers can be lower than your limit when fewer are available or some pages cannot be collected. A search with no matching products can return an empty result.

### Location in results

Walmart.ca chooses the location used for each visit. Prices and availability can depend on that location, and different pages or runs can show different cities. Each result's `observedLocation` reports the location Walmart showed on its source page, including the city and postal code when available.

Location selection is currently unavailable. Results do not select a particular store, reserve pickup or report store stock quantities.

### What you can do

- **Research products:** discover items by keyword or category and compare sellers, ratings and online availability.
- **Compare prices:** collect current CAD prices, displayed reference prices and listed savings.
- **Find clearance offers:** collect the online clearance page alongside your other product searches.
- **Create richer product catalogs:** select product pages for descriptions, specifications, images, variants and available review content.
- **Deal alerts and reselling:** schedule the clearance run daily and flag new markdowns by `referenceSavingsPct` for a deal feed or a resale shortlist.
- **Compare recurring snapshots:** schedule repeated runs and compare your exports over time; join runs on `productId` and `offerId`.

### Results

Each row describes a product and seller offer. Available fields include:

| Fields | What they give you |
| --- | --- |
| `productId`, `offerId`, `url`, `title`, `brand` | Product and offer identifiers, product links, names and brand. |
| `price`, `referencePrice`, `priceText`, `referencePriceText`, `currency` | Current listed and displayed comparison prices in CAD. |
| `referenceSavingsAmount`, `referenceSavingsPct` | The difference between the current price and the displayed reference price. |
| `sellerName`, `sellerId`, `sellerRating`, `sellerReviewCount` | Available seller information. |
| `availability`, `availabilityText`, `inStock` | Displayed online availability. |
| `rating`, `reviewCount`, `badges`, `isSponsored` | Product ratings, review totals, labels and sponsored status when available. |
| `imageUrl`, `images`, `category` | Product imagery and category information. |
| `fulfillmentType`, `fulfillmentOptions` | Available shipping and fulfillment information. |
| `foundOnClearancePage`, `isClearance` | Clearance-page membership and an explicit clearance label when available. |
| `observedLocation`, `observedAt` | The city and postal code Walmart showed for the offer, and when it was collected. |
| `sourceType`, `sourceInput`, `detailLevel` | Which selection produced the offer and whether it contains listing or full product-page details. |

Full product-page rows can also include `description`, `highlights`, `specifications`, `variants`, `model`, `upc`, `ratingBreakdown`, `recommendedPercentage` and up to 10 `reviews`. Select those products through `productUrls`; search and listing rows are not automatically expanded into full product pages.

Missing scalar information is `null`; explicit source zero prices or counts remain zero. A zero-row collection with unverified pagination fails with `INCOMPLETE_RESULTS`; source-confirmed empty searches remain successful and have no result fee. The status message names the source error code; details are retained in `RUN-SUMMARY`. If part of a run cannot be collected, the results already delivered are kept and the run summary explains the incomplete coverage.

### Output example

One clearance offer from a recorded Walmart.ca clearance page (November 2026), trimmed to the most useful fields; your values will differ:

```json
{
  "productId": "5ZW1TWC2CEKP",
  "offerId": "9D79C1DDEB7E3C5A817DC537B65BFA13",
  "url": "https://www.walmart.ca/en/ip/Jasion-X-Hunter-Electric-Bike-Adults-1400W-Peak-Motor-Foldable-Ebike-48V-13AH-Removable-Battery-20-Fat-Tire-Full-Suspension-Bicycles-30MPH-7-Speed-Co/5ZW1TWC2CEKP",
  "title": "Jasion X-Hunter Electric Bike for Adults, 1400W Peak Motor Foldable Ebike with 48V 13AH Removable Battery, 20\" Fat Tire Full Suspension Electric Bicycles, 30MPH 7-Speed Commuter E-Bike, UL 2849",
  "sellerName": "Heybike CA",
  "fulfillmentType": "FC",
  "availability": "IN_STOCK",
  "availabilityText": "In stock",
  "price": 1199.0,
  "referencePrice": 2159.99,
  "priceText": "$1,199.00",
  "referencePriceText": "$2,159.99",
  "currency": "CAD",
  "referenceSavingsAmount": 960.99,
  "referenceSavingsPct": 44.49,
  "priceScope": "online_listing",
  "foundOnClearancePage": true,
  "isClearance": true,
  "observedLocation": {
    "postalCode": "L5V 2N6",
    "stateOrProvinceCode": "ON",
    "city": "Mississauga",
    "storeId": "1061"
  },
  "page": 1,
  "position": 3,
  "observedAt": "2026-11-04T21:59:25+00:00"
}
```

### Pricing

Actor fees are in **USD**. Product prices in the results are in **CAD**.

| Delivered result | Fee per 1,000 rows |
| --- | --- |
| Search, category or clearance offer | **$0.50** |
| Full product-page details | **$5.50 total** |

Every delivered row costs $0.0005. A row with full product-page details adds $0.005, making its total $0.0055. The full-detail total combines the $0.50 per 1,000 base rate with a **$5.00 per 1,000 full-detail add-on**. Failed requests are not result rows and do not incur result fees.

There is also a **$0.005 start fee** at the default 512 MB. The start fee applies even when no results are delivered and is charged at one event per GB of selected memory, with a minimum of one event. The default 512 MB uses one start event.

For example, a default-memory run delivering 40 listing offers costs **$0.025** in actor fees; a run delivering 10 full product-page rows costs **$0.06**. Set a maximum charge before starting a run to control spending.

Repeated offers within one run are charged once. An offer collected again in a separate run is charged again.

### Coverage and limits

The actor collects snapshots of the selected Walmart.ca pages. Your item and page limits control how much is collected; a complete catalog is not guaranteed.

Prices and availability reflect the Walmart-selected location shown for each result. Online availability does not establish pickup availability at a selected shop or provide store stock quantities.

A reference price is a displayed comparison, not a verified historical selling price. An offer can appear on the clearance page without an explicit clearance badge; `isClearance` stays empty when no such label is available. Verify prices and availability with the retailer before purchasing.

### FAQ

**Does it show stock at my local Walmart store?** No. It reports the online availability Walmart shows for the location it chose (`observedLocation`). It does not select a store or report store unit counts.

**How fresh is the data?** Each run reads the selected pages at run time; nothing is cached between runs.

**How do I get a daily clearance feed?** Schedule the empty-input run (or your own clearance or category link) once a day and compare runs on `productId` and `offerId`, or filter on `referenceSavingsPct`.

**How many products can one run return?** Up to 200 offers, 5 pages per search or listing, and 10 selections combined.

**What export formats are there?** JSON, CSV, Excel, XML and RSS from the dataset, like any Apify run.

# Actor input Schema

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

Walmart Canada search terms, such as coffee or air fryer. Leave selections empty for online clearance.

## `searchUrls` (type: `array`):

Walmart.ca search results, category listings or the online clearance listing. Their filters and sorting are kept; maxPages controls how many pages to collect.

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

Walmart.ca product links or item IDs for collecting information from those specific product pages.

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

Maximum distinct product/seller offers for the entire run, across all selections. Availability and the selected pages may yield fewer.

## `maxPages` (type: `integer`):

Maximum pages for each search or clearance listing. Product links select one product page each.

## Actor input object example

```json
{
  "searchQueries": [
    "air fryer"
  ],
  "maxItems": 40,
  "maxPages": 1
}
```

# Actor output Schema

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

No description

## `summary` (type: `string`):

Delivered product counts, requested source coverage, collection limits and any source failures.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "air fryer"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("automatic/walmart-ca-clearance").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "searchQueries": ["air fryer"] }

# Run the Actor and wait for it to finish
run = client.actor("automatic/walmart-ca-clearance").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "air fryer"
  ]
}' |
apify call automatic/walmart-ca-clearance --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automatic/walmart-ca-clearance"
        }
    }
}
```

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/VxqfYxa1tg26sTfGX/builds/8kUVm2HbAuXelLYDm/openapi.json
