Hornbach Scraper — German DIY Warehouse Products & Prices avatar

Hornbach Scraper — German DIY Warehouse Products & Prices

Pricing

Pay per event

Go to Apify Store
Hornbach Scraper — German DIY Warehouse Products & Prices

Hornbach Scraper — German DIY Warehouse Products & Prices

Scrape products from Hornbach.de via their GraphQL API. One of Germany's largest DIY warehouse chains — professional-grade tools and building materials.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Hornbach Scraper -- German/EU DIY Megastore for Project Builders

Scrape products, prices, ratings, stock status, and SKU data from hornbach.de -- Germany's DIY megastore chain built for serious project builders and professional contractors. Extracts data from Hornbach's Apollo/GraphQL state for fast, reliable results.

What is Hornbach Scraper?

Hornbach is not your average neighborhood hardware store. It's a warehouse-format DIY chain with massive stores (typically 10,000+ sqm each) designed for customers tackling serious renovation projects, new builds, and professional contracting work. With 100+ stores across Germany and over 160 stores across Europe (Netherlands, Austria, Sweden, Czech Republic, Romania), Hornbach is the go-to for bulk materials, professional-grade tools, and project-scale quantities.

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, which makes it fast and reliable.

  • Professional contractor price benchmarking -- Compare Hornbach's project-scale pricing on building materials, lumber, concrete, and insulation against OBI, Bauhaus, and wholesale suppliers
  • Bulk material cost tracking -- Monitor prices on high-volume items like wood planks, tiles, screws by the thousand, and bulk paint to optimize procurement timing
  • Power tool competitive analysis -- Track how Hornbach prices professional-grade power tools from Makita, DeWalt, Bosch Professional, Metabo, and Milwaukee against other German DIY chains
  • Garden and outdoor project planning -- Extract pricing data for garden sheds, terrace materials, fencing, and outdoor equipment for project budgeting
  • European DIY market research -- Hornbach operates in 9 countries; German pricing data serves as a benchmark for their European operations

What data does Hornbach Scraper extract?

  • 🪚 Product name -- Full German product title
  • 💰 Price & discounts -- Current price, original/strike-through price when discounted
  • 🏷️ Brand -- Manufacturer name (Makita, DeWalt, Bosch Professional, 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.de
  • 🏗️ SKU / Article number -- Hornbach's internal article number for reference and reordering

How to scrape Hornbach

FieldTypeDescription
searchQueryStringSearch by keyword -- e.g., "bohrmaschine", "schrauben", "gartenmobel", "holz"
categoryUrlStringDirect category URL -- e.g., https://www.hornbach.de/shop/Bohrmaschinen/S4071/artikelliste.html
maxResultsIntegerMaximum products to scrape (default: 100, set to 0 for unlimited)
proxyConfigurationObjectApify proxy recommended for reliability

Tips:

  • categoryUrl overrides searchQuery if both are provided
  • The search URL pattern is https://www.hornbach.de/s/{query}/
  • Category URLs use the pattern /shop/{Category}/S{id}/artikelliste.html
  • Set maxResults to 0 to scrape everything the query or category returns
  • Apify proxy is enabled by default; residential proxies may be needed if you encounter blocks

Output

{
"name": "Makita Akku-Schlagbohrschrauber DHP486Z 18V ohne Akku",
"brand": "Makita",
"price": 159.00,
"currency": "EUR",
"url": "https://www.hornbach.de/p/makita-akku-schlagbohrschrauber-dhp486z-18v/10543678/",
"scrapedAt": "2026-04-03T14:00:00.000Z",
"originalPrice": 179.00,
"imageUrl": "https://www.hornbach.de/media/makita-dhp486z.jpg",
"rating": 4.8,
"reviewCount": 127,
"sku": "10543678",
"inStock": true
}

A building materials example:

{
"name": "Konstruktionsvollholz NSi 60 x 80 x 3000 mm Fichte/Tanne",
"brand": "HORNBACH",
"price": 8.95,
"currency": "EUR",
"url": "https://www.hornbach.de/p/konstruktionsvollholz-nsi-60x80x3000-fichte/5432109/",
"scrapedAt": "2026-04-03T14:00:00.000Z",
"imageUrl": "https://www.hornbach.de/media/kvh-fichte-60x80.jpg",
"rating": 4.5,
"reviewCount": 43,
"sku": "5432109",
"inStock": true
}

How much does it cost?

Hornbach Scraper uses direct HTTP requests with Apollo state extraction -- no browser overhead.

ScenarioProductsEst. cost
Quick search100~$0.15
Category deep dive500~$0.50
Department inventory1,000~$0.90
Full catalog section5,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 ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("studio-amba/hornbach-scraper").call(run_input={
"searchQuery": "holz",
"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-scraper').call({
searchQuery: 'holz',
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.de (Germany). Hornbach operates in 9 European countries (Netherlands, Austria, Sweden, Czech Republic, etc.), each with a separate website. The extraction logic may partially work on other country sites but is optimized for the German store.

Why does Hornbach matter for professional contractors? Hornbach's warehouse format is specifically designed for project builders. They stock professional-grade materials in bulk quantities, offer contractor accounts, and provide services like wood cutting and delivery for large orders. Their pricing on volume materials (lumber, tiles, concrete) is often more competitive than smaller-format DIY stores.

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.

Can I track Hornbach'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's online catalog? Hornbach.de carries an estimated 50,000-80,000 products online. Individual categories like "Bohrmaschinen" (drills) might have 200-500 products. Set maxResults based on the scope of your query.

Limitations

  • Targets hornbach.de (Germany) 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)
  • Some product categories may require Apify residential proxies if datacenter IPs are blocked

Other DIY & home improvement scrapers

Compare Hornbach with every major European DIY retailer:

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.