Dataspryva

Lowe's Price, Stock & Specification Scraper

Search Lowe's products by keyword, browse a category, or fetch details by item ID or URL. Get price, original price, discount percent, stock status, ratings, model number, and full specifications for each product.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringrequiredWhat to look up.
searchQueriesarrayoptionalKeywords to search for (mode=search). Each query adds its own discovery results.
categorystringoptionalLowe's department to browse (mode=byCategory).
Show all input fields
FieldTypeRequiredDescription
modestringrequiredWhat to look up.
searchQueriesarrayoptionalKeywords to search for (mode=search). Each query adds its own discovery results.
categorystringoptionalLowe's department to browse (mode=byCategory).
itemIdsarrayoptionalLowe's item numbers (for example 5013207487) or /pd/ product URLs. Used by mode=productDetails.
startUrlsarrayoptionalLowe's product, search, or /pl/ category URLs. Used by mode=byUrl, and category URLs are also accepted by mode=byCategory.
storeIdstringoptionalFour-digit Lowe's store number used for price and stock context. Default 0208 (La Quinta, CA).
zipCodestringoptionalFive-digit ZIP code used with the store number for price and stock context. Default 92253.
sortBystringoptionalHow to order the products found in this run.
inStockOnlybooleanoptionalOnly emit products with at least one fulfilment method available.
onSaleOnlybooleanoptionalOnly emit products with a current was/sale price.
onShelfOnlybooleanoptionalOnly emit products with pickup quantity above zero at the selected store.
minPriceintegeroptionalDrop products priced below this value. Products without a price are skipped when a price filter is set.
maxPriceintegeroptionalDrop products priced above this value. Products without a price are skipped when a price filter is set.
minRatingnumberoptionalDrop products rated below this value. Products without a rating are skipped when this filter is set.
includeDetailsbooleanoptionalAdd description, bullets, specifications, UPC, dimensions, warranty, and manuals to each product.
maxItemsintegeroptionalMaximum number of products to emit. Discovery may return fewer candidates than this.

Download the published input schema

View complete JSON
{
  "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"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
productsstringoptionalDataset containing the scraped Lowe's products.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Lowe's product records with identity, live store-aware price and was/sale details, stock and fulfilment availability, ratings, specifications, UPC, dimensions, manuals, badges, variants, and store context.",
  "properties": {
    "products": {
      "description": "Dataset containing the scraped Lowe's products.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Lowe's products",
      "type": "string"
    }
  },
  "title": "Lowe's Price, Stock & Specification Scraper Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {}
      },
      "title": "Products",
      "transformation": {
        "fields": [
          "title",
          "brand",
          "price",
          "originalPrice",
          "inStock",
          "storeNumber",
          "storeQuantity",
          "rating",
          "reviewCount",
          "url"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

Lowe's Price, Stock & Specification Scraper

Lowe's product pages carry live pricing, store stock, fulfilment promises, ratings, and a deep spec sheet. This actor finds Lowe's product pages by keyword, department, item ID, or URL, then reads the live product data for every product it finds.

Search and category discovery use a public web index to locate Lowe's product pages. That is a candidate set, not a full replica of Lowe's on-site search. Product price, stock, specs, and store context are then read live from Lowe's own product data.

What this actor does

  • Searches Lowe's products by keyword, with multiple query variants and result pages.
  • Browses a department or any Lowe's /pl/ category URL. It first tries the category page for embedded product links and falls back to keyword discovery if Lowe's blocks or omits them.
  • Looks up products by item number or by /pd/ product URL.
  • Accepts mixed URLs: product, search, and category URLs can be supplied in one run.
  • Reads store-aware price, was/sale price, stock by fulfilment method, ratings, specifications, UPC, dimensions, manuals, badges, variants, and more.
  • Deduplicates products across queries and pages.
  • Omits empty fields instead of emitting placeholders.

Output per product

Identity and context:

  • itemId, itemNumber, model, brand, title, url
  • imageUrl, images, videos
  • category, categoryPath, merchandising
  • storeId, storeNumber, storeName, storeCity, storeState, storeZip
  • aisle, bay
  • source, sourceQuery, position, scrapedAt

Price and promotion:

  • price, priceText, priceScope, currency, priceNote
  • originalPrice, discountPercent, savings, savingsPercent, onSale, saleEndDate

Stock and fulfilment:

  • inStock, availability (method, availability, quantity, lead time, ship date, delivery date)
  • onlineQuantity, pickupAvailable, pickupQuantity, storeQuantity, storeAvailability, deliveryDate

Ratings and merchandising:

  • rating, reviewCount, brandRating, brandReviewCount
  • badges, isSponsored, isMarketplace, isSpecialOrder, programType
  • isBuyable, lowesExclusive, energyStar, prop65, socialProofing

Details (when includeDetails is on):

  • description, romanceCopy, marketingBullets
  • specifications, keySpecs
  • upc, barcodes, dimensions, weight, weightUnit, packageQuantity
  • warranty, guides, listedAt, lastModifiedAt, maxPurchaseQuantity

Variants (when Lowe's exposes them):

  • variantCount, variantAttribute, variants, selectedOptions

Input

Field Type Default Description
mode string productDetails search, byCategory, productDetails, or byUrl
searchQueries array ["power drill"] Keywords for search; each query adds discovery results
category string tools Department for byCategory
itemIds array [] Item numbers or /pd/ URLs for productDetails
startUrls array [] Product, search, or /pl/ category URLs for byUrl
storeId string 0208 Four-digit store number for price and stock context
zipCode string 92253 Five-digit ZIP used with the store number
sortBy string featured featured, bestSellers, highestRated, newest, priceLowToHigh, priceHighToLow, or brand
inStockOnly boolean false Keep products with at least one available fulfilment method
onSaleOnly boolean false Keep products with a current was/sale price
onShelfOnly boolean false Keep products with pickup quantity above zero at the selected store
minPrice integer – Drop products below this price
maxPrice integer – Drop products above this price
minRating number – Drop products below this rating
includeDetails boolean true Add specs, bullets, UPC, dimensions, warranty, and manuals
maxItems integer 50 Maximum products to emit (1–5000)
{
  "mode": "search",
  "searchQueries": ["power drill", "cordless drill kit"],
  "maxItems": 20,
  "storeId": "0208",
  "zipCode": "92253"
}

Example: browse a department

{
  "mode": "byCategory",
  "category": "paint",
  "inStockOnly": true,
  "sortBy": "priceLowToHigh",
  "maxItems": 50
}

Example: look up item IDs

{
  "mode": "productDetails",
  "itemIds": ["5013207487", "50040962"],
  "includeDetails": true
}

Example: mixed URLs

{
  "mode": "byUrl",
  "startUrls": [
    "https://www.lowes.com/pd/Kobalt-24-volt-Max-1-2-in-Metal-Ratcheting-Brushless-Cordless-Drill-1-Battery-Included-and-Charger-Included/5013207487",
    "https://www.lowes.com/search?searchTerm=interior+paint",
    "https://www.lowes.com/pl/tools/4294936478"
  ],
  "maxItems": 30
}

Use cases

  • Track price and was/sale changes for a product list or a whole department.
  • Build a store-level stock and fulfilment tracker for items you restock.
  • Compare specifications, dimensions, manuals, and ratings across competing products.
  • Feed Lowe's product data into a price-comparison, estimating, or catalogue tool.
  • Find current product pages for a keyword without maintaining your own Lowe's link list.

Reliability and limits

  • Search and category discovery is index-based. It returns a candidate set of Lowe's product pages and can return fewer products than maxItems or fewer than Lowe's own search page shows. Split broad topics into several searchQueries or use narrower category URLs to widen coverage.
  • Category browsing tries the Lowe's category page first. If that page is blocked or has no product links, the actor derives keywords from the category path and uses index discovery instead.
  • Product data is read live for each product, so price, stock, and fulfilment reflect the run time.
  • Price and stock are store-scoped. storeId is the store you asked for; storeNumber is the price store Lowe's returned, which can be a nearby store. A product with no national or store price is emitted without a price rather than with zero.
  • Reviews are aggregate rating and review count only. Individual review text is not included.
  • The sponsored flag is included when Lowe's category page exposes it. Product data does not carry that flag, so it is omitted for ID, URL, and keyword-only records.
  • Variants are included when Lowe's exposes a variant group. Products without variants omit the field.
  • The actor selects its proxy automatically. No proxy configuration is needed.

FAQ

Is this actor affiliated with Lowe's? No. It reads publicly visible Lowe's product pages and has no relationship with Lowe's.

Do I need a Lowe's account or cookies? No. Every field comes from public product data that does not require a login.

Do I need to configure a proxy? No. The actor chooses its own proxy path and retries when a request is blocked.

Why do I get fewer products than Lowe's search shows? Keyword and category discovery uses a public web index, not Lowe's on-site search. It returns a candidate set, so broad queries can be shallow. Use several specific searchQueries or a narrower category URL to find more.

Why is a price missing on some products? Some items are marketplace, special-order, or out of stock and have no national price. The actor omits the price instead of writing zero or a guess.

Why does the store differ from the ZIP I entered? Lowe's returns the store it used for the price. storeId is the store you requested; storeNumber is the price store Lowe's returned, which may be a nearby store.

Do you return review text? No. The actor returns the aggregate rating and review count. Individual review text is not part of the product data it reads.

Why are specifications missing on some products? Specifications are included when includeDetails is on and Lowe's publishes them for that product. Missing specs are omitted rather than filled with placeholders.

How current is the data? Each run reads Lowe's live product data, so price, stock, and fulfilment reflect what Lowe's returns at run time.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build psFnduI7nHVgiC7bh. Documentation is regenerated from the default published build; private drafts are not included.