Pharm24.gr Scraper — Greece Pharmacy Products & Prices
Pricing
from $1.20 / 1,000 result scrapeds
Pharm24.gr Scraper — Greece Pharmacy Products & Prices
Scrape products, prices, brands, EANs, and stock status from Pharm24.gr, one of Greece's largest online pharmacies. Covers OTC medicines, supplements, cosmetics, and parapharmacy products.
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
18 hours ago
Last modified
Categories
Share
Pharm24.gr Pharmacy Scraper (Greece)
Extract pharmacy product data from pharm24.gr, one of Greece's largest online pharmacies. Give the actor a search keyword and get back clean JSON with product names, brands, prices, EAN barcodes, categories, and stock status.
This is a price and catalogue scraper. It reads the same product data pharm24.gr already publishes on its own pages (name, price, brand, barcode, stock). It does not sell, prescribe, or fulfil anything — and like every Greek online pharmacy, pharm24.gr's own catalogue is limited to OTC medicines, supplements, cosmetics, and parapharmacy products, since prescription-only medicines cannot legally be sold online in Greece.
How to scrape Pharm24 data
- Enter a search query in Greek, for example
παυσιπονο(painkiller),βιταμινη c, orαντιηλιακο(sunscreen). - Alternatively, provide Start URLs pointing at a specific category or brand page (e.g.
https://www.pharm24.gr/bioderma-m-186.html) to scrape that listing directly instead of searching. - Set maxResults for how many products you want back.
- Leave fetchProductDetails on (the default) for full data — brand, EAN barcode, category, description, and an accurate stock flag all come from the product page itself, not the search results grid.
- Run the actor. Results land in the dataset as one JSON object per product, in the order pharm24.gr's own search relevance ranking returns them.
If you leave the search query empty, the actor falls back to a broad default keyword (παυσιπονο) so a run always returns data.
Why use this actor
- Price monitoring: track OTC medicine, supplement, and parapharmacy prices at one of Greece's largest online pharmacies.
- Barcode matching: every result carries an EAN/GTIN barcode (read from the site's own schema.org product data), so you can match pharm24.gr's assortment against other pharmacies, price comparison feeds, or your own catalogue.
- Discount tracking: both the current selling price and the pre-discount list price (Π.Λ.Τ. — the Greek "recommended retail price" marking) are returned, so you can see which products are on promotion and by how much.
- Stock checks: with
fetchProductDetailson, each product carries an in-stock flag read from the site's own availability data.
No login, no cookies, and no browser automation. The actor reads the site's own server-rendered pages, which makes runs fast and cheap. pharm24.gr sits behind Cloudflare, but recon confirmed it serves plain HTML with no JavaScript challenge — no residential proxy required.
Input
| Field | Type | Description |
|---|---|---|
searchQuery | string | Product keyword in Greek. Falls back to παυσιπονο when empty. Ignored if startUrls is set. |
startUrls | array | Optional list of category, brand, or product page URLs to scrape directly instead of searching. Max 50. |
maxResults | integer | Maximum products to return. Default 100, hard cap 5,000. |
fetchProductDetails | boolean | ON by default. Fetches each product's detail page (one extra request per item) for brand, EAN, category, description, and an accurate stock flag. Turn OFF for a faster, cheaper run that only returns name, price, and URL — brand/EAN/category/inStock will be null. |
proxyConfiguration | object | Apify proxy settings. The default automatic pool suffices; no residential proxy is needed. |
Example input
{"searchQuery": "βιταμινη c","maxResults": 100,"fetchProductDetails": true}
Example input — specific brand page
{"startUrls": [{ "url": "https://www.pharm24.gr/bioderma-m-186.html" }],"maxResults": 50}
Output
One JSON object per product:
| Field | Example | Notes |
|---|---|---|
name | "Bioderma Hydrabio Serum 72h Moisturising Booster 40ml" | Full product name including size/pack |
brand | "Bioderma" | Only populated when fetchProductDetails is on |
price | 19.11 | Current selling price |
currency | "EUR" | Always EUR |
originalPrice | 25.19 | Pre-discount list price, null when the item isn't discounted |
ean | "3701129811757" | EAN/GTIN barcode. Only populated when fetchProductDetails is on |
sku | "074428" | Site-internal product code |
category | "Εταιρείες > Bioderma" | Breadcrumb path as pharm24.gr states it. Only populated when fetchProductDetails is on |
inStock | true | true, false, or null when the site doesn't state one. Only meaningful when fetchProductDetails is on — note the default search results already exclude out-of-stock items, so a listing-only run tells you nothing either way about stock |
rating | 4.5 | Out of 5, where the site shows a rating |
reviewCount | 14 | Number of reviews, where shown |
url | "https://www.pharm24.gr/bioderma-..." | Product page URL |
imageUrl | "https://cdn.pharm24.gr/images/..." | Product image |
description | "Bioderma Hydrabio Serum..." | Truncated to 2000 characters. Only populated when fetchProductDetails is on |
source | "pharm24.gr" | Source domain |
country | "GR" | Country code |
scrapedAt | "2026-09-09T09:23:23.703Z" | ISO 8601 timestamp |
Example output JSON
{"name": "Avene Xeracalm A.D Replenishing Balm 400ml","brand": "Avène","price": 22.8,"currency": "EUR","originalPrice": 35.08,"ean": "3282770399523","sku": "027205","category": "Εταιρείες > Avène","inStock": true,"rating": 4.5,"reviewCount": 14,"url": "https://www.pharm24.gr/avene-xeracalm-ad-baume-relipidant-400ml-p-27205.html","imageUrl": "https://cdn.pharm24.gr/images/200x200-90/Photo3282770399523_1.jpg","description": "Avene Xeracalm A.D Replenishing Balm...","source": "pharm24.gr","country": "GR","scrapedAt": "2026-09-09T09:23:23.703Z"}
Cost estimate
Pricing is Pay-Per-Event: a flat fee per run plus a small fee per result. With fetchProductDetails on (the default), each result costs one search-page request (shared across up to 200 results) plus one product-page request — still cheap, since there's no anti-bot tax on this site. With fetchProductDetails off, each result is essentially free beyond the shared search-page fetch. Either way, a run's usage cost only settles after the run reports SUCCEEDED — checking Apify's cost estimate mid-run will show a number far below the final total.
Limitations / known issues
brand,ean,category,description, and an accurateinStockflag requirefetchProductDetailsto be on (the default). With it off you only getname,price,originalPrice,url,imageUrl, and (where shown)rating/reviewCount.startUrlsruns fetch exactly the URLs given and do not auto-paginate beyond that page — usesearchQueryfor a run that walks multiple result pages.- Prescription-only medicines are not part of pharm24.gr's own online catalogue (Greek law does not allow selling them online), so this actor never encounters or returns them.
- Product descriptions are truncated to 2000 characters to keep dataset rows manageable.
Related Scrapers
Studio AMBA runs a wider EU pharmacy cluster — check these out for other markets:
- Gintarinė Scraper — Lithuania
- Multipharma Scraper — Belgium
- Newpharma Scraper — Belgium/France
- Redcare Pharmacy (FR) Scraper — France
- Pharmacy Price Comparison — multi-pharmacy price comparison