BIPA Scraper — Austria Drugstore Products & Prices
Pricing
from $1.20 / 1,000 result scrapeds
BIPA Scraper — Austria Drugstore Products & Prices
Scrape product listings, prices, ratings, and availability from bipa.at, Austria's #2 drugstore chain (REWE Group). Search by keyword or category. No login required.
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
a day ago
Last modified
Categories
Share
BIPA Scraper
Scrape products, prices, ratings, and availability from bipa.at — Austria's #2 drugstore chain (REWE Group), covering health, beauty, baby, and household products.
What is BIPA Scraper?
BIPA is one of Austria's two dominant drugstore chains, with hundreds of stores nationwide and a full online catalogue spanning skincare, hair care, make-up, personal hygiene, baby products, and household goods. This scraper reads the retailer's own Salesforce Commerce Cloud search API — no HTML guesswork, no brittle CSS selectors — for fast, structured extraction.
If you need reliable Austrian drugstore product data at scale — competitive pricing, catalogue tracking, or feeding a comparison platform — this actor delivers clean, structured results.
Common use cases:
- Price monitoring — Track BIPA's pricing and promotions over time for products you care about
- Price benchmarking — Compare BIPA against DM, Rossmann, and other drugstore retailers in our fleet
- Brand monitoring — Watch how a specific brand is priced and merchandised on BIPA
- Product catalogue enrichment — Feed BIPA product data (brand, price, rating, images) into your own comparison or affinity tool
- Austrian market research — Study category trends and assortment in the Austrian drugstore market
What data does BIPA Scraper extract?
- Product name & brand — Full product name and manufacturer/brand
- Price & discount — Current price, original (strike-through) price, and discount percentage on promoted items
- Price per unit — BIPA's own normalized per-100ml/per-kg price string
- Content size — Package size (e.g. "355 ml")
- Customer ratings — Average rating and total review count (null when no reviews exist yet, never guessed)
- Stock status — In stock / out of stock / unknown (nullable — never coerced to false when the source doesn't say), plus a numeric stock level when BIPA exposes one
- Product identifiers — BIPA's internal product SKU
- Category — BIPA's own category slug
- Product images — Direct image URLs
How to scrape BIPA data
The scraper offers two approaches:
Search by keyword
Enter any German/Austrian search term — "shampoo", "zahnpasta", "duschgel", "creme" — or a brand name like "Nivea". The actor queries BIPA's own product-search API, the same one the website's search bar uses.
Browse by category URL
Paste a bipa.at category URL, e.g. https://www.bipa.at/c/haar/pflege/shampoos, to scrape everything listed there instead of searching.
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
searchQuery | String | shampoo | Search keyword (ignored if categoryUrl is set) |
categoryUrl | String | — | bipa.at category URL to browse, e.g. https://www.bipa.at/c/haar/pflege/shampoos |
maxResults | Integer | 100 | Maximum products to return (hard-capped at 20,000) |
inStockOnly | Boolean | false | Off by default (includes out-of-stock and unknown-stock products). When on, drops products BIPA explicitly marks as not orderable |
proxyConfiguration | Object | Apify automatic proxy | bipa.at has no bot-challenge layer (verified live) — the default Apify proxy is sufficient |
Output
{"name": "Difeel Shampoo Rosemary and Mint","brand": "Difeel","price": 7.49,"originalPrice": null,"currency": "EUR","discount": null,"pricePerUnit": "100 ml 2,11","contentSize": "355 ml","productId": "B3-560423","inStock": true,"stockLevel": 14,"onlineOnly": false,"rating": 5,"reviewCount": 8,"category": "haar-pflege-shampoos","imageUrl": "https://www.bipa.at/dw/image/v2/AAFT_PRD/on/demandware.static/-/Sites-catalog/de_AT/v1787382208455/original/560423.png","url": "https://www.bipa.at/p/difeel-shampoo-rosemary-and-mint/B3-560423","scrapedAt": "2026-08-22T09:52:26.167Z"}
How it works
bipa.at is a Salesforce Commerce Cloud storefront (a React "Composable Storefront" / PWA Kit app). Its listing data comes from Salesforce's own Shopper Search API, which requires a short-lived guest access token that the site mints for itself on page load. This actor runs a single lightweight browser page load to capture that token, then pages through the full result set with plain HTTP requests — no browser needed for the bulk of the run, which keeps runs fast and cheap. If the token expires mid-run (only relevant on very large maxResults pulls), the actor re-mints it automatically and resumes.
How much does it cost?
Each page of results returns up to 200 products in a single request. One browser page load mints the session token; all subsequent pagination is plain HTTP, so compute stays low.
| Volume | Estimated CU | Estimated Cost |
|---|---|---|
| 100 products | ~0.02 CU | ~$0.01 |
| 1,000 products | ~0.08 CU | ~$0.04 |
| 10,000 products | ~0.6 CU | ~$0.30 |
These are Apify platform-cost estimates only; actual cost also depends on your Apify plan. Usage cost only settles after the run reports SUCCEEDED — a run that fails or is aborted mid-way is not charged for items it never wrote.
Can I integrate?
Export your data as JSON, CSV, Excel, or XML, or pipe it directly into your existing tools:
- Google Sheets — Automatically push product data to a shared spreadsheet
- Webhooks — Trigger a custom URL when the scrape completes
- Zapier / Make / n8n — Connect to thousands of apps without writing code
- Amazon S3 / Google Cloud — Dump large datasets straight to cloud storage
Can I use it as an API?
Yes. Integrate BIPA product data directly into your applications.
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("studio-amba/bipa-scraper").call(run_input={"searchQuery": "shampoo","maxResults": 200,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['brand']} — {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/bipa-scraper').call({searchQuery: 'shampoo',maxResults: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {console.log(`${item.brand} — ${item.name}: EUR ${item.price}`);});
FAQ
Does BIPA sell only beauty products? No. Beauty and personal care are BIPA's core categories, but the catalogue also covers baby products, household goods, health items, and food supplements.
Why is inStock sometimes null instead of true or false?
When BIPA doesn't publish a clear orderable status for a listing, the field is left null rather than guessed. Treat null as "unknown", not as "out of stock".
Can I filter by brand? There's no dedicated brand filter input, but searching for a brand name (e.g. "Nivea", "Pantene") works well since BIPA's search matches brand names directly.
How frequently can I run the scraper? As often as you need for price-monitoring use cases. Daily or weekly runs are common.
Do I need a proxy? No. bipa.at doesn't run a bot-challenge layer, so the actor's default Apify proxy setting works reliably.
Tips for effective BIPA data extraction
- Use category URLs for a stable, bounded set — a category page (e.g. all shampoos) gives a fixed, predictable product list, unlike a broad keyword search where relevance ranking can shift slightly between runs.
- Pair with dm-scraper, Rossmann Scraper, and Kruidvat Scraper — BIPA, dm, Rossmann, and Kruidvat together cover most of the German-speaking and Benelux drugstore landscape; join on brand and product name for cross-retailer pricing.
- Watch the
discountfield for promo tracking — BIPA runs frequent "Aktion" promotions. - Use
pricePerUnitfor fair size comparison — products come in many pack sizes; the per-unit price normalizes that.
Limitations
- Search result ordering can shift slightly between requests (site-side relevance ranking), so very large
maxResultspulls on a broad keyword may return fewer unique products than requested — the actor de-duplicates automatically and stops cleanly rather than returning repeats. Category URLs do not have this issue. - No ingredient lists or full product descriptions — this actor extracts commerce fields (name, brand, price, stock, rating), not marketing copy.
- Austria (bipa.at) only.
- No purchase history, loyalty pricing, or store-specific stock data — this reads the public online catalogue only.
Other pharmacy & drugstore scrapers
Need drugstore, pharmacy, or beauty data from more sources? Explore our full collection:
- dm Scraper — Germany's largest drugstore chain
- Rossmann Scraper — German/Polish/Hungarian/Turkish drugstore chain
- Kruidvat Scraper — Belgian/Dutch drugstore chain
- Douglas.de Scraper — Germany's #1 perfumery chain
- Shop Apotheke Scraper — Europe's leading online pharmacy (DE/AT/CH/BE/FR/IT)
Your feedback
Found a bug? Need a new feature? Want help building a pipeline on top of BIPA data? Open an issue or contact us on Apify. We read every message and ship fixes fast.