# Germany Gelbe Seiten Scraper | Fast B2B Lead Extractor (`dach_leads/germany-gelbe-seiten-scraper-fast-b2b-lead-extractor`) Actor

Fast, high-volume B2B lead extractor for Gelbe Seiten (German Yellow Pages). Extract company names, categories, direct phone numbers, addresses, ratings, and websites by City & Industry.

- **URL**: https://apify.com/dach_leads/germany-gelbe-seiten-scraper-fast-b2b-lead-extractor.md
- **Developed by:** [Samarth Bhalerao](https://apify.com/dach_leads) (community)
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$1.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/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

## 🇩🇪 Germany Gelbe Seiten Scraper | Fast B2B Lead Extractor

Extract verified German B2B company leads, direct telephone numbers, physical street addresses, websites, emails, and ratings directly from **Gelbe Seiten (Germany's official commercial Yellow Pages directory — gelbeseiten.de)**.

```json
{
  "company_name": "ICT Berlin GmbH",
  "industry_category": "IT-Beratung",
  "direct_phone": "+49 30 2249 4045",
  "address": "Lübbenauer Weg 52, 12527 Berlin-Grünau",
  "city": "Berlin",
  "website": "https://ict-berlin.de",
  "email": "info@ict-berlin.de",
  "rating": "4.8",
  "review_count": "12",
  "gelbeseiten_url": "https://www.gelbeseiten.de/gsbiz/506a7f92-c0be-4a24-9b2f-3d6061f22e8d",
  "data_source": "gelbeseiten.de"
}
```

***

### 📌 Overview: Why Gelbe Seiten is Germany's #1 Commercial Directory

**Gelbe Seiten** (*Yellow Pages Germany* / *Gelbeseiten*) is the country's most established and authoritative business registry. With over **3.5 million registered commercial entities** across Germany's 16 federal states, it is the primary directory used by German tradespeople (*Handwerker*), medical clinics (*Ärzte*), engineering firms (*Mittelstand*), law practices (*Kanzleien*), IT consultancies, and local businesses.

Unlike generic search engines or global map directories which frequently include closed businesses or scraped duplicates, **Gelbe Seiten entries are verified against German regional chambers of commerce (IHK / HWK)**, ensuring high data reliability for sales and market research.

***

### ⚡ Key Features & Capabilities

- **🚀 Automated AJAX Pagination:** Crawl seamlessly from 10 up to 10,000+ businesses across multi-page directory listings using intelligent AJAX chunking.
- **📞 Verified Direct Phone Numbers:** Voice lines are extracted and formatted cleanly (with Fax numbers automatically filtered out).
- **📍 Complete German Street Addresses:** Full physical street address, building number, 5-digit postal code (*PLZ*), city, and metropolitan district.
- **🌐 Clean External Website Extraction:** Strips tracking parameters, redirect wrappers, and publisher ads (`bfb.de`, `sellwerk.de`, `dastelefonbuch.de`) to deliver the company's real external homepage URL.
- **⭐ Star Ratings & Review Counts:** Captures customer ratings (1.0 to 5.0) and review volumes to identify top-rated service providers.
- **🇩🇪 Full German Umlaut & Regional Support:** Handles special characters (`ä`, `ö`, `ü`, `ß`) and regional queries across major hubs (*München, Köln, Düsseldorf, Nürnberg*) and smaller municipalities.
- **🤖 Autonomous AI Agent & n8n Ready:** Pure Pay-Per-Event (PPE) schema allows n8n, Make, LangChain, Claude, and custom AI agents to query German leads on demand.

***

### 🔄 1-Click n8n Automation Template (Recurring CRM Sync)

Automate your lead generation by syncing fresh Gelbe Seiten leads directly into **Google Sheets, Airtable, HubSpot, or Instantly** every week!

```mermaid
flowchart LR
    A["⏰ Trigger<br/>(On Demand / Weekly)"] --> B["🇩🇪 Step 1: Gelbe Seiten Scraper<br/>(Pulls 50–500 Companies)"]
    B --> C{"Filter<br/>Has Website?"}
    C -->|Yes| D["👔 Step 2: Impressum Extractor<br/>(Extracts CEO & Email)"]
    D --> E["📊 Final Output<br/>(Google Sheets / CRM)"]
```

> 📥 **Ready-to-Use n8n Template:** Download our ready-to-import n8n workflow JSON:\
> [**german_b2b_lead_machine_n8n_template.json**](https://github.com/dach-leads/n8n-german-b2b-lead-pipeline) — Copy and paste directly onto your n8n canvas!

***

### 💡 The 2-Step B2B Power Funnel: From Directory to CEO Inbox

This scraper is designed to work as the **Upstream Discovery Engine** for your European outbound sales pipeline:

```
[ Step 1: Gelbe Seiten Scraper ] ───►  Scrapes 2,000 German company websites & phones ($1.00 / 1k)
                │
                └───► (Export CSV / URLs)
[ Step 2: Impressum Extractor  ] ───►  Crawls /impressum to extract the Managing Director (CEO)
                                       and personal email under German federal law (§ 5 DDG)
```

> 🎯 **Cross-Sell Pro-Tip:** Take the company websites extracted by this tool and feed them into our **[Germany B2B Lead & Impressum Extractor](https://apify.com/dach_leads/germany-b2b-lead-impressum-scraper)** to legally unlock the **Managing Director (*Geschäftsführer / Inhaber*)** names and direct emails!

***

### 📥 Input Parameters

| Field | Type | Required | Default | Description | Example |
| :--- | :--- | :---: | :--- | :--- | :--- |
| **`city`** | String | **Yes** | `Berlin` | German city, municipality, or postal district | `Berlin`, `München`, `Hamburg`, `Frankfurt am Main`, `Stuttgart` |
| **`industry`** | String | **Yes** | `IT-Beratung` | Business category, trade, or keyword | `IT-Beratung`, `Steuerberater`, `Maschinenbau`, `Zahnarzt`, `Immobilien` |
| **`max_leads`** | Integer | No | `50` | Maximum number of leads to collect (1 to 10,000) | `50`, `250`, `1000` |

***

### 🎯 Top High-Value German Niches to Scrape

| Industry Keyword | Target City | Target Audience / Commercial Value |
| :--- | :--- | :--- |
| `Steuerberater` | `München` | Certified German Tax Advisors with high-ticket retainers |
| `Finanzberatung` | `Frankfurt am Main` | Financial consultants & asset managers in Europe's banking hub |
| `Maschinenbau` | `Stuttgart` | Industrial machinery & German *Mittelstand* manufacturers |
| `Softwareentwicklung` | `Berlin` | Fast-growing SaaS startups and digital agencies |
| `Rechtsanwälte` | `Hamburg` | Commercial law firms, patent attorneys, and corporate counsels |
| `Immobilienmakler` | `Düsseldorf` | Commercial and residential real estate brokerages |
| `Zahnarzt` | `Köln` | High-income private dental practices and medical clinics |

***

### 📊 Output Dataset Specification

Data is exported in **Excel (.xlsx), CSV, JSON, or XML** with the following structured attributes:

| Column Name | Type | Description | Sample Value |
| :--- | :--- | :--- | :--- |
| **`company_name`** | String | Official registered company name | `ICT Berlin GmbH` |
| **`industry_category`** | String | Targeted industry or trade category | `IT-Beratung` |
| **`direct_phone`** | String | Cleaned direct telephone number | `+49 30 2249 4045` |
| **`address`** | String | Full street, building number, and postal code | `Lübbenauer Weg 52, 12527 Berlin-Grünau` |
| **`city`** | String | City name | `Berlin` |
| **`website`** | String | Official company website URL | `https://ict-berlin.de` |
| **`email`** | String | Directory listing contact email | `info@ict-berlin.de` |
| **`rating`** | String | Average star rating out of 5.0 | `4.8` |
| **`review_count`** | String | Total number of published customer reviews | `12` |
| **`gelbeseiten_url`** | String | Official Gelbe Seiten directory record link | `https://www.gelbeseiten.de/gsbiz/...` |
| **`data_source`** | String | Directory source of record | `gelbeseiten.de` |

***

### 💻 Programmatic Usage & API Integration

#### Python (`apify-client`)

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_API_TOKEN")

run_input = {
    "city": "München",
    "industry": "Steuerberater",
    "max_leads": 100
}

run = client.actor("dach_leads/germany-gelbe-seiten-scraper-fast-b2b-lead-extractor").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['company_name']} | {item['direct_phone']} | {item['website']}")
```

#### Node.js (`apify-client`)

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_API_TOKEN' });

const input = {
    city: 'Frankfurt am Main',
    industry: 'Finanzberatung',
    max_leads: 100,
};

const run = await client.actor('dach_leads/germany-gelbe-seiten-scraper-fast-b2b-lead-extractor').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();

console.log(`Extracted ${items.length} German leads from Gelbe Seiten.`);
```

#### cURL (Direct HTTP API)

```bash
curl "https://api.apify.com/v2/acts/dach_leads~germany-gelbe-seiten-scraper-fast-b2b-lead-extractor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"city": "Berlin", "industry": "IT-Beratung", "max_leads": 50}'
```

***

### 💰 Transparent Pay-per-Result Pricing

- **Only $1.00 per 1,000 verified leads** ($0.001 per result) — **70% cheaper** than generic market scrapers.
- **$0.00 Actor Start Fee** — Zero upfront cost to spin up runs.
- **Zero Platform Surcharge** — Pure pay-per-event pricing without hidden compute charges.
- **Free Test Allowance** — Free tier users can test and scrape business records without credit card commitments.

***

### ❓ Frequently Asked Questions (FAQ)

##### Q: How does this scraper handle pagination across hundreds of companies?

**A:** Gelbe Seiten serves Page 1 as standard HTML and subsequent pages via internal dynamic AJAX endpoints. This scraper automatically handles session tokens, position offsets, and AJAX payload chunks, allowing you to extract thousands of companies uninterrupted.

##### Q: Are the extracted phone numbers and websites real?

**A:** Yes. The Actor visits each business's individual Yellow Pages detail listing (`/gsbiz/`), extracts the real external website URL (stripping ad agency redirects), and captures verified telephone numbers while excluding fax lines.

##### Q: How can I find the CEO / Managing Director names for these companies?

**A:** Gelbe Seiten only lists company-level directory data. To get the personal name of the CEO (*Geschäftsführer*) and their direct email, export your results and feed the website URLs into our **[Germany B2B Lead & Impressum Extractor](https://apify.com/dach_leads/germany-b2b-lead-impressum-scraper)**.

##### Q: Does this scraper require residential proxies?

**A:** No. The scraper uses optimized HTTP connection pooling and polite request throttling, allowing it to run reliably on standard connections without triggering CAPTCHAs.

# Actor input Schema

## `city` (type: `string`):

German city or region to search (e.g., Berlin, München, Hamburg, Frankfurt)

## `industry` (type: `string`):

Business niche, category, or service (e.g., IT-Beratung, Steuerberater, Handwerk, Immobilien)

## `max_leads` (type: `integer`):

Maximum number of companies to scrape (up to 10,000 across multiple pages)

## Actor input object example

```json
{
  "city": "Berlin",
  "industry": "IT-Beratung",
  "max_leads": 50
}
```

# Actor output Schema

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

Direct access link to the scraped dataset records

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("dach_leads/germany-gelbe-seiten-scraper-fast-b2b-lead-extractor").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("dach_leads/germany-gelbe-seiten-scraper-fast-b2b-lead-extractor").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 '{}' |
apify call dach_leads/germany-gelbe-seiten-scraper-fast-b2b-lead-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dach_leads/germany-gelbe-seiten-scraper-fast-b2b-lead-extractor"
        }
    }
}
```

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/T2rkqcI6POZWCiSJz/builds/VNbTw0vnvilCpBdlM/openapi.json
