# AUMA Trade Fairs Scraper - Trade Shows & Organisers (`normdata/auma-trade-fairs-scraper`) Actor

Scrape 7,000+ current and future trade fairs worldwide from the AUMA database: dates, city, country and category. Add organiser contacts (email, phone, website), audited exhibitor, visitor and space figures, exhibitor countries, visitor profile, sectors and products. 13 filters, only new fairs.

- **URL**: https://apify.com/normdata/auma-trade-fairs-scraper.md
- **Developed by:** [Norm Data](https://apify.com/normdata) (community)
- **Categories:** Lead generation, Travel
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.50 / 1,000 trade fairs

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

![Norm Data](https://raw.githubusercontent.com/FabriAV/normdata/refs/heads/main/assets/banner_norm2.png)

## 🏛️ AUMA Trade Fairs Scraper - Trade Shows & Organisers

Extract trade fairs worldwide from **AUMA**, the German trade fair industry association, whose database lists about **7,300 trade shows in 120+ countries** from January this year to 2032. For each fair you get the **name, start and end dates, city, country, AUMA category, FKM certification, German organiser abroad and German exhibitor support (federal pavilion, state pavilion, Young Innovators)**. Turn on **fair details** to also get **the organiser's address, phone, fax, email and website, the fair's website, email and social links, every organiser and German agent, venue, cycle, year founded, audience, description, industry sectors and products, audited exhibitor, visitor and space figures (domestic and abroad), journalists, exhibitors per country, visitor countries, the visitor survey (decision makers, job positions, company sizes, top countries), every past edition's figures, German pavilions with deadlines and prices per m², sponsors, co-located fairs and the next editions**. Search with **13 filters**, paste links, or run it on a schedule to get **only new fairs**.

### 🎯 Who uses it?

#### 🤝 B2B sales and agencies serving exhibitors

Stand builders, booth designers, logistics, hotels, printers and event staffing firms get every fair in their sector and region, with the organiser's email and phone, and the exhibitor count to size each lead.

#### 📣 Marketing and event teams

Plan which shows to exhibit at or visit: compare exhibitors, visitors, space, foreign share, decision makers and audited figures across years and countries.

#### 🌍 Export promotion and chambers of commerce

Find the fairs with German federal or state pavilions, their registration deadlines and prices per m², and fairs abroad run by German organisers.

#### 📊 Market researchers and trade fair organisers

Track the global trade show calendar, competing events, co-located fairs, cycles and the growth of each fair edition by edition.

### ✨ What it does

- **The whole database in seconds.** All ~7,300 fairs (list fields) come in one request, about 12 seconds.
- **13 filters.** Industry sectors (78), search words, start date range, continents, countries, cities, German states, organisers, AUMA category, German exhibitor support, only FKM certified and only German organisers abroad.
- **Fair details add-on:** reads each fair for organiser contacts, audited figures, visitor survey, past editions, German pavilions and more.
- **Or paste links.** Fair pages and "Find your fair" searches copied from auma.de. Filters are not used with links.
- **Monitoring:** run it on a schedule with **Only new fairs**, and each run saves only the fairs you haven't received yet.
- **5 sort orders:** start date (both ways), title, country or city.

### 🏆 Why this scraper

- **The only AUMA scraper on the Apify Store** (October 2026).
- **Audited numbers, not guesses.** Exhibitor, visitor and space figures come from AUMA's database, many audited by FKM, with the history of past editions.
- **Contacts for B2B.** Organiser address, phone, fax, email and website, plus the fair's own email, website and 5 social links.
- **Clean, flat, typed data.** Dates are ISO, counts are numbers, yes/no fields are true or false, site codes are readable words. 67 fields, one row per fair.
- **Nothing to set up.** No proxy, no login.

### 📦 What data you get

| Field | Description |
| --- | --- |
| `title` | Fair name, like "EuroBLECH - International Sheet Metal Working Technology Exhibition". |
| `shortTitle`, `subtitle` | *(Fair details)* Short name and subtitle. |
| `startDate`, `endDate`, `month` | First and last day (YYYY-MM-DD) and the month. Fairs with no fixed days yet have only the month. |
| `city`, `country` | City and country. |
| `venue` | *(Fair details)* Exhibition centre. |
| `category` | AUMA category of fairs in Germany: International, National, Regional or New. |
| `fairId` | AUMA ID of this edition. |
| `description` | *(Fair details)* Short profile of the fair. |
| `cycle`, `foundedYear`, `audience` | *(Fair details)* How often it runs (like "annually" or "every two years"), the year it was founded and who can visit (trade visitors, general public). |
| `organiserName`, `organiserAddress`, `organiserCity`, `organiserCountry`, `organiserPhone`, `organiserFax`, `organiserEmail` | *(Fair details)* Organiser name, full address, city, country, phone, fax and email. |
| `fairEmail`, `fairPhone` | *(Fair details)* Email and phone of the fair team. |
| `statsEdition`, `statsAuditedBy` | *(Fair details)* Key figures of the latest edition with numbers: which edition (month/year) and who audited them (like FKM). |
| `exhibitors`, `exhibitorsDomestic`, `exhibitorsAbroad` | *(Fair details)* Exhibitors in total, from the host country and from abroad. |
| `visitors`, `visitorsDomestic`, `visitorsAbroad`, `tradeVisitors` | *(Fair details)* Visitors in total, domestic, from abroad, and trade visitors. |
| `netSpaceSqm`, `grossSpaceSqm`, `journalists` | *(Fair details)* Net and gross exhibition space in square metres, and the number of journalists. |
| `exhibitorCountryCount` | *(Fair details)* How many countries the exhibitors came from. |
| `exhibitorDirectory`, `entranceFee`, `cancelNote` | *(Fair details)* Where the exhibitor list is (like "on-line available"), the entrance fee and a note when the fair is cancelled. |
| `fkmCertified`, `germanOrganiserAbroad` | Figures audited by FKM, and fairs abroad run by German organisers (GTQ label). |
| `cancelled` | *(Fair details)* The fair is cancelled. |
| `url` | Link to the fair on AUMA. |
| `fairWebsite`, `organiserWebsite` | *(Fair details)* Fair and organiser websites. |
| `facebookUrl`, `instagramUrl`, `linkedInUrl`, `twitterUrl`, `youTubeUrl` | *(Fair details)* Facebook, Instagram, LinkedIn, X (Twitter) and YouTube of the fair. |
| `germanPavilionUrl`, `registrationUrl` | *(Fair details)* German pavilion page and exhibitor registration form. |
| `germanSupport` | German exhibitor support: federal pavilion (AMP), state pavilion (LPA) or Young Innovators stand. |
| `industrySectors`, `products` | *(Fair details)* Industry sectors and the products on show. |
| `organisers` | *(Fair details)* Every organiser and agent (like the agent in Germany): name, role, department, address, city, country, phone, fax, email and website. |
| `exhibitorCountries`, `visitorCountries` | *(Fair details)* Exhibitors per country, and the countries visitors came from. |
| `statisticsHistory` | *(Fair details)* Figures of every past edition: exhibitors, visitors (domestic, abroad, trade, public), represented companies, net and gross space, auditor and notes. |
| `visitorProfile` | *(Fair details)* Visitor survey: survey year and institute, trade vs private and foreign visitors, first-time visitors, decision makers, top countries, job positions, economic sectors, company sizes, age groups and gender (in %), and the average stay in days. |
| `germanPavilions` | *(Fair details)* Official German pavilions and joint stands: title, deadline, who funds and runs it, exhibitors, hall space and price per m². |
| `sponsors`, `colocatedFairs`, `nextEditions` | *(Fair details)* Sponsoring associations, fairs held at the same time and place, and the next editions (title, dates, city, link). |
| `scrapedAt` | When this row was saved. |
| `error` | Only present when a row failed. The fields that loaded are still there. |

Fields marked *Fair details* only appear when that add-on is on.

#### Example row (trimmed)

```json
{
  "title": "boot Düsseldorf - International Boat Show",
  "shortTitle": "boot Düsseldorf",
  "subtitle": "International Boat Show",
  "startDate": "2027-01-23",
  "endDate": "2027-01-31",
  "month": "2027-01",
  "city": "Dusseldorf",
  "country": "Germany",
  "venue": "Messegelände",
  "category": "International",
  "fairId": "232966",
  "description": "boot Düsseldorf is the world's largest yacht and water sports fair. Whether you're looking for a dinghy, yacht or luxury yacht, sailors and motorboat enthusiasts will find their ...",
  "cycle": "annually",
  "foundedYear": 1969,
  "audience": "Trade visitors and general public",
  "organiserName": "Messe Düsseldorf GmbH",
  "organiserAddress": "Messeplatz, 40474 Dusseldorf, Germany",
  "organiserCity": "Dusseldorf",
  "organiserCountry": "Germany",
  "organiserPhone": "+49 211 4560-01",
  "organiserFax": "+49 211 4560-668",
  "organiserEmail": "info@messe-duesseldorf.de",
  "fairEmail": "michelidakisp@messe-duesseldorf.de",
  "statsEdition": "1/2026",
  "statsAuditedBy": "FKM",
  "exhibitors": 1389,
  "exhibitorsDomestic": 536,
  "exhibitorsAbroad": 853,
  "visitors": 198988,
  "visitorsDomestic": 153738,
  "visitorsAbroad": 45250,
  "netSpaceSqm": 109372,
  "grossSpaceSqm": 208800,
  "journalists": 1848,
  "exhibitorCountryCount": 69,
  "exhibitorDirectory": "on-line available / access via home page of the trade fair",
  "fkmCertified": true,
  "germanOrganiserAbroad": false,
  "cancelled": false,
  "url": "https://www.auma.de/en/find-your-fair/details/?tfd=dusseldorf_boot-dusseldorf_232966",
  "fairWebsite": "http://www.boot.de",
  "organiserWebsite": "http://www.messe-duesseldorf.de",
  "facebookUrl": "https://www.facebook.com/boot.duesseldorf",
  "instagramUrl": "https://www.instagram.com/bootduesseldorf/",
  "twitterUrl": "https://twitter.com/nonstopboot",
  "youTubeUrl": "https://www.youtube.com/user/bootDaily",
  "industrySectors": ["Boats, Boat Accessories", "Sports & Fitness"],
  "products": ["Boats", "Windsurfing", "Engines"],
  "organisers": [
    { "name": "Messe Düsseldorf GmbH", "role": "Organiser", "department": null, "address": "Messeplatz, 40474 Dusseldorf, Germany", "city": "Dusseldorf", "country": "Germany", "phone": "+49 211 4560-01", "fax": "+49 211 4560-668", "email": "info@messe-duesseldorf.de", "website": "http://www.messe-duesseldorf.de" }
  ],
  "exhibitorCountries": [{ "country": "Albania", "exhibitors": 1 }],
  "statisticsHistory": [
    { "edition": "1/2026", "auditedBy": "FKM", "exhibitors": 1389, "exhibitorsDomestic": 536, "exhibitorsAbroad": 853, "representedCompanies": 0, "visitors": 198988, "visitorsDomestic": 153738, "visitorsAbroad": 45250, "tradeVisitors": null, "publicVisitors": null, "netSpaceSqm": 109372 }
  ],
  "visitorProfile": { "surveyYear": 2025, "surveyBy": "Data E-Motion", "surveyOf": "Private visitors", "tradeVisitorsPercent": 18, "privateVisitorsPercent": 82, "foreignVisitorsPercent": 16, "from300kmPlusPercent": 26, "firstTimeVisitorsPercent": 26, "decisionMakersPercent": null, "topCountries": [{ "name": "Belgium", "percent": 19 }], "foreignRegions": [{ "name": "EU", "percent": 72 }], "jobPositions": [{ "name": "Managing director, board member, head of an authority etc.", "percent": 6 }], "economySectors": [], "jobFunctions": [], "companySizes": [], "ageGroups": [{ "name": "up to 20 years", "percent": 5 }], "malePercent": 64, "femalePercent": 32, "averageStayDays": null },
  "sponsors": ["Maritime Wirtschaft Deutschland (VMWD)"],
  "scrapedAt": "2026-10-22T20:54:22.511Z"
}
```

### 💡 Use cases

**Medical and pharma fairs in Asia in 2027, with organiser contacts and figures:**

```json
{
  "industrySectors": ["Medical Engineering, Pharmaceuticals, Care"],
  "continents": ["Asia"],
  "dateFrom": "2027-01-01",
  "dateTo": "2027-12-31",
  "includeDetails": true
}
```

**International fairs in Bavaria with FKM audited figures:**

```json
{
  "germanStates": ["Bavaria"],
  "categories": ["international"],
  "fkmCertifiedOnly": true,
  "includeDetails": true
}
```

**Fairs with a German federal pavilion in the next 12 months (deadlines and prices per m²):**

```json
{
  "germanSupport": ["federal"],
  "dateTo": "12 months",
  "includeDetails": true
}
```

**Every fair by one organiser:**

```json
{
  "organisers": ["Messe Frankfurt"]
}
```

**The whole calendar, list fields only (about 7,300 fairs in seconds):**

```json
{
  "includeDetails": false
}
```

**New food fairs every week (schedule this run):**

```json
{
  "industrySectors": ["Food, Beverage and Luxury Foodstuff"],
  "onlyNew": true,
  "monitorName": "food-weekly"
}
```

**Links (filters are not used):**

```json
{
  "startUrls": [
    { "url": "https://www.auma.de/en/find-your-fair/?strFilterCountry=Iceland" },
    { "url": "https://www.auma.de/en/find-your-fair/details/?tfd=hanover_euroblech-international-sheet-metal-wo_227825" }
  ]
}
```

### ⚙️ How the input is organised

| Section | What it's for |
| --- | --- |
| **Maximum results** | Always first, caps the whole run. Empty means no limit. |
| **What to scrape** | Industry sectors, search words, start date from, start date to, sort by and fair details (organiser contacts, exhibitor and visitor figures, profile). |
| **Filters** | Continents, countries, cities, german states, organisers, category (fairs in Germany), german exhibitor support, only FKM certified figures and only German organisers abroad. |
| **Monitoring** | Only new fairs and monitor name. |
| **Links** | Links instead of the fields above. Filters are ignored with links. |

### 💰 Pricing

Pay-per-event: a one-time **$0.003** when the run starts, plus a price per fair saved to your dataset. The price depends on your Apify plan tier:

| Plan | Per fair | Per 1,000 fairs |
| --- | --- | --- |
| Free | $0.006 | $6 |
| Bronze | $0.0055 | $5.50 |
| Silver | $0.005 | $5 |
| Gold | $0.0045 | $4.50 |

**Fair details add-on:** when **Fair details** is on, each fair whose page was read adds one more charge:

| Plan | Per fair | Per 1,000 fairs |
| --- | --- | --- |
| Free | $0.025 | $25 |
| Bronze | $0.022 | $22 |
| Silver | $0.019 | $19 |
| Gold | $0.016 | $16 |

Fairs whose page could not be read pay only the base price, and fairs left out by filters are free. New Apify accounts start with $5 in free credit. On the Free plan, a run saves up to 10 fairs.

### 🚀 Run it

1. Create a free Apify account with $5 in credit.
2. Open the AUMA Trade Fairs Scraper.
3. Pick sectors, countries or dates (or keep it empty for every fair), then click **Start**.
4. Export the results as CSV, Excel, JSON or XML from the Dataset tab.

### 🤖 Use with AI agents (MCP)

Connect the [Apify MCP server](https://mcp.apify.com) to Claude, ChatGPT, Cursor or any MCP client, then ask in plain words, for example: *"List every packaging trade fair in Europe next year with the organiser's email and the number of exhibitors"*. The agent runs this Actor and reads the results.

### 🔧 Troubleshooting

- **It is slow with fair details.** AUMA allows about one fair page every 3 seconds, so 100 fairs take about 5 minutes and 1,000 fairs about 55 minutes. Without details, every fair comes in seconds.
- **Some fairs have no start or end day.** AUMA lists many fairs abroad only by month (`month`). With fair details, the exact days are filled in when AUMA has them.
- **Some fields are empty.** Organisers fill in their fairs themselves, so smaller fairs often have no figures, social links or visitor survey. Figures are those of the latest edition that has numbers (`statsEdition`).
- **Fairs from earlier this year appear.** AUMA lists fairs from January of this year on. Use **Start date from** (like "0 days") to keep only upcoming ones.
- **A country, sector or state was skipped.** The log says which value is not one of AUMA's names. Countries use AUMA's English names, like "United States of America" or "Türkiye".
- **Category is empty.** AUMA gives categories only to fairs held in Germany.

### ❓ FAQ

**How many fairs are there?** About 7,300 as of October 2026, from January 2026 to 2032, about 730 of them in Germany.

**What is FKM?** The German society that audits trade fair figures. `fkmCertified` is true when the exhibitor, visitor and space figures are audited by FKM.

**What are AMP, LPA and Young Innovators?** German government support: the federal foreign trade fair programme (AMP) and state pavilions (LPA) for German companies exhibiting abroad, and subsidised stands for young innovative companies at fairs in Germany.

**Can I pick several sectors or countries?** Yes. A fair matches when it has any of the values you pick, and every filter you fill must match.

**Do I need a proxy?** No.

### 🛡️ Limits & responsible use

This Actor collects trade fair data that AUMA publishes on its website, at the pace the site allows. Contact details are business contacts of organisers as published by AUMA. Use the data in line with AUMA's terms and data protection law (GDPR).

### 📧 Contact

Questions, bugs or a field you need: norm.data.scrapers@gmail.com

### 🧪 Local development

```bash
bun install
bun scripts/gen-schemas.mjs
sh test/run.sh first '{"maxItems":10}'
```

# Actor input Schema

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

Stop after this many fairs in total. Leave empty for no limit. The Apify Free plan is always capped at 10.

## `industrySectors` (type: `array`):

Empty = every sector. A fair matches when it covers any of them.

## `searchTerms` (type: `array`):

Words in the fair title, like "food" or "Medica". A fair matches when it has every word of any one line.

## `dateFrom` (type: `string`):

Keep fairs starting on or after this date, like 2027-01-01 or "3 months" from today. AUMA lists fairs from January of this year on.

## `dateTo` (type: `string`):

Keep fairs starting on or before this date.

## `sortBy` (type: `string`):

Empty = start date, soonest first. Fairs known only by month come after the dated ones of that month.

## `includeDetails` (type: `boolean`):

Also read each fair for its organiser (address, phone, email, website), the fair website, email and social links, venue, cycle, year founded, audience, description, sectors, products, exhibitor and visitor numbers (domestic and abroad), space, journalists, exhibitor countries, visitor countries and profile, past editions, German pavilions with prices and deadlines, sponsors, co-located fairs and next editions. AUMA allows about one fair every 3 seconds, so 100 fairs take about 5 minutes. Charged per fair as an add-on.

## `continents` (type: `array`):

Empty = worldwide.

## `countries` (type: `array`):

Empty = every country.

## `cities` (type: `array`):

City names as AUMA writes them in English, like Munich, Cologne, Dubai or Las Vegas.

## `germanStates` (type: `array`):

Fairs in Germany held in these states.

## `organisers` (type: `array`):

Organiser names or part of them, like "Messe Frankfurt" or "RX Global". Each matching AUMA organiser is one more search.

## `categories` (type: `array`):

AUMA category of fairs held in Germany. Fairs abroad have none, so picking one keeps only German fairs.

## `germanSupport` (type: `array`):

Keep fairs with a German federal or state pavilion, or a Young Innovators stand.

## `fkmCertifiedOnly` (type: `boolean`):

Keep fairs whose exhibitor, visitor and space figures are audited by FKM.

## `germanOrganisersAbroadOnly` (type: `boolean`):

Keep fairs abroad run by German organisers (AUMA GTQ label).

## `onlyNew` (type: `boolean`):

Skip fairs saved by earlier runs with the same monitor name.

## `monitorName` (type: `string`):

Runs with the same name share their history. Use a different name for each schedule.

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

Trade fair pages (https://www.auma.de/en/find-your-fair/details/?tfd=hanover_euroblech_227825) or "Find your fair" searches with their filters (https://www.auma.de/en/find-your-fair/?strFilterCountry=Germany).

## Actor input object example

```json
{
  "maxItems": 10,
  "includeDetails": 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 = {
    "maxItems": 10,
    "includeDetails": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("normdata/auma-trade-fairs-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 = {
    "maxItems": 10,
    "includeDetails": True,
}

# Run the Actor and wait for it to finish
run = client.actor("normdata/auma-trade-fairs-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 '{
  "maxItems": 10,
  "includeDetails": true
}' |
apify call normdata/auma-trade-fairs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,normdata/auma-trade-fairs-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/19DXpdGzjIZg4ygTg/builds/MgaPdhdltcbxfEc94/openapi.json
