Europages Scraper | B2B Products & Companies EU
Pricing
from $2.20 / 1,000 results
Europages Scraper | B2B Products & Companies EU
Scrape Europages B2B products & companies across UK, FR, DE, ES, IT, TR. Product/company search, filters, company & product details. Export Excel/CSV/JSON. Unofficial — not affiliated with Europages.
Pricing
from $2.20 / 1,000 results
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Europages Scraper | B2B Products & Companies Europe
Scrape Europages European B2B products, suppliers, and company profiles — including public phones, street / 门牌, and contact persons on company pages — then download structured catalog data as Excel, CSV, or JSON.
Use this Actor as a practical Europages data API for EU/UK supplier discovery, product SERP monitoring, company research, and lead enrichment. Choose a market (en / fr / de / es / it / tr), pick a mode, set a keyword or detail URL, and get Dataset rows with product IDs, company IDs, titles, countries, verification flags, canonical Europages URLs, and Lead / Contact fields when the company or product-detail Nuxt payload publishes them.
- Scrape product search, company search, company profiles, and product detail pages on market TLDs (
europages.co.uk,.fr, …). Opened this cycle:en+fr. Do not treat all six TLD codes as equally verified. - Filter by supplier country, supplier type, category, verified, quick responder, sort, and employee count (live country encoding is
countries=DE, not the oldfilters[countries][0]) - Extract productId, companyId, title, description, country, verified flags, images, category paths, plus
phones[]/emails[]/address.unit(门牌) /person/org/web enrichDetailsdefaults on — list cards have no phones; company / PDP Nuxt is the lead surface- Export to Excel / CSV / JSON, or connect Make, n8n, Zapier, Python, or the Apify API
- Pay per event — Actor start + each Dataset result; platform usage is included (you do not pay separate Apify compute on top)
Unofficial tool. This Actor is not affiliated with, endorsed by, or sponsored by Europages / Visable. It collects publicly reachable listing and detail surfaces and does not log in, submit Contact supplier / RFQ, solve Human Verification, or access private accounts. Public phones, emails, 门牌, and contact names are written as the page publishes them (not redacted). Empty means the public surface did not publish that subfield — see
leadAbsences.
What does the Europages Scraper do?
Europages Scraper lets you extract structured B2B product and company data from Europages without running your own anti-bot browser fleet. Give it a market, a keyword (e.g. cnc machining, industrial pumps), a company URL / ID, or a product URL / ID, then start a run.
Under the hood, the Actor:
- Validates your input (mode, market, query, facets, detail URLs)
- Enforces free-tier caps when you are on a free Apify plan
- Fetches public Europages listing and detail pages through a managed Camoufox scrape backend (
enrichDetailsdefaults on, so list rows follow company / PDP URLs) - Normalizes product / company rows into a clean Dataset, including Lead / Contact fields
- Writes
INPUT_ECHO,RUN_SUMMARY(andERROR_SUMMARYon failure) to the key-value store
You run it like any other Apify Actor — schedule it, call it from the API, or plug it into automations.
What Europages data can I extract?
| Data | Product search | Company search | Company detail | Product detail |
|---|---|---|---|---|
| productId / productUrl | ✅ | — | products[] | ✅ |
| title / description | ✅ | ✅ | ✅ | ✅ |
| companyId / companyName / companyUrl | ✅ | ✅ | ✅ | ✅ |
| country / supplier type | ✅ | ✅ | ✅ | ✅ |
| verified / quickResponder / sell points | ✅ | ✅ | ✅ | enrich |
| images / attributes / certificates | enrich | — | ✅ | ✅ |
| category path / category IDs | ✅ | — | ✅ | ✅ |
phones[] (Nuxt phoneNumber + JSON-LD) | — (本站无 on cards) | — (本站无 on cards) | ✅ | ✅ same company object |
emails[] | — | — | sampled 本站无 | sampled 本站无 |
address / 门牌 (unit) | — | city text only, no 门牌 | ✅ | ✅ |
person (DOM contact-person) | — | — | ✅ | Nuxt often lacks title |
org / web.website | company name | company name | ✅ | ✅ |
List cards have no phones. enrichDetails defaults on so search rows follow company / PDP URLs. Contact fields are not redacted. See Lead / Contact fields for types, samples, reveal cost, and honest gaps.
Lead / Contact fields
Every Dataset item carries the contact / clue keys below. Empty top-level lead keys are paired with a leadAbsences reason (本站无 / 闸门锁 / 部分 / 未验证) so you know why a field is missing. Nested address sub-fields such as region may simply be null.
Contact source: full phone, street / 门牌, person, and website live on the company profile (/{lang}/company/{slug}-{companyId}) inside #__NUXT_DATA__ hashed pointers plus JSON-LD Organization. Product detail pages embed the same company object. List / search cards are thin (no view-phone-number, no mailto).
| Field | Type | Meaning on Europages |
|---|---|---|
phones | [{value, type, e164?}] | Landline from Nuxt phoneNumber + contacts[].phoneNumber and JSON-LD ContactPoint.telephone. Samples: Buchholz +49431790070 / +4943179007608 / +494317900772; Geje +310515581808; WKL +49626136005. Hashed pointer example: [5].phoneNumber=32 → [32]="+49431790070" (emit the string, not the integer index). Copied to alias phone (first number). VAT is not a phone (DE811238275, NL819508949B01, DE276876918 stay in vatId). |
emails | [{value, type}] | Contact mailbox when the page publishes mailto: or an email key. Sampled companies (Buchholz / Geje / WKL) have no email key and no mailto → emails=[] with leadAbsences.emails=本站无. That is not a login wall. The Actor does not invent inboxes. Alias email is null when the array is empty. |
address | {street, unit, locality, region, postalCode, country, full} | unit = 门牌 (building number), not the city. Samples: Wasserwerksweg 1-3 → unit=1-3; Röntgenweg 8 → unit=8; Am Luttenbach 3 (ehem. Kaserne) → unit=3. Company-card text such as Italy, Battipaglia is city–country only (leadAbsences.address=部分), not a 门牌. |
geo | {lat, lng} | JSON-LD coordinates in addition to street, not instead. Buchholz sample 54.292982, 10.221508; WKL smoke 49.37593, 9.17597. |
person | {name, role?} | DOM contact-person “Name - Role” on company profile (e.g. Stefan Buchholz / CEO, Manuel Müllner / PDG, Carina Gravert / Marketing). Nuxt contacts[] often lacks title. List cards: 本站无. |
org | {name, id?} | Company name + Europages companyId (Buchholz Hydraulik GmbH / 286830; WKL Helmstädter GmbH / 1032458). |
web | {website, socials[]} | Company homepage from Nuxt (http://www.buchholz-hydraulik.de/, https://www.geje.nl, http://www.wkl-helmstaedter.de/). socials may repeat that homepage URL. Alias website is web.website. |
leadSource | enum | search on list cards; entity on company profile; detail on PDP (same company object). |
leadReveal | enum | click on company profile — UI data-test="view-phone-number" unmasks tel: but no new XHR (data already in HTML / Nuxt). absent on list cards. PDP JSON can already hold the number (visible in payload). |
leadAbsences | object | Per-subfield reason when empty (WKL smoke: {"emails":"本站无"}). |
Legacy aliases phone / email / website stay on the row so older Dataset views keep working.
Reveal cost
enrichDetails defaults on because list cards have no phones. That is the extra cost: one company or PDP fetch per list row (longer run, more worker traffic / proxy). You do not pay a second PPE event for the enrich itself — you are still charged once per Dataset item. Set enrichDetails: false only if you want thin identity cards.
On the page itself there is no click-to-unlock XHR:
- Company-profile Nuxt already stores
phoneNumberas a plaintext string behind a hashed pointer. JSON-LDtelephonematches. - Clicking
view-phone-numberonly unmasks atel:link in the DOM (resource count unchanged). The worker parses HTML / Nuxt and does not need that click to obtain the number. - The Actor does not submit Contact supplier, RFQ, Request Hub, or Sign in.
Non-browser HTTP (python / curl / Chrome UA) is AWS WAF 202 empty. The hosted worker uses a Camoufox rung on market TLDs. This Actor does not run Chrome on Apify.
Honest limitations
- List / search cards have no phones, no emails, and no 门牌. Product cards are identity only. Company cards may show city–country text (
Italy, Battipaglia) withoutcompany-address. LeaveenrichDetailson (the default). - Sampled companies have no email. Buchholz, Geje, and WKL Nuxt objects have no
email/emailskey and nomailto:. That is 本站无, not 闸门锁. Other suppliers might publish a mailbox; this cycle did not invent one. .comis not a scrape host.www.europages.comstays on Human Verification. Use market TLDs (europages.co.uk,.fr, …).decompany search is 404 (h1Ups!). Do not treat German company SERP as opened. Product search ondewas not opened this cycle as a lead cell.es/it/trare 未验证. Italian company search stayed on Human Verification this cycle. Do not claim all six TLD codes are equally verified, and do not copy 2026-08-01 “fr empty_shell” (French company search now returns cards).- VAT is not a phone.
vatIdvalues such asDE811238275are registry IDs (vat-number-button), never copied intophones[]. - Contact supplier / RFQ is not submitted.
contact-buttonon cards is an inquiry form, not a phone reveal. The Actor does not click it. - Filter encoding: live supplier-country filter is
countries=DE(repeat key for several ISO-2 codes). The old queryfilters[countries][0]=DEdoes not apply the filter (URL may keep the param while the first card stays unfiltered). - Category showroom (
/showroom-cate/…) is not an Actor mode. - Contact fields are never redacted on free-tier sample runs. Empty means the public page did not publish that subfield (see
leadAbsences).
Why scrape Europages?
Europages is one of Europe’s largest B2B directories spanning industrial machinery, components, packaging, chemicals, textiles, and more across UK, France, Germany, Spain, Italy, and Turkey hosts. Teams scrape Europages for supplier discovery, competitor monitoring, lead generation, and assortment research:
- Monitor product keywords across EU markets with supplier-country filters (
countries=encoding) - Build company lists with verification signals, employee-size facets, and public phones / 门牌 / person from company profiles (
enrichDetailsdefault on) - Pull product detail pages with attributes, certificates, image galleries, and the embedded company contact object
- Feed CRM, BI dashboards, Google Sheets, BigQuery, or AI agents with clean rows
- Prefer market TLDs (
europages.co.uk,.fr, …) over the.comHuman Verification gateway. Opened this cycle:en+fr.
Compared with generic URL scrapers, this Actor returns Europages-specific fields (product/company IDs, market host, facet filters, Nuxt-backed detail payloads) in one input surface.
More Actors like this
Need another marketplace, B2B directory, or a different vertical? Use a dedicated Actor below for structured fields. Use this Actor for Europages (europages.co.uk / .fr / .de / .es / .it / .com.tr) European B2B products and companies.
Similar e-commerce & B2B scrapers
- IndiaMART Scraper
- iPROS Scraper
- GlobalSources Scraper
- Kompass Scraper
- 1688 Global Product Search Scraper
- Allegro Scraper
- Shopee Search Scraper
- Amazon Search Scraper
- SHEIN Product Scraper
- Temu Product Scraper
- Mercari Japan Scraper
- Rakuten Japan Scraper
- Coupang Product Scraper
- Walmart Product Scraper
- Etsy Scraper
- Lazada Scraper
- MercadoLibre Scraper
Prefer another specialized scraper?
If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.
Jobs & Freelance
- LinkedIn Jobs Scraper
- Indeed Jobs Scraper
- Upwork Jobs Scraper
- Glassdoor Scraper
- Fiverr Gigs Scraper
- Bayt Jobs Scraper
Real Estate
- Zillow & Zumper Scraper
- Realtor.com Scraper
- Apartments.com Rental Scraper
- Rightmove Scraper
- Idealista Scraper
- realestate.com.au Scraper
Travel & Stays
Social & Content
Ads Intelligence
Local & Maps
General Tools
→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.
How to scrape Europages (no code required)
- Create a free Apify account
- Open Europages Scraper
- Choose a mode:
product_search,company_search,company, orproduct - Choose a market:
en(UK) andfrwere opened this cycle;de/es/it/trexist as input codes but are not equally verified (decompany search is 404;es/it/tr未验证) - Enter a query, or a companyUrl / productUrl / ID
- Leave
enrichDetailson (the default) so list rows pick up company / PDP phones, 门牌, and person. Optionally setcountryFilters,supplierTypes,categoryIds,verified,maxResults - Click Start and download the Dataset as JSON, CSV, Excel, or JSONL
Start with maxResults: 5–15 to verify the query, then scale up. French company search works on www.europages.fr this cycle. Keep companySearchFallback: true (default) for hosts where native company search is unsupported (de 404). Do not assume es / it / tr company search was opened.
How much does it cost to scrape Europages?
This Actor uses pay-per-event pricing. You are charged for:
| Event | Price |
|---|---|
Actor Start (apify-actor-start) | $0.005 per start |
Result (apify-default-dataset-item) | $3.00 / 1,000 results ($0.003 each on FREE/BRONZE) |
Platform usage costs are included — you do not pay separate Apify compute/proxy usage for this Actor on top of the event prices above (User pays platform usage costs = No).
Volume discount tiers (per result)
| Tier | $/1,000 | per result |
|---|---|---|
| FREE* | $3.00 | $0.003 |
| BRONZE | $3.00 | $0.003 |
| SILVER | $2.60 | $0.0026 |
| GOLD | $2.20 | $0.0022 |
| PLATINUM | $2.00 | $0.002 |
| DIAMOND | $1.60 | $0.0016 |
*FREE matches BRONZE for this Actor.
Example cost estimates (FREE/BRONZE)
| Results collected | Approx. event cost* |
|---|---|
| 100 | ~$0.31 |
| 1,000 | ~$3.01 |
| 10,000 | ~$30.01 |
*Assumes one Actor start at default memory billing for start events, plus $0.003 per Dataset item. Exact start billing can scale with allocated memory (one start event per GB, minimum one).
Free plan limits
On a free Apify plan, this Actor enforces developer limits of 10 runs and 200 results per run. Upgrade to a paid Apify plan for unlimited runs (event prices still apply).
Input examples
Product search (UK)
{"mode": "product_search","market": "en","query": "cnc machining","maxResults": 20,"maxPages": 3}
Product search with supplier-country filter (Germany)
{"mode": "product_search","market": "de","query": "hydraulic pumps","countryFilters": ["DE"],"verified": true,"maxResults": 30}
Company search (English host)
{"mode": "company_search","market": "en","query": "packaging","maxResults": 20}
Company detail
{"mode": "company","market": "en","companyUrl": "https://www.europages.co.uk/company/example-22278748"}
Product detail
{"mode": "product","market": "en","productUrl": "https://www.europages.co.uk/company/example-22278748/products/example-35995590"}
Enriched product search
{"mode": "product_search","market": "fr","query": "roulements","enrichDetails": true,"maxResults": 10}
Coverage matrix
| Dimension | Coverage |
|---|---|
| Markets (input codes) | en → europages.co.uk · fr · de · es · it · tr → europages.com.tr |
| Opened this cycle | en: product_search, company_search, company, product. fr: product_search, company_search, company. |
| Not equally verified | de company_search = 404 (Ups!). es / it / tr = 未验证 (Italian company search stayed on Human Verification). Do not claim all six TLDs were opened. |
| Modes | product_search · company_search · company · product. Category showroom is not a mode. |
| Facets | Live country filter is countries=DE (not filters[countries][0]). Other facet encodings (supplier type, verified, employees) were not re-clicked this cycle. |
| Pagination | /{lang}/products|search/page/{N}?q= |
| Free tier | 10 runs / 200 results per free-plan user |
Do not use www.europages.com as the scrape host — it stays on Human Verification. Prefer market TLDs. French company search returns cards this cycle (ignore older “empty_shell” notes).
Output
Each Dataset item is one product card, company card, or detail record. Catalog fields plus Lead / Contact keys:
type—product/companymarket,source,scrapedAtproductId,title,description,urlcompanyId,companyName/name,companyUrl,countryverified,supplierTypes,image/logo,vatId(registry — not a phone)phones[],emails[],address(incl.unit= 门牌),geo,person,org,webleadSource,leadReveal,leadAbsences- Aliases:
phone,email,website
Company-detail example (WKL on fr, values as published):
{"type": "company","market": "fr","name": "WKL Helmstädter GmbH","companyId": "1032458","url": "https://www.europages.fr/fr/company/wkl-helmstaedter-gmbh-1032458","phones": [{ "value": "+49626136005", "type": "landline", "e164": "+49626136005" }],"emails": [],"address": {"street": "Am Luttenbach 3 (ehem. Kaserne)","unit": "3","locality": "Elztal","postalCode": "74834","country": "DE","full": "Am Luttenbach 3 (ehem. Kaserne), 74834, Elztal, DE"},"person": { "name": "Manuel Müllner", "role": "PDG" },"org": { "name": "WKL Helmstädter GmbH", "id": "1032458" },"web": { "website": "http://www.wkl-helmstaedter.de/" },"leadSource": "entity","leadReveal": "click","leadAbsences": { "emails": "本站无" },"vatId": "DE276876918"}
Key-value store keys:
| Key | Purpose |
|---|---|
INPUT_ECHO | Sanitized input (no scrape-backend URL) |
RUN_SUMMARY | Counts, diagnostics, warnings, free-tier flags |
ERROR_SUMMARY | Present only when the run fails |
Tips for better results
- Prefer specific industrial keywords over one-word queries
- Use countryFilters (ISO-2) when you need suppliers from one country — encoded as
countries= - Keep
maxPagesmodest until you confirm the query returns the right vertical - Leave
enrichDetailson unless you only need thin search cards (no phones / 门牌 / person) - On free Apify plans, stay within 10 runs / 200 results
FAQ
Is this an official Europages API?
No. It is an unofficial scraper for publicly reachable pages.
Which market should I pick?
Pick the UI language / TLD you want (en for UK English, fr for France, …). Supplier country is a separate filter (countryFilters → live countries=). Opened this cycle: en + fr. de company search is 404. es / it / tr are 未验证.
Why is company search empty on German?
/de/search returns an application 404 (Ups!) this cycle. French company search does return cards on www.europages.fr. With companySearchFallback: true (default), unsupported native company search can use the English host plus a supplier-country hint. Do not assume Italian / Spanish / Turkish company search was opened.
Do you scrape phone numbers?
Yes, when the company profile or PDP Nuxt publishes them (phoneNumber + JSON-LD). List cards do not have phones — leave enrichDetails on. Clicking view-phone-number only unmasks tel: already in the HTML; there is no reveal XHR. Sampled companies had no email. VAT IDs are not phones. Contact fields are not redacted.
Can I schedule daily runs?
Yes — use Apify Schedules or the API.
Is it legal to scrape Europages?
Scraping publicly available data is a common practice when done respectfully. You are responsible for complying with Europages terms, applicable laws (including GDPR where relevant), and your own use-case constraints. This Actor does not bypass logins, submit Contact supplier / RFQ, or solve Human Verification. Public phones / 门牌 / person on company pages are stored as published.
Related Actors
All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.
Jobs & Freelance
- LinkedIn Jobs Scraper
- Bayt Jobs Scraper
- Fiverr Gigs Scraper
- Freelancer.com Scraper
- Glassdoor Scraper
- Himalayas Jobs Scraper
- Indeed Jobs Scraper
- Jobicy Remote Jobs Scraper
- RemoteOK Jobs Scraper
- SEEK Jobs Scraper
- Upwork Jobs Scraper
Real Estate
- Zillow & Zumper Scraper
- Realtor.com Scraper
- 99.co Scraper
- Realtor.com Agents Scraper
- Apartments.com Rental Scraper
- Bayut Scraper
- Craigslist Housing Scraper
- Daft.ie Scraper
- Dot Property Scraper
- FINN.no Scraper
- Funda Scraper
- Hepsiemlak Scraper
- Idealista Scraper
- Immobiliare.it Scraper
- ImmoScout24 Scraper
- Naver Land Scraper
- OpenSooq Scraper
- Otodom Scraper
- Property Finder Scraper
- PropertyGuru Scraper
- realestate.com.au Scraper
- Realtor.ca Scraper
- Rightmove Scraper
- SeLoger Scraper
- SUUMO Scraper
- Zillow Group Scraper
E-commerce
- Shopee Search Scraper
- E-commerce Scraper
- 1688 Global Product Search Scraper
- Allegro Scraper
- Amazon Search Scraper
- ASOS Product Scraper
- Cdiscount Product Scraper
- Costco Product Scraper
- Coupang Product Scraper
- Etsy Scraper
- Lazada Scraper
- MercadoLibre Scraper
- Mercari Japan Scraper
- Rakuten Japan Scraper
- SHEIN Product Scraper
- Target Product Scraper
- Temu Product Scraper
- Walmart Product Scraper
Travel & Stays
- Booking.com & Airbnb Scraper
- Agoda Scraper
- Airbnb Listings Scraper
- Booking.com Hotels Scraper
- Despegar Scraper
- Expedia Scraper
- Traveloka Scraper
- Travelstart Flights Scraper
- Trip.com Scraper
- TripAdvisor Scraper
Social & Content
Ads Intelligence
Local & Maps
General Tools
→ Browse the full profile: apify.com/lentic_clockss