Europages Scraper - B2B Products and Company Data
Pricing
from $2.20 / 1,000 results
Europages Scraper - B2B Products and Company Data
Extract Europages products, suppliers and public contact details from European market sites. Search by keyword or collect company and product pages. Pay per delivered row plus a start fee.
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
8 hours ago
Last modified
Categories
Security
Limited permissionsShare
Europages Scraper
Extract Europages B2B products, company profiles and public contact details across European market sites as rows you can export.
- Search products or suppliers by keyword and supplier country.
- Open company and product pages by URL or ID.
- Collect supplier catalogues, similar products and search suggestions.
- Keep published prices, identifiers, addresses and contact details together.
- Pay $3.00 per 1,000 delivered rows on the Free plan, plus a small start fee.
What does Europages Scraper do?
Europages Scraper collects public product and supplier information for sourcing, company research and catalogue comparisons. It is unofficial and is not affiliated with Europages or Visable.
- Search:
product_searchandcompany_searchaccept keywords and filters. - Details:
productandcompanyaccept page URLs or IDs. - Supplier catalogue:
instore_searchlists products from one company. - Recommendations:
similar_productslists products related to a product and its company. - Search assistance:
autocompletereturns suggestions;ai_company_intentreturns the site's company-search interpretation. - Trending:
trendinglists currently popular products and needs no keyword or URL. - Enrichment:
enrichDetailsis on by default. It adds available details to existing search rows, not separately billed rows.
The form offers 21 market codes: en, fr, de, es, it, tr, pl, nl, pt, ro, gr, se, dk, fi, no, cz, hu, bg, ee, lt, si. These select the Europages language site, not the supplier's country. Availability and field coverage vary by market and mode.
What data can you extract from Europages?
Fields depend on the selected mode and what Europages publishes. The examples below are illustrative; personal contact values are placeholders.
Product rows
| Field | Description | Example |
|---|---|---|
type | Row kind | product |
productId | Europages product identifier | 1195411 |
title | Product name | Hydraulic cylinder |
description | Published description | Industrial hydraulic cylinder |
url | Product page address | https://www.europages.co.uk/en/company/example-490125/products/cylinder-1195411 |
companyId | Supplier identifier | 490125 |
companyName | Supplier name | Example Components Ltd |
companyUrl | Supplier profile address | https://www.europages.co.uk/en/company/example-490125 |
country | Supplier country | DE |
priceText | Displayed price text | On request |
minimumOrderQuantity | Published minimum order | 10 pieces |
images | Product image addresses | [] |
attributes | Named product specifications | [{"name":"Material","value":"Steel"}] |
certificates | Published certificates | [] |
market | Selected market code | en |
Company rows
| Field | Description | Example |
|---|---|---|
type | Row kind | company |
companyId | Europages company identifier | 286830 |
name | Company name | Example Components Ltd |
url | Company page address | https://www.europages.co.uk/en/company/example-286830 |
country | Supplier country | DE |
supplierTypes | Supplier activities | ["Production"] |
employeeCount | Published employee range | 20-49 |
foundingYear | Year established | 1998 |
verified | Europages verification flag | true |
isQuickResponder | Quick-response flag | false |
phones | Published phone and fax entries | [{"value":"+1 555 0100","type":"landline"}] |
emails | Publicly displayed email entries | [] |
emailExisting | Whether an email is indicated | true |
address | Street, building number, city and postcode | {"street":"Example Street 1","unit":"1"} |
geo | Published coordinates | {"lat":52.52,"lng":13.405} |
person | Published contact name and role | {"name":"Jane Doe","role":"Sales"} |
web | Company website and social links | {"website":"https://example.com","socials":[]} |
vatId | Published tax identifier, not a phone | null |
leadAbsences | Reasons contact fields are empty | {"emails":"login_required"} |
scrapedAt | Collection timestamp | 2026-10-24T08:00:00Z |
Enriched product rows can also contain contact fields. phone, email and website remain available as simple aliases. An empty email list is not an invitation to guess an address.
Suggestion rows
| Field | Description | Example |
|---|---|---|
type | Row kind | suggestion |
id | Generated suggestion identifier | example-id |
text | Suggested search phrase | hydraulic pumps |
query | Original keyword | pump |
title | Display text | hydraulic pumps |
Category suggestion rows
| Field | Description | Example |
|---|---|---|
type | Row kind | category |
title | Category label | Pumps |
value | Source category value or object | Pumps |
query | Original keyword | pump |
Trending suggestion rows
| Field | Description | Example |
|---|---|---|
type | Row kind | trending |
title | Trending phrase | industrial pumps |
value | Source suggestion value or object | industrial pumps |
query | Original keyword | pump |
Brand suggestion rows
| Field | Description | Example |
|---|---|---|
type | Row kind | brand |
title | Suggested brand label | Example Brand |
value | Source brand value or object | Example Brand |
query | Original keyword | pump |
Intent rows
| Field | Description | Example |
|---|---|---|
type | Row kind | intent |
query | Original company-search phrase | hydraulic cylinder |
events | Number of response events received | 3 |
categories | Suggested category values | [] |
qpListData | Search interpretation values | [] |
closedBy | Response completion marker | done |
Trending products use the product row fields above, with source set to trending.
Suggestion and intent rows also carry rowType. They describe search assistance, not verified companies or products; their generated identifiers are not supplier IDs. Each delivered row is billed at the same row price.
How to scrape Europages
- Open Europages Scraper in Apify Console.
- Fill
query, a page URL or an ID field. Choosemarketif needed. - Set
maxResultsto3for a small first run. - Click Start and wait for completion.
- Download the dataset or read it through the API.
Empty input starts the form's example: heat exchanger, market en, at most 3 rows. Normal start and row charges apply. With mode: "auto", a keyword selects product search; URLs and IDs select detail modes. Company-only detailUrls select company details. If an explicit mode lacks its required target, the Actor selects a compatible mode and records the change.
Product search
Fill query or searchQueries; leave mode on auto or choose product_search.
Company search
Choose company_search and supply keywords. Use countryFilters to narrow supplier countries independently of market.
Company details
Use companyUrl, companyIds or company-only detailUrls. Full URLs are useful when you already have a profile.
Product details
Use productUrl, productIds or product detailUrls. Prefer full current page URLs: older numeric IDs may no longer resolve.
Supplier catalogue
Choose instore_search with one company URL or ID. It returns product rows up to your limit, not necessarily the company's entire catalogue.
Similar products
Choose similar_products and supply both the product and company identifiers.
Autocomplete
Choose autocomplete and a keyword fragment. Depending on the response, rows can be suggestions, categories, trending phrases or brands.
Company-search intent
Choose ai_company_intent and a search phrase. The output describes the site's interpretation, not a supplier list.
Trending products
Choose trending. No keyword or URL is needed; it returns product rows for currently popular products, up to your limit.
Category catalog
catalog takes no target but does not deliver dataset rows. It is not a downloadable category catalogue in this Actor.
What to fill in
| Field | What to enter | Default |
|---|---|---|
mode | One of the modes above | auto |
query | One keyword or phrase | Empty; form prefill heat exchanger |
searchQueries | Several keywords | [] |
companyUrl | One company page URL | Empty |
productUrl | One product page URL | Empty |
detailUrls | Company or product page URLs | [] |
companyIds | Numeric company IDs or company URLs | [] |
productIds | Product URLs or numeric IDs | [] |
market | Language-site code | en |
maxResults | Rows per input, from 1 to 200 | 70; form prefill 3 |
countryFilters | Supplier country codes, such as DE, FR | [] |
countryFilter | One country code, combined with countryFilters | Empty |
supplierTypes | Production, CustomerSpecificManufacturing, Distribution, Service, Wholesaler | [] |
categoryIds | Numeric category IDs from Europages | [] |
searchCategory | Category lookup text; does not set categoryIds | Empty |
employeeCounts | Employee ranges, such as 20-49 | [] |
verified | Require the verification flag | false |
quickResponder | Require the quick-response flag | false |
sort | A sort value offered by Europages | Empty |
maxPages | Search-page limit, from 1 to 50 | 5 |
page | Starting page | 1 |
enrichDetails | Add available details to search rows | true |
includeCatalog | Request category information; not exported as rows | false |
companySearchFallback | Allow English-site company search when category or sort searches are unavailable locally | true |
Product search
{"mode":"product_search","query":"heat exchanger","market":"en","maxResults":3}
Company search
{"mode":"company_search","query":"pumps","countryFilters":["DE"],"maxResults":3}
Company details
{"mode":"company","companyIds":["286830"],"maxResults":1}
Product details
{"mode":"product","productUrl":"https://www.europages.co.uk/en/company/example-490125/products/cylinder-1195411","maxResults":1}
Replace the illustrative product URL with an actual Europages page.
Supplier catalogue
{"mode":"instore_search","companyIds":["286830"],"maxResults":3}
Similar products
{"mode":"similar_products","productIds":["1195411"],"companyIds":["490125"],"maxResults":3}
Autocomplete
{"mode":"autocomplete","query":"pump","maxResults":3}
Company-search intent
{"mode":"ai_company_intent","query":"hydraulic cylinder","maxResults":1}
Trending products
{"mode":"trending","market":"en","maxResults":3}
Category catalog: no dataset rows
{"mode":"catalog","market":"en","maxResults":1}
maxItems and limit are aliases for maxResults. Close field-name misspellings are corrected; other unknown fields are ignored with a note. Invalid target URLs stop collection with INVALID_INPUT and an explanation naming the field and expected address. No rows are charged for rejected input; the start fee can still apply. Every run writes its interpretation to INPUT_REPORT in the default key-value store.
Output example
Illustrative company row with placeholder contact details:
{"type": "company","market": "en","companyId": "286830","name": "Example Components Ltd","title": "Example Components Ltd","url": "https://www.europages.co.uk/en/company/example-286830","country": "DE","phones": [{"value": "+1 555 0100", "type": "landline"}],"emails": [],"person": {"name": "Jane Doe", "role": "Sales"},"web": {"website": "https://example.com", "socials": []},"leadAbsences": {"emails": "login_required"},"scrapedAt": "2026-10-24T08:00:00Z"}
Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. RUN_SUMMARY records delivered counts and warnings; ERROR_SUMMARY describes failures.
Why use this Europages scraper?
- Row-based charges: enrichment updates the same row without another row charge.
- Partial delivery: available partial rows can be delivered when collection stops or reaches its time limit. Rows already saved remain in the dataset.
- Visible gaps: unavailable contact fields remain empty, with reasons such as
not_on_site,login_requiredorpartialwhere available. - Several inputs: search multiple keywords or provide several detail URLs in one run. Repeated search keywords are combined without searching them twice.
- No proxy setup: you do not need to set up proxies.
How much does it cost to scrape Europages?
Pricing is pay-per-event. The start event costs $0.005 per GB of allocated memory, with a minimum of one event. At the default 512 MB, the start charge is $0.005. Platform usage is included in these prices.
| Apify plan | Start at 512 MB | Price per row | Price per 1,000 rows |
|---|---|---|---|
| Free | $0.005 | $0.003 | $3.00 |
| Starter | $0.005 | $0.003 | $3.00 |
| Scale | $0.005 | $0.0026 | $2.60 |
| Business | $0.005 | $0.0022 | $2.20 |
| Platinum | $0.005 | $0.0020 | $2.00 |
| Diamond | $0.005 | $0.0016 | $1.60 |
maxResults applies to each input, defaults to 70 and accepts up to 200. Larger requests are collected in parts of 70. Free Apify plan runs are capped at 200 rows, with 10 runs of this Actor. All delivered row types count toward the limits. The whole run stops at your Maximum cost per run (maxTotalChargeUsd in the API).
Example: three keywords delivering five rows each give 15 rows. On the Free plan at 512 MB: 15 × $0.003 + $0.005 = $0.050. Fewer delivered rows mean fewer row charges; an empty dataset can still incur the start fee.
What happens when the run timeout is too short
When collection needs longer than the selected timeout and automatic resumption is accepted, the run pauses rather than losing its pending work. Its status explains that it will resume automatically when results are ready and shows an estimated wait. It temporarily appears as ABORTED.
The same run resumes, writes to the same dataset and finishes as SUCCEEDED if collection succeeds. Continuing delivery can show Resumed: delivering N rows. Previously delivered rows are skipped, not delivered or charged twice. Automatic pauses are limited to three per run; keep the default 3600-second timeout to reduce interruptions.
Synchronous endpoints (run-sync, run-sync-get-dataset-items) wait at most 300 seconds and can return an empty dataset during a pause. For longer work, start asynchronously and read the dataset after SUCCEEDED, or use a succeeded-event webhook. A manual abort or collection error is not a promise of automatic recovery.
Use with AI agents and the API
Apify MCP server
In Claude, ChatGPT, Cursor, VS Code or another remote MCP client, add:
https://mcp.apify.com?tools=lentic_clockss/europages-scraper
Sign in with Apify through OAuth, or provide Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns run and dataset IDs; read rows with get-dataset-items.
Clients without remote MCP support can use npx @apify/actors-mcp-server --tools lentic_clockss/europages-scraper with APIFY_TOKEN set.
Example prompt: “Find three Europages pump suppliers in Germany using company search, and return their names, URLs and public contact fields.”
Apify API
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/europages-scraper").call(run_input={"mode": "company_search", "query": "pumps", "maxResults": 3})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/europages-scraper').call({mode: 'company_search', query: 'pumps', maxResults: 3});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
For asynchronous HTTP calls, send input JSON to POST https://api.apify.com/v2/acts/lentic_clockss~europages-scraper/runs with the bearer-token header. After completion, use GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.
Integrations
Use the Integrations tab for Google Sheets, Make, Zapier, n8n, Slack, Airtable or webhooks. Use Apify Schedules for recurring runs.
FAQ
Is it legal to scrape Europages?
Public availability does not settle permission for every use. You are responsible for Europages terms and applicable data-protection law. Processing personal data requires a lawful basis.
Why did my run end as ABORTED?
A temporary ABORTED status with an automatic-resumption message can be normal. Check the status message before restarting; a manual abort is different.
How many results can I get?
Request 1–200 rows per input. Available matches, maxPages, your cost ceiling and Free-plan limits can reduce delivery.
Why are some fields empty?
Europages may not publish them, or a detail page may be unavailable. leadAbsences distinguishes missing, login-only and partial contact information when known.
Can I collect phones and emails?
Public phones and fax numbers can appear in detail or enriched rows. Email indicated by emailExisting may still require login and remain empty. The Actor does not log in or submit supplier inquiries.
Which market should I choose?
Choose the desired language site: for example en selects europages.co.uk, while de selects europages.de. Use countryFilters for supplier location. The .com language gateway is not a market option.
Can I use a product ID without its URL?
Yes, but older numeric IDs may resolve to missing pages. Use the current full product URL when possible. Missing pages do not create billable dataset rows.
Does enrichment cover every search row?
Not necessarily. Detail enrichment is limited to the first 20 rows in a collection batch and can stop earlier when time is short. Use direct detail inputs for selected profiles.
Limitations
- Not every market and mode combination has confirmed live coverage.
- Category and custom-sort searches can take longer and may use the English-site company-search fallback.
searchCategorydoes not apply a category filter; usecategoryIds.catalogandincludeCatalogdo not add catalogue rows to the dataset.- Search-assistance rows use types beyond the product/company types declared in the current dataset schema; strict schema consumers should use product or company modes.
- Private account data, supplier inquiries and category-showroom collection are not supported.
Related scrapers
More B2B supplier and wholesale marketplace scrapers from the same publisher:
- GlobalSources Scraper
- Kompass Scraper
- Thomasnet Scraper
- iPROS Scraper
- Xometry Scraper
- IndiaMART Scraper
- MonotaRO Scraper
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Report problems or request a field through the Issues tab of this Actor's page. Include the run ID and the input you used.