Hornbach NL Scraper — DIY Products, Tools & Prices
Pricing
from $1.20 / 1,000 result scrapeds
Hornbach NL Scraper — DIY Products, Tools & Prices
Scrapes products from Hornbach.nl with prices, ratings, stock info and specs. Supports search queries and category URLs.
Pricing
from $1.20 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
Hornbach NL Scraper -- Dutch DIY Megastore for Project Builders
Scrape products, prices, ratings, stock status, and SKU data from hornbach.nl -- the Dutch storefront of the Hornbach DIY megastore chain. Extracts data from Hornbach's Apollo/GraphQL state for fast, reliable results.
What is Hornbach NL Scraper?
Hornbach is not your average neighborhood hardware store. It's a warehouse-format DIY chain with large stores designed for customers tackling serious renovation projects, new builds, and professional contracting work. Hornbach runs stores across the Netherlands alongside its German parent chain and other European storefronts, and hornbach.nl is the dedicated Dutch site with Dutch-language listings and euro pricing.
Hornbach's website uses a modern React frontend with Apollo GraphQL state management. This scraper extracts product data directly from the server-rendered Apollo state embedded in the HTML -- no JavaScript rendering needed on the extraction side, which makes it fast and reliable once the page is fetched.
- Contractor price benchmarking -- Compare Hornbach NL's pricing on building materials, lumber, and insulation against Praxis, GAMMA, and Karwei
- Bulk material cost tracking -- Monitor prices on high-volume items like wood planks, tiles, screws by the box, and bulk paint to optimize procurement timing
- Power tool competitive analysis -- Track how Hornbach NL prices power tools from Bosch, Makita, DeWalt, and Metabo against other Dutch DIY chains
- Garden and outdoor project planning -- Extract pricing data for garden sheds, terrace materials, fencing, and outdoor equipment for project budgeting
- Dutch DIY market research -- Use hornbach.nl pricing as a data point alongside Hornbach's German and other European sites
What data does Hornbach NL Scraper extract?
- Product name -- Full Dutch product title
- Price & discounts -- Current price, original/strike-through price when discounted
- Brand -- Manufacturer name (Bosch, Bosch Professional, Makita, DeWalt, HORNBACH, etc.)
- Stock availability -- Online availability status
- Ratings & reviews -- Average rating and review count
- Product image -- Main product image URL
- Product URL -- Direct link on hornbach.nl
- SKU / Article number -- Hornbach's internal article ID for reference and reordering
How to scrape Hornbach Netherlands data
| Field | Type | Description |
|---|---|---|
searchQuery | String | Search by keyword -- e.g., "boormachine", "schroeven", "tuinmeubelen", "hout" |
categoryUrl | String | Direct category URL -- e.g., https://www.hornbach.nl/c/machines-gereedschap-werkplaats/elektrisch-gereedschap/S5512/ |
maxResults | Integer | Maximum products to scrape (default: 100, set to 0 for unlimited) |
proxyConfiguration | Object | Apify proxy recommended for reliability |
Tips:
categoryUrloverridessearchQueryif both are provided- The search URL pattern is
https://www.hornbach.nl/s/{query}/ - Category URLs use the pattern
/c/{category-path}/S{id}/(note: this differs from hornbach.de, which uses/shop/{Category}/S{id}/artikelliste.html) - Set
maxResultsto 0 to scrape everything the query or category returns - Apify proxy is enabled by default; hornbach.nl runs the same anti-bot challenge as hornbach.de, so a Bright Data fallback kicks in automatically when the residential proxy is blocked
Output
{"name": "BOSCH Professional Klopboormachine GSB 13 RE","brand": "Bosch Professional","price": 89.95,"currency": "EUR","url": "https://www.hornbach.nl/p/bosch-professional-klopboormachine-gsb-13-re/6094347/","scrapedAt": "2026-08-27T14:00:00.000Z","imageUrl": "https://media.hornbach.nl/hb/packshot/as.46756464.jpg?dvid=8","rating": 3.1,"reviewCount": 21,"sku": "6094347_ST","inStock": true}
A building materials example:
{"name": "Vurenhout geschaafd 18 x 95 x 3000 mm","brand": "HORNBACH","price": 12.45,"currency": "EUR","url": "https://www.hornbach.nl/p/vurenhout-geschaafd-18x95x3000/5432109/","scrapedAt": "2026-08-27T14:00:00.000Z","imageUrl": "https://media.hornbach.nl/hb/packshot/as.12345678.jpg","rating": 4.5,"reviewCount": 43,"sku": "5432109","inStock": true}
How much does it cost?
Hornbach NL Scraper uses direct HTTP requests with Apollo state extraction, falling back to a JS-rendering fetch only when the anti-bot wall requires it -- no persistent browser overhead.
| Scenario | Products | Est. cost |
|---|---|---|
| Quick search | 100 | ~$0.15 |
| Category deep dive | 500 | ~$0.50 |
| Department inventory | 1,000 | ~$0.90 |
| Full catalog section | 5,000 | ~$3.50 |
Proxy costs may apply depending on your Apify plan and proxy configuration.
Can I integrate?
- JSON, CSV, Excel -- Direct dataset download
- Google Sheets -- Auto-sync via Apify integration
- Webhooks -- Trigger your pipeline on completion
- API -- Programmatic access (see below)
- Zapier / Make -- 5,000+ app integrations
- Amazon S3, Google Cloud Storage -- Cloud storage push
Can I use it as an API?
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("studio-amba/hornbach-nl-scraper").call(run_input={"searchQuery": "boormachine","maxResults": 200,"proxyConfiguration": {"useApifyProxy": True}})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['name']} - EUR {item['price']}")
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('studio-amba/hornbach-nl-scraper').call({searchQuery: 'boormachine',maxResults: 200,proxyConfiguration: { useApifyProxy: true },});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
FAQ
Does this work for Hornbach in other countries?
This scraper targets hornbach.nl (Netherlands). Hornbach also runs hornbach.de (Germany) and other European storefronts, each with its own URL structure -- the Dutch category path (/c/{path}/S{id}/) is different from the German one (/shop/{Category}/S{id}/artikelliste.html). Use Studio AMBA's separate Hornbach DE scraper for the German site.
Why does Hornbach matter for project builders? Hornbach's warehouse format is built for renovation and construction projects rather than small household fixes. Stores stock materials in bulk quantities and carry professional-grade tools alongside DIY basics.
How does the Apollo state extraction work?
Hornbach's website server-renders product listings using React with Apollo Client. The full Apollo state (including product data, prices, ratings) is embedded in the HTML as window.__APOLLO_STATE__. The scraper parses this JSON directly, which is faster and more reliable than scraping HTML elements.
What if the Apollo state is not found? The scraper includes an HTML fallback parser that extracts product data from DOM elements (product tiles, price elements, brand labels). This covers cases where Hornbach changes their rendering approach.
Why does this actor need Bright Data as a fallback? hornbach.nl runs an F5/Shape-style "Client Challenge" JavaScript wall in front of the site. Datacenter and even residential Apify proxy exits are frequently challenged and return no Apollo state. When that happens, the actor automatically retries the same page through Bright Data's Web Unlocker with JS rendering enabled, which solves the challenge.
Can I track Hornbach NL's weekly promotions?
Yes. Products with active promotions will show both price (current) and originalPrice (before discount). Schedule the actor to run weekly to track promotional patterns over time.
How large is Hornbach NL's online catalog?
Individual categories can run from a few hundred to several thousand products -- the "elektrisch gereedschap" (power tools) category alone lists over 3,000 items. Set maxResults based on the scope of your query.
Limitations
- Targets hornbach.nl (Netherlands) only
- Data is extracted from listing-level Apollo state, so detailed specs and descriptions are not included (these would require visiting individual product pages)
- If Hornbach changes their Apollo state structure or switches rendering approaches, extraction may be temporarily affected
- Pagination stops when fewer than 20 products are found on a page (heuristic for detecting the last page)
- Category and search pages sit behind an anti-bot challenge; when the built-in Bright Data fallback is exhausted or unavailable, some runs may return fewer results than expected
Other DIY & home improvement scrapers
Compare Hornbach NL with other major European DIY retailers:
- Hornbach Scraper -- Germany's Hornbach DIY megastore
- Praxis Scraper -- Netherlands, Maxeda DIY Group
- GAMMA Scraper -- Belgium, Intergamma group
- Brico Scraper -- Belgium's largest DIY chain
- Hubo Scraper -- Belgian neighborhood DIY
- OBI Scraper -- Germany's #1 DIY chain by store count
- Bauhaus Scraper -- German/EU professional hardware & DIY
- Leroy Merlin Scraper -- France's #1 DIY retailer
- Castorama Scraper -- France, Kingfisher group
Your feedback
Found a bug? Need additional data fields? Questions about Hornbach's data structure? Open an issue on the actor's page or reach out through Apify.