# Europages Scraper (`saswave/europages-scraper`) Actor

$0.9 / 1000 results. Europages company scraper.  From any domain name. Extract company information from a europages search url. Collect data about company name, description, VAT ID, phonenumber, email, fax, address, website, employee count and more

- **URL**: https://apify.com/saswave/europages-scraper.md
- **Developed by:** [SASWAVE](https://apify.com/saswave) (community)
- **Categories:** E-commerce, Automation, Lead generation
- **Stats:** 176 total users, 6 monthly users, 84.0% runs succeeded, 6 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Europages Company Scraper

Scrape company profiles from Europages search or listing URLs and return clean, structured company data ready for analytics, enrichment, or ingestion into CRMs and data pipelines. From any domain name

This actor extracts company-level information such as name, description, contact details (phone, email, fax), VAT ID, address, website, employee count, founding year, logos, geo coordinates and SEO/keyword fields

Ideal for lead generation, B2B market intelligence, data-enrichment and business research.

### ✅ Key Features

Extracts company profile data from Europages search / listing URLs

Collects contact details: phone, email (when publicly available), fax

Grabs company metadata: VAT ID, employee range, founding year, supplier types

Captures web presence: homepage, logo URL, profile URL, slug, UUID

Fetches location and geocoordinates (lat / lon) and full address breakdown

Pulls reputation metrics: response rate/time, reviews, years on Europages (when available)

Returns keyword lists and SEO fields (tags / categories)

Output normalized to consistent JSON schema for immediate use

### 🔍 How it Works

Provide a Europages search or listing URL.

Actor crawls search results and visits each company profile it finds.

Extracts structured fields and normalizes values (dates, numbers, coordinates).

Stores results in Apify dataset / returns via API for download (JSON/CSV/Excel).

### Output

```json
{
  "companyId": 22229331,
  "uuid": "0d7f5f69-f446-3aed-93b9-ffdd43f8ac36",
  "slug": "cupaso-deutschland-gmbh-22229331",
  "acronym": "CDG",
  "averageResponseTime": "less_than_24h",
  "distributionArea": "europe",
  "email": "XXXX@cupaso.de", // anonymised for documentation
  "employeeCount": "5-9",
  "foundingYear": 2017,
  "homepage": "https://www.cupaso.de/en-gb",
  "location": {
    "latitude": 52.338563,
    "longitude": 10.573798
  },
  "logoUrl": "https://wlw-1-company-facts-media20191122174836234900000006.s3.eu-central-1.amazonaws.com/953948bb-c1be-4db7-a3b6-720661a6fa53.gif",
  "name": "CUPASO DEUTSCHLAND GMBH",
  "responseRate": 0.57,
  "supplierTypes": [
    "distribution"
  ],
  "epId": "00000005493309-001",
  "epSlug": "CUPASO-DEUTSCHLAND-GMBH",
  "profile_url": "https://www.europages.fr/CUPASO-DEUTSCHLAND-GMBH/00000005493309-001.html",
  "search_url": "https://www.europages.fr/entreprises/emballages%20en%20carton.html",
  "description": "Nous avons plus de 20 ans d'expérience dans le secteur. Notre savoir-faire dans les domaines du Lettershop, de l'emballage ainsi que de l'adressage et de l'étiquetage des produits est regroupé depuis 2017 au sein de la CUPASO Deutschland GmbH.\n\nAvec notre offre de machines d'emballage neuves et entièrement rénovées, nous proposons déjà aujourd'hui des solutions pour de nombreuses exigences en matière d'emballage et de logistique. Parmi celles-ci, on trouve des machines à insérer, des machines à cercler et des machines d'adressage pour les imprimeries et les Lettershops. Pour l'emballage des produits alimentaires et médicaux, vous trouverez chez nous des machines à souder à chaud spécifiques, des machines à chambre à vide, des machines à emballer sous blister et des systèmes d'impression en ligne. Avec nos machines à enrouler en film étirable, nous offrons également une solution de fin de ligne personnalisée et intersectorielle.\n\nPour répondre aux exigences croissantes en matière d'emballage durable, notre offre comprend désormais, en plus des emballages en film classiques pour les machines à souder sur les côtés et les ensacheuses, également des emballages à base de fibres en papier kraft.\n\nNotre portefeuille de produits en pleine expansion comprend déjà des équipements des marques AUTOVAK AUTOMATION, BUHRS ITM, BVM BRUNNER, CMC, GRÜTZMACHER, J PACK, SMB, TECNIMODERN AUTOMATION. De plus, nous avons toujours de nombreuses installations complètes et composants individuels en cours de transformation ou de révision générale. Cela nous permet de vous proposer rapidement une solution spécifique à vos besoins.",
  "phoneNumber": "+49530XXXXXXXX", // anonymised for documentation
  "faxNumber": null,
  "address": {
    "addressLines": "Grasseler Straße 54",
    "city": "Braunschweig",
    "postalCode": "38110",
    "countryCode": "DE"
  },
  "contentLanguage": "fr",
  "vatId": "DE31XXXXXXX", // anonymised for documentation
  "keywords": [
    "Emballage et conditionnement - machines et matériel",
    "SYSTÈMES POUR LE CONDITIONNEMENT",
    "IMPRIMANTES POUR ÉTIQUETTES",
    "MACHINES A JET D'ENCRE",
    "conditionnement palettes"
  ],
  "seoKeywords": [
    "Emballage et conditionnement - machines et matériel",
    "SYSTÈMES POUR LE CONDITIONNEMENT",
    "IMPRIMANTES POUR ÉTIQUETTES",
    "MACHINES A JET D'ENCRE",
    "conditionnement palettes"
  ]
}
```

🧠 Use Cases

B2B lead generation & prospecting

Data enrichment for CRMs (Salesforce, HubSpot)

Market research and competitor intelligence

Building company directories or databases

Geospatial analysis of suppliers / partners

AML / compliance preliminary data collection

Academic or industry research on sector landscapes

### 🚀 Benefits

Ready-to-use JSON output suitable for pipelines and dashboards

Works at scale — batch processing of result pages and profiles

Normalized fields reduce post-processing work

Exportable to CSV/Excel/Database for easy integration

Automatable via Apify API and scheduling

### ⚙️ Best Practices & Tips

Prefer search or category URLs for bulk extraction.

Use filters on Europages to narrow down industries, countries or segments before scraping.

Combine with enrichment services (WHOIS, LinkedIn enrichment, company data providers) for fuller profiles.

### 🛟 SUPPORT

Share your runs with the developer team and create issues on error to help us improve actor quality.

You might discover edge case we didn't test yet

We stay available anytime

# Actor input Schema

## `urls` (type: `array`):

Europages search url to extract listings from

## `directs` (type: `array`):

Europages direct url to extract company from

## `page_limit` (type: `integer`):

Max page is 100

## Actor input object example

```json
{
  "urls": [
    "https://www.europages.fr/entreprises/emballages%20en%20carton.html"
  ],
  "directs": [
    "https://www.europages.co.uk/BTD-BREUER-TECHNICAL-DEVELOPMENT/BEL071657-00101.html"
  ],
  "page_limit": 1
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "urls": [
        "https://www.europages.fr/entreprises/emballages%20en%20carton.html"
    ],
    "directs": [
        "https://www.europages.co.uk/BTD-BREUER-TECHNICAL-DEVELOPMENT/BEL071657-00101.html"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("saswave/europages-scraper").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 = {
    "urls": ["https://www.europages.fr/entreprises/emballages%20en%20carton.html"],
    "directs": ["https://www.europages.co.uk/BTD-BREUER-TECHNICAL-DEVELOPMENT/BEL071657-00101.html"],
}

# Run the Actor and wait for it to finish
run = client.actor("saswave/europages-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.europages.fr/entreprises/emballages%20en%20carton.html"
  ],
  "directs": [
    "https://www.europages.co.uk/BTD-BREUER-TECHNICAL-DEVELOPMENT/BEL071657-00101.html"
  ]
}' |
apify call saswave/europages-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,saswave/europages-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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