ScavioScavio
Pricing
Tools
Sign InsGet Startedg
Blog
Home depot6 min readNov 3, 2026

How to Check Home Depot Stock by Store With an API: Units on Hand, Pickup Type and the 20 Nearest Stores

Check Home Depot stock by store with Scavio: list the 20 stores near a ZIP, then get units on hand, shelf vs ship-to-store and pickup date per store as JSON.

Scavio Team

Nov 3, 2026

Try the Home Depot API free
scavio
Inventory / Stock alerts
Home depot

To check Home Depot stock by store from code, use Scavio's Home Depot API. POST /api/v1/homedepot/stores with a ZIP returns the 20 nearest store numbers, and POST /api/v1/homedepot/availability with an item id and a store_id returns that store's price, the units on hand, whether the item is on the shelf or only orderable to the store, and the pickup date. Each call costs 2 credits, about $0.004 on the Growth plan billed yearly.

Home Depot's website and app show stock for the one store you have selected, so checking a city means switching stores again and again. These five steps get the same answer for every store near a ZIP, from code.

Step 1: Find the stores near a ZIP

Bash
curl -s https://api.scavio.dev/api/v1/homedepot/stores \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "30318", "limit": 20}'

For Atlanta ZIP 30318 this returned 20 stores in 2.2 s on November 3, 2026, nearest first, from Midtown (3.95 miles) to Sandy Plains in Marietta (17.72 miles). One row, as captured, with the opening hours and services trimmed:

JSON
{
  "store_id": "0121",
  "name": "Cumberland",
  "store_type": "retail",
  "address": {
    "street": "2450 Cumberland Pkwy",
    "city": "Atlanta",
    "state": "GA",
    "postal_code": "30339",
    "country": "US"
  },
  "latitude": 33.862126,
  "longitude": -84.476161,
  "distance_miles": 5.94,
  "phone": "(770)432-9930",
  "pro_desk_phone": "(770)801-6415",
  "tool_rental_phone": "(770)801-6400",
  "url": "https://www.homedepot.com/l/Cumberland/GA/Atlanta/30339/121"
}

store_id is what the next calls take, with or without the leading zero. The query can also be a city or a street address, and distance_miles is measured from the place you searched. Store lists change rarely, so cache them.

Step 2: Find the item id

The item id is the number at the end of a homedepot.com product URL, and the availability call also accepts the full URL. To find items by keyword, use search:

Bash
curl -s https://api.scavio.dev/api/v1/homedepot/search \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "cordless drill", "sort_by": "top_sellers"}'

This returned 12 of 1,918 results. The third row, trimmed to the fields that matter here:

JSON
{
  "pos": 3,
  "item_id": "309752194",
  "store_sku": "1004501352",
  "model_number": "2746-20",
  "brand": "Milwaukee",
  "title": "M18 FUEL 18-Volt Lithium-Ion Brushless Cordless Gen II 18-Gauge Brad Nailer (Tool-Only)",
  "price": 279,
  "original_price": 329,
  "discount_percent": 15,
  "rating": 4.6774,
  "review_count": 2929,
  "stock_quantity": 13,
  "pickup": {
    "available": true,
    "type": "bopis",
    "store_id": "121",
    "store_name": "Cumberland",
    "store_state": "GA",
    "distance_miles": 0,
    "quantity": 13
  }
}

Search answers for one store that Home Depot assigns to the request, Cumberland here, and does not take a store number. Use it to find item ids, and use step 3 for the stores you choose.

Step 3: Check stock and price at one store

Bash
curl -s https://api.scavio.dev/api/v1/homedepot/availability \
  -H "Authorization: Bearer $SCAVIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"item_id": "309752194", "store_id": "0121"}'

The response, as captured, trimmed of the URL, the store SKU and the empty price fields:

JSON
{
  "data": {
    "item_id": "309752194",
    "store_id": "0121",
    "zip": null,
    "title": "M18 FUEL 18-Volt Lithium-Ion Brushless Cordless Gen II 18-Gauge Brad Nailer (Tool-Only)",
    "brand": "Milwaukee",
    "model_number": "2746-20",
    "price": 279,
    "original_price": 329,
    "currency": "USD",
    "discount_amount": 50,
    "discount_percent": 15,
    "promotion_type": "DISCOUNT",
    "promotion_start": "10/26/2026",
    "promotion_end": "01/31/2027",
    "clearance_price": null,
    "availability": "Shared",
    "buyable": true,
    "discontinued": false,
    "pickup": {
      "available": true,
      "type": "bopis",
      "store_id": "0121",
      "store_name": "Cumberland",
      "store_state": "GA",
      "store_phone": "(770)432-9930",
      "quantity": 13,
      "in_stock": true,
      "limited_quantity": false,
      "ready_date": "2026-11-03",
      "ready_date_latest": "2026-11-03"
    },
    "delivery": null,
    "retrieved_at": "2026-11-03T16:11:56.516Z"
  },
  "response_time": 3536,
  "credits_used": 2
}

price is the price at that store, with the promotion and its dates. pickup.quantity is the store's count, 13 here, and ready_date is the day you could collect it. At Morrow, 16.45 miles away and checked less than a minute later, the same item came back with quantity 0, in_stock false and limited_quantity true. Note that pickup.available stayed true at Morrow, so decide on quantity and in_stock, not on available. Add "zip" to the body and the same call also quotes delivery to that ZIP.

Step 4: Tell shelf stock from ship-to-store

pickup.type says what kind of pickup the store offers. bopis (buy online, pick up in store) means the store has the item on its own shelf, and quantity is that shelf count. boss (buy online, ship to store) means the store has none to hand over, and Home Depot will send one there. A Milwaukee M12 FUEL combo kit (item 342964677) at the same Cumberland store, with ZIP 30318 added, trimmed to the stock fields:

JSON
{
  "price": 365,
  "availability": "Online",
  "pickup": {
    "available": true,
    "type": "boss",
    "store_id": "0121",
    "store_name": "Cumberland",
    "quantity": 962,
    "in_stock": true,
    "limited_quantity": false,
    "ready_date": "2026-11-04",
    "ready_date_latest": "2026-11-06"
  },
  "delivery": {
    "zip": "30318",
    "available": true,
    "backordered": false,
    "options": [
      {
        "type": "sth",
        "charge": 0,
        "free_shipping": true,
        "earliest_date": "2026-11-05",
        "latest_date": "2026-11-05",
        "quantity_available": 962,
        "in_stock": true
      }
    ]
  }
}

The 962 is the stock Home Depot can ship, the same number as the delivery option, not 962 kits in Cumberland. A ship-to-store row is not a reason to drive to the store today, so a "near me" tool should show only bopis rows with a quantity above 0 as available now and show boss rows with their ready date.

Step 5: Check every nearby store and keep watching

Python
import os, requests

H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}"}
API = "https://api.scavio.dev/api/v1/homedepot"

stores = requests.post(f"{API}/stores", headers=H,
                       json={"query": "30318", "limit": 20}, timeout=60).json()["data"]["stores"]
for s in stores:
    d = requests.post(f"{API}/availability", headers=H,
                      json={"item_id": "309752194", "store_id": s["store_id"]}, timeout=60).json()["data"]
    p = d["pickup"] or {}
    on_shelf = p.get("type") == "bopis" and (p.get("quantity") or 0) > 0
    print(s["name"], s["distance_miles"], d["price"], p.get("type"), p.get("quantity"), on_shelf)

On November 3 this loop took 21 calls and 42 credits. The nailer was $279 at all 20 stores; 13 stores had it on the shelf and 7 had none, and of the 45 units across the metro, 13 were at Cumberland. The nearest store, Midtown, had 1, and the next two, Buckhead and Cascade, had none. The chart of every store and a comparison of the other options are in the best Home Depot store inventory APIs.

To watch for a restock, run the loop on a schedule, store quantity and type per store with retrieved_at, and alert when a store goes from 0 to a bopis quantity above 0. Prices can differ by store too: a 2x4x96 in. stud (item 312528776) was $4.25 at Midtown and at Manhattan West 23rd St and $4.15 at West Seattle, all three checked within five seconds, so store the price next to the count.

All store-level endpoints

EndpointWhat it returnsCredits
/api/v1/homedepot/storesUp to 20 stores near a ZIP, city or address: store_id, address, coordinates, distance, phones, hours, services2
/api/v1/homedepot/availabilityOne item at the store you pass: the store's price and promotion, pickup type, units on hand, ready date; delivery options to a ZIP if you add one2
/api/v1/homedepot/shippingEvery delivery option for an item to a ZIP and quantity, with charge and dates4
/api/v1/homedepot/search12 products a page with price, rating and pickup stock at the one store Home Depot assigns2
/api/v1/homedepot/productThe full item page: specs, UPC, documents, rating and a 10-review preview, no store stock2

The delivery quote for the nailer to ZIP 30318 listed free express delivery the same day, free standard shipping the next day and a 2-hour on-demand option for $7. An invalid body returns a 400 and is not charged; an unknown item id returns a 404 and is charged.

Getting started

  1. Sign up at dashboard.scavio.dev/sign-up: 50 free credits, no card required, which is 25 Home Depot calls.
  2. Copy your API key from the dashboard.
  3. Send a POST to /api/v1/homedepot/stores with a ZIP, then to /api/v1/homedepot/availability with an item id and a store id.

Try the Home Depot API free in the playground first, or call it from Claude and other agents through the MCP server.

Reference: Home Depot API overview · stores · availability · delivery quote · search · best Home Depot store inventory APIs

Frequently asked questions

How do I check Home Depot stock at a store online?

On homedepot.com, set your store and open the product page, which shows pickup stock for that store; switch stores to check another. To check many stores from code, call Scavio's /api/v1/homedepot/stores with a ZIP for the nearby store numbers, then /api/v1/homedepot/availability with the item id and each store number. Each call returns the units on hand and the pickup date.

What is the difference between pick up in store and ship to store at Home Depot?

Pick up in store means the store has the item on its own shelf and you can collect it, usually the same day. Ship to store means that store has none, so Home Depot sends one there and you collect it later, in our test one to three days out. In API responses the first is type bopis with the store's count, the second is type boss with a later ready date.

How do I find items in Home Depot?

In the store, the Home Depot app shows an item's aisle and bay once you set that store. Before you go, check that the store has it at all: a store count of 0 means a trip for nothing. Scavio returns the count and pickup date but not the aisle and bay; Unwrangle's product API lists an aisle_bay field for a store number.

Is there a free Home Depot inventory API?

There is no free official one. Scavio gives 50 credits on signup with no card, which covers 25 store checks at 2 credits each, and paid plans start at $30 a month for 7,000 credits. SerpApi has 250 free searches a month and OpenWeb Ninja a free plan of 50 requests, after which every option compared in our roundup charges per check.

Home Depot stock by store as JSON

  • The 20 stores nearest any ZIP
  • Units on hand and the pickup date per store
  • Shelf stock told apart from ship-to-store
Try the Home Depot API free

50 free credits, no credit card

On this page

  1. Step 1: Find the stores near a ZIP
  2. Step 2: Find the item id
  3. Step 3: Check stock and price at one store
  4. Step 4: Tell shelf stock from ship-to-store

Related articles

View all
  • scavio
    Comparison / Inventory
    Home depot
    6 Best Home Depot Store Inventory APIs in 2026: Scavio Separates Shelf Stock From Ship-to-Store at Every Store
  • scavio
    Inventory / Stock alerts
    Target
    How to Check Target Stock by Store Through an API
ScavioScavio

One scraper API for every social, search, e-commerce and real estate platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy