# Home Depot Search Scraper (`burbn/home-depot-search-scraper`) Actor

Search Home Depot products by keyword and extract real-time pricing, ratings, reviews, stock availability, and store-level inventory. Filter by brand, price range, and sort by top sellers or top rated. Get pickup, delivery, and express shipping details for any US store. Export as JSON, CSV, or Excel

- **URL**: https://apify.com/burbn/home-depot-search-scraper.md
- **Developed by:** [Kevin](https://apify.com/burbn) (community)
- **Categories:** Automation, E-commerce, Developer tools
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.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 Search Scraper – Product Data Extractor

**Search Home Depot products by keyword and extract detailed product data including pricing, ratings, reviews, availability, fulfillment options, store inventory, and delivery timelines. 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

- **Keyword Search** – Search Home Depot's full product catalog using any keyword or phrase.
- **Pagination Support** – Scrape up to 30 pages of search 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.
- **Fulfillment Details** – Get complete pickup, delivery, and express delivery information including timelines and charges.

---

### Use Cases

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

---

### Quick Start

#### 1. Basic – Simple Keyword Search
```json
{
  "query": "ceiling fan",
  "maxPages": 1
}
````

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

```json
{
  "query": "power drill",
  "sortBy": "price_low_to_high",
  "brand": "DEWALT",
  "maxPages": 3
}
```

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

```json
{
  "query": "outdoor furniture",
  "storeId": "121",
  "zipcode": "30301",
  "inStock": true,
  "maxPages": 5
}
```

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

```json
{
  "query": "paint",
  "sortBy": "top_rated",
  "brand": "BEHR",
  "minPrice": 20,
  "maxPrice": 100,
  "inStock": true,
  "itemsPerPage": 48,
  "maxPages": 10
}
```

***

### Input Parameters

| Parameter | Type | Required | Description | Default | Example |
|-----------|------|----------|-------------|---------|---------|
| `query` | String | Yes | Search keyword or phrase to find products on Home Depot | - | `"ceiling fan"`, `"power drill"`, `"paint"` |
| `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_search",
  "search_query": "ceiling fan",
  "position": 1,

  "item_id": "326025816",
  "url": "https://www.homedepot.com/p/Hampton-Bay-Windward-IV-52-in-Indoor-LED-Matte-White-Ceiling-Fan/326025816",
  "title": "Windward IV 52 in. Indoor LED Matte White Ceiling Fan with Light Kit",
  "brand": "Hampton Bay",
  "model_no": "26611",
  "sku_id": "326025816",
  "upc": "082392526252",
  "product_type": "MERCHANDISE",

  "thumbnail": "https://images.thdstatic.com/productImages/...",
  "images": [
    "https://images.thdstatic.com/productImages/full/1.jpg",
    "https://images.thdstatic.com/productImages/full/2.jpg"
  ],

  "current_price": 89.97,
  "original_price": 119.00,
  "currency": "USD",
  "unit_of_measure": "each",
  "units_per_case": null,
  "unit_price": null,

  "rating": 4.3,
  "total_reviews": 2847,

  "in_stock": true,
  "is_buyable": true,
  "availability_type": "Buy Online Pick Up In Store",
  "is_discontinued": false,
  "backordered": false,

  "is_sponsored": false,
  "is_live_goods": false,
  "department": "Lighting",
  "department_id": "15",
  "badges": ["Best Seller", "Free Shipping"],

  "pickup_available": true,
  "pickup_store_name": "Buckhead",
  "pickup_store_id": "121",
  "pickup_store_phone": "(404) 555-0123",
  "pickup_store_state": "GA",
  "pickup_in_stock": true,
  "pickup_quantity": 12,

  "delivery_available": true,
  "delivery_free_shipping": true,
  "delivery_timeline": "Delivery by Jul 18",
  "delivery_total_charge": 0,
  "delivery_start_date": "2026-07-17",
  "delivery_end_date": "2026-07-18",
  "delivery_online_quantity": 350,

  "express_delivery_available": true,
  "express_delivery_charge": 9.99,
  "express_delivery_timeline": "Same-Day Delivery",

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

#### Output Fields Explained

| Field | Type | Description |
|-------|------|-------------|
| `source` | String | Source indicator, always `homedepot_search` |
| `search_query` | String | The keyword used for the search |
| `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 |
| `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`) |
| `unit_of_measure` | String | Unit of measure (e.g., "each", "sq. ft.") |
| `units_per_case` | Number | Number of units per case (for bulk items) |
| `unit_price` | Number | Price per individual unit |
| `rating` | Number | Average customer rating (0–5 scale) |
| `total_reviews` | Integer | 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., "Buy Online Pick Up In Store") |
| `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.) |
| `department` | String | Home Depot department name |
| `department_id` | String | Department ID number |
| `badges` | Array | Product badges (e.g., "Best Seller", "Free Shipping") |
| `pickup_available` | Boolean | Whether in-store pickup is available |
| `pickup_store_name` | String | Name of the nearest pickup store |
| `pickup_store_id` | String | Store ID for pickup location |
| `pickup_store_phone` | String | Phone number of the pickup store |
| `pickup_store_state` | String | State abbreviation of the pickup store |
| `pickup_in_stock` | Boolean | Whether the item is in stock at the pickup store |
| `pickup_quantity` | Number | Quantity available at the pickup store |
| `delivery_available` | Boolean | Whether home delivery is available |
| `delivery_free_shipping` | Boolean | Whether free shipping is offered |
| `delivery_timeline` | String | Estimated delivery timeline text |
| `delivery_total_charge` | Number | Total delivery charge in USD |
| `delivery_start_date` | String | Earliest estimated delivery date |
| `delivery_end_date` | String | Latest estimated delivery date |
| `delivery_online_quantity` | Number | Quantity available in the online warehouse |
| `express_delivery_available` | Boolean | Whether same-day/express delivery is available |
| `express_delivery_charge` | Number | Express delivery fee in USD |
| `express_delivery_timeline` | String | Express delivery timeline text |
| `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 |

***

### Performance & Limits

- **Pagination Limit** – Up to 30 pages per query (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 rotation and 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 middleware.
- **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: Can I scrape all products in a category?**
  - Use a broad search keyword related to the category (e.g., "lighting", "flooring", "power tools") and increase `maxPages` to capture more results.
- **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 search query provided" | Empty or missing `query` | Enter a valid search term in the input |
| No products found | Keyword is too specific or has no matching products | Broaden the search query or remove brand/price filters |
| 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?

- Keyword-based Home Depot product search
- Real-time pricing, ratings, and review data
- Store-specific inventory & pickup availability
- Complete fulfillment details (delivery, express, pickup)
- Advanced sorting, brand, and price filtering
- Automatic key-rotation & retries for reliability
- Downloadable as CSV, Excel, JSON, XML, or HTML

***

### Tags

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

***

### Get Started Now

1. Enter the **Search Query** (e.g., `ceiling fan`)
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

## `query` (type: `string`):

💬 Enter your search keyword or phrase (e.g., 'fan', 'paint', 'flooring'). This is the main search term to find products on Home Depot.

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

🔄 Choose how to sort the search results.

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

🔍 Only return products of a specific brand (e.g., DREO, MOKSILED, 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
{
  "query": "fan",
  "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 = {
    "query": "fan",
    "sortBy": "best_match",
    "itemsPerPage": 24,
    "maxPages": 1
};

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

# Run the Actor and wait for it to finish
run = client.actor("burbn/home-depot-search-scraper").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 '{
  "query": "fan",
  "sortBy": "best_match",
  "itemsPerPage": 24,
  "maxPages": 1
}' |
apify call burbn/home-depot-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Home Depot Search Scraper",
        "description": "Search Home Depot products by keyword and extract real-time pricing, ratings, reviews, stock availability, and store-level inventory. Filter by brand, price range, and sort by top sellers or top rated. Get pickup, delivery, and express shipping details for any US store. Export as JSON, CSV, or Excel",
        "version": "2.0",
        "x-build-id": "mlk7Bh1fnTaExo6lt"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/burbn~home-depot-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-burbn-home-depot-search-scraper",
                "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-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-burbn-home-depot-search-scraper",
                "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-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-burbn-home-depot-search-scraper",
                "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": [
                    "query"
                ],
                "properties": {
                    "query": {
                        "title": "🔎 Search Query",
                        "minLength": 1,
                        "maxLength": 500,
                        "type": "string",
                        "description": "💬 Enter your search keyword or phrase (e.g., 'fan', 'paint', 'flooring'). This is the main search term to find products on Home Depot.",
                        "default": "fan"
                    },
                    "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 search results.",
                        "default": "best_match"
                    },
                    "brand": {
                        "title": "🏷️ Brand Filter",
                        "type": "string",
                        "description": "🔍 Only return products of a specific brand (e.g., DREO, MOKSILED, 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
