{
  "data": {
    "id": "wuFfPsyQX2r5dL5kR",
    "actId": "QFcedaopb4W0h72DA",
    "userId": "zq8lKbpLzTjGDayPC",
    "startedAt": "2026-10-31T18:24:03.144Z",
    "finishedAt": "2026-10-31T18:24:55.382Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 52169,
      "runTimeSecs": 52.169,
      "computeUnits": 0.057965555555555555,
      "imageSizeBytes": 6742368256
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "GK9YjZRyQZVzOdoH5",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Home Depot Products, Prices & Store Stock Input\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"Choose what to scrape: a keyword search, a category browse page, or specific Home Depot item IDs.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"search\",\n        \"category\",\n        \"products\"\n      ],\n      \"enumTitles\": [\n        \"Search by keyword\",\n        \"Browse a category\",\n        \"Look up item IDs\"\n      ],\n      \"default\": \"search\",\n      \"prefill\": \"search\"\n    },\n    \"searchQueries\": {\n      \"title\": \"Search Queries\",\n      \"type\": \"array\",\n      \"description\": \"One keyword per line, for example 'cordless drill'. Used in search mode.\",\n      \"editor\": \"stringList\",\n      \"prefill\": [\n        \"drill\"\n      ]\n    },\n    \"categoryUrls\": {\n      \"title\": \"Category URLs or Browse Codes\",\n      \"type\": \"array\",\n      \"description\": \"Home Depot category URLs (/b/...) or browse codes (N-...). Used in category mode.\",\n      \"editor\": \"stringList\"\n    },\n    \"itemIds\": {\n      \"title\": \"Item IDs or Product URLs\",\n      \"type\": \"array\",\n      \"description\": \"Home Depot item IDs or product URLs (/p/...). Used in products mode.\",\n      \"editor\": \"stringList\"\n    },\n    \"storeId\": {\n      \"title\": \"Store ID\",\n      \"type\": \"string\",\n      \"description\": \"Home Depot store number for store-local prices and pickup stock. 121 is Cumberland, GA.\",\n      \"editor\": \"textfield\",\n      \"default\": \"121\"\n    },\n    \"zipCode\": {\n      \"title\": \"ZIP Code (optional)\",\n      \"type\": \"string\",\n      \"description\": \"Used to find the nearest store when Store ID is empty, and for delivery estimates.\",\n      \"editor\": \"textfield\"\n    },\n    \"sortBy\": {\n      \"title\": \"Sort Order\",\n      \"type\": \"string\",\n      \"description\": \"How to order the products in each search or category.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"relevance\",\n        \"top_sellers\",\n        \"price_low_to_high\",\n        \"price_high_to_low\",\n        \"top_rated\",\n        \"newest\"\n      ],\n      \"enumTitles\": [\n        \"Relevance\",\n        \"Top Sellers\",\n        \"Price: Low to High\",\n        \"Price: High to Low\",\n        \"Top Rated\",\n        \"Newest\"\n      ],\n      \"default\": \"relevance\"\n    },\n    \"priceMin\": {\n      \"title\": \"Minimum Price (USD)\",\n      \"type\": \"number\",\n      \"description\": \"Only keep products at or above this price.\",\n      \"minimum\": 0,\n      \"editor\": \"number\"\n    },\n    \"priceMax\": {\n      \"title\": \"Maximum Price (USD)\",\n      \"type\": \"number\",\n      \"description\": \"Only keep products at or below this price.\",\n      \"minimum\": 0,\n      \"editor\": \"number\"\n    },\n    \"brand\": {\n      \"title\": \"Brand (optional)\",\n      \"type\": \"string\",\n      \"description\": \"Keep only products whose brand contains this text, for example Milwaukee.\",\n      \"editor\": \"textfield\"\n    },\n    \"minRating\": {\n      \"title\": \"Minimum Rating\",\n      \"type\": \"number\",\n      \"description\": \"Drop products rated below this average, from 0 to 5.\",\n      \"minimum\": 0,\n      \"maximum\": 5,\n      \"editor\": \"number\"\n    },\n    \"onlyOnSale\": {\n      \"title\": \"Only Products On Sale\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep only products with a real discount, promotion, special buy or clearance.\",\n      \"default\": false,\n      \"prefill\": false,\n      \"editor\": \"checkbox\"\n    },\n    \"onlyClearance\": {\n      \"title\": \"Only Clearance Products\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep only products with a clearance price.\",\n      \"default\": false,\n      \"prefill\": false,\n      \"editor\": \"checkbox\"\n    },\n    \"onlyInStock\": {\n      \"title\": \"Only Products In Stock\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep only products available for pickup at the selected store or for delivery.\",\n      \"default\": false,\n      \"prefill\": false,\n      \"editor\": \"checkbox\"\n    },\n    \"includeSponsored\": {\n      \"title\": \"Include Sponsored Products\",\n      \"type\": \"boolean\",\n      \"description\": \"Include paid product placements alongside organic results.\",\n      \"default\": false,\n      \"prefill\": false,\n      \"editor\": \"checkbox\"\n    },\n    \"filterKeywords\": {\n      \"title\": \"Title Keywords (optional)\",\n      \"type\": \"string\",\n      \"description\": \"Comma-separated words; keep only products whose title contains at least one, for example chainsaw,chain saw.\",\n      \"editor\": \"textfield\"\n    },\n    \"maxItems\": {\n      \"title\": \"Maximum Products\",\n      \"type\": \"integer\",\n      \"description\": \"Overall maximum number of products to save.\",\n      \"minimum\": 1,\n      \"maximum\": 5000,\n      \"default\": 100,\n      \"prefill\": 3,\n      \"editor\": \"number\"\n    },\n    \"maxItemsPerQuery\": {\n      \"title\": \"Maximum Products Per Query or Category\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum products to save from each search query or category.\",\n      \"minimum\": 1,\n      \"maximum\": 1000,\n      \"default\": 100,\n      \"prefill\": 3,\n      \"editor\": \"number\"\n    },\n    \"maxPages\": {\n      \"title\": \"Maximum Pages Per Source\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum result pages to read for each search or category. Home Depot returns up to 24 products per page and 30 pages per browse.\",\n      \"minimum\": 1,\n      \"maximum\": 30,\n      \"default\": 30,\n      \"editor\": \"number\"\n    },\n    \"includeDetails\": {\n      \"title\": \"Include Product Details\",\n      \"type\": \"boolean\",\n      \"description\": \"Add description, specs, key features, UPC/GTIN, all images, videos and variants for every product.\",\n      \"default\": true,\n      \"prefill\": false,\n      \"editor\": \"checkbox\"\n    },\n    \"includeReviews\": {\n      \"title\": \"Include Reviews\",\n      \"type\": \"boolean\",\n      \"description\": \"Add customer reviews and the rating breakdown for every product.\",\n      \"default\": false,\n      \"prefill\": false,\n      \"editor\": \"checkbox\"\n    },\n    \"maxReviewsPerProduct\": {\n      \"title\": \"Maximum Reviews Per Product\",\n      \"type\": \"integer\",\n      \"description\": \"Review cap for each product when reviews are enabled.\",\n      \"minimum\": 0,\n      \"maximum\": 100,\n      \"default\": 20,\n      \"editor\": \"number\"\n    },\n    \"reviewsSort\": {\n      \"title\": \"Review Order\",\n      \"type\": \"string\",\n      \"description\": \"How to order reviews when reviews are enabled.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"most_recent\",\n        \"most_helpful\",\n        \"oldest\",\n        \"highest_rating\",\n        \"lowest_rating\",\n        \"photos_first\"\n      ],\n      \"enumTitles\": [\n        \"Most recent\",\n        \"Most helpful\",\n        \"Oldest\",\n        \"Highest rating\",\n        \"Lowest rating\",\n        \"Photos first\"\n      ],\n      \"default\": \"most_recent\"\n    },\n    \"includeQuestions\": {\n      \"title\": \"Include Questions & Answers\",\n      \"type\": \"boolean\",\n      \"description\": \"Add customer questions and their answers for every product.\",\n      \"default\": false,\n      \"prefill\": false,\n      \"editor\": \"checkbox\"\n    },\n    \"maxQuestionsPerProduct\": {\n      \"title\": \"Maximum Questions Per Product\",\n      \"type\": \"integer\",\n      \"description\": \"Question cap for each product when questions are enabled.\",\n      \"minimum\": 0,\n      \"maximum\": 50,\n      \"default\": 10,\n      \"editor\": \"number\"\n    },\n    \"includeStoreAvailability\": {\n      \"title\": \"Include Store Availability\",\n      \"type\": \"boolean\",\n      \"description\": \"Add store-local pickup quantity, pickup/delivery split and delivery details.\",\n      \"default\": true,\n      \"prefill\": false,\n      \"editor\": \"checkbox\"\n    },\n    \"includeAisleBay\": {\n      \"title\": \"Include Aisle and Bay\",\n      \"type\": \"boolean\",\n      \"description\": \"Add the aisle and bay where the product sits at the selected store.\",\n      \"default\": false,\n      \"prefill\": false,\n      \"editor\": \"checkbox\"\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# Home Depot Products, Prices & Store Stock\n\nScrape Home Depot products from a keyword search, a category page or a list of item IDs. Every row can include the store-local price, pickup and delivery availability, aisle and bay, full specifications, media, variants, and optional reviews and Q&A.\n\n## What this actor does\n\n- **Three ways to start** — search by keyword, browse a whole category, or look up specific item IDs and product URLs.\n- **Store-local pricing and stock** — pick a Home Depot store (or a ZIP to find the nearest one) and read that store's price and shelf pickup quantity.\n- **Pickup and delivery kept separate** — shelf pickup quantity, ship-to-store availability, and online/delivery quantity are separate fields and are never mixed.\n- **Full product detail** — description, highlights, specification groups, key features, dimensions, UPC/GTIN, all images, videos, 360/AR links, bundle contents and variant swatches.\n- **Optional reviews and Q&A** — add a capped set of customer reviews with rating breakdown, and customer questions with their answers.\n- **Filters and pagination** — price, brand, rating, sale, clearance, stock, sponsored and title filters, plus multi-page collection with duplicate removal.\n- **Empty fields are omitted** from each record instead of being returned as null or blank.\n\n## Output per product\n\n**Identity** — `recordType`, `itemId`, `parentId`, `url`, `title`, `brand`, `modelNumber`, `storeSku`, `productType`, `upc`, `gtin13`, `brandUrl`, `collection`, `scrapedAt`\n\n**Pricing** — `price`, `originalPrice`, `currency`, `discountAmount`, `discountPercent`, `unitOfMeasure`, `unitPrice`, `bulkPrice`, `clearancePrice`, `isSpecialBuy`, `isClearance`, `onPromotion`, `promotionTag`, `savingsCenter`, `promotionStartsAt`, `promotionEndsAt`, `conditionalPromotions`\n\n**Ratings and reviews** — `rating`, `reviewCount`, `ratingDistribution`, `recommendedCount`, `notRecommendedCount`, `reviews[]` with text, author, date, verified purchase, photos, responses, and source\n\n**Media and content** — `imageUrl`, `images[]`, `videos[]`, `threeSixty`, `augmentedReality`, `description`, `highlights[]`, `specifications[]`, `keyFeatures[]`, `dimensions[]`, `isBundle`, `bundleItems[]`, `subscription`, `installation`, `prop65`, `protectionPlanSkus[]`\n\n**Variants and taxonomy** — `hasVariants`, `variantCount`, `variants[]`, `categories[]`, `breadcrumbs[]`, `department`, `badges[]`, `isSponsored`\n\n**Store and fulfillment** — `storeId`, `storeName`, `storeCity`, `storeState`, `storePostalCode`, `storePhone`, `pickupAvailable`, `storeQuantity`, `pickupInStock`, `pickupLimited`, `curbsidePickup`, `pickupMaxQuantity`, `shipToStoreAvailable`, `deliveryAvailable`, `deliveryQuantity`, `deliveryEta`, `deliveryCharge`, `freeShipping`, `backordered`, `backorderDate`, `pickupOptions[]`, `deliveryOptions[]`, `aisle`, `bay`, `aisleBay`, `quantityLimit`, `returnPolicy`, `isBuyable`, `discontinued`\n\n**Questions** — `questions[]` with the question, author, date, answers and photos\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | select | `search` | `search`, `category`, or `products` |\n| `searchQueries` | list | – | Keywords for search mode, one per line |\n| `categoryUrls` | list | – | Category `/b/...` URLs or browse codes (`N-...`) |\n| `itemIds` | list | – | Item IDs or `/p/...` product URLs |\n| `storeId` | string | `121` | Store number for price and shelf stock |\n| `zipCode` | string | – | Finds the nearest store when `storeId` is empty; also used for delivery estimates |\n| `sortBy` | select | `relevance` | `relevance`, `top_sellers`, `price_low_to_high`, `price_high_to_low`, `top_rated`, `newest` |\n| `priceMin` / `priceMax` | number | – | USD price bounds |\n| `brand` | string | – | Case-insensitive brand filter |\n| `minRating` | number | – | Drop products rated below this value (0–5) |\n| `onlyOnSale` | boolean | `false` | Keep real discounts, promotions, special buys and clearance |\n| `onlyClearance` | boolean | `false` | Keep clearance products only |\n| `onlyInStock` | boolean | `false` | Keep products available for pickup or delivery |\n| `includeSponsored` | boolean | `false` | Include paid placements |\n| `filterKeywords` | string | – | Comma-separated title words to keep |\n| `maxItems` | integer | `100` | Overall product cap (1–5000) |\n| `maxItemsPerQuery` | integer | `100` | Cap per query or category |\n| `maxPages` | integer | `30` | Pages per source (1–30; 24 products per page) |\n| `includeDetails` | boolean | `true` | Add specs, description, UPC/GTIN, media and variants |\n| `includeReviews` | boolean | `false` | Add reviews and rating breakdown |\n| `maxReviewsPerProduct` | integer | `20` | Review cap per product |\n| `reviewsSort` | select | `most_recent` | `most_recent`, `most_helpful`, `oldest`, `highest_rating`, `lowest_rating`, `photos_first` |\n| `includeQuestions` | boolean | `false` | Add customer questions and answers |\n| `maxQuestionsPerProduct` | integer | `10` | Question cap per product |\n| `includeStoreAvailability` | boolean | `true` | Add pickup/delivery stock fields |\n| `includeAisleBay` | boolean | `false` | Add aisle and bay for in-store SKUs |\n\nLegacy inputs from earlier versions (`searchQuery`, `startUrls`) continue to work and are mapped automatically. No proxy setup or API key is needed.\n\n## Examples\n\n### Search for drills under $300\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"cordless drill\"],\n  \"storeId\": \"121\",\n  \"priceMax\": 300,\n  \"sortBy\": \"top_sellers\",\n  \"maxItems\": 50,\n  \"includeDetails\": true,\n  \"includeStoreAvailability\": true\n}\n```\n\n### Browse a category and keep only clearance\n\n```json\n{\n  \"mode\": \"category\",\n  \"categoryUrls\": [\"https://www.homedepot.com/b/Tools-Power-Tools-Drills/N-5yc1vZc27f\"],\n  \"storeId\": \"121\",\n  \"onlyClearance\": true,\n  \"maxItems\": 200,\n  \"maxPages\": 10\n}\n```\n\n### Look up specific item IDs with reviews and aisle locations\n\n```json\n{\n  \"mode\": \"products\",\n  \"itemIds\": [\"320326787\", \"https://www.homedepot.com/p/Milwaukee-M18-FUEL-18V-Lithium-Ion-Brushless-Cordless-Hammer-Drill-and-Impact-Driver-Combo-Kit-2-Tool-with-2-Batteries-3697-22/320326787\"],\n  \"storeId\": \"121\",\n  \"includeDetails\": true,\n  \"includeReviews\": true,\n  \"maxReviewsPerProduct\": 20,\n  \"includeStoreAvailability\": true,\n  \"includeAisleBay\": true\n}\n```\n\n### Find the nearest store from a ZIP\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"pressure washer\"],\n  \"storeId\": \"\",\n  \"zipCode\": \"30339\",\n  \"includeStoreAvailability\": true,\n  \"maxItems\": 25\n}\n```\n\n## Use cases\n\n- **Price monitoring** — compare store-local prices and promotions over time.\n- **Restock and pickup tracking** — watch shelf pickup quantities at one store.\n- **Assortment and catalog research** — pull a whole category with specs, brands and variants.\n- **Comparison shopping** — collect models, UPCs, ratings and media for a shortlist.\n- **Voice-of-customer research** — sample reviews and Q&A across competing products.\n\n## FAQ\n\n**Is this affiliated with Home Depot?**\nNo. This is an independent, third-party actor that reads publicly visible Home Depot product data. It is not operated by or affiliated with The Home Depot.\n\n**Which store are the prices and stock from?**\nThey come from the `storeId` you enter (default 121, Cumberland, GA). If you leave `storeId` empty and supply `zipCode`, the nearest store is used. Change the store to see that store's price and shelf quantity.\n\n**What is the difference between pickup and delivery stock?**\n`storeQuantity` and `pickupInStock` are the shelf quantity available for pickup at the selected store. `deliveryQuantity`, `deliveryAvailable` and the delivery options describe the online/delivery pool. They are separate pools and are never added together.\n\n**Why are some fields missing on a product?**\nHome Depot does not expose every field for every product. Fields with no real value are omitted rather than filled with null, zero or a placeholder. Variants, specs, videos and aisle locations appear only when the product has them. Aisle and bay are added only for products with pickup stock at the selected store.\n\n**How many products can one run return?**\n`maxItems` is the overall cap and `maxItemsPerQuery` caps each query or category. Each page holds up to 24 products, and a category can be paged up to 30 times (720 products). For a larger category, narrow it by price or brand, or split it into smaller categories.\n\n**Can I get every review for a product with thousands of reviews?**\nNo. Reviews are optional and capped by `maxReviewsPerProduct` (default 20). The actor reads review pages until it reaches that cap or the end of the review list. The total review count and rating breakdown still show the full picture, but only the requested number of review texts is saved.\n\n**Do I need a proxy or an API key?**\nNo. Enter a store and the products you want; the actor handles access automatically.\n\n**What happens if Home Depot refuses a request?**\nThe actor retries with a few fresh browser sessions. If every attempt is refused, the run ends with a status message naming the source and saves no placeholder rows; re-run later.\n\n**Does this work for Home Depot Canada or Mexico?**\nNo. This actor covers the US storefront only. Canadian and Mexican stores are separate sites with different product IDs and stock.\n\n**Why does the price differ from the first page I see on the website?**\nThe site personalises price and availability by store. Make sure the `storeId` in your input is the store you are comparing against.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "home-depot-search-results-and-price-tracker",
      "title": "Home Depot Products, Prices & Store Stock",
      "description": "Scrape Home Depot search, category and product pages: store-local prices, pickup and delivery stock, aisle and bay, specs, variants, reviews and Q&A.",
      "version": "1.0",
      "buildTag": "latest",
      "defaultRunOptions": {
        "build": "latest",
        "timeoutSecs": 3600,
        "memoryMbytes": 2048
      },
      "input": {
        "title": "Home Depot Products, Prices & Store Stock Input",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "Choose what to scrape: a keyword search, a category browse page, or specific Home Depot item IDs.",
            "editor": "select",
            "enum": [
              "search",
              "category",
              "products"
            ],
            "enumTitles": [
              "Search by keyword",
              "Browse a category",
              "Look up item IDs"
            ],
            "default": "search",
            "prefill": "search"
          },
          "searchQueries": {
            "title": "Search Queries",
            "type": "array",
            "description": "One keyword per line, for example 'cordless drill'. Used in search mode.",
            "editor": "stringList",
            "prefill": [
              "drill"
            ]
          },
          "categoryUrls": {
            "title": "Category URLs or Browse Codes",
            "type": "array",
            "description": "Home Depot category URLs (/b/...) or browse codes (N-...). Used in category mode.",
            "editor": "stringList"
          },
          "itemIds": {
            "title": "Item IDs or Product URLs",
            "type": "array",
            "description": "Home Depot item IDs or product URLs (/p/...). Used in products mode.",
            "editor": "stringList"
          },
          "storeId": {
            "title": "Store ID",
            "type": "string",
            "description": "Home Depot store number for store-local prices and pickup stock. 121 is Cumberland, GA.",
            "editor": "textfield",
            "default": "121"
          },
          "zipCode": {
            "title": "ZIP Code (optional)",
            "type": "string",
            "description": "Used to find the nearest store when Store ID is empty, and for delivery estimates.",
            "editor": "textfield"
          },
          "sortBy": {
            "title": "Sort Order",
            "type": "string",
            "description": "How to order the products in each search or category.",
            "editor": "select",
            "enum": [
              "relevance",
              "top_sellers",
              "price_low_to_high",
              "price_high_to_low",
              "top_rated",
              "newest"
            ],
            "enumTitles": [
              "Relevance",
              "Top Sellers",
              "Price: Low to High",
              "Price: High to Low",
              "Top Rated",
              "Newest"
            ],
            "default": "relevance"
          },
          "priceMin": {
            "title": "Minimum Price (USD)",
            "type": "number",
            "description": "Only keep products at or above this price.",
            "minimum": 0,
            "editor": "number"
          },
          "priceMax": {
            "title": "Maximum Price (USD)",
            "type": "number",
            "description": "Only keep products at or below this price.",
            "minimum": 0,
            "editor": "number"
          },
          "brand": {
            "title": "Brand (optional)",
            "type": "string",
            "description": "Keep only products whose brand contains this text, for example Milwaukee.",
            "editor": "textfield"
          },
          "minRating": {
            "title": "Minimum Rating",
            "type": "number",
            "description": "Drop products rated below this average, from 0 to 5.",
            "minimum": 0,
            "maximum": 5,
            "editor": "number"
          },
          "onlyOnSale": {
            "title": "Only Products On Sale",
            "type": "boolean",
            "description": "Keep only products with a real discount, promotion, special buy or clearance.",
            "default": false,
            "prefill": false,
            "editor": "checkbox"
          },
          "onlyClearance": {
            "title": "Only Clearance Products",
            "type": "boolean",
            "description": "Keep only products with a clearance price.",
            "default": false,
            "prefill": false,
            "editor": "checkbox"
          },
          "onlyInStock": {
            "title": "Only Products In Stock",
            "type": "boolean",
            "description": "Keep only products available for pickup at the selected store or for delivery.",
            "default": false,
            "prefill": false,
            "editor": "checkbox"
          },
          "includeSponsored": {
            "title": "Include Sponsored Products",
            "type": "boolean",
            "description": "Include paid product placements alongside organic results.",
            "default": false,
            "prefill": false,
            "editor": "checkbox"
          },
          "filterKeywords": {
            "title": "Title Keywords (optional)",
            "type": "string",
            "description": "Comma-separated words; keep only products whose title contains at least one, for example chainsaw,chain saw.",
            "editor": "textfield"
          },
          "maxItems": {
            "title": "Maximum Products",
            "type": "integer",
            "description": "Overall maximum number of products to save.",
            "minimum": 1,
            "maximum": 5000,
            "default": 100,
            "prefill": 3,
            "editor": "number"
          },
          "maxItemsPerQuery": {
            "title": "Maximum Products Per Query or Category",
            "type": "integer",
            "description": "Maximum products to save from each search query or category.",
            "minimum": 1,
            "maximum": 1000,
            "default": 100,
            "prefill": 3,
            "editor": "number"
          },
          "maxPages": {
            "title": "Maximum Pages Per Source",
            "type": "integer",
            "description": "Maximum result pages to read for each search or category. Home Depot returns up to 24 products per page and 30 pages per browse.",
            "minimum": 1,
            "maximum": 30,
            "default": 30,
            "editor": "number"
          },
          "includeDetails": {
            "title": "Include Product Details",
            "type": "boolean",
            "description": "Add description, specs, key features, UPC/GTIN, all images, videos and variants for every product.",
            "default": true,
            "prefill": false,
            "editor": "checkbox"
          },
          "includeReviews": {
            "title": "Include Reviews",
            "type": "boolean",
            "description": "Add customer reviews and the rating breakdown for every product.",
            "default": false,
            "prefill": false,
            "editor": "checkbox"
          },
          "maxReviewsPerProduct": {
            "title": "Maximum Reviews Per Product",
            "type": "integer",
            "description": "Review cap for each product when reviews are enabled.",
            "minimum": 0,
            "maximum": 100,
            "default": 20,
            "editor": "number"
          },
          "reviewsSort": {
            "title": "Review Order",
            "type": "string",
            "description": "How to order reviews when reviews are enabled.",
            "editor": "select",
            "enum": [
              "most_recent",
              "most_helpful",
              "oldest",
              "highest_rating",
              "lowest_rating",
              "photos_first"
            ],
            "enumTitles": [
              "Most recent",
              "Most helpful",
              "Oldest",
              "Highest rating",
              "Lowest rating",
              "Photos first"
            ],
            "default": "most_recent"
          },
          "includeQuestions": {
            "title": "Include Questions & Answers",
            "type": "boolean",
            "description": "Add customer questions and their answers for every product.",
            "default": false,
            "prefill": false,
            "editor": "checkbox"
          },
          "maxQuestionsPerProduct": {
            "title": "Maximum Questions Per Product",
            "type": "integer",
            "description": "Question cap for each product when questions are enabled.",
            "minimum": 0,
            "maximum": 50,
            "default": 10,
            "editor": "number"
          },
          "includeStoreAvailability": {
            "title": "Include Store Availability",
            "type": "boolean",
            "description": "Add store-local pickup quantity, pickup/delivery split and delivery details.",
            "default": true,
            "prefill": false,
            "editor": "checkbox"
          },
          "includeAisleBay": {
            "title": "Include Aisle and Bay",
            "type": "boolean",
            "description": "Add the aisle and bay where the product sits at the selected store.",
            "default": false,
            "prefill": false,
            "editor": "checkbox"
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Home Depot Products, Prices & Store Stock Output",
        "description": "Home Depot products with store-local price, pickup and delivery stock, specifications, media, variants, and optional reviews and Q&A.",
        "properties": {
          "products": {
            "type": "string",
            "title": "Home Depot products",
            "description": "Dataset containing all scraped Home Depot product records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "readme": "# Home Depot Products, Prices & Store Stock\n\nScrape Home Depot products from a keyword search, a category page or a list of item IDs. Every row can include the store-local price, pickup and delivery availability, aisle and bay, full specifications, media, variants, and optional reviews and Q&A.\n\n## What this actor does\n\n- **Three ways to start** — search by keyword, browse a whole category, or look up specific item IDs and product URLs.\n- **Store-local pricing and stock** — pick a Home Depot store (or a ZIP to find the nearest one) and read that store's price and shelf pickup quantity.\n- **Pickup and delivery kept separate** — shelf pickup quantity, ship-to-store availability, and online/delivery quantity are separate fields and are never mixed.\n- **Full product detail** — description, highlights, specification groups, key features, dimensions, UPC/GTIN, all images, videos, 360/AR links, bundle contents and variant swatches.\n- **Optional reviews and Q&A** — add a capped set of customer reviews with rating breakdown, and customer questions with their answers.\n- **Filters and pagination** — price, brand, rating, sale, clearance, stock, sponsored and title filters, plus multi-page collection with duplicate removal.\n- **Empty fields are omitted** from each record instead of being returned as null or blank.\n\n## Output per product\n\n**Identity** — `recordType`, `itemId`, `parentId`, `url`, `title`, `brand`, `modelNumber`, `storeSku`, `productType`, `upc`, `gtin13`, `brandUrl`, `collection`, `scrapedAt`\n\n**Pricing** — `price`, `originalPrice`, `currency`, `discountAmount`, `discountPercent`, `unitOfMeasure`, `unitPrice`, `bulkPrice`, `clearancePrice`, `isSpecialBuy`, `isClearance`, `onPromotion`, `promotionTag`, `savingsCenter`, `promotionStartsAt`, `promotionEndsAt`, `conditionalPromotions`\n\n**Ratings and reviews** — `rating`, `reviewCount`, `ratingDistribution`, `recommendedCount`, `notRecommendedCount`, `reviews[]` with text, author, date, verified purchase, photos, responses, and source\n\n**Media and content** — `imageUrl`, `images[]`, `videos[]`, `threeSixty`, `augmentedReality`, `description`, `highlights[]`, `specifications[]`, `keyFeatures[]`, `dimensions[]`, `isBundle`, `bundleItems[]`, `subscription`, `installation`, `prop65`, `protectionPlanSkus[]`\n\n**Variants and taxonomy** — `hasVariants`, `variantCount`, `variants[]`, `categories[]`, `breadcrumbs[]`, `department`, `badges[]`, `isSponsored`\n\n**Store and fulfillment** — `storeId`, `storeName`, `storeCity`, `storeState`, `storePostalCode`, `storePhone`, `pickupAvailable`, `storeQuantity`, `pickupInStock`, `pickupLimited`, `curbsidePickup`, `pickupMaxQuantity`, `shipToStoreAvailable`, `deliveryAvailable`, `deliveryQuantity`, `deliveryEta`, `deliveryCharge`, `freeShipping`, `backordered`, `backorderDate`, `pickupOptions[]`, `deliveryOptions[]`, `aisle`, `bay`, `aisleBay`, `quantityLimit`, `returnPolicy`, `isBuyable`, `discontinued`\n\n**Questions** — `questions[]` with the question, author, date, answers and photos\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | select | `search` | `search`, `category`, or `products` |\n| `searchQueries` | list | – | Keywords for search mode, one per line |\n| `categoryUrls` | list | – | Category `/b/...` URLs or browse codes (`N-...`) |\n| `itemIds` | list | – | Item IDs or `/p/...` product URLs |\n| `storeId` | string | `121` | Store number for price and shelf stock |\n| `zipCode` | string | – | Finds the nearest store when `storeId` is empty; also used for delivery estimates |\n| `sortBy` | select | `relevance` | `relevance`, `top_sellers`, `price_low_to_high`, `price_high_to_low`, `top_rated`, `newest` |\n| `priceMin` / `priceMax` | number | – | USD price bounds |\n| `brand` | string | – | Case-insensitive brand filter |\n| `minRating` | number | – | Drop products rated below this value (0–5) |\n| `onlyOnSale` | boolean | `false` | Keep real discounts, promotions, special buys and clearance |\n| `onlyClearance` | boolean | `false` | Keep clearance products only |\n| `onlyInStock` | boolean | `false` | Keep products available for pickup or delivery |\n| `includeSponsored` | boolean | `false` | Include paid placements |\n| `filterKeywords` | string | – | Comma-separated title words to keep |\n| `maxItems` | integer | `100` | Overall product cap (1–5000) |\n| `maxItemsPerQuery` | integer | `100` | Cap per query or category |\n| `maxPages` | integer | `30` | Pages per source (1–30; 24 products per page) |\n| `includeDetails` | boolean | `true` | Add specs, description, UPC/GTIN, media and variants |\n| `includeReviews` | boolean | `false` | Add reviews and rating breakdown |\n| `maxReviewsPerProduct` | integer | `20` | Review cap per product |\n| `reviewsSort` | select | `most_recent` | `most_recent`, `most_helpful`, `oldest`, `highest_rating`, `lowest_rating`, `photos_first` |\n| `includeQuestions` | boolean | `false` | Add customer questions and answers |\n| `maxQuestionsPerProduct` | integer | `10` | Question cap per product |\n| `includeStoreAvailability` | boolean | `true` | Add pickup/delivery stock fields |\n| `includeAisleBay` | boolean | `false` | Add aisle and bay for in-store SKUs |\n\nLegacy inputs from earlier versions (`searchQuery`, `startUrls`) continue to work and are mapped automatically. No proxy setup or API key is needed.\n\n## Examples\n\n### Search for drills under $300\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"cordless drill\"],\n  \"storeId\": \"121\",\n  \"priceMax\": 300,\n  \"sortBy\": \"top_sellers\",\n  \"maxItems\": 50,\n  \"includeDetails\": true,\n  \"includeStoreAvailability\": true\n}\n```\n\n### Browse a category and keep only clearance\n\n```json\n{\n  \"mode\": \"category\",\n  \"categoryUrls\": [\"https://www.homedepot.com/b/Tools-Power-Tools-Drills/N-5yc1vZc27f\"],\n  \"storeId\": \"121\",\n  \"onlyClearance\": true,\n  \"maxItems\": 200,\n  \"maxPages\": 10\n}\n```\n\n### Look up specific item IDs with reviews and aisle locations\n\n```json\n{\n  \"mode\": \"products\",\n  \"itemIds\": [\"320326787\", \"https://www.homedepot.com/p/Milwaukee-M18-FUEL-18V-Lithium-Ion-Brushless-Cordless-Hammer-Drill-and-Impact-Driver-Combo-Kit-2-Tool-with-2-Batteries-3697-22/320326787\"],\n  \"storeId\": \"121\",\n  \"includeDetails\": true,\n  \"includeReviews\": true,\n  \"maxReviewsPerProduct\": 20,\n  \"includeStoreAvailability\": true,\n  \"includeAisleBay\": true\n}\n```\n\n### Find the nearest store from a ZIP\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"pressure washer\"],\n  \"storeId\": \"\",\n  \"zipCode\": \"30339\",\n  \"includeStoreAvailability\": true,\n  \"maxItems\": 25\n}\n```\n\n## Use cases\n\n- **Price monitoring** — compare store-local prices and promotions over time.\n- **Restock and pickup tracking** — watch shelf pickup quantities at one store.\n- **Assortment and catalog research** — pull a whole category with specs, brands and variants.\n- **Comparison shopping** — collect models, UPCs, ratings and media for a shortlist.\n- **Voice-of-customer research** — sample reviews and Q&A across competing products.\n\n## FAQ\n\n**Is this affiliated with Home Depot?**\nNo. This is an independent, third-party actor that reads publicly visible Home Depot product data. It is not operated by or affiliated with The Home Depot.\n\n**Which store are the prices and stock from?**\nThey come from the `storeId` you enter (default 121, Cumberland, GA). If you leave `storeId` empty and supply `zipCode`, the nearest store is used. Change the store to see that store's price and shelf quantity.\n\n**What is the difference between pickup and delivery stock?**\n`storeQuantity` and `pickupInStock` are the shelf quantity available for pickup at the selected store. `deliveryQuantity`, `deliveryAvailable` and the delivery options describe the online/delivery pool. They are separate pools and are never added together.\n\n**Why are some fields missing on a product?**\nHome Depot does not expose every field for every product. Fields with no real value are omitted rather than filled with null, zero or a placeholder. Variants, specs, videos and aisle locations appear only when the product has them. Aisle and bay are added only for products with pickup stock at the selected store.\n\n**How many products can one run return?**\n`maxItems` is the overall cap and `maxItemsPerQuery` caps each query or category. Each page holds up to 24 products, and a category can be paged up to 30 times (720 products). For a larger category, narrow it by price or brand, or split it into smaller categories.\n\n**Can I get every review for a product with thousands of reviews?**\nNo. Reviews are optional and capped by `maxReviewsPerProduct` (default 20). The actor reads review pages until it reaches that cap or the end of the review list. The total review count and rating breakdown still show the full picture, but only the requested number of review texts is saved.\n\n**Do I need a proxy or an API key?**\nNo. Enter a store and the products you want; the actor handles access automatically.\n\n**What happens if Home Depot refuses a request?**\nThe actor retries with a few fresh browser sessions. If every attempt is refused, the run ends with a status message naming the source and saves no placeholder rows; re-run later.\n\n**Does this work for Home Depot Canada or Mexico?**\nNo. This actor covers the US storefront only. Canadian and Mexican stores are separate sites with different product IDs and stock.\n\n**Why does the price differ from the first page I see on the website?**\nThe site personalises price and availability by store. Make sure the `storeId` in your input is the store you are comparing against.\n",
      "storages": {}
    },
    "buildNumber": "1.0.2",
    "imageDigest": "b02fdb09f02c14172608819a63ce10e1f278f6558578012eca1009bc0bf2496d",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.057965555555555555
    }
  }
}