Lowes APIlowes.com ↗
Retrieve Lowe's product listings, search results, pricing, availability, and specs via 3 endpoints. Supports store-level inventory and ZIP-based delivery data.
What is the Lowes 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.
curl -X GET 'https://api.parse.bot/scraper/95caade6-3446-483b-a265-65353e571d23/get_category_products?limit=5&offset=0&category=dimensional-lumber&store_number=0340' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace lowes-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.lowe_s_product_api import Lowes, Product, ProductDetail, Category
lowes = Lowes()
# List products in dimensional lumber category
for product in lowes.products.list(category=Category.DIMENSIONAL_LUMBER):
print(product.description, product.price, product.rating)
# Search for products by keyword
for product in lowes.products.search(query="pressure treated 2x4"):
print(product.description, product.price, product.pickup_available)
# Get detailed product info
detail = lowes.products.get(product_id="4082896").details()
print(detail.description, detail.barcode, detail.is_buyable)
Get product listings for a given category with prices, specs, and availability. Supports named lumber categories (dimensional-lumber, studs, pressure-treated-lumber, plywood, boards, deck-boards) or numeric category IDs. Returns results ordered by relevance. Each product includes specs, ratings, and inventory status for the specified store. Paginate manually via offset parameter; next_offset in response indicates the next page offset or null when exhausted.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of products to return per request. |
| offset | integer | Pagination offset (number of items to skip). |
| 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. |
{
"type": "object",
"fields": {
"offset": "integer current pagination offset",
"products": "array of product objects",
"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.3,
"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": 1023,
"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": 347,
"store_number": "0340"
},
"status": "success"
}
}About the Lowes API
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.
The Lowes API is a managed, monitored endpoint for lowes.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when lowes.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official lowes.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- 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 | 100 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.