Lowe's API: Get product details
Finds a Lowe's product by name, item number or product link and returns its details, price, specifications, images and availability at the nearest store for a ZIP code (or the site's default store).
Unofficial. Not affiliated with or endorsed by Lowe's.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Product, required
product Product name, Lowe’s product page link, or item number, such as DeWalt 20V MAX drill DCD771C2.
DeWalt 20V MAX drill DCD771C2
- Zip Code optional
zip_code Five-digit US ZIP code for the nearest store, such as 78701. Omit for the site’s default store.
Not set
Input as JSON
{ "product": "DeWalt 20V MAX drill DCD771C2"}Output
{ "bay": "37", "aisle": "59", "brand": "DEWALT", "price": 129, "currency": "USD", "was_price": 179, "image_links": [ "https://mobileimages.lowes.com/productimages/98901790-b0c3-4fcd-ac02-26524801b302/94752317.jpeg" , "https://mobileimages.lowes.com/productimages/b9bdbdb3-16ca-43ad-94e5-e38660926a03/03326165.jpg" , "https://mobileimages.lowes.com/productimages/f34a6ac3-6a66-46b9-8476-7980c7cc0763/87537530.jpeg" ], "item_number": "506283", "star_rating": 4.6, "model_number": "DCD771C2", "product_link": "https://www.lowes.com/pd/DEWALT-20-Volt-Max-1-2-in-Cordless-Drill-Charger-Included/50040962" , "product_name": "DEWALT 20-volt Max 1/2-in Keyless Cordless Drill 2 -Batteries Included, and Charger Included" , "review_count": 1395, "stock_at_store": "Not in stock at store; pickup available Oct 2, 2026", "delivery_estimate": "Standard shipping estimated Oct 1, 2026", "key_specifications": [ { "name": "Package Quantity", "value": "1" }, { "name": "Battery Type", "value": "Lithium ion (Li-ion)" }, { "name": "Battery Voltage", "value": "20-volt max" } ], "nearest_store_name": "S.E. Austin (E. Stassney Ln.)"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"lowes.com/get_product","input":{"product":"DeWalt 20V MAX drill DCD771C2"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "lowes.com/get_product" , "input": { "product": "DeWalt 20V MAX drill DCD771C2" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "lowes.com/get_product" , "input": { "product": "DeWalt 20V MAX drill DCD771C2" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run lowes.com/get_product# with {"product":"DeWalt 20V MAX drill DCD771C2"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "product" ], "properties": { "product": { "type": "string", "minLength": 1, "description": "Product name, Lowe’s product page link, or item number, such as DeWalt 20V MAX drill DCD771C2." }, "zip_code": { "type": "string", "pattern": "^[0-9]{5}$", "description": "Five-digit US ZIP code for the nearest store, such as 78701. Omit for the site’s default store." } }, "additionalProperties": false}Output schema
{ "type": "object", "required": [ "product_name", "brand", "model_number", "item_number", "price", "currency", "was_price", "star_rating", "review_count", "nearest_store_name", "stock_at_store", "aisle", "bay", "delivery_estimate", "product_link", "key_specifications", "image_links" ], "properties": { "bay": { "type": [ "string", "null" ] }, "aisle": { "type": [ "string", "null" ] }, "brand": { "type": [ "string", "null" ] }, "price": { "type": [ "number", "null" ] }, "currency": { "type": "string" }, "was_price": { "type": [ "number", "null" ] }, "image_links": { "type": "array", "items": { "type": "string" } }, "item_number": { "type": "string" }, "star_rating": { "type": [ "number", "null" ] }, "model_number": { "type": [ "string", "null" ] }, "product_link": { "type": "string" }, "product_name": { "type": "string" }, "review_count": { "type": [ "integer", "null" ] }, "stock_at_store": { "type": [ "string", "null" ] }, "delivery_estimate": { "type": [ "string", "null" ] }, "key_specifications": { "type": "array", "items": { "type": "object", "required": [ "name", "value" ], "properties": { "name": { "type": "string" }, "value": { "type": "string" } }, "additionalProperties": false } }, "nearest_store_name": { "type": [ "string", "null" ] } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
lowes.com/get_product- Returns
- name, brand, model, item number, price, was price, rating, reviews, store stock, aisle and bay, delivery estimate, specifications, images
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method lowes.com/get_product with the inputs above.
Ask your agent
- Is the DeWalt 20V MAX cordless drill DCD771C2 in stock at the Lowe's nearest 78701, and which aisle and bay is it in?
- What's the current price and was-price on Lowe's item #1000595451? I'd also like the specs and the star rating.
- Look up the Kobalt 24V brushless leaf blower and tell me the model number, reviews, and how fast it can be delivered to ZIP 30309.
- I need the full specifications and product photos for a Samsung 28 cu ft French door refrigerator, plus whether a store near 60614 has one available.
- Check this link https://www.lowes.com/pd/Pella-Lifestyle-Series-Double-Hung-Window/5001234567 and give me the brand, price, and stock at the default store.
See more
Gets details, price and availability for a Walmart product by name or product link, using Walmart's default location.
walmart.com/get_productGets a B&H Photo product's details by name, product link, or B&H number. A name uses the best matching search result; details and prices reflect the public page.
bhphotovideo.com/get_productGets full details for a Newegg US product by name, product link, or item number. Seller, price, stock and shipping reflect the selected public offer; shipping may be unavailable when not displayed.
newegg.com/get_productGets a Sephora US product's full details from its name (optionally narrowed by brand) or its Sephora product link: price, sizes and shades with stock, highlights, description, ingredients, usage, ratings and images.
sephora.com/get_productSearches Walmart products by keywords with optional sort and price range, returning prices, ratings, sellers and availability in Walmart's order. Uses Walmart's default location (no ZIP-based pricing).
walmart.com/search_productsGets a public Shopify product by its product page link, or by the closest name match within a store. Stores that restrict public product access cannot be read.
shop.app/get_store_productFinds a Flipkart product from its name or link and returns its price, offers, seller, ratings, highlights, specifications, images and delivery estimate (for a PIN code when given).
flipkart.com/get_product_by_productSearches a named Instacart store's guest-visible grocery products for a US ZIP code. Prices are in USD and can differ from in-store prices; stock estimates can change.
instacart.com/search_products