# Europages Business and Product Scraper (`kinaesthetic_millionaire/europages-leads-scraper`) Actor

Extract product and company details like product name, description, images, price, minimum order and other attributes in structured format from europages.de website.

- **URL**: https://apify.com/kinaesthetic\_millionaire/europages-leads-scraper.md
- **Developed by:** [Parsedom Inc](https://apify.com/kinaesthetic_millionaire) (community)
- **Categories:** Developer tools, E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 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.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

**Extract product listings and company details from [Europages](https://www.europages.de/) in seconds** — no coding, no manual copy-pasting, no rate-limit headaches. Just paste a category or search URL and get clean, structured data about B2B suppliers, manufacturers, and their products, ready to export or plug into your own systems via the Apify API, scheduler, and integrations.

### What does Europages Business and Product Scraper do?

Europages Business and Product Scraper crawls [Europages](https://www.europages.de/) listing pages — categories, search results, or showroom pages — and visits every product it finds to pull out full **product and company details**: product name, description, images, price (when shown), minimum order quantity, supplier type, and the company's name, country, website, and verification status. It follows pagination automatically, so a single listing URL can turn into a complete dataset of every product on that page. Running on the Apify platform means you also get proxy rotation, scheduling, webhooks, and API access out of the box — no infrastructure to manage.

### Why use Europages Business and Product Scraper?

Europages is one of the largest B2B marketplaces in Europe, listing hundreds of thousands of manufacturers, distributors, and service providers. Manually browsing it for leads or market research doesn't scale. This Actor is built for:

* **Lead generation** — build a list of verified suppliers and manufacturers in a given category or country, complete with company websites and contact pages.
* **Market & competitor research** — see who's selling what, at what price, and with what minimum order quantities across a whole product category.
* **Sourcing** — quickly compare suppliers for a product type before reaching out.
* **Data enrichment** — feed structured company and product data into a CRM, spreadsheet, or internal database via the Apify API.

### How to use Europages Business and Product Scraper

1. Open the Actor's **Input** tab.
2. Paste one or more Europages listing URLs into **Start URLs** — category pages (`/showroom-cate/...`), search result pages (`/suche...`), or product listing pages (`/products...`) all work.
3. Optionally adjust **Max Items** to control how many products are scraped per start URL.
4. Click **Start** and wait for the run to finish — the Actor handles pagination and proxy rotation automatically.
5. Open the **Dataset** tab to browse, filter, or export your results.

No coding is required, but the Actor can also be triggered and its results retrieved entirely via the [Apify API](https://docs.apify.com/api/v2) for automated workflows.

### Input

The Actor accepts a small, focused set of input fields — see the **Input** tab for the full form.

| Field | Description |
| --- | --- |
| `startUrls` | Europages category, search, or listing pages to start scraping from |
| `maxItems` | Maximum number of product detail pages to scrape **per start URL** (default: 5, capped at 5 on the free plan) |
| `proxyConfiguration` | Proxy settings. Uses **Apify Proxy** by default — recommended, since Europages actively blocks unproxied and datacenter traffic |

Example input:

```json
{
  "startUrls": [
    {
      "url": "https://www.europages.de/de/showroom-cate/metall%20%26%20metallerzeugnisse-100068?attributes=400000000-30000000000"
    }
  ],
  "maxItems": 5
}
````

### Output

Each scraped product becomes one item in the dataset. You can download results in JSON, CSV, Excel, HTML, or XML directly from the **Dataset** tab, or fetch them programmatically via the API.

```json
{
  "productName": "Stülpdeckeldosen aus Metall",
  "productDescription": "High-quality metal packaging...",
  "productUrl": "https://www.europages.de/...",
  "productImages": ["https://..."],
  "companyName": "Pirlo Gruppe",
  "companyUrl": "https://www.europages.de/de/firma/pirlo-gruppe-159578",
  "companyCountry": "DE",
  "distributionArea": "Weltweit",
  "supplierTypes": ["Hersteller/Fabrikant"],
  "manufacturerWebsite": "http://www.pirlo.com/",
  "minimumOrderQuantity": {
    "value": 1,
    "unit": "Pauschal"
  },
  "price": null,
  "attributes": {
    "material": "Metall, Aluminium",
    "verschlusstyp": "Stülpdeckelverschlüsse"
  },
  "hasVerifiedBadge": true,
  "hasResponseLabel": true,
  "relatedProductUrls": [
    "https://www.europages.de/de/firma/..."
  ]
}
```

#### Data fields

| Field | Description |
| --- | --- |
| `productUrl` | Direct link to the product page |
| `productName` | Product title |
| `productDescription` | Full product description |
| `productImages` | Product image URLs |
| `price` | Listed price, if the supplier shows one |
| `minimumOrderQuantity` | MOQ value and unit, if specified |
| `attributes` | Product specification table (material, dimensions, etc.), as key-value pairs |
| `companyName` | Supplying company's name |
| `companyUrl` | Link to the company's Europages profile |
| `companyLogoUrl` | Company logo image URL |
| `companyCountry` | Company's country, from its Europages flag icon |
| `distributionArea` | Company's stated distribution area (e.g. worldwide, regional) |
| `supplierTypes` | Supplier classification (manufacturer, distributor, etc.) |
| `manufacturerWebsite` | Company's external website, if listed |
| `hasVerifiedBadge` | Whether Europages has verified the company |
| `hasResponseLabel` | Whether the company is flagged as a fast responder |
| `relatedProductUrls` | Similar/related product links shown on the page |

### How much does it cost to scrape Europages data?

This Actor runs on the [Apify platform](https://apify.com/pricing), which includes free monthly usage on every plan — enough to try the Actor and run small jobs at no cost. Actual cost depends on how many start URLs and items you scrape and how long the run takes; the **Max Items** input is capped at 5 per start URL on the free plan, which is enough for testing before scaling up on a paid plan. Check the exact compute-unit cost of any run in the **Run** tab in Apify Console.

### Tips for best results

- Use category, search, or showroom listing URLs — not individual product page URLs — as start URLs, since those are what the Actor paginates through.
- Keep `maxItems` low while testing a new category, then raise it once you've confirmed the data looks right.
- Leave `proxyConfiguration` on Apify Proxy unless you have a specific reason to use your own — Europages blocks unproxied traffic.

### FAQ, disclaimers, and support

**Is this legal?** This Actor only extracts publicly available data from Europages listing and product pages. You're responsible for reviewing [Europages' Terms of Service](https://www.europages.de/) and applicable data protection laws (e.g. GDPR) before using the extracted data, especially for outreach or lead generation.

**Known limitations:** Europages' page markup can change without notice, which may temporarily break extraction until the Actor is updated. Some fields (price, MOQ, external website) are only present on some listings and will come back empty or `null` when a supplier doesn't provide them.

Found a bug or have a feature request? Open an issue in the Actor's **Issues** tab. Need a custom version of this scraper or a different data source entirely? Reach out — custom scraper development is available on request.

# Actor input Schema

## `startUrls` (type: `array`):

Europages listing pages to start crawling from.

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

Maximum number of product detail pages to scrape per start URL. Capped at 5 on the free plan.

## `proxyConfiguration` (type: `object`):

Uses Apify Proxy by default.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.europages.de/de/showroom-cate/metall%20%26%20metallerzeugnisse-100068?attributes=400000000-30000000000"
    }
  ],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.europages.de/de/showroom-cate/metall%20%26%20metallerzeugnisse-100068?attributes=400000000-30000000000"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("kinaesthetic_millionaire/europages-leads-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 = {
    "startUrls": [{ "url": "https://www.europages.de/de/showroom-cate/metall%20%26%20metallerzeugnisse-100068?attributes=400000000-30000000000" }],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("kinaesthetic_millionaire/europages-leads-scraper").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 '{
  "startUrls": [
    {
      "url": "https://www.europages.de/de/showroom-cate/metall%20%26%20metallerzeugnisse-100068?attributes=400000000-30000000000"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call kinaesthetic_millionaire/europages-leads-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Europages Business and Product Scraper",
        "description": "Extract product and company details like product name, description, images, price, minimum order and other attributes in structured format from europages.de website.",
        "version": "1.0",
        "x-build-id": "tLaqzkIor4G12wxVO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/kinaesthetic_millionaire~europages-leads-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-kinaesthetic_millionaire-europages-leads-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/kinaesthetic_millionaire~europages-leads-scraper/runs": {
            "post": {
                "operationId": "runs-sync-kinaesthetic_millionaire-europages-leads-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/kinaesthetic_millionaire~europages-leads-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-kinaesthetic_millionaire-europages-leads-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Europages listing pages to start crawling from.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of product detail pages to scrape per start URL. Capped at 5 on the free plan.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Uses Apify Proxy by default."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
