# Lowes Product Scraper 🛍️ (`easyapi/lowes-product-scraper`) Actor

Scrape product listings from Lowes.com search results, including detailed product information, images, descriptions, ratings, and pricing. Perfect for market research, price monitoring, and product analysis.

- **URL**: https://apify.com/easyapi/lowes-product-scraper.md
- **Developed by:** [EasyApi](https://apify.com/easyapi) (community)
- **Categories:** E-commerce, Integrations, Other
- **Features:** Limited permissions
- **Stats:** 139 total users, 1 monthly users, 0.0% runs succeeded, 6 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## Lowes Product Scraper 🛍️

Powerful scraper for extracting detailed product information from Lowes.com search results. Get comprehensive product data including descriptions, prices, ratings, images, and more!

### Features ✨

- 🔍 Scrape products from any Lowes.com search URL
- 📦 Extract detailed product information including:
  - Product ID and model numbers
  - Brand information
  - Product descriptions
  - Marketing bullets
  - Category information
  - Ratings and review counts
  - Image URLs (main and additional images)
  - Product URLs
  - Vendor information
- 🚀 High-performance scraping with built-in proxy rotation
- 🛡️ Advanced browser fingerprint protection
- ⚡ Automatic pagination handling
- 💾 Clean, structured JSON output

### Usage 💡

1. Input a Lowes.com search URL (e.g., "https://www.lowes.com/search?searchTerm=desk%20chairs")
2. Set the maximum number of items to scrape (optional)
3. Configure proxy settings if needed (optional)
4. Run the actor and get structured product data!

### Output 📊

The actor provides detailed product information in JSON format, including:

- Product identifiers (omniItemId, itemNumber, modelId)
- Complete product descriptions
- All product images
- Marketing information
- Pricing details
- Category classification
- Vendor information
- Timestamps

### Input Parameters 🎯

- `searchUrls`: Array of Lowes.com search URLs to scrape
- `maxItems`: Maximum number of products to scrape
- `proxyConfiguration`: Optional proxy settings

### Use Cases 🎯

- Market research and analysis
- Price monitoring and comparison
- Product catalog building
- Competitive analysis
- E-commerce data aggregation

#### Input Example

A full explanation of an input example in JSON.

```json
{
    "searchUrls": [
        "https://www.lowes.com/search?searchTerm=desk%20chairs"
    ],
    "maxItems": 30
}
```

#### Output sample

The results will be wrapped into a dataset which you can always find in the **Storage** tab. Here's an excerpt from the data you'd get if you apply the input parameters above:

And here is the same data but in JSON. You can choose in which format to download your data: JSON, JSONL, Excel spreadsheet, HTML table, CSV, or XML.

```json
[
    {
        "searchUrl": "https://www.lowes.com/search?searchTerm=desk%20chairs",
        "product": {
            "omniItemId": "1003270508",
            "brand": "BestOffice",
            "categories": {
                "106261": "OFFICE_CHAIRS"
            },
            "description": "Black Contemporary Ergonomic Adjustable Height Swivel Mesh Executive Chair",
            "epc": {
                "swatchImgs": [],
                "additionalImages": [
                    {
                        "seq": "102",
                        "src": "Vendor Provided",
                        "baseUrl": "https://mobileimages.lowes.com/productimages/3339a7b3-4fd0-41ce-9e90-52bb579a0efd/16889090.jpg"
                    },
                    {
                        "seq": "103",
                        "src": "Vendor Provided",
                        "baseUrl": "https://mobileimages.lowes.com/productimages/dca67591-6740-4e6b-853e-17251636c134/16889088.jpg"
                    },
                    {
                        "seq": "104",
                        "src": "Vendor Provided",
                        "baseUrl": "https://mobileimages.lowes.com/productimages/e5d65e27-3254-40c3-897f-66b78159b0ca/16889089.jpg"
                    },
                    {
                        "seq": "105",
                        "src": "Vendor Provided",
                        "baseUrl": "https://mobileimages.lowes.com/productimages/d10b570a-d5c9-4460-b9bf-84bfc0eda6f1/16889093.jpg"
                    },
                    {
                        "seq": "106",
                        "src": "Vendor Provided",
                        "baseUrl": "https://mobileimages.lowes.com/productimages/bfba3095-7539-4004-b44c-9a04332fa710/16889100.jpg"
                    },
                    {
                        "seq": "107",
                        "src": "Vendor Provided",
                        "baseUrl": "https://mobileimages.lowes.com/productimages/bb121578-ab59-4fa6-9c25-e1e97412e101/16889091.jpg"
                    }
                ],
                "videos": [],
                "videoSets": [],
                "spinSet": "",
                "spinSets": [],
                "imageSpins": []
            },
            "isPublished": "Y",
            "isBuyable": "Y",
            "itemNumber": "2886225",
            "marketingBullets": [
                {
                    "key": "1",
                    "value": "New modern style, beautiful generous and strong practicability"
                },
                {
                    "key": "2",
                    "value": "This office mesh chair has an extremely comfortable nylon mesh back that supports back"
                },
                {
                    "key": "3",
                    "value": "Size and look makes the adjustable chair ideal for any conference room or office seating, the back executive styling to make you feel relax"
                }
            ],
            "modelId": "VN-H03-BLACK",
            "orderItemMulQty": 1,
            "orderItemMinQty": 1,
            "pdURL": "/pd/BestOffice-Home-Office-Chair-Ergonomic-Desk-Chair-Mesh-Computer-Chair-with-Lumbar-Support-Armrest-Executive-Rolling-Swivel-Adjustable-Mid-Back-Task-Chair-for-Women-Adults-Black/1003270508",
            "rating": "4.3",
            "reviewCount": "79",
            "productVisualizer": false,
            "type": "ANY",
            "vendorNumber": "107030",
            "vendorDirect": "1",
            "showVariants": false,
            "sponsored": false,
            "marketplace": false,
            "merchandisingHierarchy": {
                "productGroup": "511608",
                "assortment": "28818",
                "assortmentDescription": "SOS OFFICE FURNITURE"
            },
            "imageUrl": "/productimages/e91bb942-29fb-4413-9f1e-e3d185e3b84a/16889087.jpg",
            "pricePerUnit": {},
            "alternateImageUrl": "https://mobileimages.lowes.com/productimages/3339a7b3-4fd0-41ce-9e90-52bb579a0efd/16889090.jpg"
        },
        "scrapedAt": "2025-02-08T01:15:08.335Z"
    },
    ...
]
```

### Related Actors

- 🛒 [Costco Product Scraper](https://apify.com/easyapi/costco-product-scraper) - Extract detailed product data from Costco.com including prices, descriptions, ratings, and availability.
- 🛍️ [Sam's Club Product Scraper](https://apify.com/easyapi/sam-s-club-product-scraper) - Extract detailed product data from Sam's Club search results, including prices, descriptions, reviews, and inventory information.
- 🛍️ [Nike Product Scraper](https://apify.com/easyapi/nike-product-scraper) - Extract product data from Nike.com search results including prices, colors, images and detailed product information.
- 🛍️ [Hobby Lobby Products Scraper](https://apify.com/easyapi/hobby-lobby-products-scraper) - Scrape product data from Hobby Lobby's website with comprehensive product details and variants.
- 🛍️ [Lidl Product Scraper](https://apify.com/easyapi/lidl-product-scraper) - Scrape product data from Lidl's online store including prices, images, descriptions, ratings and stock information.
- 🛍️ [Flipkart Product Scraper](https://apify.com/easyapi/flipkart-product-scraper) - Scrape product data from Flipkart search results with detailed product information and pricing.
- 🛍️ [AJIO Product Scraper](https://apify.com/easyapi/ajio-product-scraper) - Extract detailed product information from AJIO's fashion marketplace with comprehensive data.
- 🛍️ [Zara Product Scraper](https://apify.com/easyapi/zara-product-scraper) - Extract detailed product information including prices, variants, images from Zara's online store.
- 🛒 [Woolworths Product Scraper](https://apify.com/easyapi/woolworths-product-scraper) - Extract detailed product data from Woolworths Australia's online store.
- 🛍️ [Weekday Product Scraper](https://apify.com/easyapi/weekday-product-scraper) - Extract product data from Weekday's online store with detailed variants and availability.
- 🛍️ [Tokopedia Product Scraper](https://apify.com/easyapi/tokopedia-product-scraper) - Scrape product data from Tokopedia search results with comprehensive details.
- 🏥 [Netmeds Product Scraper](https://apify.com/easyapi/netmeds-product-scraper) - Extract detailed product information from Netmeds.com with prices and inventory status.
- 🛍️ [Meesho Product Detail Scraper](https://apify.com/easyapi/meesho-product-detail-scraper) - Scrape detailed product information from Meesho.com with prices and seller information.
- 🛍️ [Myntra Product Scraper](https://apify.com/easyapi/myntra-product-scraper) - Extract detailed product information from AJIO's fashion marketplace.
- 🛍️ [AppSumo Product Scraper](https://apify.com/easyapi/appsumo-product-scraper) - Scrape products, deals, and offers from AppSumo marketplace with comprehensive details.

# Actor input Schema

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

List of Lowes.com search URLs to scrape

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

Maximum number of products to scrape

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

Proxy settings for the scraper

## Actor input object example

```json
{
  "searchUrls": [
    "https://www.lowes.com/search?searchTerm=desk%20chairs"
  ],
  "maxItems": 30,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "searchUrls": [
        "https://www.lowes.com/search?searchTerm=desk%20chairs"
    ],
    "maxItems": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("easyapi/lowes-product-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 = {
    "searchUrls": ["https://www.lowes.com/search?searchTerm=desk%20chairs"],
    "maxItems": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("easyapi/lowes-product-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 '{
  "searchUrls": [
    "https://www.lowes.com/search?searchTerm=desk%20chairs"
  ],
  "maxItems": 30
}' |
apify call easyapi/lowes-product-scraper --silent --output-dataset

```

## MCP server setup

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