# Menards Profile Scraper (`getdataforme/menards-profile-scraper`) Actor

Extract detailed product data from Menards.com effortlessly, including names, prices, descriptions, images, and availability. Ideal for market research, price monitoring, and competitive intelligence....

- **URL**: https://apify.com/getdataforme/menards-profile-scraper.md
- **Developed by:** [GetDataForMe](https://apify.com/getdataforme) (community)
- **Categories:** AI, Agents, E-commerce
- **Stats:** 19 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $9.00 / 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.

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

## Menards Profile Scraper

The Menards Profile Scraper is a powerful Apify Actor designed to extract detailed product information from Menards.com, including names, descriptions, prices, availability, and images. It enables efficient data collection for e-commerce analysis, price tracking, and market research by crawling product pages with high accuracy and speed. This tool is ideal for businesses and researchers seeking reliable, structured data from one of the largest home improvement retailers in the US.

### Features

- **Comprehensive Product Extraction**: Scrapes key details like SKU, name, brand, description, price, availability, and images from Menards product pages.
- **High Reliability**: Uses CheerioCrawler for fast, efficient scraping with built-in error handling to ensure data integrity.
- **Proxy Support**: Integrates with Apify's residential proxies to avoid IP blocks and ensure uninterrupted crawling.
- **Customizable Crawling**: Allows setting start URLs and maximum requests for targeted or large-scale data collection.
- **Structured Output**: Delivers clean JSON data, easily exportable to CSV, Excel, or databases for further analysis.
- **Performance Optimized**: Handles up to 100 requests per crawl by default, scalable for larger datasets.
- **User-Friendly**: Simple input configuration with prefilled examples for quick setup.

### Input Parameters

| Parameter | Type | Required | Description | Example |
|-----------|------|----------|-------------|---------|
| startUrls | array | Yes | URLs to start the crawl with. Supports multiple product page URLs from Menards.com. | `[{"url": "https://www.menards.com/main/bath/bathroom-faucets/showerheads/oxygenics-reg-contour-reg-99-spray-setting-brushed-nickel-combo-showerhead/87688/p-1642874340011693-c-5907.htm"}]` |
| proxyConfiguration | object | No | Specifies proxy servers to hide the scraper's origin. Prefilled with Apify residential proxies for best results. | `{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}` |
| maxRequestsPerCrawl | integer | No | Maximum number of requests allowed per crawl. Helps control costs and avoid overloading the site. | `100` |

### Example Usage

#### Input JSON

```json
{
  "startUrls": [
    {
      "url": "https://www.menards.com/main/bath/bathroom-faucets/showerheads/oxygenics-reg-contour-reg-99-spray-setting-brushed-nickel-combo-showerhead/87688/p-1642874340011693-c-5907.htm"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  },
  "maxRequestsPerCrawl": 100
}
```

#### Output JSON

```json
[
  {
    "url": "https://www.menards.com/main/bath/bathroom-faucets/showerheads/oxygenics-reg-contour-reg-99-spray-setting-brushed-nickel-combo-showerhead/87688/p-1642874340011693-c-5907.htm",
    "timestamp": "2025-11-06T05:27:08.603Z",
    "success": true,
    "sku": 6786905,
    "name": "Oxygenics® Contour® 99-Spray-Setting Brushed Nickel Combo Showerhead",
    "description": "The Contour by Oxygenics® turns your daily shower into a personalized escape, combining power, versatility, and style. Dual 4.9-inch shower heads offer 99 setting combinations, giving you the perfect spray for any mood. A three-way diverter lets you use each head individually or both at once, while the 72-inch stainless steel hose adds extra reach and flexibility. Choose from powerful Oxygenics® pressure, a soothing Waterfall mode, full-body WideStream coverage, targeted FocusStream, and the unique Sheer setting—narrow sheets of water that intersect for a spa-like experience you won't find anywhere else. Despite all that performance, the Contour is designed to save water and energy, cutting utility costs by up to $125 a year. With bold features and effortless functionality, it's the easiest way to upgrade your shower routine.",
    "brand": "Oxygenics",
    "image": "https://cdn.menardc.com/main/items/media/ETL001/ProductMedium/6786905_A.jpg",
    "price": 53.39,
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2025-11-09",
    "availableAt": 3598
  }
]
```

### Use Cases

- **Market Research and Analysis**: Gather product data to analyze trends, pricing strategies, and competitor offerings in the home improvement sector.
- **Competitive Intelligence**: Monitor Menards' product catalog for new arrivals, price changes, and stock levels to inform business decisions.
- **Price Monitoring**: Track prices of specific items over time to identify discounts or optimize purchasing strategies.
- **Content Aggregation**: Collect detailed product descriptions and images for content creation, such as blogs, catalogs, or e-commerce platforms.
- **Academic Research**: Study consumer goods data for studies on retail pricing, availability, and brand performance.
- **Business Automation**: Automate data extraction for inventory management, supplier comparisons, or automated reporting.

### Installation and Usage

1. Search for "Menards Profile Scraper" in the Apify Store
2. Click "Try for free" or "Run"
3. Configure input parameters
4. Click "Start" to begin extraction
5. Monitor progress in the log
6. Export results in your preferred format (JSON, CSV, Excel)

### Output Format

The Actor outputs an array of JSON objects, each representing a scraped product. Key fields include:

- `url`: The source URL of the product page.
- `timestamp`: ISO timestamp of when the data was scraped.
- `success`: Boolean indicating if the scrape was successful.
- `sku`: Unique product identifier.
- `name`: Product title.
- `description`: Detailed product description.
- `brand`: Manufacturer or brand name.
- `image`: URL to the product image.
- `price`: Current price as a float.
- `availability`: Schema.org availability status (e.g., "InStock").
- `priceValidUntil`: Date until the price is valid.
- `availableAt`: Store location ID where available.

Data is structured for easy integration into databases or analysis tools.

### Support

For custom/simplified outputs or bug reports, please contact:

- Email: support@getdataforme.com
- Subject line: "custom support"
- Contact form: https://getdataforme.com/contact/

We're here to help you get the most out of this Actor!

***

Extract comprehensive product data from Menards.com effortlessly! This scraper pulls names, prices, descriptions, images, and availability with high accuracy using residential proxies. Perfect for market research, price monitoring, and competitive intelligence. Start scraping today—try it free on Apify! (148 characters)

# Actor input Schema

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

Menards product page URLs to scrape. The product id is taken from the `p-<id>-c-<id>.htm` part of the URL.

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

Proxy servers used to rotate the scraper's IP. The Menards API rate-limits per IP and starts returning an HTML block page after a few requests in a row, so US residential proxies are recommended for anything but a handful of URLs.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.menards.com/main/grocery-home/furniture/office-desks/uncaged-ergonomics-reg-black-swivel-desk-stand-kit/slsps-black/p-4420330306965420-c-12676.htm"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# API

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

## JavaScript example

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

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

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.menards.com/main/grocery-home/furniture/office-desks/uncaged-ergonomics-reg-black-swivel-desk-stand-kit/slsps-black/p-4420330306965420-c-12676.htm"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getdataforme/menards-profile-scraper").call(input);

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

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

```

## Python example

```python
from apify_client import ApifyClient

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

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.menards.com/main/grocery-home/furniture/office-desks/uncaged-ergonomics-reg-black-swivel-desk-stand-kit/slsps-black/p-4420330306965420-c-12676.htm" }],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getdataforme/menards-profile-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.menards.com/main/grocery-home/furniture/office-desks/uncaged-ergonomics-reg-black-swivel-desk-stand-kit/slsps-black/p-4420330306965420-c-12676.htm"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call getdataforme/menards-profile-scraper --silent --output-dataset

```

## MCP server setup

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