# Europages Deep Dive Extractor (`silentflow/europages-deep-dive-extractor`) Actor

Extract enriched B2B company data from Europages. Get VAT numbers, decision-maker names, ISO certifications, employee counts & full contact details. Perfect for lead generation, supplier sourcing & market research. Deep dive into 3M+ European companies. 🇪🇺

- **URL**: https://apify.com/silentflow/europages-deep-dive-extractor.md
- **Developed by:** [SilentFlow](https://apify.com/silentflow) (community)
- **Categories:** Lead generation, Developer tools, E-commerce
- **Stats:** 10 total users, 0 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$29.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Europages Scraper

by [SilentFlow](https://apify.com/silentflow)

Extract enriched B2B company data from Europages, VAT numbers, decision-maker names, emails, company size, certifications, and complete contact info across 28+ European countries.

### ✨ Why use this scraper?

- 🔢 **VAT numbers**: EU VAT numbers extracted for instant B2B verification
- 👔 **Decision makers**: Names, normalized titles (CEO, Sales Director, CTO...) and contact emails
- 📧 **Smart email extraction**: Emails from company websites and generated patterns from manager names
- 🏅 **Certifications**: ISO 9001, 14001, CE, HACCP and more
- 🌍 **Pan-European**: Works across all 28+ Europages country sites
- 📊 **Quality scoring**: Each result includes a data completeness score (0-100%)
- 🇫🇷 **French registry integration**: Automatic SIREN/SIRET and VAT lookup via Pappers

### 🎯 Use cases

| Industry | Application |
|----------|-------------|
| **Sales & Lead Generation** | Build qualified prospect lists with verified VAT, emails, and decision-maker contacts |
| **Procurement** | Find certified suppliers and manufacturers with ISO credentials |
| **Market Research** | Analyze industry landscapes, company sizes, and revenue ranges across Europe |
| **Data Enrichment** | Enhance your existing B2B database with VAT numbers, emails, and financials |
| **Compliance** | Verify business partners with VAT numbers, SIRET/SIREN, and legal forms |

### 📥 Input parameters

#### Search

| Parameter | Type | Description |
|-----------|------|-------------|
| `keyword` | string | Search keyword (e.g., "industrial pumps", "food packaging"). **Required.** |
| `maxItems` | integer | Maximum number of companies to extract (default: 50, max: 1000) |
| `language` | select | Europages website language/domain, affects search results and descriptions (default: English UK). Options: English, French, German, Italian, Spanish, Dutch, Polish, Turkish, Czech, Danish, Portuguese, Swedish, Finnish, Norwegian, Belgian, Austrian, Swiss |
| `country` | select | Only return companies headquartered in this country (ISO code, e.g. "FR", "DE", "GB"). Leave empty for all countries. Supports 50+ countries including all EU members, UK, Norway, Switzerland, Turkey, and major world economies |

#### Settings

| Parameter | Type | Description |
|-----------|------|-------------|
| `deepDive` | boolean | Visit each company profile to extract VAT numbers, manager names, revenue, and certifications. Slower but much richer data (default: true) |

### 📊 Output data

#### Company profile example

```json
{
  "id": "12345678",
  "company_name": "ACME Packaging GmbH",
  "description": "Manufacturer of industrial packaging solutions since 1985",
  "profile_url": "https://www.europages.co.uk/ACME-PACKAGING-GMBH/12345678.html",
  "logo_url": "https://img.europages.com/logo/12345678.jpg",
  "vat_number": "DE123456789",
  "siret_number": "",
  "siren_number": "",
  "street": "Industriestrasse 42",
  "city": "Stuttgart",
  "zip_code": "70173",
  "country": "Germany",
  "country_code": "DE",
  "phone": "+49 711 1234567",
  "email": "info@acme-packaging.de",
  "website": "https://www.acme-packaging.de",
  "managers": [
    { "name": "Klaus Weber", "title": "CEO/Director" },
    { "name": "Anna Schmidt", "title": "Sales Director" }
  ],
  "certifications": [
    { "name": "ISO 9001:2015", "type": "ISO" },
    { "name": "ISO 14001", "type": "ISO" }
  ],
  "revenue": "5 - 10 million",
  "revenue_min": 5000000,
  "revenue_max": 10000000,
  "employee_count": "50-99",
  "employee_count_min": 50,
  "employee_count_max": 99,
  "founding_year": 1985,
  "legal_form": "GmbH",
  "activities": ["Packaging", "Industrial supplies"],
  "keywords": ["packaging", "industrial packaging", "cardboard boxes"],
  "distribution_area": "European Union",
  "is_verified": true,
  "is_premium": false,
  "average_response_time": "< 24h",
  "rating": 4.5,
  "data_quality_score": 78.5,
  "scraped_at": "2026-03-31T15:00:00Z"
}
```

### 🗂️ Data fields

| Category | Fields |
|----------|--------|
| **Identity** | id, company\_name, description, profile\_url, logo\_url |
| **Legal** | vat\_number, siret\_number, siren\_number |
| **Contact** | phone, email, website |
| **Address** | street, city, zip\_code, country, country\_code |
| **Management** | managers (name, title, position) |
| **Certifications** | certifications (name, type) |
| **Financial** | revenue, revenue\_min, revenue\_max, employee\_count, employee\_count\_min, employee\_count\_max, founding\_year, legal\_form |
| **Business** | activities, keywords, distribution\_area |
| **Metadata** | is\_verified, is\_premium, average\_response\_time, rating, data\_quality\_score, scraped\_at |

### 🚀 Examples

#### Find packaging suppliers in France

```json
{
  "keyword": "packaging",
  "maxItems": 100,
  "language": "fr",
  "country": "FR",
  "deepDive": true
}
```

#### Search for manufacturers in Germany

```json
{
  "keyword": "precision engineering",
  "maxItems": 50,
  "language": "de",
  "country": "DE",
  "deepDive": true
}
```

#### Quick scan without deep dive

```json
{
  "keyword": "chemical manufacturing",
  "maxItems": 200,
  "language": "co.uk",
  "deepDive": false
}
```

#### Pan-European search (all countries)

```json
{
  "keyword": "software development",
  "maxItems": 100,
  "language": "co.uk",
  "deepDive": true
}
```

### 💻 Integrations

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("silentflow/europages-deep-dive-extractor").call(run_input={
    "keyword": "packaging",
    "maxItems": 100,
    "language": "fr",
    "country": "FR",
    "deepDive": True,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['company_name']} - VAT: {item.get('vat_number', 'N/A')}")
```

#### JavaScript

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('silentflow/europages-deep-dive-extractor').call({
    keyword: 'packaging',
    maxItems: 100,
    language: 'fr',
    country: 'FR',
    deepDive: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
    console.log(`${item.company_name} - VAT: ${item.vat_number || 'N/A'}`);
});
```

### 📈 Performance & limits

| Metric | Value |
|--------|-------|
| Speed | ~3-5 seconds per company (with deep dive) |
| Success rate | 95-100% |
| VAT extraction | 60-75% of companies |
| Email extraction | 50-60% of companies |
| Manager extraction | 25-35% of companies |
| Avg quality score | 50-60% |
| Max items | 1000 per run |

Results vary by industry and country. Manufacturing sectors typically have more complete profiles.

### 💡 Tips for best results

1. **Start with deep dive enabled**: It provides much richer data (VAT, managers, financials)
2. **Use matching language and country**: Search `language: "fr"` with `country: "FR"` for French companies on the French site
3. **Try broad keywords first**: "packaging" returns more results than "biodegradable food packaging containers"
4. **Use the country filter**: Europages returns companies from all countries by default, set `country` to focus on a specific market
5. **Check the quality score**: Higher `data_quality_score` means more complete profiles

### ❓ FAQ

**How long does it take?**
With deep dive enabled, expect ~3-5 seconds per company. 100 companies typically complete in 4-5 minutes.

**Why are some fields empty?**
Not all companies have complete profiles on Europages. The `data_quality_score` helps you identify the most complete records.

**What's the difference between `language` and `country`?**
`language` sets which Europages site to search (e.g., europages.fr, europages.de). `country` filters results to only show companies headquartered in a specific country. You can search the French site but filter for German companies.

**How does email extraction work?**
The scraper visits company websites (homepage, legal pages) to find contact emails. It also generates email patterns from manager names (e.g., firstname.lastname@company.com).

**Can I filter by certification?**
Include certifications in your keyword (e.g., "ISO 9001 manufacturer") or filter results by the `certifications` field after extraction.

**What countries are supported?**
All 28+ Europages website domains (via `language`) and 50+ country filters including all EU members, UK, Norway, Switzerland, Turkey, and major world economies.

### 📬 Support

We're building this scraper for **you**, your feedback makes it better for everyone!

- 🐛 **Found a bug?** Tell us what's missing and we'll fix it fast
- 💡 **Need a feature?** We prioritize based on user feedback
- ⚙️ **Custom solutions**: Contact us for enterprise integrations or high-volume needs

We respond to every message, usually within 24 hours.

Check out our other scrapers: [SilentFlow on Apify](https://apify.com/silentflow)

# Actor input Schema

## `keyword` (type: `string`):

The industry, product, or service to search for (e.g., 'industrial pumps', 'packaging machinery', 'software development').

## `maxItems` (type: `integer`):

Maximum number of companies to extract.

## `language` (type: `string`):

Language of the Europages website. Affects search results and descriptions.

## `country` (type: `string`):

Only return companies headquartered in this country. Leave empty for all countries.

## `deepDive` (type: `boolean`):

Visit each company profile to extract VAT numbers, manager names, revenue, and certifications. Slower but much richer data.

## `proxy` (type: `object`):

Residential proxies recommended for best results.

## Actor input object example

```json
{
  "keyword": "industrial pumps",
  "maxItems": 50,
  "language": "co.uk",
  "country": "",
  "deepDive": true,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `companies` (type: `string`):

Complete list of extracted company profiles with all available data

## `downloadCSV` (type: `string`):

Download all results as CSV file

## `downloadExcel` (type: `string`):

Download all results as Excel file

## `downloadJSON` (type: `string`):

Download all results as JSON file

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keyword": "industrial pumps"
};

// Run the Actor and wait for it to finish
const run = await client.actor("silentflow/europages-deep-dive-extractor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keyword": "industrial pumps" }

# Run the Actor and wait for it to finish
run = client.actor("silentflow/europages-deep-dive-extractor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keyword": "industrial pumps"
}' |
apify call silentflow/europages-deep-dive-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=silentflow/europages-deep-dive-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/v9uosW3JQ55bXbX4x/builds/H8L8ggxV08rtdehC4/openapi.json
