{
  "openapi": "3.0.1",
  "info": {
    "title": "Home Depot Scraper - Prices, Specs & Stock",
    "description": "Scrape Home Depot products by URL, item ID or category: price and list price, brand, model, store SKU, rating and review count, availability, full specifications, key features and image links. Filter by price, rating or brand before you pay. No API key.",
    "version": "0.1",
    "x-build-id": "SnuffnbUoLI0gtyiY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~homedepot-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-homedepot-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/scrapesage~homedepot-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-homedepot-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/scrapesage~homedepot-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-homedepot-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",
        "properties": {
          "productUrls": {
            "title": "Product URLs or item IDs",
            "type": "array",
            "description": "Home Depot product links (https://www.homedepot.com/p/.../315443147) or bare item IDs. Category links are accepted here too. Leave empty to run a small sample.",
            "items": {
              "type": "string"
            }
          },
          "urlsFromFile": {
            "title": "Import links from a file",
            "type": "string",
            "description": "Paste a block of links or item IDs (one per line), or give a link to a .txt/.csv file, Google Sheet or Drive file holding them."
          },
          "categoryUrls": {
            "title": "Category URLs",
            "type": "array",
            "description": "Home Depot category links, e.g. https://www.homedepot.com/b/Tools/N-5yc1vZc1xy. Each returns the products Home Depot publishes on that category page.",
            "items": {
              "type": "string"
            }
          },
          "maxProductsPerCategory": {
            "title": "Max products per category",
            "minimum": 1,
            "maximum": 24,
            "type": "integer",
            "description": "Upper bound per category link. Home Depot publishes 24 products on a category page, so 24 is the maximum.",
            "default": 24
          },
          "includeProductDetail": {
            "title": "Fetch full product detail",
            "type": "boolean",
            "description": "On (default) each product is opened for specifications, features, availability and full pricing. Off returns only what the category page lists, which is faster.",
            "default": true
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products at or above this price. Leave empty for no minimum."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products at or below this price. Leave empty for no maximum."
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Keep only products rated at or above this (1-5). Leave empty for no minimum."
          },
          "brandContains": {
            "title": "Brand contains",
            "type": "string",
            "description": "Keep only products whose brand contains this text, e.g. \"Milwaukee\"."
          },
          "outputFields": {
            "title": "Output fields",
            "type": "array",
            "description": "Limit the columns written to the dataset. Leave empty for every field.",
            "items": {
              "type": "string",
              "enum": [
                "type",
                "itemId",
                "storeSku",
                "title",
                "brand",
                "modelNumber",
                "upc",
                "productType",
                "productUrl",
                "price",
                "originalPrice",
                "priceUnit",
                "isOnSale",
                "promotionText",
                "promotionType",
                "promoCode",
                "promotionDollarOff",
                "promotionPercentOff",
                "promotionStart",
                "promotionEnd",
                "savingsCenter",
                "currency",
                "rating",
                "reviewCount",
                "availability",
                "isBuyable",
                "isDiscontinued",
                "isBackordered",
                "isAvailableOnline",
                "isCarriedInStores",
                "returnPolicy",
                "quantityLimit",
                "minOrderQuantity",
                "prop65Warning",
                "category",
                "categoryPath",
                "description",
                "highlights",
                "keyFeatures",
                "specifications",
                "specCount",
                "imageCount",
                "images",
                "seoDescription",
                "sourceCategory",
                "scrapedAt"
              ],
              "enumTitles": [
                "Row type (type)",
                "Home Depot item ID (itemId)",
                "Store SKU (storeSku)",
                "Product title (title)",
                "Brand (brand)",
                "Model number (modelNumber)",
                "UPC (upc)",
                "Product type (productType)",
                "Product link (productUrl)",
                "Price (price)",
                "List price before discount (originalPrice)",
                "Price unit (each, sq. ft., ...) (priceUnit)",
                "Is on sale (isOnSale)",
                "Promotion (promotionText)",
                "Promotion type (promotionType)",
                "Promo code (promoCode)",
                "Discount in dollars (promotionDollarOff)",
                "Discount percent (promotionPercentOff)",
                "Sale start date (promotionStart)",
                "Sale end date (promotionEnd)",
                "Savings-centre label (savingsCenter)",
                "Currency (currency)",
                "Average rating (rating)",
                "Number of reviews (reviewCount)",
                "Availability (availability)",
                "Can be bought online (isBuyable)",
                "Discontinued (isDiscontinued)",
                "Backordered (isBackordered)",
                "Available online (isAvailableOnline)",
                "Carried in stores (isCarriedInStores)",
                "Return window (returnPolicy)",
                "Max quantity per order (quantityLimit)",
                "Minimum order quantity (minOrderQuantity)",
                "California Prop 65 warning (prop65Warning)",
                "Category (category)",
                "Full category path (categoryPath)",
                "Description (description)",
                "Highlights (highlights)",
                "Key features (keyFeatures)",
                "Specifications (specifications)",
                "Number of specifications (specCount)",
                "Number of images (imageCount)",
                "Image links (images)",
                "SEO description (seoDescription)",
                "Category it was found in (sourceCategory)",
                "Scraped at (scrapedAt)"
              ]
            }
          },
          "monitorMode": {
            "title": "Monitor mode (only new products)",
            "type": "boolean",
            "description": "Remember products already returned and emit only new ones on the next run. Nothing is charged for skipped rows.",
            "default": false
          },
          "monitorStoreName": {
            "title": "Monitor store name",
            "type": "string",
            "description": "Named key-value store holding the memory for monitor mode.",
            "default": "homedepot-monitor"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many products to fetch at once.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy. The datacenter pool included with every plan is the right choice - Home Depot refuses Apify residential IPs.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}