Lowe's API
Lowe's data as structured JSON, priced and stocked at the store you choose: search with the store's price, was-price and sale end date; product detail with aisle, bay and stock at nearby stores; a store locator by ZIP; and customer reviews.
50 free credits on signup. No card, no Lowe's account.
{ "data": { "query": "cordless drill", "on_sale": false, "store_id": "0595", "zip": "28117", "store": { "store_id": "0595", "name": "Mooresville Lowe's", "phone": "(704) 660-7177" }, "page": 1, "page_size": 24, "total_results": 285, "total_pages": 12, "count": 24, "products": [ { "position": 1, "item_id": "5016412045", "model_number": "CMCD714D1", "brand": "CRAFTSMAN", "title": "20-volt 1/2-in Keyless Brushless Cordless Drill 1 -Batteries Included, and Charger Included", "price": 129, "original_price": null, "discount_amount": null, "discount_percent": null, "promotion_end": null, "rating": 4.9, "review_count": 97, "in_stock": true, "stock_quantity": 7, "pickup": { "available": true, "quantity": 7, "lead_time_days": 0 } }, { "position": 2, "item_id": "5014148635", "model_number": "DCD793D1", "brand": "DEWALT", "title": "20-volt Max 1/2-in Keyless Brushless Cordless Drill 1 -Batteries Included, and Charger Included", "price": 99, "original_price": 179, "discount_amount": 80, "discount_percent": 44, "promotion_end": "2027-01-20T00:00:00.000Z", "rating": 4.7, "review_count": 792, "in_stock": true, "stock_quantity": 129, "pickup": { "available": true, "quantity": 129, "lead_time_days": 0 } } ] }}Live call against the real endpoint at Lowe's store 0595 (Mooresville, NC). 2 free runs, then it's your own key.
What is the Scavio Lowe's API?
The Scavio Lowe's API is a REST API that returns Lowe's data as structured JSON for the store you pick. Lowe's has no public API. Its 4 POST endpoints cover search with the store's price, deals and stock; product detail with aisle and nearby-store stock; a store locator; and reviews. Calls cost 1 to 2 credits.
- 4
- endpoints, all live in production
- 2
- credits for search, product and stores; reviews 1
- 8
- nearby stores' stock in one product call (our capture)
The Lowe's data buyers actually need
What an item costs at one store, how many are on the shelf, and where.
Store-level search
POST /api/v1/lowes/searchSearch lowes.com by keyword or category at the store you pick. Each result carries that store's price, was-price, savings and sale end date, on-hand stock, and availability for pickup, truck delivery, parcel shipping and same-day delivery. Set on_sale to list only the store's deals.
Product, aisle and nearby stock
POST /api/v1/lowes/productOne item at one store: price, stock and lead time per fulfillment method, the aisle and bay it sits in, and the stock at nearby Lowe's stores in the same call. Plus grouped specifications, bullets, UPC, dimensions, weight and images.
Store locator
POST /api/v1/lowes/storesThe Lowe's stores nearest a ZIP code with the store number and ZIP that every search and product call takes, plus address, phone, Pro Desk phone, coordinates, opening hours and features such as the garden center.
Reviews
POST /api/v1/lowes/reviewsCustomer reviews 10 at a time, newest, oldest or most helpful first, with the review text, verified and incentivized flags, photos and brand replies, plus the average rating and the count per star.
All 4 Lowe's API endpoints
Every route is a POST, returns JSON, and takes the same API key. Credits are charged per successful call.
| Endpoint | Returns | Credits |
|---|---|---|
Search/api/v1/lowes/search | Keyword or category search at one store: the store's price, was-price, savings and sale end date, brand, model number, rating, stock, and pickup, truck delivery, parcel and same-day availability; on_sale for that store's deals | 2 |
Product detail/api/v1/lowes/product | One item at one store: price and savings, on-hand stock with lead time per fulfillment method, stock at nearby stores, aisle and bay, grouped specs, UPC, dimensions, weight, images and the store's hours | 2 |
Store locator/api/v1/lowes/stores | Up to 10 Lowe's stores near a ZIP, nearest first: store number, address, phone, coordinates, distance, time zone, opening hours and features | 2 |
Reviews/api/v1/lowes/reviews | 10 reviews per page with rating, title, text, date, recommended, verified and incentivized flags, photos and brand replies, plus the star distribution | 1 |
50 free credits on signup covers 25 store-level searches. See plans
Pick a store, search its deals, find the aisle
The store locator returns the store_id and ZIP every other call takes; search and product are then priced and stocked at that store. The response on the right is a real capture.
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Nearest Lowe's store: its store_id and ZIP - 2 credits
store = client.lowes.stores(zip="28117", limit=1)["data"]["stores"][0]
store_id, store_zip = store["store_id"], store["address"]["postal_code"]
# That store's deals on cordless drills - 2 credits
res = client.lowes.search(query="cordless drill", store_id=store_id, zip=store_zip, on_sale=True)
for p in res["data"]["products"][:5]:
print(p["title"], p["price"], "was", p["original_price"], "ends", p["promotion_end"], "on hand", p["stock_quantity"])
# One item: aisle and bay, plus stock at nearby stores - 2 credits
item = client.lowes.product(item_id="5016412045", store_id=store_id, zip=store_zip)["data"]
print(item["aisle_locations"])
print([(s["store_id"], s["quantity"]) for s in item["pickup"]["nearby_stores"]]){
"data": {
"query": "cordless drill",
"on_sale": false,
"store_id": "0595",
"zip": "28117",
"store": {
"store_id": "0595",
"name": "Mooresville Lowe's",
"phone": "(704) 660-7177"
},
"page": 1,
"page_size": 24,
"total_results": 285,
"total_pages": 12,
"count": 24,
"products": [
{
"position": 1,
"item_id": "5016412045",
"model_number": "CMCD714D1",
"brand": "CRAFTSMAN",
"title": "20-volt 1/2-in Keyless Brushless Cordless Drill 1 -Batteries Included, and Charger Included",
"price": 129,
"original_price": null,
"discount_amount": null,
"discount_percent": null,
"promotion_end": null,
"rating": 4.9,
"review_count": 97,
"in_stock": true,
"stock_quantity": 7,
"pickup": {
"available": true,
"quantity": 7,
"lead_time_days": 0
}
},
{
"position": 2,
"item_id": "5014148635",
"model_number": "DCD793D1",
"brand": "DEWALT",
"title": "20-volt Max 1/2-in Keyless Brushless Cordless Drill 1 -Batteries Included, and Charger Included",
"price": 99,
"original_price": 179,
"discount_amount": 80,
"discount_percent": 44,
"promotion_end": "2027-01-20T00:00:00.000Z",
"rating": 4.7,
"review_count": 792,
"in_stock": true,
"stock_quantity": 129,
"pickup": {
"available": true,
"quantity": 129,
"lead_time_days": 0
}
}
]
}
}Why not the official Lowe's API?
Lowe's has no public API. Its integrations serve suppliers managing their own items.
Lowe's supplier integrations
- No public API for product, price, stock or store data
- Supplier and vendor integrations require an approved business relationship
- Scoped to the items you supply, not the whole catalog or competitors' listings
- No self-serve key: onboarding is contractual
Scavio Lowe's API
- One API key, issued at signup, with no supplier account or contract
- Any public item's price, deals, stock and aisle at any Lowe's store
- Stock at nearby stores and per-method lead times in one product call
- Brand and model number on every row, for matching against other retailers
- Same key and JSON envelope as every other Scavio platform
Scavio returns publicly available data only, and never signs in as a Lowe's customer.
What developers build with it
Home improvement price tracking
Track what a list of tools, appliances and building materials costs at the Lowe's stores you care about, and catch markdowns with their end dates as they start.
search + productLocal inventory checks
See how many units a store has on hand, which aisle and bay they sit in, and which nearby stores have more, before anyone drives over.
stores + productContractor and Pro purchasing
Price a materials list at the closest store and the next few, and compare pickup, truck delivery and parcel lead times for each item.
stores + search + productRetail competitive intelligence
Match items by brand and model number and compare Lowe's prices against Home Depot and Walmart on one API key.
search + Home Depot + WalmartReview and product research
Pull review text, star distributions and recommendation counts for a product line to see what buyers praise and what they return.
reviewsHow to get Lowe's data as JSON
- 1
Get an API key
Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, with no card required and no Lowe's account.
- 2
Pick a store
Send {"zip": "28117"} to https://api.scavio.dev/api/v1/lowes/stores with an Authorization: Bearer header. Each store comes back with its store_id and its own ZIP code.
- 3
Search or price an item at that store
Pass the query plus the store's store_id and zip to /api/v1/lowes/search, or an item_id to /api/v1/lowes/product. Prices, stock and aisles in the response are that store's.
Lowe's API FAQ
Does Lowe's have a public API?
+
No. Lowe's does not offer a public API for product, price, stock or store data; its integrations are for approved suppliers and vendors working with their own items. The Scavio Lowe's API fills that gap with 4 POST endpoints that return lowes.com data as structured JSON: search, product detail, store locator and reviews.
What is the Scavio Lowe's API?
+
It is a REST API that returns public Lowe's data as structured JSON, priced and stocked at the store you choose. Search returns the store's price, was-price, savings and availability; product adds aisle and bay, nearby-store stock and full specs; stores finds store numbers by ZIP; reviews returns review text and the star distribution.
Why do search and product need a store_id and a ZIP?
+
Lowe's prices, stock and fulfillment are set per store, so every search and product call is pinned to one store. Pass the store's number as store_id and the store's own ZIP as zip. Both come from /api/v1/lowes/stores, and the response echoes the store actually used in store_id and store.
How do I find a Lowe's store number?
+
POST a 5-digit ZIP to /api/v1/lowes/stores. It returns up to 10 stores, nearest first, each with store_id, name, address (including its postal_code), phone, coordinates, distance in miles, opening hours and features. ZIP 28117 returned Mooresville Lowe's, store 0595, at 0.5 miles.
Can I see store-level stock?
+
Yes. Every search result and product carries stock_quantity, the units on hand at your store, plus a pickup block with quantity and lead time. The product call also lists nearby_stores with each store's quantity: our capture of a CRAFTSMAN drill at store 0595 showed 7 on hand and 8 nearby stores, the closest with 8 units at 5.4 miles.
Does the API return aisle and bay locations?
+
Yes, on the product endpoint. aisle_locations lists every spot the item sits in at that store, as aisle, bay and level, for example aisle 64, bay 7, TOOLS.
How do I find Lowe's deals and clearance?
+
Set on_sale: true on search. It returns only items on sale at that store, each with price, original_price, discount_amount, discount_percent and promotion_end. There is no separate clearance endpoint. In our capture a DEWALT DCD793D1 drill was $99, down from $179, 44% off until 2027-01-20.
Are Lowe's prices the same at every store?
+
Not always. Lowe's sets prices and availability per store, so the same item can differ from one store to the next. Run the same search or product call with different store_id values to compare.
How many results can a search return?
+
24 results per page, up to page 31. Pass query for keywords or category_id for the number at the end of a lowes.com/pl/ URL. A cordless drill search at store 0595 reported 285 results over 12 pages.
What do Lowe's reviews include?
+
10 reviews per page, sorted newest, oldest or most_helpful. Each has rating, title, text, author, date, recommended, helpful and unhelpful votes, verified_purchase, incentivized, photos and brand responses. The page also carries the average rating, total count, recommended counts and the count per star.
What does item_id look like?
+
It is the number at the end of a lowes.com/pd/ URL, such as 5014148635. You can also pass the full product URL as item_id. Every search result carries item_id, so you can go straight from search to product or reviews.
How much does a Lowe's request cost?
+
Search, product and stores cost 2 credits each; reviews cost 1. New accounts get 50 free credits on signup, one time, with no card required. Paid plans start at $30 per month for 7,000 credits.
How fresh is the data?
+
Every request fetches live from Lowe's at the moment you call it, and nothing is cached. Each response carries fetched_at, the time the data was retrieved.
Which languages and tools are supported?
+
Every endpoint is a plain HTTPS POST with a JSON body, so any language works. Scavio also ships Python and JavaScript SDKs, a remote MCP server at mcp.scavio.dev for AI agents, and an n8n community node, all on the same API key.
Is using Lowe's data legal?
+
Scavio returns publicly available Lowe's data and does not access accounts or order history. You remain responsible for how you use the data, including compliance with Lowe's terms. Talk to your own counsel for your specific use case.
Explore more of Scavio
Home Depot API
Store-level prices, stock, reviews and delivery quotes.
Canadian Tire API
Store prices, stock, clearance and deals in Canada.
Walmart API
Search, product, reviews and store-level pricing.
Costco API
Warehouse prices, gas, coupons and clearance.
Lowe's API docs
All 4 endpoints with params and real responses.
Try the Lowe's API free
50 free credits on signup, no card. Your first request is a POST with a ZIP code in it.