Shop Apotheke Scraper — European Online Pharmacy Products
Pricing
Pay per event
Shop Apotheke Scraper — European Online Pharmacy Products
Scrape pharmacy products from Europe's largest online pharmacy. Supports 6 countries: Germany, Austria, France, Belgium, Italy, and Switzerland.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Jelle Desramaults
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 minutes ago
Last modified
Categories
Share
Shop Apotheke Scraper
Scrape pharmaceutical products, prices, ratings, and medical details from Shop Apotheke — Europe's largest online pharmacy operating across 6 countries.
What is Shop Apotheke Scraper?
Shop Apotheke (part of Redcare Pharmacy) is Europe's biggest online pharmacy, serving customers in Germany, Austria, Switzerland, Belgium, France, and Italy through localized storefronts. With millions of products ranging from prescription medicines to beauty care, it is the dominant player in European online pharmaceutical retail.
This scraper handles both search result pages and individual product detail pages, extracting rich pharmaceutical data including active substances, dosage forms, PZN numbers, and price-per-unit information that is critical for drug price comparison.
Common use cases:
- Pan-European drug price comparison — Compare medicine prices across 6 countries from a single actor, identifying regional pricing differences
- Pharmaceutical competitive intelligence — Track how Shop Apotheke prices OTC medicines against local pharmacies in each market
- Medical product research — Build datasets of active substances, dosage forms, and pack sizes for pharmaceutical analysis
- E-pharmacy market monitoring — Study the growth and pricing dynamics of Europe's largest online pharmacy
- Health product sourcing — Identify products with the best price-per-unit across different package sizes and formulations
What data does Shop Apotheke Scraper extract?
- 💊 Product name & manufacturer — Full product name with pharmaceutical manufacturer
- 💰 Price, original price & price-per-unit — Current price, list/AVP price, and normalized unit price
- 🏥 Pharmaceutical data — Active substances, dosage form (tablets, capsules, cream, etc.), and pack size
- 📋 PZN & EAN — German Pharmazentralnummer and EAN barcode for precise product identification
- 📦 Stock availability — Whether the product is currently in stock
- ⭐ Ratings & reviews — Customer rating and review count
- 🗂️ Category & breadcrumbs — Product category extracted from breadcrumb navigation
- 🖼️ Product images — Primary product image URL
- 🌍 6 country domains — DE, AT, CH, BE, FR, IT
How to scrape Shop Apotheke
Three approaches depending on your needs:
Search by keyword
Set searchQuery to any term — "ibuprofen", "vitamin d", "allergie" — and the scraper fetches matching results from the search page. Works in the language of the selected country.
Provide specific URLs
Use startUrls to pass category pages (e.g., https://www.shop-apotheke.com/arzneimittel/schmerzmittel/) or individual product URLs. The scraper auto-detects whether each URL is a listing page or a product detail page.
Select your country
Switch between six country stores with the country input: de (Germany), at (Austria), ch (Switzerland), be (Belgium), fr (France), or it (Italy). Each country has its own domain, language, and pricing.
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
searchQuery | String | ibuprofen | Search term (e.g., "paracetamol", "allergie") |
startUrls | Array | — | Category or product URLs to scrape |
maxResults | Integer | 100 | Maximum products to return (up to 10,000) |
country | String | de | Country store: de, at, ch, be, fr, it |
proxyConfiguration | Object | Apify Proxy | Proxy settings (recommended) |
Tip: When scraping the Belgian store (shop-pharmacie.be), set country to be. The domain and language automatically adjust to French.
Output
{"name": "Ibuprofen-ratiopharm 400 mg akut Schmerztabletten","brand": "ratiopharm","price": 4.29,"originalPrice": 6.97,"currency": "EUR","sku": "IBUR400-50","pzn": "00266040","ean": "4047024662087","inStock": true,"rating": 4.8,"reviewCount": 1847,"imageUrl": "https://www.shop-apotheke.com/images/ibuprofen-ratiopharm-400mg.jpg","description": "Zur kurzzeitigen symptomatischen Behandlung von leichten bis maessig starken Schmerzen.","category": "Arzneimittel > Schmerzmittel > Ibuprofen","manufacturer": "ratiopharm GmbH","activeSubstances": "Ibuprofen","packSize": "50 St","dosageForm": "Filmtabletten","pricePerUnit": "0,09 EUR / St","scrapedAt": "2026-04-03T10:15:00.000Z"}
How much does it cost?
The scraper uses a combination of Algolia SSR data extraction and Cheerio page parsing. Search result pages are efficient; individual product pages take slightly more resources.
| Volume | Estimated CU | Estimated Cost |
|---|---|---|
| 100 products | ~0.05 CU | ~$0.03 |
| 500 products | ~0.2 CU | ~$0.10 |
| 1,000 products | ~0.4 CU | ~$0.20 |
| 5,000 products | ~2 CU | ~$1.00 |
Proxy usage increases costs slightly. Actual prices depend on your Apify plan.
Can I integrate?
Yes. All standard Apify integrations work out of the box:
- Google Sheets — Push pharmacy product data directly into spreadsheets
- Webhooks — Get notified when a scrape completes or when specific conditions are met
- Zapier / Make / n8n — Build automated workflows connecting pharmacy data to your tools
- Amazon S3 / Google Cloud — Archive large pharmaceutical datasets in cloud storage
- REST API — Fetch results programmatically from any language or platform
- Slack / Email alerts — Monitor price drops on specific medications
Can I use it as an API?
Yes. Run the scraper from your code and process results programmatically.
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("studio-amba/shopapotheke-scraper").call(run_input={"searchQuery": "paracetamol","country": "de","maxResults": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['name']} — {item['dosageForm']} — EUR {item['price']} ({item.get('pricePerUnit', 'N/A')})")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('studio-amba/shopapotheke-scraper').call({searchQuery: 'paracetamol',country: 'de',maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {console.log(`${item.name} — ${item.dosageForm} — EUR ${item.price}`);});
FAQ
Can I compare drug prices across countries? Yes. Run the scraper once per country (de, at, ch, be, fr, it) with the same search query, then compare the results. The PZN or EAN fields let you match the same product across different storefronts.
What is a PZN number? The Pharmazentralnummer (PZN) is a unique 8-digit identifier for pharmaceutical products in Germany. It is the standard way to identify a specific medicine in a specific pack size and dosage form. The scraper extracts PZN when available.
Does it scrape prescription-only medicines? The scraper extracts data for all products listed on Shop Apotheke, including prescription medicines. However, prescription medicines on Shop Apotheke typically show an AVP (pharmacy retail price) rather than a discounted price.
How does Shop Apotheke differ from shop-pharmacie.be?
They are the same company. The Belgian storefront operates under the domain shop-pharmacie.be with French-language content. Set country to be to scrape the Belgian version.
Can I extract the full product description and ingredient list?
For search results, you get a short description. For individual product pages (provided via startUrls), the scraper extracts the full JSON-LD product data including complete descriptions.
What is the difference between price and originalPrice?
price is the current selling price. originalPrice is the manufacturer's recommended retail price (UVP) or the official pharmacy retail price (AVP). The difference represents the discount Shop Apotheke offers.
What volume of products does Shop Apotheke carry? The German store alone lists over 100,000 products, making it by far the largest online pharmacy in Europe. Product ranges include OTC medicines, prescription medicines, health supplements, baby care, beauty, personal hygiene, and medical devices. The Belgian and French stores have somewhat smaller catalogs but still cover the most popular pharmaceutical product categories.
Tips for pharmaceutical data analysis
Shop Apotheke's rich pharmaceutical metadata enables powerful analysis workflows:
- Cross-country price arbitrage — Run the scraper for the same product (matched by PZN or EAN) across all 6 countries. Medicine prices vary significantly between Germany, Austria, and Belgium.
- Generic vs. branded comparison — Use the
activeSubstancesfield to find all products containing the same active ingredient. Compare prices between branded originals (e.g., Nurofen) and generics (e.g., Ibuprofen-ratiopharm). - Dosage form analysis — The
dosageFormfield lets you segment by form factor: tablets, capsules, creams, syrups, drops. This is valuable for understanding consumer preferences and pricing by delivery method. - Pack size optimization — Combine
packSizewithpricePerUnitto find which package sizes offer the best value for specific medications.
Limitations
- Shop Apotheke uses Next.js with server-side rendering; some Algolia data extraction depends on the page structure remaining stable
- Very large pagination runs (5,000+ results for a single search) may encounter rate limiting
- Product detail pages require more compute than search result extraction
- Proxy usage is recommended to avoid occasional blocks on high-volume scraping
- The Belgian and French stores may have slightly different page structures than the German store
Other pharmacy scrapers
Building a comprehensive pharmacy data pipeline? Combine this scraper with our other pharmacy actors:
- Farmaline Scraper — Belgium's largest online pharmacy (70,000+ products, bilingual NL/FR)
- dm Scraper — Germany's largest drugstore chain (beauty, health, household)
- Viata Scraper — Belgian online pharmacy with health and wellness products
- Apotheek.be Scraper — Belgian pharmacy directory with locations and opening hours
- Matas Scraper — Denmark's leading beauty and pharmacy retailer
- Multipharma Scraper — One of Belgium's largest pharmacy chains
Your feedback
Have questions about pharmaceutical data extraction? Found an issue with a specific country store? Need help matching products across pharmacies? Open an issue or message us on Apify. We actively maintain all our pharmacy scrapers.