lowes.com APIwww.lowes.com ↗
Retrieve Lowe's product listings, search results, pricing, availability, and specs via 3 endpoints. Supports store-level inventory and ZIP-based delivery data.
curl -X GET 'https://api.parse.bot/scraper/95caade6-3446-483b-a265-65353e571d23/get_category_products?limit=3&category=dimensional-lumber' \ -H 'X-API-Key: $PARSE_API_KEY'
Get product listings for a given category with prices, specs, and availability. Uses Lowe's internal products API for reliable JSON responses.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of products to return per request. |
| offset | integer | Pagination offset. |
| category | string | Category name or numeric category ID. Named categories: dimensional-lumber, studs, pressure-treated-lumber, plywood, boards, deck-boards. |
| store_number | string | Lowe's store number for local pricing and inventory. Find your store number on the Lowe's store locator. |
{
"type": "object",
"fields": {
"offset": "integer current pagination offset",
"products": "array of product objects with product_id, description, price, specs, rating, etc.",
"category_id": "string numeric category ID",
"next_offset": "integer or null, offset for the next page of results",
"total_count": "integer total number of products in the category",
"store_number": "string store number used for the request"
},
"sample": {
"data": {
"offset": 0,
"products": [
{
"url": "https://www.lowes.com/pd/Top-Choice-2-in-x-4-in-x-10-ft-Fir-Lumber-Common-1-5-in-x-3-5-in-x-10-ft-Actual/4082896",
"price": null,
"specs": {
"Dressing": "S4S",
"Wood Species": "Fir",
"Actual Dimensions": "1.5-in x 3.5-in x 10-ft"
},
"badges": null,
"rating": 4.2,
"category": "DIMENSIONAL LUMBER",
"division": "LUMBER",
"model_id": "WF204TOPCHC10",
"image_url": "https://mobileimages.lowes.com/productimages/24168f40-0ec7-454b-bdc1-9299117b9054/42352639.jpg",
"is_buyable": true,
"product_id": "4082896",
"description": "2-in x 4-in x 10-ft Fir Kiln-Dried Lumber",
"item_number": "432480",
"bulk_pricing": null,
"review_count": 961,
"wood_species": "Fir",
"pickup_quantity": 0,
"pickup_available": false,
"actual_dimensions": "1.5-in x 3.5-in x 10-ft",
"delivery_available": false
}
],
"category_id": "4294402500",
"next_offset": 24,
"total_count": 395,
"store_number": "0340"
},
"status": "success"
}
}About the lowes.com API
The Lowe's API provides 3 endpoints to retrieve product data from Lowes.com, covering category browsing, keyword search, and full product detail. The get_product_detail endpoint returns pricing, fulfillment availability, promotions, barcodes, and structured specifications for any Lowe's product by its omniItemId. All endpoints support store-specific pricing via a store number parameter, making it straightforward to build location-aware product tools.
Endpoints Overview
Three endpoints cover the main ways users interact with product data on Lowes.com. get_category_products returns paginated product listings for a given category — either by name (e.g. dimensional-lumber, pressure-treated-lumber) or numeric category ID. Each product object in the products array includes product_id, description, price, specs, and rating. Use offset and limit to page through results, and check total_count to know how many items exist in the category.
Search and Detail
search_products accepts a query string and returns matching products with the same product object shape as the category endpoint. It also supports limit, offset, and store_number, and returns total_count and next_offset for pagination. get_product_detail is the most field-rich endpoint: given a product_id (Lowe's omniItemId), it returns price, specs, rating, review_count, barcode, item_number, promotions, and an availability object that breaks down fulfillment methods such as pickup and delivery. ZIP-based delivery availability is enabled by passing both zip_code and zip_state.
Store-Level Pricing and Inventory
All three endpoints accept a store_number parameter, which scopes pricing and inventory to a specific Lowe's location. Store numbers can be found via the Lowe's store locator. Without a store number, responses reflect general or default pricing. The get_product_detail response's availability object reflects how fulfillment options vary by store and ZIP code, making it possible to distinguish between in-store pickup availability and delivery eligibility for a given location.
- Monitor price changes on specific Lowe's products by polling
get_product_detailwith a product_id over time. - Build a lumber cost estimator using
get_category_productswith thedimensional-lumberorpressure-treated-lumbercategory. - Check local in-store pickup availability for a product by passing
store_numbertoget_product_detail. - Search competing product options by keyword using
search_productsand comparepriceandratingacross results. - Aggregate specifications from the
specsfield across a product category for side-by-side comparison tools. - Identify active promotions on products using the
promotionsarray returned byget_product_detail. - Determine delivery eligibility for a ZIP code by passing
zip_codeandzip_statetoget_product_detail.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Lowe's offer an official developer API?+
What does the `availability` field in `get_product_detail` contain?+
availability object breaks down fulfillment options for a product, including methods like in-store pickup and delivery. Its contents are scoped to the store number and ZIP code you provide in the request. Omitting those parameters will return default or national availability data.Does the API cover Lowe's Pro or contractor pricing?+
Can I retrieve product reviews through this API?+
get_product_detail returns rating (average star rating) and review_count (number of reviews), but individual review text and reviewer metadata are not currently returned. You can fork this API on Parse and revise it to add a review-listing endpoint that surfaces per-review content.How does pagination work across the endpoints?+
offset (current position), next_offset (the value to pass on the next call, or null if there are no more results), and total_count (total items available). Pass offset and limit on each request to step through pages. When next_offset is null, you have reached the last page.