Hornbach Scraper — DIY Products, Tools & Prices
Pricing
Pay per usage
Hornbach Scraper — DIY Products, Tools & Prices
Scrapes products from Hornbach.de with prices, ratings, stock info and specs. Supports search queries and category URLs.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Jelle Desramaults
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Hornbach Scraper
Scrapes products from hornbach.de, one of Germany's largest DIY warehouse chains. Extracts data from their Apollo/GraphQL state embedded in server-rendered HTML -- fast and reliable.
Input
| Field | Type | Required | Description |
|---|---|---|---|
searchQuery | String | No | Search term (e.g., "bohrmaschine", "fliesen") |
categoryUrl | String | No | Hornbach category URL |
maxResults | Integer | No | Max results (default: 100, set to 0 for unlimited) |
proxyConfiguration | Object | No | Proxy settings |
At least one of searchQuery or categoryUrl is required.
Output
| Field | Type | Example |
|---|---|---|
name | String | "Akkuschrauber Bosch GSR 12V-15" |
brand | String | "Bosch" |
price | Number | 89.90 |
originalPrice | Number | 109.00 |
currency | String | "EUR" |
sku | String | "9876543" |
inStock | Boolean | true |
rating | Number | 4.6 |
reviewCount | Number | 87 |
imageUrl | String | Product image |
url | String | Product page URL |
How it works differently
Instead of parsing HTML product cards, this scraper extracts the window.__APOLLO_STATE__ object that Hornbach embeds in every server-rendered page. This JSON blob contains the full GraphQL query result with product titles, prices (including strike-through/original prices), ratings, stock status, and images -- all pre-parsed and structured.
When Apollo state isn't available (rare), it falls back to Cheerio HTML selectors.
Search URL pattern: https://www.hornbach.de/s/{query}/
Cost
Direct HTTP fetching with got-scraping. About $0.15 per 1,000 products.
Notes
- German site, all content in German
- Pagination uses
?page=Nparameter - The scraper stops paginating when fewer than 20 products are returned (indicates last page)