Lowe's
Lowe's Search API
Search Lowe's by keyword or category at one store and get that store's price, was-price and savings with the sale end date, brand, model number, rating and review count, and stock for pickup, truck delivery, parcel shipping and same-day delivery. Set on_sale for the store's deals. store_id and the store's ZIP are required; get both from Lowe's Store Locator. Prices are in dollars. Costs 2 credits per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsonquerystringSearch keywords, 1-200 characters. Pass this or category_id.
Example: cordless drill
category_idstringCategory id, the number at the end of a lowes.com/pl/ URL (4-16 digits). Pass this or query.
Example: 4294607842
store_idstringrequiredLowe's store number (up to 4 digits), as returned by /api/v1/lowes/stores.
Example: 0595
zipstringrequired5-digit US ZIP code. Use the store's own ZIP from /api/v1/lowes/stores.
Example: 28117
pageintegerResults page, 1-based. 24 results per page; Lowe's serves up to page 31.
Example: 1
on_salebooleanOnly items on sale at this store (with a was-price). A page can then hold fewer than 24 results.
Example: true
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Store 0595 = Mooresville, NC. store_id and its ZIP come from client.lowes.stores()
res = client.lowes.search(query="cordless drill", store_id="0595", zip="28117")["data"]
print(res["store"]["name"], res["total_results"], "results")
for p in res["products"]:
print(p["item_id"], p["brand"], p["price"], "on hand:", p["stock_quantity"])
# The store's deals: same call with on_sale=True
deals = client.lowes.search(query="cordless drill", store_id="0595", zip="28117", on_sale=True)Response