# DACH & EU Data Source Finder — free (`perceptr0n/dach-eu-data-source-finder`) Actor

Free lookup: tell it a website, trade fair, company or topic and it tells you whether a ready-made scraper already exists for that data source, exactly which fields you would get, how many records exist and what a run costs. No cost, no signup beyond Apify.

- **URL**: https://apify.com/perceptr0n/dach-eu-data-source-finder.md
- **Developed by:** [Thomas Ehrler](https://apify.com/perceptr0n) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

## DACH & EU Data Source Finder — free

**Free.** Tell it a website, a trade fair, a company or just a topic, and it
answers one question: *is there already a ready-made scraper for this data
source — and what exactly would I get out of it?*

You get the matching actor, the fields it returns, how many records exist and
what a run costs. Before you spend a cent.

### Why this exists

Finding the right scraper usually means opening a dozen store pages, guessing
from titles and running one to find out whether it returns what you need. This
finder answers that in a few seconds, for free.

### Input examples

```json
{ "queries": ["https://exhibitors.bauma.de/"] }
```

```json
{
    "queries": [
        "anuga exhibitor list",
        "kununu employer reviews",
        "EU tenders IT services",
        "medical devices MDR manufacturers"
    ]
}
```

Leave `queries` empty to list every covered data source.

### Output example

```json
{
    "query": "https://exhibitors.bauma.de/",
    "matched": true,
    "confidence": "high",
    "actorName": "Messe München Exhibitor Scraper",
    "actorUrl": "https://apify.com/perceptr0n/messe-muenchen-exhibitor-list-scraper",
    "covers": "Exhibitors of Messe München fairs: bauma, IFAT, BAU, automatica, ceramitec",
    "volume": "~10,700 exhibitors across five fairs",
    "fieldsYouGet": ["company", "hall & stand", "postal address", "business e-mail", "phone", "website", "product categories"],
    "pricing": "$0.01 per run + $0.005 per exhibitor",
    "whyThisMatch": ["the URL points at exhibitors.bauma.de"]
}
```

### What is covered today

| Data source | What you can get |
|---|---|
| **Messe München fairs** — bauma, IFAT, BAU, automatica, ceramitec | Exhibitors with address, business e-mail, phone, product categories |
| **Koelnmesse fairs** — Anuga, ISM, imm cologne, interzum, IDS, Orgatec, spoga+gafa, Eisenwarenmesse | Exhibitors with contacts, brands, full product category tree, target markets |
| **Arbeitsagentur** (German federal job board) | 1M+ job postings with salary, home-office flag, geo data |
| **kununu** (DACH employer reviews) | Employer scores, benefits, salary ranges per role, review text |
| **TED** (EU public procurement) | Tenders from all 27 EU states with buyer, value, deadline, CPV |
| **EUDAMED** (EU medical device registry) | ~3M devices, 31,800 manufacturers, 4,055 certificates |
| **Any website's legal notice** (Impressum) | Verified company name, address, register number, VAT ID, contact |
| **Apple App Store & Google Play** | App ratings, prices, versions, rankings and reviews from both stores |

### Missing your source?

If nothing matches, the run tells you so plainly instead of guessing. Open an
issue here or on any of the actors above and name the source — new ones are
added regularly, and requests that several people ask for get built first.

### FAQ

**Is this really free?**
Yes. No start fee, no per-result fee. It only reads a built-in catalogue, so a
run costs a fraction of a second of compute.

**Does it search the whole Apify Store?**
No. It covers the DACH- and EU-focused data sources maintained by this
publisher, where the field lists and record counts are verified rather than
guessed.

**What does "confidence" mean?**
`high` — your input names the exact source (e.g. a URL of that website).
`medium` — it names a fair, platform or registry covered by an actor.
`low` — only a general topic matched; check the `covers` text before running.

### Related actors

| Actor | What it does |
|---|---|
| [Messe München Exhibitors](https://apify.com/perceptr0n/messe-muenchen-exhibitor-list-scraper) | bauma, IFAT, BAU, automatica, ceramitec |
| [Anuga & Koelnmesse Exhibitors](https://apify.com/perceptr0n/anuga-ism-koelnmesse-exhibitor-scraper) | Anuga, ISM, imm cologne, interzum and more |
| [EUDAMED Medical Devices](https://apify.com/perceptr0n/eudamed-medical-device-scraper) | EU medical device registry |
| [EU Public Tenders (TED)](https://apify.com/perceptr0n/eu-tenders-ted-scraper) | Public procurement across the EU |
| [kununu Scraper](https://apify.com/perceptr0n/kununu-employer-data-scraper) | DACH employer reviews and salaries |
| [Arbeitsagentur Jobs](https://apify.com/perceptr0n/arbeitsagentur-jobs-scraper) | Germany's largest job board |

### Support

Response to issues within 1–2 business days.

# Actor input Schema

## `queries` (type: `array`):

A website URL, a fair name, a company or just a topic — e.g. `https://exhibitors.bauma.de/`, `anuga exhibitor list`, `kununu`, `EU tenders`, `medical devices MDR`. Leave empty to list every available data source.

## Actor input object example

```json
{
  "queries": [
    "https://exhibitors.bauma.de/",
    "kununu employer reviews",
    "EU tenders"
  ]
}
```

# 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 = {
    "queries": [
        "https://exhibitors.bauma.de/",
        "kununu employer reviews",
        "EU tenders"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("perceptr0n/dach-eu-data-source-finder").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 = { "queries": [
        "https://exhibitors.bauma.de/",
        "kununu employer reviews",
        "EU tenders",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("perceptr0n/dach-eu-data-source-finder").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 '{
  "queries": [
    "https://exhibitors.bauma.de/",
    "kununu employer reviews",
    "EU tenders"
  ]
}' |
apify call perceptr0n/dach-eu-data-source-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=perceptr0n/dach-eu-data-source-finder",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/afS9xzqOkgDf0J6hc/builds/tK6fcHTG3DIgnjuaw/openapi.json
