# European Impressum & B2B Contact Bulk Enricher (6-Geo) (`aperture/european-impressum-contact-bulk-enricher`) Actor

Bulk extract verified corporate decision-maker emails, statutory commercial register IDs (HRB, SIREN, FN, CHE, KvK, UK Company Number), VAT numbers, and 28 tech tags across DE, AT, CH, FR, NL, BE & UK. Decodes Cloudflare data-cfemail in one pass.

- **URL**: https://apify.com/aperture/european-impressum-contact-bulk-enricher.md
- **Developed by:** [Aperture](https://apify.com/aperture) (community)
- **Categories:** Lead generation, Jobs, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 corporate contact scraped (basic mode + free role email fallback)s

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

![Aperture — Global B2B Buying-Signal & Statutory Enrichment Suite](https://api.apify.com/v2/key-value-stores/j5l13XT1d0O0NQmTI/records/aperture-suite-banner.png)

![Strict Named-Contact $0.008](https://api.apify.com/v2/key-value-stores/j5l13XT1d0O0NQmTI/records/badge-strict-named-contact.svg) ![Zero-Proxy HTTP/2 <5s](https://api.apify.com/v2/key-value-stores/j5l13XT1d0O0NQmTI/records/badge-zero-proxy-http2.svg) ![LIMITED_PERMISSIONS • MCP Ready](https://api.apify.com/v2/key-value-stores/j5l13XT1d0O0NQmTI/records/badge-mcp-skyfire-ready.svg)

<p align="center">
  <a href="https://apify.com/aperture/european-impressum-contact-bulk-enricher">
    <img src="https://api.apify.com/v2/key-value-stores/j5l13XT1d0O0NQmTI/records/eu-impressum-enricher.png" width="64" height="64" alt="European Impressum & B2B Contact Bulk Enricher" />
  </a>
</p>

### Bulk Extract Verified Contacts, Statutory Imprints & B2B Tech Stacks Across Europe

Feed any target company list or root domain list into this high-concurrency enrichment engine to pull verified European decision-maker contacts, statutory commercial register identifiers, and B2B SaaS stack telemetry in seconds. While traditional waterfall enrichment fails on European domains or burns budget on generic email guessing, European commercial entities are legally mandated (§ 5 DDG, § 5 ECG, French LCEN Art. 6, Belgian CEL, Dutch BW Art. 3:15d, UK Companies Act 2006) to publish authentic corporate electronic contact channels and statutory register filings. This tool navigates statutory imprint paths (`/impressum`, `/imprint`, `/mentions-legales`, `/legal`, `/contact`), decodes obfuscated Cloudflare protection, extracts managing directors and functional buyer contacts, and validates direct email deliverability in one pass. Runs in the cloud without requiring your LinkedIn cookies or browser login.

#### Fair Pricing Guarantee: Only Pay for Named Decision-Makers

- **`$0.001` per domain (`$1.00 / 1,000`) — `domain-crawled`:** Basic mode extracts normalized company names, statutory commercial register IDs (HRB, SIREN, FN, CHE, KvK, UK Company Number), VAT identification numbers, direct telephone numbers, and 28-tool B2B SaaS tech stack tags.
- **`$0.006` per named contact (`$6.00 / 1,000`) — `impressum-contact-enriched`:** You only pay the enriched rate when the crawl discovers a verified individual contact email (`firstname.lastname@company.com`, `email_verification_status: "ok"`) matching your target departmental role keywords.
- **Generic Department Inboxes Are Free (`role_fallback`):** If a target domain only reveals generic department mailboxes (`info@`, `contact@`, `kontakt@`, `hello@`, `support@`) or statutory legal officers without functional buyer matches, the email is included in your dataset **at no extra cost** (`email_verification_status: "role_fallback"`) and automatically billed at the **`$0.001`** basic tier (`domain-crawled`).
- **Zero-Contact Domains Cost `$0.00`:** Target domains that yield no discoverable electronic mailboxes are recorded in `websitesWithoutContacts` and completely unbilled.
- **Bytewells Multi-Client Agency License (`$39/mo`):** Outbound agencies and data teams enriching bulk CSV domain lists with zero per-row metering can license this statutory /impressum engine on **[Bytewells](https://bytewells.com)** for **`$39/mo`** (or transit-capped passes: `$3` 1h Flash / `$9` 24h Burst / `$19` 7d Sprint) with `$0.00` per-event fees. Or license the complete 10-Actor portfolio via the **`$249/mo` Founding Agency License** (~`$12.45`/client/mo across 20 clients).

#### Built for Clay, n8n & High-Speed Outbound Enrichment

- **Instant Multi-Jurisdiction Coverage:** Seamlessly handles Germany (DE), Austria (AT), Switzerland (CH), France (FR), United Kingdom (UK), the Netherlands (NL), Belgium (BE), Australia (AU), New Zealand (NZ), and the United States (US).
- **Prioritizes Functional Buyers over Legal Officers:** Target ICP keywords (e.g., `Sales`, `Talent Acquisition`, `Procurement`, `Marketing`) rank functional decision-makers ahead of statutory directors, ensuring your SDRs pitch relevant budget holders.
- **Filter Unwanted Companies & Competitors Free:** Set `blacklistDomains`, `excludeCompanyKeywords`, and `excludeLocations` to drop existing accounts or irrelevant verticals at `$0.00` cost before any network request or PPE charge occurs.

#### Sample Output (What Lands in Your Clay Table)

*Illustrative output shape — run the Actor for live records*

| Company | Domain | Target Role / Title | Contact Email | Verification Status | PPE Event Triggered | Price Billed |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| **Example Solutions GmbH** | `example.de` | `Head of Sales` | `claudia.schmidt@example.de` | `ok` *(Named Person)* | `impressum-contact-enriched` | **$0.006** |
| **Example Tech SAS** | `example.fr` | `Directeur Commercial` | `bonjour@example.fr` | `role_fallback` *(Free Bonus)* | `domain-crawled` | **$0.001** |
| **Example Communications Ltd** | `example.co.uk` | `Head of Sales` | `contact@example.co.uk` | `role_fallback` *(Free Bonus)* | `domain-crawled` | **$0.001** |
| **NoContact Example** | `nocontact-example.de` | *(No Contact)* | `—` | `none` *(Unbilled)* | `none` | **$0.000** |

#### Complete Aperture B2B Buying Signal Suite

Combine regional signal scrapers with our cross-dataset 5D ICP scoring engine and Bytewells unlimited passes to run a unified outbound pipeline across Europe, the UK, North America, and APAC:

![Aperture Multi-Region Buying-Signal & ICP Aggregation Architecture](https://api.apify.com/v2/key-value-stores/j5l13XT1d0O0NQmTI/records/aperture-architecture.png)

| # | Actor | Markets (`geo`) | Signal Types | Primary Sources | Apify PPE (Basic / Enriched) | Bytewells Agency License |
| :-: | :--- | :---: | :--- | :--- | :--- | :--- |
| **1** | **[Stepstone DACH & Benelux Scraper](https://apify.com/aperture/stepstone-dach-buying-signal-scraper)** (`stepstone-dach-buying-signal-scraper`) | `DE`, `AT`, `BE`, `NL` | `jobs` | Stepstone (`.de`, `.at`, `.be`, `.nl`) + `/impressum` emails | `$0.002` / `$0.008` | `$99/mo` Unlimited |
| **2** | **[Seek Australia & NZ Scraper](https://apify.com/aperture/seek-anz-buying-signal-scraper)** (`seek-anz-buying-signal-scraper`) | `AU`, `NZ` | `jobs` | Seek (`seek.com.au`, `seek.co.nz`) + corporate `/contact` emails | `$0.002` / `$0.008` | `$99/mo` Unlimited |
| **3** | **[France Travail & Maddyness Scraper](https://apify.com/aperture/france-buying-signal-scraper)** (`france-buying-signal-scraper`) | `FR` | `jobs`, `funding` | France Travail jobs + Maddyness funding + `/mentions-legales` | `$0.002` / `$0.008` | `$99/mo` Unlimited |
| **4** | **[5D B2B Buying-Signal ICP Aggregator](https://apify.com/aperture/b2b-buying-signal-icp-aggregator)** (`b2b-buying-signal-icp-aggregator`) | `All 9 Geos` | `5D Multi-Signal` | Cross-dataset deduplicator, `0–100` ICP scorer, 28 tech tags & hooks | `$0.003` / `$0.009` | `$129/mo` Unlimited |
| **5** | **[EU & UK Public Procurement Scraper](https://apify.com/aperture/eu-uk-procurement-award-signal-scraper)** (`eu-uk-procurement-award-signal-scraper`) | `UK`, `FR`, `DE`, `NL`, `BE`, `AT` | `contract_award` | UK Find a Tender (OCDS) + France BOAMP + EU TED v3 awards | `$0.002` / `$0.008` | `$99/mo` Unlimited |
| **6** | **[EU & UK Executive & Incorporation Scraper](https://apify.com/aperture/eu-uk-executive-incorporation-signal-scraper)** (`eu-uk-executive-incorporation-signal-scraper`) | `FR`, `UK`, `DE`, `AT` | `executive_change` | France BODACC + UK Companies House + GLEIF new directors | `$0.002` / `$0.008` | `$99/mo` Unlimited |
| **7** | **[Biotech Clinical Trial & Grant Scraper](https://apify.com/aperture/biotech-clinical-trial-buying-signal-scraper)** (`biotech-clinical-trial-buying-signal-scraper`) | `US`, `UK`, `DE`, `FR`, `NL`, `BE`, `AT` | `clinical_trial`, `research_grant` | US ClinicalTrials.gov v2 + EU EMA CTIS + CORDIS + NIH SBIR | `$0.002` / `$0.008` | `$149/mo` Unlimited |
| **8** | **[LinkedIn & Direct ATS Buying-Signal Scraper](https://apify.com/aperture/linkedin-ats-b2b-buying-signal-scraper)** (`linkedin-ats-b2b-buying-signal-scraper`) | `All 9 Geos` | `jobs` | Zero-Cookie LinkedIn Guest Jobs + Greenhouse, Lever & Personio | `$0.002` / `$0.008` | `$99/mo` Unlimited |
| **9** | **[European Impressum Bulk Enricher](https://apify.com/aperture/european-impressum-contact-bulk-enricher)** (`european-impressum-contact-bulk-enricher`) | `DE`, `AT`, `CH`, `FR`, `UK`, `NL`, `BE` | `impressum_enrichment` | Bulk domain -> `/impressum` & `/mentions-legales` named contacts, VAT & HRB | `$0.001` / `$0.006` | `$39/mo` Unlimited |
| **10** | **[Global 5D B2B Signal Suite Unlimited](https://apify.com/aperture/global-b2b-signal-suite-unlimited)** (`global-b2b-signal-suite-unlimited`) | `All 10 Geos` | `All 5D Signals` | All-in-one whale orchestrator (Jobs, Tenders, Directors, Trials & Grants) | `$0.003` / `$0.009` | `$249/mo` Founding Agency License |

#### Two-Door Store Positioning: Apify Store (Self-Serve PPE) vs. Bytewells Multi-Client Agency License

| Execution Tier | Best For | Pricing Model | Agency Economics & Metering | Autonomous Agent / MCP Support |
| :--- | :--- | :--- | :--- | :--- |
| **Apify Store (Pay-Per-Event)** | Single-team tests, POCs & variable weekly on-demand runs | `$0.001` basic / `$0.006` verified named buyer | Pay only for what you extract (~`$0.0032`/row blended at 20% department buyer hit rate; free `role_fallback` inboxes at base rate) | Native `@apify/actors-mcp-server` |
| **Bytewells (`bytewells.com`)** | Outbound agencies running 10–20+ client workspaces & autonomous AI agents | **`$39–$149/mo` Single-Engine** or **`$249/mo` All-In-One 5D Global Suite** (Passes: `$3–$9` Flash, `$9–$29` Burst, `$19–$69` Sprint) | Zero per-row metering (~`$12.45`/client/mo across 20 clients; daily refresh on 3 core regions + weekly on 5 remaining regions) | Native **HTTP 402 Agentic Auto-Buy** (`x402` / Bytewells MCP) |

<details>
<summary><strong>Technical, API, Clay HTTP Column & Claude MCP Specifications (Click to Expand)</strong></summary>

#### Technical Architecture & Statutory Imprint Engine

- **Statutory Multi-Jurisdiction Register Parsing**: Automatically parses legal identifiers across Germany (`Amtsgericht HRB/HRA`), Austria (`Firmenbuchnummer FN`), Switzerland (`CHE UID`), France (`RCS SIREN/SIRET`), the Netherlands (`KvK`), Belgium (`KBO/BCE`), and the United Kingdom (`Companies House Registered Company Number`).
- **European VAT Identification Extraction**: Validates EU, UK, and Swiss VAT registration numbers (`DE\d{9}`, `ATU\d{8}`, `CHE-\d{3}\.\d{3}\.\d{3}`, `FR[A-Z0-9]{2}\d{9}`, `NL\d{9}B\d{2}`, `BE0?\d{9}`, `GB\d{9}`).
- **Managing Directors & Executive Officer Discovery**: Extracts statutory managing directors (`Geschäftsführer`, `Vorstand`, `Président`, `Directeur général`, `Gérant`, `Director`) and normalizes officer names.
- **28-Tool B2B Tech Stack Detection**: Scans DOM, script, and link tags for active installations of HubSpot, Intercom, Segment, Calendly, Personio, Greenhouse, Lever, Salesforce, Marketo, Pardot, Drift, Zendesk, Crisp, Pipedrive, Stripe, Chargebee, Snowflake, Datadog, Sentry, Google Tag Manager, Amplitude, Mixpanel, Hotjar, PostHog, Workday, Ashby, BambooHR, and Cloudflare.
- **Cloudflare Obfuscated Email Decoding**: Built-in XOR hex decoder unscrambles Cloudflare protected `data-cfemail` strings automatically without client-side JavaScript execution.
- **Deliverability & Phone Cleansing**: Filters dummy and placeholder phone numbers, detects catch-all MX mail servers, and validates direct individual email addresses.

#### Dataset Schema (Data Extracted)

| Field Name | Type | Description |
| :--- | :--- | :--- |
| `detected_at` | `string` | ISO 8601 UTC timestamp when enrichment completed. |
| `company` | `string` | Normalized company name. |
| `domain` | `string` | Verified root domain (primary CRM key). |
| `role_title` | `string` | Functional job title or statutory role. |
| `seniority_band` | `string` | Standardized seniority tier (`entry`, `mid`, `senior`, `manager`, `director`, `vp`, `cxo`). |
| `location` | `string` | Corporate headquarters location or jurisdiction code. |
| `geo` | `string` | Country jurisdiction code (`DE`, `AT`, `CH`, `FR`, `UK`, `NL`, `BE`, etc.). |
| `posted_date` | `string` | Date of discovery. |
| `signal_type` | `string` | Canonical signal type (`jobs` or `executive_change`). |
| `signal_detail` | `string` | CRM summary description. |
| `signal_source_actor` | `string` | Source Actor identifier (`european-impressum-contact-bulk-enricher`). |
| `signal_date` | `string` | ISO date (`YYYY-MM-DD`). |
| `evidence_url` | `string` | Source URL where corporate information was verified. |
| `contact_email` | `string` | Verified named contact email or free role fallback. |
| `contact_phone` | `string` | Cleaned statutory telephone number. |
| `contact_name` | `string` | Full name of corporate contact or managing director. |
| `contact_title` | `string` | Disclosed corporate job title. |
| `contact_source_url` | `string` | Direct page link where contact was discovered. |
| `contact_match_type` | `string` | Classification (`role_matched`, `department_matched`, `legal_officer`, `generic_inbox`). |
| `statutory_register_id` | `string` | Official commercial register number. |
| `vat_id` | `string` | European / UK / Swiss VAT number. |
| `managing_directors` | `array` | List of statutory managing directors and board members. |
| `tech_stack` | `array` | Identified B2B software tools. |
| `email_verification_status` | `string` | Deliverability status: `ok` (named person) or `role_fallback` (free role inbox). |
| `mx_provider` | `string` | Identified email provider (`Google Workspace`, `Microsoft 365`, etc.). |
| `ppe_event_charged` | `string` | Pay-Per-Event tier billed (`impressum-contact-enriched`, `domain-crawled`, or `none`). |
| `notes` | `string` | Additional enrichment metadata. |
| `error` | `string \| null` | Error description if extraction failed, or `null`. |

#### Clay HTTP API Integration (`POST run-sync-get-dataset-items`)

Enrich your Clay domain lists synchronously with one HTTP API column:

**Endpoint:**

```http
POST https://api.apify.com/v2/acts/aperture~european-impressum-contact-bulk-enricher/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN&maxTotalChargeUsd=2.00
Content-Type: application/json
```

**Request Body:**

```json
{
  "domains": ["/Domain Column/"],
  "targetRoleKeywords": ["Sales", "Talent Acquisition", "Procurement"],
  "scraperMode": "enriched_with_email",
  "maxItems": 1
}
```

#### Claude Desktop, Cursor & Antigravity MCP Server Configuration

Connect [`@apify/actors-mcp-server`](https://www.npmjs.com/package/@apify/actors-mcp-server) in `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "apify": {
      "command": "npx",
      "args": ["-y", "@apify/actors-mcp-server"],
      "env": {
        "APIFY_TOKEN": "YOUR_APIFY_TOKEN"
      }
    }
  }
}
```

</details>

# Actor input Schema

## `domains` (type: `array`):

List of target corporate root domains (e.g., stackfuel.com, hetzner.com, forto.com, sipgate.de, sennder.com) to crawl for statutory Impressum imprints and corporate contacts.

## `companies` (type: `array`):

Optional list of company names when domains are not yet known. The actor maps well-known brands or slugifies them to resolve root domains.

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

Optional list of ISO country codes (DE, AT, CH, FR, UK, NL, BE, AU, NZ, US, EU) to hint statutory register matching.

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

Maximum number of normalized enriched domain records to output. Free-tier Apify runs are capped at 25 items per run; paid Apify plans support unlimited runs.

## `scraperMode` (type: `string`):

Choose 'basic' ($2.00 / 1,000 domains via job-signal-scraped) for normalized corporate contacts, or 'enriched_with_email' ($8.00 / 1,000 domains via buying-signal-enriched) for verified named individual contacts. Role emails (info@, jobs@, contact@) and legal officers are included at the basic rate ($0.002); zero-contact domains cost $0.00.

## `strictBuyerMatchOnly` (type: `boolean`):

When enabled (true), emits ONLY signals where a non-HR department/role decision-maker (role_matched or department_matched) with a verified named email (ok), non-empty verbatim title, and live corporate contact_source_url was discovered on the company's own website. Filters out recruiter contacts, statutory Impressum legal officers, generic info@ inboxes, and unmatched rows.

## `crawlPaths` (type: `array`):

Custom paths to crawl per domain. Defaults to: /impressum, /imprint, /mentions-legales, /legal, /contact, /kontakt, /about, /team.

## `targetRoleKeywords` (type: `array`):

Target job role or departmental keywords (e.g., Sales, Talent Acquisition, Procurement, HR, Marketing) to prioritize buyer contacts over statutory legal officers.

## `excludeLegalOfficerFallbacks` (type: `boolean`):

When enabled, suppresses statutory managing directors (Geschäftsführer, Président, Director) from being selected as the primary contact if no functional role contact is discovered.

## `blacklistDomains` (type: `array`):

Optional list of company root domains (e.g., existing-client.com, competitor.com) to exclude. Matching domains cost $0.00.

## `excludeCompanyKeywords` (type: `array`):

Case-insensitive keywords matched against company names BEFORE website crawling or PPE charging. Matching domains are dropped at $0.00.

## `excludeLocations` (type: `array`):

Case-insensitive city, state, or country substrings dropped BEFORE website crawling or PPE charging ($0.00 cost).

## `customEmailVerifierApiKey` (type: `string`):

Optional Bring-Your-Own-Key token for third-party HTTPS email verifier during 'enriched_with_email' mode.

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

Optional Apify Proxy or custom proxy URLs. Pure HTTP/2 requests run with zero cookies or browser login.

## Actor input object example

```json
{
  "domains": [
    "stackfuel.com",
    "hetzner.com",
    "forto.com",
    "sipgate.de",
    "sennder.com"
  ],
  "companies": [],
  "countries": [],
  "maxItems": 50,
  "scraperMode": "enriched_with_email",
  "strictBuyerMatchOnly": false,
  "crawlPaths": [],
  "targetRoleKeywords": [
    "Sales",
    "Talent Acquisition",
    "Procurement"
  ],
  "excludeLegalOfficerFallbacks": false,
  "blacklistDomains": [],
  "excludeCompanyKeywords": [],
  "excludeLocations": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset containing verified named individual contacts, statutory register IDs, VAT numbers, and tech stack telemetry.

## `state` (type: `string`):

Key-value store record persisting run telemetry and unbilled zero-contact domains.

# 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 = {
    "domains": [
        "stackfuel.com",
        "hetzner.com",
        "forto.com",
        "sipgate.de",
        "sennder.com"
    ],
    "maxItems": 50,
    "scraperMode": "enriched_with_email",
    "targetRoleKeywords": [
        "Sales",
        "Talent Acquisition",
        "Procurement"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("aperture/european-impressum-contact-bulk-enricher").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 = {
    "domains": [
        "stackfuel.com",
        "hetzner.com",
        "forto.com",
        "sipgate.de",
        "sennder.com",
    ],
    "maxItems": 50,
    "scraperMode": "enriched_with_email",
    "targetRoleKeywords": [
        "Sales",
        "Talent Acquisition",
        "Procurement",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("aperture/european-impressum-contact-bulk-enricher").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 '{
  "domains": [
    "stackfuel.com",
    "hetzner.com",
    "forto.com",
    "sipgate.de",
    "sennder.com"
  ],
  "maxItems": 50,
  "scraperMode": "enriched_with_email",
  "targetRoleKeywords": [
    "Sales",
    "Talent Acquisition",
    "Procurement"
  ]
}' |
apify call aperture/european-impressum-contact-bulk-enricher --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aperture/european-impressum-contact-bulk-enricher"
        }
    }
}
```

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/bNdZsJ0ZbwSFqpL3W/builds/oPYL6mUekL8evL89F/openapi.json
