BAUHAUS Scraper | Product Prices, EAN and Specs avatar

BAUHAUS Scraper | Product Prices, EAN and Specs

Pricing

from $3.40 / 1,000 products

Go to Apify Store
BAUHAUS Scraper | Product Prices, EAN and Specs

BAUHAUS Scraper | Product Prices, EAN and Specs

BAUHAUS scraper for bauhaus.info: extract product prices, unit prices, EAN, model, specifications, ratings, delivery time, shipping cost, seller, images and PDF manuals by keyword, category link, article number or EAN. 20 products in 14 seconds, 46 fields each, with no BAUHAUS account needed.

Pricing

from $3.40 / 1,000 products

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Share

BAUHAUS Scraper | Product Prices, EAN, Specs and Delivery Times (2026)

1 keyword. 20 BAUHAUS products. 8 fields per product.

From SilentFlow. Creators of Pinterest Scraper and Leboncoin Scraper, with 420,000+ combined lifetime runs.

Every BAUHAUS product as one complete row: the price and the price per litre, metre or piece, the EAN and model, the full specifications, the delivery time and shipping cost, the seller, the star-by-star rating, every photo and every PDF manual. Our test run returned 20 drills from bauhaus.info in 10 seconds, each one completed with its product sheet, with no BAUHAUS account.

Why choose this actor?

Opening thirty BAUHAUS tabs to copy prices, EANs and model numbers into a sheet? Matching your own catalog to BAUHAUS article by article? Getting a price list with no specifications, no delivery time and no barcode, then going back to each product page anyway?

  • 42 fields filled per product, not 25. On the default run (20 products for bohrmaschine), 42 of the 47 product fields carry a value on at least half the rows: price, price type, unit price and its unit, sales unit, rating, review count and the 1 to 5 star breakdown, EAN, model, BAUHAUS article number, highlights, specifications as a table, scope of delivery, category path, product group, seller, delivery time, shipping cost, net weight, online date, every picture and every PDF document. The most used BAUHAUS scraper declares 25 fields in its dataset.
  • Keywords, bauhaus.info links, article numbers and EANs, in one form. Type a German keyword, paste a category or search page with the filters you clicked, paste a product page, or list article numbers and EAN barcodes from your spreadsheet, all in the same run. In our test, six entries (three article numbers, one EAN, one product link and one unknown number) gave 5 complete rows in 6 seconds, and the unknown one was reported in the log. The most used BAUHAUS scraper takes keywords only.
  • Delivery time, shipping cost and unit price on the same row. Each product carries the delivery window in working days, the shipping cost, the price per litre, kilo, metre or piece, and whether the price is a regular one or a promotion with its end date. In our default run, all 20 rows came with their delivery window (1 to 10 working days) and their shipping cost; on a white wall paint search, all 12 products came with their price per litre, from 1.20 EUR for a 10 l bucket to 109 EUR for a 50 ml tester.

Try BAUHAUS Scraper

Try your first 20 products

Paste this input in the JSON tab of the Input page and press Start. It reads the BAUHAUS search for drills, in BAUHAUS's own order, and completes each product with its product sheet.

{
"keywords": ["bohrmaschine"],
"maxItems": 20
}

It runs on the Apify Free plan. Each product becomes one row of your dataset: open the Output tab to see the table, switch to the Prices and delivery view or to the Catalog and specifications view, or export the rows as JSON, CSV or Excel.

How it works

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it the full context of this scraper:

You have access to the BAUHAUS Scraper on Apify: silentflow/bauhaus-scraper
It reads products of BAUHAUS Germany (bauhaus.info). One dataset row = one product.
Input (no field is required, give at least one of the first three):
- keywords (array of strings): German search terms, e.g. ["bohrmaschine", "gartenstuhl"]
- startUrls (array of {url}): bauhaus.info category, search or product links; filters and sort in the link are kept
- productIds (array of strings): BAUHAUS article numbers (20724487, Set-Z01261556, MP-000133988), EANs (3165140569187) or product links
- maxItems (integer, default 100): most products to save in the run
- sort (string, default "relevance"): relevance | price-asc | price-desc | topseller
- includeDetails (boolean, default true): true = full product sheet per row; false = listing fields only
Output per product (51 fields):
- id (string, BAUHAUS article number), url (string), title (string), brand (string), model (string), ean (string), manufacturerArticleId (string)
- description (string), highlights (array of strings), specifications (object name -> value), keyAttributes (array of strings),
scopeOfDelivery (string), productLine (string), category (string), categoryId (string), categoryPath (array of strings),
productGroup (string), labels (array of strings), isBauhausExclusive (boolean)
- seller (string), isMarketplace (boolean)
- price (number, EUR incl. VAT), currency (string), priceType ("regular" | "promotion"), originalPrice (number),
priceValidUntil (RFC 3339), unitPrice (number), unitPriceUnit (string), salesUnit (string),
rating (number 1-5), reviewsCount (integer), ratingDistribution (object "1".."5" -> count)
- availability (string, schema.org), inStock (boolean), isOnlineOrderable (boolean), isReservable (boolean), isReturnable (boolean),
shippingCost (number, EUR), deliveryDaysMin (integer, working days), deliveryDaysMax (integer, working days),
netWeight (number), netWeightUnit (string), availableOnlineSince (RFC 3339)
- imageUrl (string), images (array of strings), documents (array of {type, title, url}), relatedProductIds (array of strings)
- position (integer), searchQuery (string), sourceUrl (string), scrapedAt (RFC 3339)
Missing values are null.
Use apify-client for Python or JavaScript: client.actor("silentflow/bauhaus-scraper").call(run_input=...)

How to scrape BAUHAUS products

Three inputs, from the simplest to the most complete. Each one runs as it is.

The most basic run: one German keyword and a cap. A broad keyword lists hundreds of products; bohrmaschine lists 496.

{
"keywords": ["akkuschrauber"],
"maxItems": 50
}

Read the best sellers of a category first

Paste a category from bauhaus.info and ask for the topseller order. In our test, the 40 best sellers of the Akku-Maschinen category (2,053 products listed) came back in 23 seconds, each with its product sheet.

{
"startUrls": [{ "url": "https://www.bauhaus.info/akku-maschinen/c/10004445" }],
"sort": "topseller",
"maxItems": 40
}

Mix keywords, links, article numbers and EANs

Everything in one run: a keyword, a filtered search link, a product page, an article number and an EAN. A product reached twice (by keyword and by number) is saved once.

{
"keywords": ["tischbohrmaschine"],
"startUrls": [{ "url": "https://www.bauhaus.info/search?q=bohrmaschine&brand=Makita" }],
"productIds": [
"20724487",
"3165140569187",
"https://www.bauhaus.info/kombihaemmer/makita-kombihammer-hr2470/p/22147840"
],
"maxItems": 100
}

Input parameters

ParameterTypeDefaultWhat it does
keywordsarray of stringsprefilled with bohrmaschineGerman search terms, one search per keyword, e.g. bohrmaschine, akkuschrauber, wandfarbe weiß
startUrlsarray of linksnonebauhaus.info category, search or product pages; filters and sort order in the link are kept
productIdsarray of stringsnoneBAUHAUS article numbers, EAN barcodes or product links, one product each
maxItemsinteger100 (form prefilled with 20)the most products to save across all inputs
sortselectrelevancerelevance, price-asc, price-desc or topseller, for keywords and for links without their own order
includeDetailsbooleantrueon: full product sheet per row; off: listing fields only, faster for whole categories

No field is required: the form runs as it opens. Give at least one keyword, one link or one article number.

Accepted formats

  • Keywords: any text you would type in the BAUHAUS search bar. German terms match best (gartenstuhl, not garden chair). A keyword that BAUHAUS reads as a single product still works.
  • Category links: https://www.bauhaus.info/bohrmaschinen/c/10000161, with or without www., with or without https://. Brand and attribute filters in the link are kept: ?brand=Bosch returned only the 19 Bosch drills of that category in our test.
  • Search links: https://www.bauhaus.info/search?q=bohrmaschine&brand=Makita (the 90 Makita products of that search in our test).
  • Product links: https://www.bauhaus.info/tischbohrmaschinen/bosch-tischbohrmaschine-pbd-40/p/20724487, in startUrls or in productIds.
  • Article numbers: plain numbers (20724487), sets (Set-Z01261556) and marketplace articles (MP-000133988), in any letter case.
  • EANs: 12 to 14 digits (3165140569187). The run searches the barcode and keeps the product whose sheet carries it.

Only the German shop, bauhaus.info, is supported. Links to other BAUHAUS country shops are skipped with a message.

What data can you extract from BAUHAUS?

51 fields per product, grouped the way a buyer reads them. On the default run, 42 of the 47 product fields were filled on at least half the rows; the median product carried 12 specifications and 5 pictures, and 18 of 20 products came with an EAN, a rating and at least one PDF document.

GroupFieldsCount
Identityid (BAUHAUS article number), url, title, brand, model, ean, manufacturerArticleId7
Contentdescription, highlights, specifications, keyAttributes, scopeOfDelivery, productLine, category, categoryId, categoryPath, productGroup, labels, isBauhausExclusive12
Sellerseller, isMarketplace2
Price and ratingprice, currency, priceType, originalPrice, priceValidUntil, unitPrice, unitPriceUnit, salesUnit, rating, reviewsCount, ratingDistribution11
Delivery and stockavailability, inStock, isOnlineOrderable, isReservable, isReturnable, shippingCost, deliveryDaysMin, deliveryDaysMax, netWeight, netWeightUnit, availableOnlineSince11
Media and linksimageUrl, images, documents, relatedProductIds4
Run metadataposition, searchQuery, sourceUrl, scrapedAt4

A few facts that help when you use the data:

  • id is the BAUHAUS article number. It is the key of a product: https://www.bauhaus.info/p/{id} leads to the product page from the article number alone.
  • price is the online price in EUR, VAT included, as BAUHAUS shows it in Germany. priceType says regular or promotion; a promotion carries its end date in priceValidUntil (RFC 3339, UTC). originalPrice is filled only when BAUHAUS shows a regular price next to the promotion; in our runs, promotions came without one.
  • unitPrice and unitPriceUnit are the price per base unit the shop shows for paint, flooring, cables or screws (per litre, square metre, metre, kilo). For products sold by the piece they repeat the price per StΓΌck.
  • deliveryDaysMin and deliveryDaysMax are working days, Monday to Friday, for delivery to a German address.
  • specifications is an object, attribute name to value, in German, with the unit after numbers and ranges written from - to unit.
  • documents lists PDFs with their type in English (Instruction, Safety Instructions, Technical Data Sheet), their German title and their link.
  • images are the 1000 px product pictures, in the shop's order; imageUrl is the first one.
  • rating and ratingDistribution are null for a product without reviews, and reviewsCount is then 0.
  • Dates (availableOnlineSince, priceValidUntil, scrapedAt) are RFC 3339 in UTC.
  • With includeDetails off, rows keep the listing fields: id, url, title, brand, price, currency, availability, inStock, rating, reviewsCount, imageUrl, plus the run metadata.

Output example

One row of the default run, unchanged:

{
"id": "27751723",
"url": "https://www.bauhaus.info/tischbohrmaschinen/scheppach-tischbohrmaschine-dp55/p/27751723",
"title": "Scheppach Tischbohrmaschine DP55",
"brand": "Scheppach",
"model": "DP55",
"ean": "4046664094913",
"manufacturerArticleId": null,
"description": "Die Tischbohrmaschine DP55 von Scheppach eignet sich ideal fΓΌr exakte Bohrarbeiten. Das digitale Display dient zur stufenlosen Einstellung der Drehzahl und macht die Bohrmaschine besonders vielseitig. FΓΌr besonders prΓ€zise Bohrungen verfΓΌgt die Bohrmaschine ΓΌber einen Laser, um eine exakte Ausrichtung zu garantieren. Der Bohrer lΓ€sst sich einfach und schnell in das PrΓ€zisionsbohrfutter einspannen, die Schnellspannklemme sorgt fΓΌr eine einfache und stabile Fixierung der WerkstΓΌcke.",
"highlights": [
"Exakte Einstellung der Drehzahl durch Digitaldisplay",
"Integrierter Laser fΓΌr einfaches und prΓ€zises Bohren",
"Kraftvoller 710 W Motor",
"Mit Schnellspannklemme fΓΌr optimale Fixierung der WerkstΓΌcke"
],
"specifications": {
"Ausstattung": "Laser, Schnellspannklemme, Digitales Display",
"BAUHAUS Garantie": "5 Jahre auf elektro- oder motorbetriebene GerΓ€te",
"Breite": "250 mm",
"Drehzahl": "500 - 2600 U/min",
"HΓΆhe": "675 mm",
"Leerlaufdrehzahl": "500 - 2600 U/min",
"Leistungsaufnahme": "710 W",
"LΓ€nge": "380 mm",
"Max. Abstand Spindel-Tisch": "260 mm",
"Max. Bohrdurchmesser in Holz": "40 mm",
"Max. Bohrdurchmesser in Stahl": "13 mm",
"Spannweite Bohrfutter": "1.5 - 13 mm"
},
"keyAttributes": [
"710 W",
"Leerlaufdrehzahl: 500 U/min - 2.600 U/min",
"Spannweite Bohrfutter: 1,5 mm - 13 mm"
],
"scopeOfDelivery": "1 x Tischbohrmaschine, 1 x Schnellspanner, 1 x Grundplatte, 1 x Parallelanschlag, 1 x Handgriff, 1 x DistanzhΓΌlse, 1 x Bohrfutterschutz, 2 x Schraube 3,0 x 12, 1 x Klemmhebel, 1 x InnensechskantschlΓΌssel, 1 x BohrfutterschlΓΌssel, 1 x Montagematerial, 1 x Mutter, 1 x Schraube",
"productLine": null,
"category": "Tischbohrmaschinen",
"categoryId": "10000164",
"categoryPath": [
"Werkzeug & Maschinen",
"Maschinen",
"Bohrer & Schrauber",
"Bohrmaschinen",
"Tischbohrmaschinen"
],
"productGroup": "Tisch- Bohr- und FrΓ€smaschinen",
"labels": null,
"isBauhausExclusive": false,
"seller": "BAUHAUS",
"isMarketplace": false,
"price": 98.9,
"currency": "EUR",
"priceType": "regular",
"originalPrice": null,
"priceValidUntil": null,
"unitPrice": 98.9,
"unitPriceUnit": "StΓΌck",
"salesUnit": "StΓΌck",
"rating": 4.3,
"reviewsCount": 12,
"ratingDistribution": {
"1": 0,
"2": 1,
"3": 1,
"4": 3,
"5": 7
},
"availability": "InStock",
"inStock": true,
"isOnlineOrderable": true,
"isReservable": false,
"isReturnable": true,
"shippingCost": 0,
"deliveryDaysMin": 5,
"deliveryDaysMax": 6,
"netWeight": 8.1,
"netWeightUnit": "kg",
"availableOnlineSince": "2026-09-16T22:00:00Z",
"imageUrl": "https://media.cdn.bauhaus/m/597296-2/prod_xl_square.webp",
"images": [
"https://media.cdn.bauhaus/m/597296-2/prod_xl_square.webp",
"https://media.cdn.bauhaus/m/1523347/prod_xl_square.webp",
"https://media.cdn.bauhaus/m/1523340/prod_xl_square.webp",
"https://media.cdn.bauhaus/m/1507016/prod_xl_square.webp",
"https://media.cdn.bauhaus/m/1523344/prod_xl_square.webp",
"https://media.cdn.bauhaus/m/2003448/prod_xl_square.webp",
"https://media.cdn.bauhaus/m/2003414/prod_xl_square.webp",
"https://media.cdn.bauhaus/m/2003445/prod_xl_square.webp"
],
"documents": [
{
"type": "Technical Data Sheet",
"title": "Technisches Datenblatt",
"url": "https://media.cdn.bauhaus/m/597608/BH_DOC_597608.pdf"
},
{
"type": "Instruction",
"title": "Anleitung",
"url": "https://media.cdn.bauhaus/m/597607/BH_DOC_597607.pdf"
},
{
"type": "Safety Instructions",
"title": "Sicherheitshinweise",
"url": "https://media.cdn.bauhaus/m/3080086-2/BH_DOC_3080086.pdf"
}
],
"relatedProductIds": [
"22380131",
"26764038",
"22297754"
],
"position": 3,
"searchQuery": "bohrmaschine",
"sourceUrl": "https://www.bauhaus.info/search?q=bohrmaschine",
"scrapedAt": "2026-10-10T23:24:51Z"
}

Advanced usage

Five recipes for jobs the examples above do not show.

Read a category with the filters you clicked

Filter a category on bauhaus.info (brand, power, battery system, colour), copy the address bar and paste it. Only the matching products come back: this Bosch filter on the drills category returned its 19 products and nothing else.

{
"startUrls": [{ "url": "https://www.bauhaus.info/bohrmaschinen/c/10000161?brand=Bosch" }],
"maxItems": 100
}

Match your catalog to BAUHAUS by EAN

Paste the barcodes of your own products. Each EAN found on bauhaus.info becomes a row with the BAUHAUS article number, price, delivery time, specifications and pictures; an EAN BAUHAUS does not carry is reported in the log and adds no row.

{
"productIds": ["3165140569187", "4046664094913", "4030635010729"],
"maxItems": 100
}

Scan the prices of a whole category in seconds

Switch off the product sheet when you only need titles, brands, prices, availability and ratings. In our test, 50 garden chairs sorted from the cheapest came back in 2 seconds.

{
"keywords": ["gartenstuhl"],
"sort": "price-asc",
"includeDetails": false,
"maxItems": 500
}

Follow the price and delivery time of a fixed list every morning

Save this input as a task and schedule it daily. Each run returns the same products with today's price, price type, promotion end date, delivery window and shipping cost; compare two runs on id to spot every change.

{
"productIds": ["20724487", "22147840", "27751723", "MP-000133988", "Set-Z01261556"]
}

Compare unit prices across a product family

Paint, flooring and screws come in different pack sizes. The unitPrice and unitPriceUnit fields put them on the same scale: on our white wall paint search, the same Schâner Wohnen Polarweiß cost 4.80 EUR per litre in the 25 l bucket and 109 EUR per litre in the 50 ml tester.

{
"keywords": ["wandfarbe weiß"],
"sort": "topseller",
"maxItems": 60
}

FAQ

What is BAUHAUS? BAUHAUS is a German chain of home improvement, garden and workshop stores, a Baumarkt in the same market as OBI, Hornbach and toom. bauhaus.info is its German online shop, with tools, machines, building materials, paint, garden furniture and more, sold by BAUHAUS itself and by marketplace partners.

What does this scraper extract exactly? One row per product with 51 fields: identity (article number, EAN, model, brand), content (description, highlights, specifications, scope of delivery, category path), seller, price (regular or promotion, unit price), rating with the star breakdown, delivery time and shipping cost, weight, pictures and PDF documents. The full list is in the table above.

Which inputs can I use? German keywords, bauhaus.info links (category, search or product pages) and BAUHAUS article numbers or EAN barcodes. You can mix them in one run; a product reached twice is saved once.

Do I need a BAUHAUS account or an API key? No. The scraper reads the public product pages of bauhaus.info. No login, no API key, nothing to install.

Does it cover BAUHAUS Austria, Switzerland or other countries? No, only the German shop, bauhaus.info. The other BAUHAUS country shops run on different websites; their links are skipped with a message.

How fresh is the data? Live. Every run reads bauhaus.info at the moment it runs; nothing is cached. Schedule the run to follow prices and promotions over time.

How many products can I get? There is no fixed limit: the run stops at maxItems or when the listing ends. A broad search lists hundreds of products (bohrmaschine: 496, the Akku-Maschinen category: 2,053), and 36 products are read per listing page.

Can I combine a filter with a sort order? Yes. Filter a category on bauhaus.info, paste the link, and choose the sort in the form: a link without its own order uses the form's sort, a link with one keeps it. For example, the Makita filter on the drill search plus topseller gives the best-selling Makita drills first.

Why are some fields empty on some rows? Because BAUHAUS leaves them empty for that product. The set we tested had no EAN and no net weight, a product without reviews has no rating, productLine only exists for battery systems such as IXES 20V, and originalPrice only appears when the shop shows a regular price next to a promotion. Empty values are null, never an empty text.

What happens if a product page cannot be read? The row is still saved with its listing fields (title, brand, price, availability, rating, picture), and the log says how many rows were saved that way.

Are prices with VAT? Yes. price is the online price in EUR shown on bauhaus.info, VAT included, for delivery in Germany. Store prices in a BAUHAUS branch can differ.

Are the links permanent? url is the product page, and https://www.bauhaus.info/p/{id} reaches it from the article number alone. Picture and PDF links point to the files the shop itself serves; BAUHAUS can replace them when it updates a product.

More SilentFlow scrapers

πŸ›’ E-commerce

πŸ’Ό Jobs

🏠 Real estate

πŸ“£ Social media

🏒 Business data

✈️ Travel

🎯 Lead generation

πŸ”Ž SEO

πŸ“ˆ Marketing

🧰 More tools

Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This actor extracts publicly available product data from bauhaus.info. It does not bypass any login, paywall or CAPTCHA, and it collects no personal data: rows describe products, prices and their sellers, which are companies. Users are responsible for complying with BAUHAUS's terms of service and with the data protection laws that apply to them (GDPR, CCPA and PIPL where relevant). The data returned is informational; verify prices and availability on bauhaus.info before using them in regulated or contractual contexts.

Built by SilentFlow for teams that price, source and sell in the German DIY market.