logo

Lowes Scraper API

View as Markdown

Fetch Lowes product pages, search results, and category listings scoped to a specific store

The Lowes API fetches lowes.com pages through a store-scoped session. Every request carries a store ID and zip code, so prices, stock, and fulfillment options come back as that specific store serves them rather than from a default location.

The response format depends on which URL you send. Product and search pages return HTML, while Lowes' own product APIs (/wpd/… and /pl/…/products) return JSON. See URL patterns.

Endpoint

https://api.scrape.do/plugin/lowes/store

Each successful request costs 10 credits. Requests rejected with 400 are not charged.

Basic Example

curl "https://api.scrape.do/plugin/lowes/store?token=YOUR_TOKEN&url=https%3A%2F%2Fwww.lowes.com%2Fpd%2FDisney-Airblown-Holiday-Stitch%2F5016066683&zipcode=28202&storeid=0595"

Request Parameters

url, zipcode, and storeid are all required. Omitting any of them returns 400 before the page is fetched, so the request costs nothing.

ParameterTypeDescription
tokenstringYour Scrape.do API authentication token
urlstringFull Lowes URL, URL-encoded. Must be on lowes.com and match an accepted pattern
zipcodestringNumeric zip code, digits only, for example 28202
storeidstringNumeric Lowes store ID, digits only, for example 0595

Optional Parameters

ParameterTypeDefaultDescription
disableretrytrue / falsefalseDisables retry logic for the request
transparentresponsetrue / falsefalseReturns the raw upstream response on timeout instead of a 502
timeoutnumbersystem maxPer-request timeout in milliseconds

URL Patterns

Only these paths are accepted. Anything else returns 400 valid lowes url expected.

PatternReturnsExample
/pd/<slug>/<itemId>HTMLhttps://www.lowes.com/pd/Disney-Airblown-Holiday-Stitch/5016066683
/search…HTMLhttps://www.lowes.com/search?searchTerm=socket+holder
/pl/<category>/<id>/productsJSONhttps://www.lowes.com/pl/power-tools/4294607842/products
/wpd/<itemId>/productdetail/<storeId>/<auth>/<zipCode>JSONhttps://www.lowes.com/wpd/1000002288/productdetail/0208/Guest/92253
/collections/api/items/<groupId>/COLL_MANDATORY/<storeId>/<auth>/<zipCode>JSONCollections API. Needs a real collection group ID; an invalid one returns Lowes' own 400 Invalid request params input
/purchase/api/cart/cartitemsJSONCart-add endpoint. Lowes expects POST here, and async plugin jobs always issue GET, so a plain request returns 404

Path Segments Must Match Your Parameters

For /wpd/… and /collections/… URLs, the <storeId> and <zipCode> segments inside the path must match the storeid and zipcode parameters exactly. A mismatch returns:

{
  "error": "valid lowes url expected",
  "message": "Please ensure that url match with the provided zipcode and storeid parameters."
}

JSON Responses

/pl/…/products returns a paginated category listing:

{
  "itemCount": 6878,
  "sponsoredItemCount": 4,
  "adjustedNextOffset": 20,
  "categories": [{ "name": "Power Tools", "nValue": "4294607842" }]
}

itemCount reflects Lowes' live catalog and changes between requests. Use adjustedNextOffset to page through results.

/wpd/… returns product detail keyed by item ID:

{
  "productDetails": {
    "5016066683": {
      "product": {
        "omniItemId": "5016066683",
        "brand": "Disney",
        "additionalBadges": ["Only at Lowes"]
      }
    }
  }
}

Notes

  • Store scoping is real, not cosmetic. The same product URL fetched with different storeid values returns pages carrying those respective store numbers, along with their own pricing and availability.
  • Search result pages are the largest responses, often exceeding 500 KB.
  • The last two patterns in the table pass the plugin's URL check but still depend on Lowes accepting the request. A 400 or 404 coming back as JSON or HTML from Lowes itself is a target-side rejection, not a plugin error.

Error Responses

StatusBodyCause
400{"error":"invalid url provided"}url parameter missing
400{"error":"zipcode is required"}zipcode parameter missing
400{"error":"storeid is required"}storeid parameter missing
400{"error":"valid lowes url expected"}URL is not on lowes.com, or does not match an accepted pattern
400{"error":"valid lowes url expected","message":"Please ensure that url match with the provided zipcode and storeid parameters."}/wpd/… path segments do not match the storeid and zipcode parameters

Rejected requests are not charged.

On this page