{
  "description": "Find Lowe's products by keyword, category, item ID, or URL, then read live price, stock, specs, and store details from Lowe's product pages.",
  "properties": {
    "category": {
      "default": "tools",
      "description": "Lowe's department to browse (mode=byCategory).",
      "editor": "select",
      "enum": [
        "tools",
        "electrical",
        "plumbing",
        "building-supplies",
        "flooring",
        "paint",
        "lighting-ceiling-fans",
        "bathroom",
        "kitchen",
        "appliances",
        "outdoor-power-equipment",
        "storage-organization",
        "windows-doors",
        "heating-cooling"
      ],
      "enumTitles": [
        "Tools",
        "Electrical",
        "Plumbing",
        "Building Supplies",
        "Flooring",
        "Paint",
        "Lighting & Ceiling Fans",
        "Bathroom",
        "Kitchen",
        "Appliances",
        "Outdoor Power Equipment",
        "Storage & Organization",
        "Windows & Doors",
        "Heating & Cooling"
      ],
      "prefill": "tools",
      "title": "Category",
      "type": "string"
    },
    "inStockOnly": {
      "default": false,
      "description": "Only emit products with at least one fulfilment method available.",
      "prefill": false,
      "title": "In-stock only",
      "type": "boolean"
    },
    "includeDetails": {
      "default": true,
      "description": "Add description, bullets, specifications, UPC, dimensions, warranty, and manuals to each product.",
      "prefill": false,
      "title": "Include specification details",
      "type": "boolean"
    },
    "itemIds": {
      "default": [],
      "description": "Lowe's item numbers (for example 5013207487) or /pd/ product URLs. Used by mode=productDetails.",
      "editor": "stringList",
      "prefill": [
        "5013207487"
      ],
      "title": "Item IDs or product URLs",
      "type": "array"
    },
    "maxItems": {
      "default": 50,
      "description": "Maximum number of products to emit. Discovery may return fewer candidates than this.",
      "maximum": 5000,
      "minimum": 1,
      "prefill": 1,
      "title": "Max items",
      "type": "integer"
    },
    "maxPrice": {
      "description": "Drop products priced above this value. Products without a price are skipped when a price filter is set.",
      "maximum": 100000,
      "minimum": 0,
      "title": "Maximum price (USD)",
      "type": "integer"
    },
    "minPrice": {
      "description": "Drop products priced below this value. Products without a price are skipped when a price filter is set.",
      "maximum": 100000,
      "minimum": 0,
      "title": "Minimum price (USD)",
      "type": "integer"
    },
    "minRating": {
      "description": "Drop products rated below this value. Products without a rating are skipped when this filter is set.",
      "maximum": 5,
      "minimum": 1,
      "title": "Minimum rating",
      "type": "number"
    },
    "mode": {
      "default": "productDetails",
      "description": "What to look up.",
      "editor": "select",
      "enum": [
        "search",
        "byCategory",
        "productDetails",
        "byUrl"
      ],
      "enumTitles": [
        "Search by keyword",
        "Browse a category",
        "Look up item IDs",
        "Scrape URLs (product, search, or category)"
      ],
      "prefill": "productDetails",
      "title": "Mode",
      "type": "string"
    },
    "onSaleOnly": {
      "default": false,
      "description": "Only emit products with a current was/sale price.",
      "prefill": false,
      "title": "On-sale only",
      "type": "boolean"
    },
    "onShelfOnly": {
      "default": false,
      "description": "Only emit products with pickup quantity above zero at the selected store.",
      "prefill": false,
      "title": "On shelf at the store only",
      "type": "boolean"
    },
    "searchQueries": {
      "default": [
        "power drill"
      ],
      "description": "Keywords to search for (mode=search). Each query adds its own discovery results.",
      "editor": "stringList",
      "prefill": [],
      "title": "Search queries",
      "type": "array"
    },
    "sortBy": {
      "default": "featured",
      "description": "How to order the products found in this run.",
      "editor": "select",
      "enum": [
        "featured",
        "bestSellers",
        "highestRated",
        "newest",
        "priceLowToHigh",
        "priceHighToLow",
        "brand"
      ],
      "enumTitles": [
        "Featured (discovery order)",
        "Best sellers (discovery order)",
        "Highest rated",
        "Newest",
        "Price: low to high",
        "Price: high to low",
        "Brand name"
      ],
      "prefill": "featured",
      "title": "Sort results by",
      "type": "string"
    },
    "startUrls": {
      "default": [],
      "description": "Lowe's product, search, or /pl/ category URLs. Used by mode=byUrl, and category URLs are also accepted by mode=byCategory.",
      "editor": "stringList",
      "prefill": [],
      "title": "Start URLs",
      "type": "array"
    },
    "storeId": {
      "default": "0208",
      "description": "Four-digit Lowe's store number used for price and stock context. Default 0208 (La Quinta, CA).",
      "editor": "textfield",
      "pattern": "^\\d{4}$",
      "prefill": "0208",
      "title": "Store number",
      "type": "string"
    },
    "zipCode": {
      "default": "92253",
      "description": "Five-digit ZIP code used with the store number for price and stock context. Default 92253.",
      "editor": "textfield",
      "pattern": "^\\d{5}$",
      "prefill": "92253",
      "title": "ZIP code",
      "type": "string"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "Lowe's Product Scraper Input",
  "type": "object"
}
