· 14 min read
Ace Hardware Scraper: 32 Data Fields, Up to 1,000 Free Results/Month
Each product record returned by this data collector carries 32 output fields, including current price, original list price, brand, customer ratings, and physical package dimensions. This provides structured inventory data without requiring logins, cookies, or API keys. Operating under Apify's free plan, you can extract up to 1,000 results a month at zero cost, which is ideal for testing or small-scale tracking. This scraper is designed specifically for US hardware retail tracking; it is not for buyers who need localized, store-specific pricing as it targets the online national storefront.
Try it: open Ace Hardware Scraper on Apify, sign in on the free plan and run the prefilled example.
Can you try Ace Hardware Scraper before paying?
Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Ace Hardware Scraper a month, before run-start charges and platform usage.
The example request further down caps maxItems at 20, so a first run returns at most 20 results and costs at most $0.10 in result charges. That is enough to see the real shape of the data before deciding anything.
Ace Hardware Scraper was last updated on 2026-07-21. It is one of 1,729 Actors CrawlerBros publishes on Apify, which together have 762,080 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.
What does it cost to run Ace Hardware Scraper?
Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.
| Apify plan | Per result | Per 1,000 results |
|---|---|---|
| FREE | $0.005 | $5.00 |
| BRONZE | $0.00433 | $4.33 |
| SILVER | $0.00367 | $3.67 |
| GOLD | $0.003 | $3.00 |
| PLATINUM | $0.003 | $3.00 |
| DIAMOND | $0.003 | $3.00 |
The mode and categoryUrl inputs have the most significant impact on your billing because they dictate how many products are written to the dataset. Browsing an entire top-level department will write up to your maxItems limit, whereas direct product lookups only write the specific items requested. To test your setup without spending, run the Actor with the default example inputs, which cap maxItems at 20 and cost at most $0.10 in result charges.
How do you run Ace Hardware Scraper from the API?
The schema marks 1 of its 13 controls as required: mode. The payload below uses the schema's own prefilled values, so it runs as written once you substitute your API token.
Call the synchronous endpoint to start a run and receive dataset items in one request:
curl -X POST "https://api.apify.com/v2/acts/crawlerbros~acehardware-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"byCategory","department":"tools","productIds":[],"productUrls":[],"inStockOnly":false,"onSaleOnly":false,"maxItems":20}'
The same run from Python, using the official client:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "byCategory",
"department": "tools",
"productIds": [],
"productUrls": [],
"inStockOnly": False,
"onSaleOnly": False,
"maxItems": 20
}
run = client.actor("crawlerbros~acehardware-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
And from Node.js:
import { ApifyClient } from 'apify-client'
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
const input = {
"mode": "byCategory",
"department": "tools",
"productIds": [],
"productUrls": [],
"inStockOnly": false,
"onSaleOnly": false,
"maxItems": 20
}
const run = await client.actor('crawlerbros~acehardware-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)
The synchronous endpoint holds the connection open until the run finishes, which is convenient for small batches and wrong for large ones. For anything long running, start the run asynchronously and poll, or attach a webhook, so a dropped connection does not cost you the results.
Which Ace Hardware Scraper inputs matter, and which can you skip?
The most important control to configure is mode, which switches the scraper between category browsing and direct product lookup. If you are browsing, use categoryUrl to paste a specific sub-category page instead of selecting a massive top-level department. Leave advanced parameters like minRating and onSaleOnly empty on your initial test runs to ensure you capture the widest possible sample of active inventory.
mode(string): What to fetch. Default:"byCategory".department(string): Top-level department to browse. Ignored ifcategoryUrlis set. Default:"tools".productIds(array): Ace Hardware numeric product/item codes, e.g.2192375. Default:[].productUrls(array): Full acehardware.com product page URLs, or shorthttps://www.acehardware.com/product/<id>links. Default:[].inStockOnly(boolean): Only emit products currently purchasable/in stock online. Default:false.onSaleOnly(boolean): Only emit products currently discounted below their list price. Default:false.maxItems(integer): Hard cap on emitted product records. Default:20.categoryUrl(string): Optional: paste any acehardware.com department or sub-category page URL (e.g.https://www.acehardware.com/departments/tools/power-tools/powered-screwdrivers) to browse a specific sub-category instead of a whole top-level department. Overridesdepartmentwhen set.keyword(string): Only keep products whose title, description, brand, or category contains this text (case-insensitive). Filters within the selected department/category - acehardware.com's sitewide search page is Cloudflare-protected and not reliably reachable, so this narrows the browse results instead. See README Limitations.minPrice(number): Drop products priced below this amount.maxPrice(number): Drop products priced above this amount.minRating(number): Drop products with a customer rating below this value, or with no rating yet.
The other 1 controls, with their defaults, are listed in the input schema on Ace Hardware Scraper on Apify.
Fixed-choice controls: mode accepts byCategory (Browse a department/category), byProductIds (Lookup by product ID), byProductUrls (Lookup by product URL); department accepts 15 values (default tools), including tools, lawn-and-garden (Lawn & Garden), outdoor-power-equipment (Outdoor Power Equipment), paint-and-supplies (Paint & Supplies).
What does Ace Hardware Scraper return?
The returned records contain rich retail details, such as manufacturer part numbers, UPCs, and physical shipping dimensions. They conspicuously lack local store inventory details and localized local pricing, which means they are best used for national digital shelf analysis rather than local store availability audits.
productId- Ace Hardware's internal product/item codetitle,description,shortDescriptionbranddepartment,category,categoryBreadcrumb[]price,currency,onSale,listPrice,discountPercent(when on sale)inStock,availability(In Stock/Out of Stock)upc,manufacturerPartNumbersupportsDelivery,supportsInStorePickuprating(0-5),reviewCountcountryOfOrigin- ISO country code (e.g.US,CN,VN)whatsInTheBox- box-contents description, for kits/bundlespackageDimensions(length/width/height/unit),packageWeight(value/unit) - shipping measurementsimages[],mainImagefeatures[]- marketing bullet pointssourceUrl,productUrlrecordType: "product",scrapedAt
These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.
How do you build the workflow end to end?
Open Ace Hardware Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.
- Select the required mode based on your sourcing style: choose byCategory for systematic department crawling, byProductIds for catalog updates, or byProductUrls for specific detail validation.
- Set the department value to one of the 15 available top-level categories, such as tools or lawn-and-garden, if you are browsing using byCategory.
- Provide a deep sub-category link in the categoryUrl field to override the top-level department dropdown and target precise pages like power tools or powered screwdrivers.
- Add a keyword string to filter titles, brands, and descriptions on the platform side to bypass the Cloudflare Turnstile blocks on the sitewide search page.
- Set the maxItems limit to a low value like 20 for your initial test to confirm that your filters and targeted category match your expected catalog footprint.
- Run the Actor and review the dataset output to ensure fields like price, brand, and categoryBreadcrumb are populated correctly.
- Inspect the countryOfOrigin and packageDimensions fields to make sure shipping and logistics data is present before scaling up your run.
How do you apply it? Three worked playbooks
These are Ace Hardware Scraper's own documented use cases, each worked through as an operating pattern rather than a description.
Use case 1: Price monitoring
Outcome: Track price and discount changes for specific SKUs over time
Configure: Set mode to "byProductIds" and populate the productIds array with your specific target item codes like ["2192375", "2611648"]. Set maxItems to 50.
Working method: Set up a daily or weekly schedule on Apify to run this configuration. Each run will output the current pricing, including the original listPrice and any active discountPercent if the item is on sale.
Deliverable: A historical dataset of product records over time containing the exact pricing, discount status, and in-stock availability of your target SKUs.
Stop condition: Stop execution if the returned dataset size is smaller than the input productIds array, indicating that some targeted items have been delisted or discontinued.
Use case 2: Assortment research
Outcome: See which brands and products a department carries
Configure: Set mode to "byCategory", department to "lawn-and-garden", and maxItems to 500.
Working method: Run the crawler to browse the selected department. Group the resulting dataset by the brand and category fields to analyze brand concentration and product assortments.
Deliverable: A comprehensive catalog extract of the department containing titles, brands, categories, and ratings for up to 500 active products.
Stop condition: Stop execution if the brand field is empty across more than 5% of the returned product records, which indicates a parsing shift on the department listing page.
Use case 3: Catalog enrichment
Outcome: Pull structured product data (images, specs, ratings) for a set of known product IDs
Configure: Set mode to "byProductIds", list your hardware product codes in the productIds array, and set maxItems to 100.
Working method: Execute the run to pull structured metadata for your SKU catalog. Verify that fields like images, packageDimensions, packageWeight, and features are fully populated.
Deliverable: A structured database of rich product assets, physical logistics data, and marketing bullets mapped directly to your internal inventory system.
Stop condition: Stop the ingestion process if key logistics fields like packageDimensions or packageWeight are missing on items where shipping data is critical.
What breaks, and how do you design around it?
- Sitewide free-text search is not supported. acehardware.com's
/searchpage is disallowed inrobots.txtand is protected by a Cloudflare Turnstile challenge that blocks every zero-cost access method (plain HTTP and browser-impersonation requests alike). Category browsing (with the in-categorykeywordfilter) and direct product ID/URL lookup are used instead, and reliably return full pricing and product data. - Only products currently listed on acehardware.com are returned; discontinued/delisted items are not available.
- Pricing, availability, and ratings reflect the online storefront at scrape time and may differ from in-store pricing at a specific Ace location.
Ace Hardware's sitewide search page is highly protected by Cloudflare Turnstile, which prevents free-text searches across the entire website. To design around this restriction, use mode set to byCategory coupled with a sub-category URL and a keyword filter to isolate target items. If an item is discontinued and no longer listed on the online storefront, the crawler cannot retrieve it, so always validate your product ID arrays against active listings.
When should you not use Ace Hardware Scraper?
Do not use this Actor if you need a worldwide tool catalog or UK-specific pricing, as this scraper only targets the US-based Ace Hardware website. If you are targeting European trade and industrial supplies, use Screwfix Trade & Industrial Supply Catalog Scraper instead. If you need a specialty catalog focused entirely on enthusiast power tools rather than general home improvement, use Tool Nut Scraper. If your target is general household decor, furniture, or home furnishings, you will obtain better coverage by running World Market Product Scraper or Dunelm Scraper.
What should you check before trusting the output?
- Check that the productId field is a non-empty string or numeric value, as every returned hardware record must have a unique identifier.
- Verify that the price field is populated with a positive float value and the currency is set to USD.
- Monitor the presence of the discountPercent field when onSale is true; this field must be omitted entirely rather than showing zero for full-price items.
- Ensure that the mainImage string starts with a valid HTTPS protocol to guarantee your media downstream does not break.
- Verify that categoryBreadcrumb is a non-empty array with at least one element representing the hierarchical path of the crawled item.
None of this proves a record is correct. It gives a scheduled Ace Hardware Scraper run defined points where it should stop instead of quietly passing bad data downstream.
Frequently asked questions
Can I search the entire site using keyword queries?
No, you cannot. The sitewide search page at acehardware.com is protected by Cloudflare Turnstile and is blocked in the site's robots.txt. To search for specific keywords, you must use the byCategory mode along with a keyword filter, which safely filters items within a chosen department on the platform side.
Why are some fields like discountPercent or rating missing?
The Actor is built to omit empty fields rather than returning empty placeholders or zeroes. A missing discountPercent simply means the product is currently selling at its normal list price. A missing rating indicates that the product has not received any customer reviews yet on the platform.
How much does it cost to run the Ace Hardware Scraper?
On Apify's free tier, the result charge is $0.005 per result, which equals $5.00 per 1,000 results. There is also a small charge for the run-start fee and platform usage based on your Apify plan. On the free plan, you get $5.00 of monthly usage, which covers up to 1,000 results.
Does this scraper require proxies or an API key?
No. The scraper runs successfully on public pages without requiring any login credentials, cookies, or API keys. It also runs without complex proxy configurations on Apify's free datacenter access, keeping your overhead costs low.
Can I target narrow categories instead of whole departments?
Yes. While the department dropdown exposes 15 top-level categories, you can paste any direct sub-category URL from the website into the advanced categoryUrl field. The scraper will automatically resolve the link and browse that specific sub-category.
Where to go next
When you are ready to run it, open Ace Hardware Scraper on Apify; the free plan covers up to 1,000 results a month.
Start with the Ace Hardware Scraper Actor page for the current input schema, pricing tier, and run history.
Other Actors we maintain for related data:
- Tool Nut Scraper: Scrape Tool Nut's power-tool and hardware catalog.
- Screwfix Trade & Industrial Supply Catalog Scraper: Scrape Screwfix.com - the UK's largest trade tool, hardware, and industrial/MRO supply catalog.
- Panduro Craft & Hobby Store Scraper: Scrape Panduro.com - a leading Nordic/European craft & hobby retailer (paint, yarn, beads, jewellery-making, kids' crafts).
- World Market Product Scraper: Scrape Cost Plus World Market (worldmarket.com) - a major US home decor, furniture, and specialty food retailer.
- Dunelm Scraper: Scrape Dunelm - the UK's leading home furnishings retailer.
- Wayfair Scraper: Scrape Wayfair product listings, product details, category browses, and brand pages from Wayfair.com (US), Wayfair.ca (Canada), Wayfair.co.uk (UK), and Wayfair.ie (Ireland).
- Sam's Club Product Scraper: Scrape Sam's Club wholesale products - search by keyword, browse by category, or enrich specific product URLs.
- Ulta Beauty Product & Review Scraper: Scrape Ulta Beauty (ulta.com) products by search, category, or brand.
Related guides:
- Blick Art Materials Scraper: Pull Data from 237 Categories (2026)
- Walgreens Scraper: 51 Data Fields, Up to 1,000 Free Results/Month
- Banggood Product & Price Scraper: 28 Data Fields per Record (2026)
- Foot Locker Product Scraper: 26 Data Fields per Record (2026)
Resources
Actor documentation, input schema, and pricing: verified against the published Actor on 2026-10-09.
Actor last updated by its maintainers on 2026-07-21.
Run outcome figures cover the 30 day public window ending 2026-10-09.
Featured actors
Ace Hardware Scraper
Scrape acehardware.com - browse departments (Tools, Lawn & Garden, Paint, Plumbing, Hardware, and more) or look up products by ID/URL. Get title, price, brand, category, description, images, rating, reviews, and stock availability.
Run on Apify ↗