Shop Apotheke Scraper — European Online Pharmacy Products avatar

Shop Apotheke Scraper — European Online Pharmacy Products

Pricing

Pay per event

Go to Apify Store
Shop Apotheke Scraper — European Online Pharmacy Products

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

Jelle Desramaults

Maintained by Community

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

FieldTypeDefaultDescription
searchQueryStringibuprofenSearch term (e.g., "paracetamol", "allergie")
startUrlsArrayCategory or product URLs to scrape
maxResultsInteger100Maximum products to return (up to 10,000)
countryStringdeCountry store: de, at, ch, be, fr, it
proxyConfigurationObjectApify ProxyProxy 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.

VolumeEstimated CUEstimated 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 ApifyClient
client = 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:

  1. 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.
  2. Generic vs. branded comparison — Use the activeSubstances field to find all products containing the same active ingredient. Compare prices between branded originals (e.g., Nurofen) and generics (e.g., Ibuprofen-ratiopharm).
  3. Dosage form analysis — The dosageForm field lets you segment by form factor: tablets, capsules, creams, syrups, drops. This is valuable for understanding consumer preferences and pricing by delivery method.
  4. Pack size optimization — Combine packSize with pricePerUnit to 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.