# Home Depot Category Products Scraper (`burbn/home-depot-category-products`) Actor

Extract Home Depot products by Category ID at scale. Get real-time pricing, stock status, ratings, SKUs, images & store inventory. Fast, reliable & easy export to CSV/JSON!

- **URL**: https://apify.com/burbn/home-depot-category-products.md
- **Developed by:** [Kevin](https://apify.com/burbn) (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 $1.00 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

## Home Depot Category Products Scraper – Browse & Extract by Category

**Browse Home Depot products by category ID and extract detailed product data including pricing, ratings, reviews, availability, and category metadata. Supports pagination, sorting, price filtering, brand filtering, and localized store data. Built with Apify best practices for reliability and speed.**

---

### Table of Contents

- [Features](#features)
- [Use Cases](#use-cases)
- [Quick Start](#quick-start)
- [Input Parameters](#input-parameters)
- [Output Format](#output-format)
- [Sorting Options](#sorting-options)
- [Performance & Limits](#performance--limits)
- [FAQ](#faq)
- [Troubleshooting](#troubleshooting)
- [Tags](#tags)

---

### Features

- **Category Browsing** – Browse Home Depot's product catalog by category ID for targeted data extraction.
- **Pagination Support** – Scrape up to 30 pages of category results per run for large-scale data collection.
- **Sorting Options** – Sort results by Best Match, Top Sellers, Top Rated, Price Low-to-High, Price High-to-Low, or Newest.
- **Price Range Filtering** – Set minimum and/or maximum price to narrow down products within your budget.
- **Brand Filtering** – Filter results to a specific brand (e.g., RYOBI, Milwaukee, DEWALT).
- **In-Stock Filtering** – Only return products that are currently available and fulfillable.
- **Store Localization** – Pass a Store ID and/or Zip Code to get localized pricing, pickup availability, and inventory counts.
- **Rich Product Data** – Extract pricing (current & original), ratings, review counts, images, brand, model number, SKU, UPC, and more.
- **Category Metadata** – Get breadcrumbs, canonical URL, and available filters for each category.

---

### Use Cases

| Use Case | Description | Key Benefits |
|----------|-------------|--------------|
| Category Analysis | Browse entire Home Depot product categories to understand inventory depth. | Map product availability and pricing across categories. |
| Price Monitoring | Track product prices within specific categories over time. | Detect price drops, compare original vs. sale prices, and set alerts. |
| Competitor Analysis | Monitor product availability, pricing, and ratings within categories. | Benchmark your products against Home Depot's catalog. |
| Inventory Tracking | Check real-time stock availability within specific categories at stores. | Identify out-of-stock items and fulfillment bottlenecks. |
| Market Research | Explore product categories to analyze trends, brands, and customer ratings. | Discover top-rated products and emerging brands. |
| Dropshipping & Arbitrage | Find profitable products by browsing categories and comparing prices. | Automate product discovery with price and rating filters. |
| Product Data Enrichment | Enrich your e-commerce database with Home Depot category product details. | Automate catalog updates with structured product data. |

---

### Quick Start

#### 1. Basic – Browse a Category
```json
{
  "categoryId": "5yc1vZc2bp",
  "maxPages": 1
}
````

#### 2. Advanced – Sorted by Price with Brand Filter

```json
{
  "categoryId": "5yc1vZc28b",
  "sortBy": "price_low_to_high",
  "brand": "DEWALT",
  "maxPages": 3
}
```

#### 3. Localized – Store-Specific Inventory & Pricing

```json
{
  "categoryId": "5yc1vZc2bp",
  "storeId": "121",
  "zipcode": "30301",
  "inStock": true,
  "maxPages": 5
}
```

#### 4. Full Filters – Price Range + Brand + Sorting

```json
{
  "categoryId": "5yc1vZc2bp",
  "sortBy": "top_rated",
  "brand": "Milwaukee",
  "minPrice": 20,
  "maxPrice": 200,
  "inStock": true,
  "itemsPerPage": 48,
  "maxPages": 10
}
```

***

### Input Parameters

| Parameter | Type | Required | Description | Default | Example |
|-----------|------|----------|-------------|---------|---------|
| `categoryId` | String | Yes | Home Depot category ID (navigation parameter). Found in category page URLs as the N-... segment | - | `"5yc1vZc2bp"`, `"5yc1vZc28b"` |
| `sortBy` | String | No | Sort order for results (see [Sorting Options](#sorting-options)) | `"best_match"` | `"top_sellers"`, `"price_low_to_high"` |
| `brand` | String | No | Filter by specific brand name. Leave empty for all brands | - | `"RYOBI"`, `"DEWALT"`, `"Milwaukee"` |
| `minPrice` | Number | No | Minimum product price in USD | - | `10`, `25`, `50` |
| `maxPrice` | Number | No | Maximum product price in USD | - | `100`, `500`, `1000` |
| `inStock` | Boolean | No | Only return products currently in stock | `false` | `true` |
| `storeId` | String | No | Home Depot store number for localized pricing & inventory | - | `"121"`, `"6892"` |
| `zipcode` | String | No | 5-digit US zip code for localized delivery options | - | `"30301"`, `"90210"` |
| `itemsPerPage` | Integer | No | Products per page (1–48) | `24` | `24`, `48` |
| `maxPages` | Integer | No | Number of result pages to scrape (1–30) | `1` | `3`, `10`, `30` |

***

### Output Format

#### Product Result Data Structure

```json
{
  "source": "homedepot_category",
  "category_id": "5yc1vZc2bp",
  "position": 1,

  "item_id": "204463218",
  "url": "https://www.homedepot.com/p/Milwaukee-M18-18V-Lithium-Ion-Cordless-Oscillating-Multi-Tool/204463218",
  "title": "M18 18V Lithium-Ion Cordless Oscillating Multi-Tool (Tool-Only)",
  "brand": "Milwaukee",
  "model_no": "2626-20",
  "sku_id": "1000648526",
  "upc": null,
  "product_type": "MERCHANDISE",
  "sku_classification": null,

  "thumbnail": "https://images.thdstatic.com/productImages/abc/svn/milwaukee-multi-tools-2626-20-64_1000.jpg",
  "images": [
    "https://images.thdstatic.com/productImages/abc/svn/milwaukee-multi-tools-2626-20-64_1000.jpg"
  ],

  "current_price": 99,
  "original_price": null,
  "currency": "USD",

  "rating": 4.6246,
  "total_reviews": "6551",

  "in_stock": true,
  "is_buyable": true,
  "availability_type": "Shared",
  "is_discontinued": false,
  "backordered": false,

  "is_sponsored": false,
  "is_live_goods": false,
  "hide_price": false,
  "eco_rebates": null,
  "department": "Power Tools",
  "department_id": "569647",
  "class_number": "9",
  "breadcrumbs": ["Tools"],
  "badges": ["Best Seller"],

  "scraped_at": "2026-07-15T12:30:00.000Z"
}
```

#### Output Fields Explained

| Field | Type | Description |
|-------|------|-------------|
| `source` | String | Source indicator, always `homedepot_category` |
| `category_id` | String | The category ID used for browsing |
| `position` | Integer | Position of the product in the scraper batch (1-based) |
| `item_id` | String | Home Depot's unique product Item ID |
| `url` | String | Direct link to the product detail page on HomeDepot.com |
| `title` | String | Full product title/name |
| `brand` | String | Product brand name (e.g., RYOBI, DEWALT) |
| `model_no` | String | Manufacturer's model number |
| `sku_id` | String | Home Depot SKU identifier |
| `upc` | String | Universal Product Code (barcode) |
| `product_type` | String | Product type classification |
| `sku_classification` | String | SKU classification type |
| `thumbnail` | String | URL of the product thumbnail image |
| `images` | Array | List of full-size product image URLs |
| `current_price` | Number | Current selling price in USD |
| `original_price` | Number | Original/list price before discounts |
| `currency` | String | Currency code (always `USD`) |
| `rating` | Number | Average customer rating (0–5 scale) |
| `total_reviews` | String | Total number of customer reviews |
| `in_stock` | Boolean | Whether the product is currently in stock |
| `is_buyable` | Boolean | Whether the product can be purchased online |
| `availability_type` | String | Availability type (e.g., "Shared") |
| `is_discontinued` | Boolean | Whether the product has been discontinued |
| `backordered` | Boolean | Whether the product is on backorder |
| `is_sponsored` | Boolean | Whether this is a sponsored/promoted listing |
| `is_live_goods` | Boolean | Whether this is a live goods product (plants, etc.) |
| `hide_price` | Boolean | Whether the price is hidden |
| `eco_rebates` | String | Eco rebate information if available |
| `department` | String | Home Depot department name |
| `department_id` | String | Department ID number |
| `class_number` | String | Product class number |
| `breadcrumbs` | Array | Category breadcrumb trail |
| `badges` | Array | Product badges (e.g., "Best Seller") |
| `scraped_at` | String | ISO timestamp of when the data was extracted |

***

### Sorting Options

| Value | Description |
|-------|-------------|
| `best_match` | Home Depot's default relevance-based ranking |
| `top_sellers` | Most popular and best-selling products first |
| `top_rated` | Highest customer-rated products first |
| `price_low_to_high` | Cheapest products first |
| `price_high_to_low` | Most expensive products first |
| `newest` | Most recently added products first |

***

### How to Find Category IDs

Category IDs are found in Home Depot category page URLs. Look for the `N-` segment:

- **URL**: `https://www.homedepot.com/b/Tools-Power-Tools-Drills/N-5yc1vZc2bp`
- **Category ID**: `5yc1vZc2bp`

More examples:
| Category | URL | Category ID |
|----------|-----|-------------|
| Power Drills | `/b/Tools-Power-Tools-Drills/N-5yc1vZc2bp` | `5yc1vZc2bp` |
| Ceiling Fans | `/b/Lighting-Ceiling-Fans/N-5yc1vZc28b` | `5yc1vZc28b` |
| Paint | `/b/Paint/N-5yc1vZar2d` | `5yc1vZar2d` |

> 💡 **Tip**: To search products by keyword instead of category ID, check out [Home Depot Search Scraper](https://apify.com/burbn/home-depot-search-scraper).

***

### Performance & Limits

- **Pagination Limit** – Up to 30 pages per category (max 1,440 products at 48 items/page).
- **Items Per Page** – Configurable from 1 to 48 items per page for flexible result sizes.
- **Batching** – Data is saved in batches of 10 items to prevent loss during unexpected errors.
- **Rate Limiting** – Built-in 1.5-second delay between page requests for optimal throughput.
- **Concurrency** – Automatic key retry logic for smooth, uninterrupted performance.

***

### FAQ

- **Q: Where does the data come from?**
  - All data is fetched dynamically from Home Depot's product database through a reliable API.
- **Q: How do I find category IDs?**
  - Go to any category page on homedepot.com. The category ID is the `N-...` segment in the URL. See the [How to Find Category IDs](#how-to-find-category-ids) section. You can also search products by keyword using [Home Depot Search Scraper](https://apify.com/burbn/home-depot-search-scraper).
- **Q: Can I get pricing for a specific store?**
  - Yes! Pass the `storeId` and/or `zipcode` parameters to receive store-specific pricing, inventory counts, and pickup availability.
- **Q: How do I filter by price range?**
  - Use the `minPrice` and `maxPrice` input parameters. For example, set `minPrice: 50` and `maxPrice: 200` to only get products between $50 and $200.
- **Q: What data formats can I export?**
  - Apify supports exporting results as JSON, CSV, Excel (XLSX), XML, HTML, and RSS.

***

### Troubleshooting

| Issue | Cause | Solution |
|-------|-------|----------|
| "No category ID provided" | Empty or missing `categoryId` | Enter a valid category ID in the input |
| No products found | Category ID is invalid or has no products | Verify the category ID from a Home Depot category page URL |
| Invalid response format | Unexpected API response structure | Retry the run. If persistent, the API may be temporarily unavailable |
| Slow execution | Many pages or high items per page | Reduce `maxPages` or `itemsPerPage` to run faster |
| Missing store data | No `storeId` or `zipcode` provided | Add a valid Store ID or Zip Code for localized inventory and pricing |

***

### Why Choose This Actor?

- Category-based Home Depot product browsing
- Real-time pricing, ratings, and review data
- Store-specific inventory & pickup availability
- Advanced sorting, brand, and price filtering
- Category metadata including breadcrumbs and filters
- Automatic key & retries for reliability
- Downloadable as CSV, Excel, JSON, XML, or HTML

***

### Tags

`home depot scraper`, `home depot category scraper`, `home depot product data`, `home depot price tracker`, `home depot api`, `home depot inventory checker`, `category products scraper`, `e-commerce scraper`, `price monitoring tool`, `home improvement data`, `retail data extraction`, `apify actor`

***

### Get Started Now

1. Enter the **Category ID** (e.g., `5yc1vZc2bp`)
2. Choose the **Sort Order** (e.g., Top Sellers)
3. Optionally set **Brand**, **Price Range**, or **In Stock** filters
4. Add a **Store ID** or **Zip Code** for localized data
5. Set the **Maximum Pages** to scrape
6. Click **Start** to run the scraper
7. Export your data in JSON, CSV, or Excel format
8. Click ["Try for free"](https://apify.com?fpr=free-credits) to test the actor

***

*Built using Apify Platform | Optimized for Performance & Reliability*

# Actor input Schema

## `categoryId` (type: `string`):

💬 Enter the Home Depot category ID (navigation parameter). This is the N-... segment from Home Depot category page URLs (e.g., 5yc1vZc2bp, 5yc1vZc28b). Alternatively, search products using [Home Depot Search Scraper](https://apify.com/burbn/home-depot-search-scraper) to find category IDs.

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

🔄 Choose how to sort the category results.

## `brand` (type: `string`):

🔍 Only return products of a specific brand (e.g., DEWALT, Milwaukee, RYOBI). Leave empty for all brands.

## `minPrice` (type: `number`):

💰 Only return products with a price greater than or equal to this value (in USD).

## `maxPrice` (type: `number`):

💰 Only return products with a price less than or equal to this value (in USD).

## `inStock` (type: `boolean`):

✅ Only return products that are currently in stock / fulfillable.

## `storeId` (type: `string`):

📍 Home Depot store number used to localize pricing, inventory, and pickup availability (e.g., 121).

## `zipcode` (type: `string`):

🗺️ 5-digit US zip code used to localize delivery options and pricing (e.g., 30301).

## `itemsPerPage` (type: `integer`):

📊 Number of products to return per page (1-48). Default is 24.

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

📊 Number of result pages to scrape (1-30). More pages = more results but longer runtime. Each page uses one API call.

## Actor input object example

```json
{
  "categoryId": "5yc1vZc2bp",
  "sortBy": "best_match",
  "itemsPerPage": 24,
  "maxPages": 1
}
```

# Actor output Schema

## `products_overview` (type: `string`):

Open the dataset view with an overview of all products including title, brand, price, rating, and availability.

# 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 = {
    "categoryId": "5yc1vZc2bp",
    "sortBy": "best_match",
    "itemsPerPage": 24,
    "maxPages": 1
};

// Run the Actor and wait for it to finish
const run = await client.actor("burbn/home-depot-category-products").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 = {
    "categoryId": "5yc1vZc2bp",
    "sortBy": "best_match",
    "itemsPerPage": 24,
    "maxPages": 1,
}

# Run the Actor and wait for it to finish
run = client.actor("burbn/home-depot-category-products").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "categoryId": "5yc1vZc2bp",
  "sortBy": "best_match",
  "itemsPerPage": 24,
  "maxPages": 1
}' |
apify call burbn/home-depot-category-products --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=burbn/home-depot-category-products",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Home Depot Category Products Scraper",
        "description": "Extract Home Depot products by Category ID at scale. Get real-time pricing, stock status, ratings, SKUs, images & store inventory. Fast, reliable & easy export to CSV/JSON!",
        "version": "1.0",
        "x-build-id": "D73ay3inIPkocEA7i"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/burbn~home-depot-category-products/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-burbn-home-depot-category-products",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/burbn~home-depot-category-products/runs": {
            "post": {
                "operationId": "runs-sync-burbn-home-depot-category-products",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/burbn~home-depot-category-products/run-sync": {
            "post": {
                "operationId": "run-sync-burbn-home-depot-category-products",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "categoryId"
                ],
                "properties": {
                    "categoryId": {
                        "title": "📂 Category ID",
                        "minLength": 1,
                        "maxLength": 500,
                        "type": "string",
                        "description": "💬 Enter the Home Depot category ID (navigation parameter). This is the N-... segment from Home Depot category page URLs (e.g., 5yc1vZc2bp, 5yc1vZc28b). Alternatively, search products using [Home Depot Search Scraper](https://apify.com/burbn/home-depot-search-scraper) to find category IDs.",
                        "default": "5yc1vZc2bp"
                    },
                    "sortBy": {
                        "title": "📊 Sort Order",
                        "enum": [
                            "best_match",
                            "top_sellers",
                            "top_rated",
                            "price_low_to_high",
                            "price_high_to_low",
                            "newest"
                        ],
                        "type": "string",
                        "description": "🔄 Choose how to sort the category results.",
                        "default": "best_match"
                    },
                    "brand": {
                        "title": "🏷️ Brand Filter",
                        "type": "string",
                        "description": "🔍 Only return products of a specific brand (e.g., DEWALT, Milwaukee, RYOBI). Leave empty for all brands."
                    },
                    "minPrice": {
                        "title": "💵 Minimum Price ($)",
                        "minimum": 0,
                        "type": "number",
                        "description": "💰 Only return products with a price greater than or equal to this value (in USD)."
                    },
                    "maxPrice": {
                        "title": "💎 Maximum Price ($)",
                        "minimum": 0,
                        "type": "number",
                        "description": "💰 Only return products with a price less than or equal to this value (in USD)."
                    },
                    "inStock": {
                        "title": "📦 In Stock Only",
                        "type": "boolean",
                        "description": "✅ Only return products that are currently in stock / fulfillable."
                    },
                    "storeId": {
                        "title": "🏬 Store ID",
                        "type": "string",
                        "description": "📍 Home Depot store number used to localize pricing, inventory, and pickup availability (e.g., 121)."
                    },
                    "zipcode": {
                        "title": "📮 Zip Code",
                        "pattern": "^[0-9]{5}$",
                        "type": "string",
                        "description": "🗺️ 5-digit US zip code used to localize delivery options and pricing (e.g., 30301)."
                    },
                    "itemsPerPage": {
                        "title": "📦 Items Per Page",
                        "minimum": 1,
                        "maximum": 48,
                        "type": "integer",
                        "description": "📊 Number of products to return per page (1-48). Default is 24.",
                        "default": 24
                    },
                    "maxPages": {
                        "title": "📄 Maximum Pages",
                        "minimum": 1,
                        "maximum": 30,
                        "type": "integer",
                        "description": "📊 Number of result pages to scrape (1-30). More pages = more results but longer runtime. Each page uses one API call.",
                        "default": 1
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
