Shop Apotheke Scraper — European Online Pharmacy Products & ...
Pricing
from $2.00 / 1,000 result scrapeds
Shop Apotheke Scraper — European Online Pharmacy Products & ...
Scrape products, prices, ratings, and availability from shop-apotheke.com (DE/AT/CH/BE/FR/IT). Supports search queries and category URLs.
Pricing
from $2.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
7
Total users
2
Monthly active users
16 days ago
Last modified
Categories
Share
Shop Apotheke Scraper
Get prices, stock, ratings, active substances, pack sizes and product codes for medicines and health products from Shop Apotheke (Redcare) in Germany, Austria, Switzerland, Belgium, France and Italy, as one dataset with the same fields in every country.
What is Shop Apotheke Scraper?
Shop Apotheke (part of Redcare Pharmacy) is an online pharmacy with a localized storefront in each of Germany, Austria, Switzerland, Belgium, France and Italy. The range runs from OTC and prescription medicines to beauty care.
This scraper handles both search results and individual product pages. Each row carries the active substances, dosage form, pack size, EAN and price per unit, so you can compare the same product across pharmacies and countries.
Common use cases:
- Pan-European drug price comparison: Compare medicine prices across 6 countries with one actor
- 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: Track how Shop Apotheke prices change over time
- 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
- Product codes: the PZN (Pharmazentralnummer) on German rows, the storefront's own article number in
pznon the other countries, and the EAN barcode where the storefront publishes it - 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 data
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.
The pzn field holds the real PZN on German (de) rows. On the other storefronts it holds that storefront's own article number (for example A4992754 on at, BE03303708 on be), which differs per country. To match the same product across countries, use ean. The EAN is not published for every product, so some rows have it empty.
Prices come back in the storefront's own currency: EUR everywhere except Switzerland, which settles in CHF. The currency field on every row tells you which.
Switzerland: the Swiss storefront does not publish prices in its search-results payload, so price is null for search runs on ch and the run logs a warning saying so. Pass Swiss product URLs via startUrls to get prices from the product pages.
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) |
Belgium: Set country to be for the Belgian store. The group rebranded from Shop Apotheke to Redcare (Farmaline in Belgium), so the storefronts now live on redcare-pharmacie.fr, farmaline.be, redcare.it and redcare-apotheke.ch; the actor points at the live hostnames for you.
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. It charges $0.02 per run (start fee, based on its 4 GB memory allocation) plus $0.002 per result. 100 products costs about $0.22; 1,000 about $2.02; 5,000 about $10.02. A run's usage cost only settles after it reports SUCCEEDED.
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 term, then match products on ean. Rows without an EAN cannot be matched this way. Switzerland returns no price for search runs, see the note under "Select your country".
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. German rows carry it in pzn. Other storefronts do not use PZN, so pzn holds their own article number there.
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 farmaline.be?
They are the same company. The Belgian storefront now runs as Farmaline (farmaline.be) after the group's rebrand to Redcare Pharmacy. Set country to be to scrape it.
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?
Product ranges include OTC medicines, prescription medicines, health supplements, baby care, beauty, personal hygiene, and medical devices. Use maxResults (up to 10,000) to control how many rows a run returns.
Tips for pharmaceutical data analysis
Shop Apotheke's rich pharmaceutical metadata enables powerful analysis workflows:
- Cross-country price comparison: Run the scraper for the same product across all 6 countries and match rows on
ean. - 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
- The data comes from the storefront's server-rendered search payload, so a storefront redesign can change what is available
- 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
- Which fields are filled depends on the storefront. In a 10-row test search, Belgian rows had no
brandoractiveSubstances, and Swiss rows had noprice,originalPriceorcategory originalPriceis empty when the storefront shows no list price, which was the case on every French row in the same test
Other pharmacy scrapers
Building a comprehensive pharmacy data pipeline? Combine this scraper with our other pharmacy actors:
- Farmaline Scraper, Belgian online pharmacy (Dutch and French)
- 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, Belgian pharmacy chain
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.