logo

Home Depot Scraper API

View as Markdown

Fetch Home Depot product pages scoped to a specific store, and look up stores by zip code or coordinates

The Home Depot API fetches homedepot.com pages through a store-scoped session, so the response reflects the pricing, availability, and fulfillment options of the store you name rather than a random default. A companion endpoint resolves store IDs from a zip code or a pair of coordinates.

Home Depot pages are returned as HTML, not parsed JSON. The store lookup endpoint returns JSON. If you need structured product fields, parse the HTML on your side.

Endpoints

EndpointReturnsPurpose
/plugin/homedepot/productHTMLA product page rendered for a specific store
/plugin/homedepot/storesJSONStores near a zip code or coordinate pair

Both endpoints cost 10 credits per successful request. Requests rejected with 400 are not charged.

Home Depot is a synchronous-only plugin. It is not currently available through the Async API, which rejects homedepot/product and homedepot/stores with unsupported plugin key.


Product Endpoint

Basic Example

curl "https://api.scrape.do/plugin/homedepot/product?token=YOUR_TOKEN&url=https%3A%2F%2Fwww.homedepot.com%2Fp%2FMilwaukee-M12-FUEL-12V-Lithium-Ion-Brushless-Cordless-3-in-Cut-Off-Saw-w-M12-XC-5-0-Ah-Battery-2-Pack-Starter-Kit-and-Charger-2522-20-48-59-2450P%2F330625530&storeid=2414&zipcode=04401"

Request Parameters

All three parameters are required. Omitting any of them returns 400 before any page is fetched, so the request costs nothing.

ParameterTypeDescription
tokenstringYour Scrape.do API authentication token
urlstringFull Home Depot product URL, URL-encoded. Must be on homedepot.com
storeidstringHome Depot store number, for example 2414. Resolve one with the stores endpoint
zipcodestringZip code used to localize the session, for example 04401

Notes

  • The storeid and zipcode are applied to the session before the page is fetched, so prices, stock, and pickup options come back as that store serves them.
  • The response is the full product page HTML, typically around 700 KB.
  • Home Depot loads some pricing through client-side calls after the initial render. If a field you need is missing from the HTML, it is being fetched separately by the page rather than being withheld by the API.

Stores Endpoint

Resolves nearby stores, including the storeId values the product endpoint expects.

Basic Example

curl "https://api.scrape.do/plugin/homedepot/stores?token=YOUR_TOKEN&zipcode=04401"

Request Parameters

Provide either zipcode or both lat and lng. Sending neither returns 400 zipcode (or lat+lng) is required, and lat without lng is rejected the same way.

ParameterTypeDescription
tokenstringYour Scrape.do API authentication token
zipcodestringZip code to search around, for example 04401
latnumberLatitude, used together with lng as an alternative to zipcode
lngnumberLongitude, used together with lat

Coordinate Example

curl "https://api.scrape.do/plugin/homedepot/stores?token=YOUR_TOKEN&lat=44.8&lng=-68.75"

Response

{
  "data": {
    "storeSearch": {
      "stores": [
        {
          "storeId": "2414",
          "name": "Bangor",
          "phone": "(207)990-3133",
          "distance": "2.59",
          "storeTimeZone": "EST5EDT",
          "address": {
            "street": "650 Stillwater Avenue",
            "city": "Bangor",
            "state": "ME",
            "country": "US",
            "postalCode": "04401"
          },
          "coordinates": {
            "lat": 44.83381,
            "lng": -68.754598
          }
        }
      ]
    }
  }
}
FieldDescription
storeIdPass this as storeid to the product endpoint
nameStore name, usually the city or neighborhood
distanceDistance in miles from the searched location
addressStreet, city, state, country, and postal code
coordinatesStore latitude and longitude

The number of stores returned depends on density around the search point. A rural zip code may return three, while a dense metro area returns twenty. A zip code with no nearby stores returns 200 with an empty stores array rather than an error.


Error Responses

StatusBodyCause
400{"error":"zipcode is required"}Product endpoint called without zipcode
400{"error":"storeid is required"}Product endpoint called without storeid
400{"error":"zipcode (or lat+lng) is required"}Stores endpoint called without zipcode, or with lat but no lng

Rejected requests are not charged.

On this page